Skip to content

Commit 17aa64b

Browse files
jhovoldgregkh
authored andcommitted
spi: img-spfi: fix controller deregistration
commit fc3a83b upstream. Make sure to deregister the controller before disabling and releasing underlying resources like clocks and DMA during driver unbind. Fixes: deba258 ("spi: Add driver for IMG SPFI controller") Cc: stable@vger.kernel.org # 3.19 Cc: Andrew Bresticker <abrestic@chromium.org> Signed-off-by: Johan Hovold <johan@kernel.org> Link: https://patch.msgid.link/20260409120419.388546-16-johan@kernel.org Signed-off-by: Mark Brown <broonie@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1 parent 77defd6 commit 17aa64b

1 file changed

Lines changed: 7 additions & 1 deletion

File tree

drivers/spi/spi-img-spfi.c

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -644,7 +644,7 @@ static int img_spfi_probe(struct platform_device *pdev)
644644
pm_runtime_set_active(spfi->dev);
645645
pm_runtime_enable(spfi->dev);
646646

647-
ret = devm_spi_register_controller(spfi->dev, host);
647+
ret = spi_register_controller(host);
648648
if (ret)
649649
goto disable_pm;
650650

@@ -670,6 +670,10 @@ static void img_spfi_remove(struct platform_device *pdev)
670670
struct spi_controller *host = platform_get_drvdata(pdev);
671671
struct img_spfi *spfi = spi_controller_get_devdata(host);
672672

673+
spi_controller_get(host);
674+
675+
spi_unregister_controller(host);
676+
673677
if (spfi->tx_ch)
674678
dma_release_channel(spfi->tx_ch);
675679
if (spfi->rx_ch)
@@ -680,6 +684,8 @@ static void img_spfi_remove(struct platform_device *pdev)
680684
clk_disable_unprepare(spfi->spfi_clk);
681685
clk_disable_unprepare(spfi->sys_clk);
682686
}
687+
688+
spi_controller_put(host);
683689
}
684690

685691
#ifdef CONFIG_PM

0 commit comments

Comments
 (0)