diff options
Diffstat (limited to 'recipes/linux/linux-2.6.31/ben-nanonote/400-spi-gpio-3wire.patch')
-rw-r--r-- | recipes/linux/linux-2.6.31/ben-nanonote/400-spi-gpio-3wire.patch | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/recipes/linux/linux-2.6.31/ben-nanonote/400-spi-gpio-3wire.patch b/recipes/linux/linux-2.6.31/ben-nanonote/400-spi-gpio-3wire.patch new file mode 100644 index 0000000000..d05d9d3486 --- /dev/null +++ b/recipes/linux/linux-2.6.31/ben-nanonote/400-spi-gpio-3wire.patch @@ -0,0 +1,37 @@ +--- a/drivers/spi/spi_gpio.c ++++ b/drivers/spi/spi_gpio.c +@@ -254,9 +254,11 @@ spi_gpio_request(struct spi_gpio_platfor + if (value) + goto done; + +- value = spi_gpio_alloc(SPI_MISO_GPIO, label, true); +- if (value) +- goto free_mosi; ++ if (SPI_MISO_GPIO != SPI_MOSI_GPIO) { ++ value = spi_gpio_alloc(SPI_MISO_GPIO, label, true); ++ if (value) ++ goto free_mosi; ++ } + + value = spi_gpio_alloc(SPI_SCK_GPIO, label, false); + if (value) +@@ -319,7 +321,8 @@ static int __devinit spi_gpio_probe(stru + if (status < 0) { + spi_master_put(spi_gpio->bitbang.master); + gpio_free: +- gpio_free(SPI_MISO_GPIO); ++ if (SPI_MISO_GPIO != SPI_MOSI_GPIO) ++ gpio_free(SPI_MISO_GPIO); + gpio_free(SPI_MOSI_GPIO); + gpio_free(SPI_SCK_GPIO); + spi_master_put(master); +@@ -343,7 +346,8 @@ static int __devexit spi_gpio_remove(str + + platform_set_drvdata(pdev, NULL); + +- gpio_free(SPI_MISO_GPIO); ++ if (SPI_MISO_GPIO != SPI_MOSI_GPIO) ++ gpio_free(SPI_MISO_GPIO); + gpio_free(SPI_MOSI_GPIO); + gpio_free(SPI_SCK_GPIO); + |