spi_bfin5xx: flush() returns -1 when no stop and clear stat was found
PATCH 1/1 spi_bfin5xx: flush() returns -1 when no stop and clear stat was found
in bfin_spi_pump_transfers()
/* Setup the transfer state based on the type of transfer */
if (bfin_spi_flush(drv_data) == 0) {
dev_err(&drv_data->pdev->dev, "pump_transfers: flush failed\n");...
But when limit is reached, bfin_spi_flush() returns -1.
Signed-off-by Roel Kluin <[email protected]>
---
drivers/spi/spi_bfin5xx.c +3 -1
@@ -169,8 +169,10 @@ static int bfin_spi_flush(struct driver_data *drv_data)unsigned long limit = loops_per_jiffy <<1 ;/* wait for stop and clear stat */ -while (!(read_STAT (drv_data) &BIT_STAT_SPIF ) && limit--) +while (!(read_STAT (drv_data) &BIT_STAT_SPIF ) && limit) {cpu_relax (); + limit--; + }write_STAT (drv_data,BIT_STAT_CLR );
------------------------------------------------------------------------------
OpenSolaris 2009.06 is a cutting edge operating system for enterprises looking to deploy the next generation of Solaris that includes the latest innovations from Sun and the OpenSource community. Download a copy and enjoy capabilities such as Networking, Storage and Virtualization. Go to: http://p.sf.net/sfu/opensolaris-get