On Fri, Dec 24, 2010 at 01:59:09PM +0800, Feng Tang wrote:
> The SPI polling loop timeout only works with HZ=100 as the loop was
> actually too short.
> 
> Also add appropriate cpu_relax() in the busy wait loops...
> 
> Acked-by: Grant Likely <[email protected]>
> Signed-off-by: Arjan van de Ven <[email protected]>
> Signed-off-by: Alan Cox <[email protected]>

Where is your s-o-b line?  :-)

Applied for -next, thanks.

g.

> ---
>  drivers/spi/dw_spi.c |    9 ++++++---
>  1 files changed, 6 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/spi/dw_spi.c b/drivers/spi/dw_spi.c
> index 0838c79..25238a8 100644
> --- a/drivers/spi/dw_spi.c
> +++ b/drivers/spi/dw_spi.c
> @@ -164,20 +164,23 @@ static inline void mrst_spi_debugfs_remove(struct 
> dw_spi *dws)
>  
>  static void wait_till_not_busy(struct dw_spi *dws)
>  {
> -     unsigned long end = jiffies + 1 + usecs_to_jiffies(1000);
> +     unsigned long end = jiffies + 1 + usecs_to_jiffies(5000);
>  
>       while (time_before(jiffies, end)) {
>               if (!(dw_readw(dws, sr) & SR_BUSY))
>                       return;
> +             cpu_relax();
>       }
>       dev_err(&dws->master->dev,
> -             "DW SPI: Status keeps busy for 1000us after a read/write!\n");
> +             "DW SPI: Status keeps busy for 5000us after a read/write!\n");
>  }
>  
>  static void flush(struct dw_spi *dws)
>  {
> -     while (dw_readw(dws, sr) & SR_RF_NOT_EMPT)
> +     while (dw_readw(dws, sr) & SR_RF_NOT_EMPT) {
>               dw_readw(dws, dr);
> +             cpu_relax();
> +     }
>  
>       wait_till_not_busy(dws);
>  }
> -- 
> 1.7.0.4
> 

------------------------------------------------------------------------------
Learn how Oracle Real Application Clusters (RAC) One Node allows customers
to consolidate database storage, standardize their database environment, and, 
should the need arise, upgrade to a full multi-node Oracle RAC database 
without downtime or disruption
http://p.sf.net/sfu/oracle-sfdevnl
_______________________________________________
spi-devel-general mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/spi-devel-general

Reply via email to