Merge remote-tracking branch 'spi/for-5.10' into spi-next
[sfrench/cifs-2.6.git] / drivers / spi / spi-imx.c
index 197f60632072f8e08aa27753639d7acb61c6f5b4..060b1f5c9b048bbc85139d64b88586dd2bd88bec 100644 (file)
@@ -1503,6 +1503,8 @@ static int spi_imx_transfer(struct spi_device *spi,
 {
        struct spi_imx_data *spi_imx = spi_master_get_devdata(spi->master);
 
+       transfer->effective_speed_hz = spi_imx->spi_bus_clk;
+
        /* flush rxfifo before transfer */
        while (spi_imx->devtype_data->rx_available(spi_imx))
                readl(spi_imx->base + MXC_CSPIRXDATA);
@@ -1707,7 +1709,7 @@ static int spi_imx_probe(struct platform_device *pdev)
        ret = spi_bitbang_start(&spi_imx->bitbang);
        if (ret) {
                dev_err(&pdev->dev, "bitbang start failed with %d\n", ret);
-               goto out_runtime_pm_put;
+               goto out_bitbang_start;
        }
 
        pm_runtime_mark_last_busy(spi_imx->dev);
@@ -1715,6 +1717,9 @@ static int spi_imx_probe(struct platform_device *pdev)
 
        return ret;
 
+out_bitbang_start:
+       if (spi_imx->devtype_data->has_dmamode)
+               spi_imx_sdma_exit(spi_imx);
 out_runtime_pm_put:
        pm_runtime_dont_use_autosuspend(spi_imx->dev);
        pm_runtime_put_sync(spi_imx->dev);