Skip to contentSkip to conversation

spi_bfin5xx: flush() returns -1 when no stop and clear stat was found

PATCH New Roel Kluin 1 participant 1 message Jun 3, 2009 SPI

lore
Share & tools
lore

Roel Kluin

author
#0 lore raw

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.

---

drivers/spi/spi_bfin5xx.c +3 -1
index f014cc2..ada9b54 100644
@@ -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