]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
spi: cadence-quadspi: fix unclocked access on unbind
authorJohan Hovold <johan@kernel.org>
Tue, 21 Apr 2026 12:53:51 +0000 (14:53 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 17 May 2026 15:16:29 +0000 (17:16 +0200)
commit 233db2cb14db8b1935dda52a6affd97276462b82 upstream.

Make sure that the controller is runtime resumed before disabling it
during driver unbind to avoid an unclocked register access.

This issue was flagged by Sashiko when reviewing a controller
deregistration fix.

Fixes: 0578a6dbfe75 ("spi: spi-cadence-quadspi: add runtime pm support")
Cc: stable@vger.kernel.org # 6.7
Cc: Dhruva Gole <d-gole@ti.com>
Link: https://sashiko.dev/#/patchset/20260414134319.978196-1-johan%40kernel.org?part=2
Signed-off-by: Johan Hovold <johan@kernel.org>
Link: https://patch.msgid.link/20260421125354.1534871-4-johan@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/spi/spi-cadence-quadspi.c

index e5e02457d44c4d1cdfae4edaed9b63467004a628..1b0d6186c7efa96b4f57e890123d350b94d8521d 100644 (file)
@@ -2029,14 +2029,13 @@ static void cqspi_remove(struct platform_device *pdev)
        if (cqspi->rx_chan)
                dma_release_channel(cqspi->rx_chan);
 
-       cqspi_controller_enable(cqspi, 0);
-
-
        if (!(ddata && (ddata->quirks & CQSPI_DISABLE_RUNTIME_PM)))
                ret = pm_runtime_get_sync(&pdev->dev);
 
-       if (ret >= 0)
+       if (ret >= 0) {
+               cqspi_controller_enable(cqspi, 0);
                clk_bulk_disable_unprepare(CLK_QSPI_NUM, cqspi->clks);
+       }
 
        if (!(ddata && (ddata->quirks & CQSPI_DISABLE_RUNTIME_PM))) {
                pm_runtime_disable(&pdev->dev);