Skip to content

Commit 60b9f47

Browse files
committed
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
2 parents 9ec2236 + 65fbec3 commit 60b9f47

File tree

4 files changed

+9
-7
lines changed

4 files changed

+9
-7
lines changed

drivers/spi/atmel-quadspi.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -377,7 +377,7 @@ static int atmel_qspi_set_cfg(struct atmel_qspi *aq,
377377
*/
378378
if (!(aq->mr & QSPI_MR_SMM)) {
379379
aq->mr |= QSPI_MR_SMM;
380-
atmel_qspi_write(aq->scr, aq, QSPI_MR);
380+
atmel_qspi_write(aq->mr, aq, QSPI_MR);
381381
}
382382

383383
/* Clear pending interrupts */

drivers/spi/spi-cadence.c

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -678,8 +678,8 @@ static int cdns_spi_probe(struct platform_device *pdev)
678678

679679
clk_dis_all:
680680
if (!spi_controller_is_target(ctlr)) {
681-
pm_runtime_set_suspended(&pdev->dev);
682681
pm_runtime_disable(&pdev->dev);
682+
pm_runtime_set_suspended(&pdev->dev);
683683
}
684684
remove_ctlr:
685685
spi_controller_put(ctlr);
@@ -701,8 +701,10 @@ static void cdns_spi_remove(struct platform_device *pdev)
701701

702702
cdns_spi_write(xspi, CDNS_SPI_ER, CDNS_SPI_ER_DISABLE);
703703

704-
pm_runtime_set_suspended(&pdev->dev);
705-
pm_runtime_disable(&pdev->dev);
704+
if (!spi_controller_is_target(ctlr)) {
705+
pm_runtime_disable(&pdev->dev);
706+
pm_runtime_set_suspended(&pdev->dev);
707+
}
706708

707709
spi_unregister_controller(ctlr);
708710
}

drivers/spi/spi-imx.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1865,8 +1865,8 @@ static int spi_imx_probe(struct platform_device *pdev)
18651865
spi_imx_sdma_exit(spi_imx);
18661866
out_runtime_pm_put:
18671867
pm_runtime_dont_use_autosuspend(spi_imx->dev);
1868-
pm_runtime_set_suspended(&pdev->dev);
18691868
pm_runtime_disable(spi_imx->dev);
1869+
pm_runtime_set_suspended(&pdev->dev);
18701870

18711871
clk_disable_unprepare(spi_imx->clk_ipg);
18721872
out_put_per:

drivers/spi/spi-s3c64xx.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -245,7 +245,7 @@ static void s3c64xx_flush_fifo(struct s3c64xx_spi_driver_data *sdd)
245245
loops = msecs_to_loops(1);
246246
do {
247247
val = readl(regs + S3C64XX_SPI_STATUS);
248-
} while (TX_FIFO_LVL(val, sdd) && loops--);
248+
} while (TX_FIFO_LVL(val, sdd) && --loops);
249249

250250
if (loops == 0)
251251
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)
258258
readl(regs + S3C64XX_SPI_RX_DATA);
259259
else
260260
break;
261-
} while (loops--);
261+
} while (--loops);
262262

263263
if (loops == 0)
264264
dev_warn(&sdd->pdev->dev, "Timed out flushing RX FIFO\n");

0 commit comments

Comments
 (0)