]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
spi: qup: fix controller deregistration
authorJohan Hovold <johan@kernel.org>
Fri, 10 Apr 2026 08:17:39 +0000 (10:17 +0200)
committerMark Brown <broonie@kernel.org>
Fri, 10 Apr 2026 12:22:31 +0000 (13:22 +0100)
Make sure to deregister the controller before disabling underlying
resources like clocks during driver unbind.

Fixes: 64ff247a978f ("spi: Add Qualcomm QUP SPI controller support")
Cc: stable@vger.kernel.org # 3.15
Signed-off-by: Johan Hovold <johan@kernel.org>
Link: https://patch.msgid.link/20260410081757.503099-10-johan@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/spi/spi-qup.c

index 6cbdcd060e8cab169e5f3a0677fcd5e606fda8cf..45d9b4cb75e4aaaf5b508f9c456b6b612ca03012 100644 (file)
@@ -1193,7 +1193,7 @@ static int spi_qup_probe(struct platform_device *pdev)
        pm_runtime_set_active(dev);
        pm_runtime_enable(dev);
 
-       ret = devm_spi_register_controller(dev, host);
+       ret = spi_register_controller(host);
        if (ret)
                goto disable_pm;
 
@@ -1320,6 +1320,10 @@ static void spi_qup_remove(struct platform_device *pdev)
        struct spi_qup *controller = spi_controller_get_devdata(host);
        int ret;
 
+       spi_controller_get(host);
+
+       spi_unregister_controller(host);
+
        ret = pm_runtime_get_sync(&pdev->dev);
 
        if (ret >= 0) {
@@ -1339,6 +1343,8 @@ static void spi_qup_remove(struct platform_device *pdev)
 
        pm_runtime_put_noidle(&pdev->dev);
        pm_runtime_disable(&pdev->dev);
+
+       spi_controller_put(host);
 }
 
 static const struct of_device_id spi_qup_dt_match[] = {