Commit 60b9f47e authored by Linus Torvalds's avatar Linus Torvalds

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
parents 9ec2236a 65fbec31
...@@ -377,7 +377,7 @@ static int atmel_qspi_set_cfg(struct atmel_qspi *aq, ...@@ -377,7 +377,7 @@ static int atmel_qspi_set_cfg(struct atmel_qspi *aq,
*/ */
if (!(aq->mr & QSPI_MR_SMM)) { if (!(aq->mr & QSPI_MR_SMM)) {
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 */ /* Clear pending interrupts */
......
...@@ -678,8 +678,8 @@ static int cdns_spi_probe(struct platform_device *pdev) ...@@ -678,8 +678,8 @@ static int cdns_spi_probe(struct platform_device *pdev)
clk_dis_all: clk_dis_all:
if (!spi_controller_is_target(ctlr)) { if (!spi_controller_is_target(ctlr)) {
pm_runtime_set_suspended(&pdev->dev);
pm_runtime_disable(&pdev->dev); pm_runtime_disable(&pdev->dev);
pm_runtime_set_suspended(&pdev->dev);
} }
remove_ctlr: remove_ctlr:
spi_controller_put(ctlr); spi_controller_put(ctlr);
...@@ -701,8 +701,10 @@ static void cdns_spi_remove(struct platform_device *pdev) ...@@ -701,8 +701,10 @@ static void cdns_spi_remove(struct platform_device *pdev)
cdns_spi_write(xspi, CDNS_SPI_ER, CDNS_SPI_ER_DISABLE); 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_disable(&pdev->dev);
pm_runtime_set_suspended(&pdev->dev);
}
spi_unregister_controller(ctlr); spi_unregister_controller(ctlr);
} }
......
...@@ -1865,8 +1865,8 @@ static int spi_imx_probe(struct platform_device *pdev) ...@@ -1865,8 +1865,8 @@ static int spi_imx_probe(struct platform_device *pdev)
spi_imx_sdma_exit(spi_imx); spi_imx_sdma_exit(spi_imx);
out_runtime_pm_put: out_runtime_pm_put:
pm_runtime_dont_use_autosuspend(spi_imx->dev); pm_runtime_dont_use_autosuspend(spi_imx->dev);
pm_runtime_set_suspended(&pdev->dev);
pm_runtime_disable(spi_imx->dev); pm_runtime_disable(spi_imx->dev);
pm_runtime_set_suspended(&pdev->dev);
clk_disable_unprepare(spi_imx->clk_ipg); clk_disable_unprepare(spi_imx->clk_ipg);
out_put_per: out_put_per:
......
...@@ -245,7 +245,7 @@ static void s3c64xx_flush_fifo(struct s3c64xx_spi_driver_data *sdd) ...@@ -245,7 +245,7 @@ static void s3c64xx_flush_fifo(struct s3c64xx_spi_driver_data *sdd)
loops = msecs_to_loops(1); loops = msecs_to_loops(1);
do { do {
val = readl(regs + S3C64XX_SPI_STATUS); val = readl(regs + S3C64XX_SPI_STATUS);
} while (TX_FIFO_LVL(val, sdd) && loops--); } while (TX_FIFO_LVL(val, sdd) && --loops);
if (loops == 0) if (loops == 0)
dev_warn(&sdd->pdev->dev, "Timed out flushing TX FIFO\n"); 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) ...@@ -258,7 +258,7 @@ static void s3c64xx_flush_fifo(struct s3c64xx_spi_driver_data *sdd)
readl(regs + S3C64XX_SPI_RX_DATA); readl(regs + S3C64XX_SPI_RX_DATA);
else else
break; break;
} while (loops--); } while (--loops);
if (loops == 0) if (loops == 0)
dev_warn(&sdd->pdev->dev, "Timed out flushing RX FIFO\n"); dev_warn(&sdd->pdev->dev, "Timed out flushing RX FIFO\n");
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment