]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - drivers/spi/spi-omap2-mcspi.c
Merge branch 'karo-tx6-mainline' into stable
[karo-tx-linux.git] / drivers / spi / spi-omap2-mcspi.c
index 50873236fee1d68a012164139db8638169d1d687..9ccd5a5c8b65c633809b67eb7a14b80de79116ab 100644 (file)
@@ -1023,6 +1023,16 @@ static int omap2_mcspi_setup(struct spi_device *spi)
                spi->controller_state = cs;
                /* Link this to context save list */
                list_add_tail(&cs->node, &ctx->cs);
+
+               if (gpio_is_valid(spi->cs_gpio)) {
+                       ret = gpio_request(spi->cs_gpio, dev_name(&spi->dev));
+                       if (ret) {
+                               dev_err(&spi->dev, "failed to request gpio\n");
+                               return ret;
+                       }
+                       gpio_direction_output(spi->cs_gpio,
+                                        !(spi->mode & SPI_CS_HIGH));
+               }
        }
 
        if (!mcspi_dma->dma_rx || !mcspi_dma->dma_tx) {
@@ -1031,15 +1041,6 @@ static int omap2_mcspi_setup(struct spi_device *spi)
                        return ret;
        }
 
-       if (gpio_is_valid(spi->cs_gpio)) {
-               ret = gpio_request(spi->cs_gpio, dev_name(&spi->dev));
-               if (ret) {
-                       dev_err(&spi->dev, "failed to request gpio\n");
-                       return ret;
-               }
-               gpio_direction_output(spi->cs_gpio, !(spi->mode & SPI_CS_HIGH));
-       }
-
        ret = pm_runtime_get_sync(mcspi->dev);
        if (ret < 0)
                return ret;