]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
spi: cadence: fix controller deregistration
authorJohan Hovold <johan@kernel.org>
Tue, 14 Apr 2026 13:43:12 +0000 (15:43 +0200)
committerMark Brown <broonie@kernel.org>
Mon, 20 Apr 2026 11:39:24 +0000 (12:39 +0100)
Make sure to deregister the controller before disabling underlying
resources like clocks during driver unbind.

Fixes: c474b3866546 ("spi: Add driver for Cadence SPI controller")
Cc: stable@vger.kernel.org # 3.16
Cc: Harini Katakam <harinik@xilinx.com>
Signed-off-by: Johan Hovold <johan@kernel.org>
Link: https://patch.msgid.link/20260414134319.978196-2-johan@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/spi/spi-cadence.c

index caa7a57e6d27b71d4886423ac90bd5c6fa9903d1..08d7dabe818dc91a0ad2f0d4daeb618231b547a5 100644 (file)
@@ -777,6 +777,10 @@ static void cdns_spi_remove(struct platform_device *pdev)
        struct spi_controller *ctlr = platform_get_drvdata(pdev);
        struct cdns_spi *xspi = spi_controller_get_devdata(ctlr);
 
+       spi_controller_get(ctlr);
+
+       spi_unregister_controller(ctlr);
+
        cdns_spi_write(xspi, CDNS_SPI_ER, CDNS_SPI_ER_DISABLE);
 
        if (!spi_controller_is_target(ctlr)) {
@@ -784,7 +788,7 @@ static void cdns_spi_remove(struct platform_device *pdev)
                pm_runtime_set_suspended(&pdev->dev);
        }
 
-       spi_unregister_controller(ctlr);
+       spi_controller_put(ctlr);
 }
 
 /**