spi: Fixes for v6.12
A small set of driver specific fixes that came in since the merge window, about half of which is fixes for correctness in the use of the runtime PM APIs done as part of a broader cleanup. -----BEGIN PGP SIGNATURE----- iQEzBAABCgAdFiEEreZoqmdXGLWf4p/qJNaLcl1Uh9AFAmcAZPQACgkQJNaLcl1U h9AcWgf9Hj53LZPeQgf/fDgr6ZEqpxR4v+ZStlHSlm4gbIHs84Wtj+mPMYFJ1hVK 0fL34wKKTd8ckhp4Ys/8mNyMRrZegmQET8kEWoeM+gqAlzLQkDuJ5kQEaZlKYeRb Q2aiQfLxvvKVoxdJNOq8SZHlU9in1X4y8sZ1okfYY2lFS//pi3+P8IGFlN/K7vTs hxucI5gNsithiVQ1nCzLP6BawwZcICo/zTpiBt4Xiuj7GohrWsWFq9fqwx6Jj6xh nkvHdpuC743qrcUoKjnXVr3PCKjDK+pSp84O7aDgrlC2HZuXyDvhRKAw5NtL0HwH 2opB09eItz1bn4KRCf6MrY6/7VV5Rw== =Mjs1 -----END PGP SIGNATURE----- Merge tag 'spi-fix-v6.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi Pull spi fixes from Mark Brown: "A small set of driver specific fixes that came in since the merge window, about half of which is fixes for correctness in the use of the runtime PM APIs done as part of a broader cleanup" * tag 'spi-fix-v6.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi: spi: s3c64xx: fix timeout counters in flush_fifo spi: atmel-quadspi: Fix wrong register value written to MR spi: spi-cadence: Fix missing spi_controller_is_target() check spi: spi-cadence: Fix pm_runtime_set_suspended() with runtime pm enabled spi: spi-imx: Fix pm_runtime_set_suspended() with runtime pm enabled
This commit is contained in:
commit
60b9f47eb3
@ -377,7 +377,7 @@ static int atmel_qspi_set_cfg(struct atmel_qspi *aq,
|
||||
*/
|
||||
if (!(aq->mr & QSPI_MR_SMM)) {
|
||||
aq->mr |= QSPI_MR_SMM;
|
||||
atmel_qspi_write(aq->scr, aq, QSPI_MR);
|
||||
atmel_qspi_write(aq->mr, aq, QSPI_MR);
|
||||
}
|
||||
|
||||
/* Clear pending interrupts */
|
||||
|
@ -678,8 +678,8 @@ static int cdns_spi_probe(struct platform_device *pdev)
|
||||
|
||||
clk_dis_all:
|
||||
if (!spi_controller_is_target(ctlr)) {
|
||||
pm_runtime_set_suspended(&pdev->dev);
|
||||
pm_runtime_disable(&pdev->dev);
|
||||
pm_runtime_set_suspended(&pdev->dev);
|
||||
}
|
||||
remove_ctlr:
|
||||
spi_controller_put(ctlr);
|
||||
@ -701,8 +701,10 @@ static void cdns_spi_remove(struct platform_device *pdev)
|
||||
|
||||
cdns_spi_write(xspi, CDNS_SPI_ER, CDNS_SPI_ER_DISABLE);
|
||||
|
||||
pm_runtime_set_suspended(&pdev->dev);
|
||||
if (!spi_controller_is_target(ctlr)) {
|
||||
pm_runtime_disable(&pdev->dev);
|
||||
pm_runtime_set_suspended(&pdev->dev);
|
||||
}
|
||||
|
||||
spi_unregister_controller(ctlr);
|
||||
}
|
||||
|
@ -1865,8 +1865,8 @@ out_register_controller:
|
||||
spi_imx_sdma_exit(spi_imx);
|
||||
out_runtime_pm_put:
|
||||
pm_runtime_dont_use_autosuspend(spi_imx->dev);
|
||||
pm_runtime_set_suspended(&pdev->dev);
|
||||
pm_runtime_disable(spi_imx->dev);
|
||||
pm_runtime_set_suspended(&pdev->dev);
|
||||
|
||||
clk_disable_unprepare(spi_imx->clk_ipg);
|
||||
out_put_per:
|
||||
|
@ -245,7 +245,7 @@ static void s3c64xx_flush_fifo(struct s3c64xx_spi_driver_data *sdd)
|
||||
loops = msecs_to_loops(1);
|
||||
do {
|
||||
val = readl(regs + S3C64XX_SPI_STATUS);
|
||||
} while (TX_FIFO_LVL(val, sdd) && loops--);
|
||||
} while (TX_FIFO_LVL(val, sdd) && --loops);
|
||||
|
||||
if (loops == 0)
|
||||
dev_warn(&sdd->pdev->dev, "Timed out flushing TX FIFO\n");
|
||||
@ -258,7 +258,7 @@ static void s3c64xx_flush_fifo(struct s3c64xx_spi_driver_data *sdd)
|
||||
readl(regs + S3C64XX_SPI_RX_DATA);
|
||||
else
|
||||
break;
|
||||
} while (loops--);
|
||||
} while (--loops);
|
||||
|
||||
if (loops == 0)
|
||||
dev_warn(&sdd->pdev->dev, "Timed out flushing RX FIFO\n");
|
||||
|
Loading…
Reference in New Issue
Block a user