Merge remote-tracking branch 'spi/for-5.10' into spi-next
[sfrench/cifs-2.6.git] / drivers / spi / spi-imx.c
index 38a5f1304cec458ee78606025726a046833e2e5a..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);
@@ -1695,7 +1697,7 @@ static int spi_imx_probe(struct platform_device *pdev)
                        goto out_runtime_pm_put;
 
                if (ret < 0)
-                       dev_err(&pdev->dev, "dma setup error %d, use pio\n",
+                       dev_dbg(&pdev->dev, "dma setup error %d, use pio\n",
                                ret);
        }
 
@@ -1707,16 +1709,17 @@ 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;
        }
 
-       dev_info(&pdev->dev, "probed\n");
-
        pm_runtime_mark_last_busy(spi_imx->dev);
        pm_runtime_put_autosuspend(spi_imx->dev);
 
        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);