Hi Grant, > Sent by: Grant Likely <glik...@secretlab.ca> > > On Thu, 22 Nov 2012 14:37:26 +0000, Phil Edworthy > <phil.edwor...@renesas.com> wrote: > > The driver attempts to read the recieved data immediately after > > writing to the transmit buffer. If no data is available, the driver > > currently waits 20ms until trying again. Since the hardware needs > > to shift out the transmitted data, the first poll always fails, > > leading to 20ms delay between bytes. > > > > This patch reduces the polling interval to 1us, and also reduces > > the timeout to 10ms. > > > > Signed-off-by: Phil Edworthy <phil.edwor...@renesas.com> > > --- > > drivers/spi/spi-sh-hspi.c | 4 ++-- > > 1 files changed, 2 insertions(+), 2 deletions(-) > > > > diff --git a/drivers/spi/spi-sh-hspi.c b/drivers/spi/spi-sh-hspi.c > > index 934138c..0ca18c8 100644 > > --- a/drivers/spi/spi-sh-hspi.c > > +++ b/drivers/spi/spi-sh-hspi.c > > @@ -73,13 +73,13 @@ static u32 hspi_read(struct hspi_priv *hspi, int reg) > > */ > > static int hspi_status_check_timeout(struct hspi_priv *hspi, u32 > mask, u32 val) > > { > > - int t = 256; > > + int t = 10000; /* 10ms max timeout */ > > > > while (t--) { > > if ((mask & hspi_read(hspi, SPSR)) == val) > > return 0; > > > > - msleep(20); > > + udelay(1); > > } > > This does have the side effect that the cpu is now spinning instead of > scheduling something else when the device is busy. Is that what you > want? (the answer depends on how big the fifo is and how fast the SPI > bus runs). That's true... The HW has an 8 byte fifo, but at the moment this driver doesn't use it. I suppose the sensible thing to do is calculate the time we expect to wait for the received data to become available, and if this time is over some threshold, use msleep instead of udelay.
Thanks Phil ------------------------------------------------------------------------------ Monitor your physical, virtual and cloud infrastructure from a single web console. Get in-depth insight into apps, servers, databases, vmware, SAP, cloud infrastructure, etc. Download 30-day Free Trial. Pricing starts from $795 for 25 servers or applications! http://p.sf.net/sfu/zoho_dev2dev_nov _______________________________________________ spi-devel-general mailing list spi-devel-general@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/spi-devel-general