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:
@@ -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);
|
||||
pm_runtime_disable(&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");
|
||||
|
||||
Reference in New Issue
Block a user