]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - drivers/spi/spi-gpio.c
spi: bcm2835: Drop dma_pending flag
[linux.git] / drivers / spi / spi-gpio.c
index eca9d52ecf65c57d342ac4abcb4bd49e9f781972..1d3e23ec20a61fd926d29585fbd29d4d9d9d1593 100644 (file)
@@ -290,10 +290,7 @@ static int spi_gpio_request(struct device *dev, struct spi_gpio *spi_gpio)
                return PTR_ERR(spi_gpio->miso);
 
        spi_gpio->sck = devm_gpiod_get(dev, "sck", GPIOD_OUT_LOW);
-       if (IS_ERR(spi_gpio->sck))
-               return PTR_ERR(spi_gpio->sck);
-
-       return 0;
+       return PTR_ERR_OR_ZERO(spi_gpio->sck);
 }
 
 #ifdef CONFIG_OF
@@ -410,6 +407,12 @@ static int spi_gpio_probe(struct platform_device *pdev)
 
        bb = &spi_gpio->bitbang;
        bb->master = master;
+       /*
+        * There is some additional business, apart from driving the CS GPIO
+        * line, that we need to do on selection. This makes the local
+        * callback for chipselect always get called.
+        */
+       master->flags |= SPI_MASTER_GPIO_SS;
        bb->chipselect = spi_gpio_chipselect;
        bb->set_line_direction = spi_gpio_set_direction;