diff mbox

[RFC,v2,3/3] spi-gpio: use _cansleep when CONFIG_SLOWER_SPI_GPIO is defined

Message ID 986eb10f4a662940f631235efa4b679acdcdab80.1291925752.git.bengardiner@nanometrics.ca (mailing list archive)
State Superseded, archived
Headers show

Commit Message

Ben Gardiner Dec. 9, 2010, 8:34 p.m. UTC
None
diff mbox

Patch

diff --git a/drivers/spi/spi_gpio.c b/drivers/spi/spi_gpio.c
index b31fddd..537ce13 100644
--- a/drivers/spi/spi_gpio.c
+++ b/drivers/spi/spi_gpio.c
@@ -78,6 +78,12 @@  struct spi_gpio {
 
 #define GENERIC_BITBANG	/* vs tight inlines */
 
+#if defined(CONFIG_SLOWER_SPI_GPIO)
+#define spi_gpio_gpio_set_value gpio_set_value_cansleep
+#else
+#define spi_gpio_gpio_set_value gpio_set_value
+#endif
+
 /* all functions referencing these symbols must define pdata */
 #define SPI_MISO_GPIO	((pdata)->miso)
 #define SPI_MOSI_GPIO	((pdata)->mosi)
@@ -105,12 +111,12 @@  spi_to_pdata(const struct spi_device *spi)
 
 static inline void setsck(const struct spi_device *spi, int is_on)
 {
-	gpio_set_value(SPI_SCK_GPIO, is_on);
+	spi_gpio_gpio_set_value(SPI_SCK_GPIO, is_on);
 }
 
 static inline void setmosi(const struct spi_device *spi, int is_on)
 {
-	gpio_set_value(SPI_MOSI_GPIO, is_on);
+	spi_gpio_gpio_set_value(SPI_MOSI_GPIO, is_on);
 }
 
 static inline int getmiso(const struct spi_device *spi)
@@ -222,7 +228,8 @@  static void spi_gpio_chipselect(struct spi_device *spi, int is_active)
 
 	if (cs != SPI_GPIO_NO_CHIPSELECT) {
 		/* SPI is normally active-low */
-		gpio_set_value(cs, (spi->mode & SPI_CS_HIGH) ? is_active : !is_active);
+		spi_gpio_gpio_set_value(cs, (spi->mode & SPI_CS_HIGH) ?
+							is_active : !is_active);
 	}
 }