Title: [8270] trunk/drivers/spi/spi_bfin5xx.c: [#5879] GPIO controlled slave request may fail when bfin_spi_setup()
Revision
8270
Author
hennerich
Date
2010-02-03 10:47:16 -0500 (Wed, 03 Feb 2010)

Log Message

[#5879] GPIO controlled slave request may fail when bfin_spi_setup()
gets executed twice
Some drivers such as the ADS7846 calls spi_setup() from its probe
function.
Only gpio_request() on the first setup.

Modified Paths

Diff

Modified: trunk/drivers/spi/spi_bfin5xx.c (8269 => 8270)


--- trunk/drivers/spi/spi_bfin5xx.c	2010-02-03 09:34:16 UTC (rev 8269)
+++ trunk/drivers/spi/spi_bfin5xx.c	2010-02-03 15:47:16 UTC (rev 8270)
@@ -1171,12 +1171,15 @@
 	}
 
 	if (chip->chip_select_num >= MAX_CTRL_CS) {
-		ret = gpio_request(chip->cs_gpio, spi->modalias);
-		if (ret) {
-			dev_err(&spi->dev, "gpio_request() error\n");
-			goto pin_error;
+		/* Only request on first setup */
+		if (spi_get_ctldata(spi) == NULL) {
+			ret = gpio_request(chip->cs_gpio, spi->modalias);
+			if (ret) {
+				dev_err(&spi->dev, "gpio_request() error\n");
+				goto pin_error;
+			}
+			gpio_direction_output(chip->cs_gpio, 1);
 		}
-		gpio_direction_output(chip->cs_gpio, 1);
 	}
 
 	dev_dbg(&spi->dev, "setup spi chip %s, width is %d, dma is %d\n",
_______________________________________________
Linux-kernel-commits mailing list
[email protected]
https://blackfin.uclinux.org/mailman/listinfo/linux-kernel-commits

Reply via email to