mirror of https://github.com/torvalds/linux.git
spi: at91-usart: fix controller deregistration
Make sure to deregister the controller before disabling and releasing
underlying resources like clocks and DMA during driver unbind.
Fixes: e1892546ff ("spi: at91-usart: Add driver for at91-usart as SPI")
Cc: stable@vger.kernel.org # 4.20
Cc: Radu Pirea <radu.pirea@microchip.com>
Signed-off-by: Johan Hovold <johan@kernel.org>
Link: https://patch.msgid.link/20260409120419.388546-4-johan@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
1044e5a4cc
commit
9acecc9bcf
|
|
@ -556,7 +556,7 @@ static int at91_usart_spi_probe(struct platform_device *pdev)
|
|||
spin_lock_init(&aus->lock);
|
||||
init_completion(&aus->xfer_completion);
|
||||
|
||||
ret = devm_spi_register_controller(&pdev->dev, controller);
|
||||
ret = spi_register_controller(controller);
|
||||
if (ret)
|
||||
goto at91_usart_fail_register_controller;
|
||||
|
||||
|
|
@ -634,8 +634,14 @@ static void at91_usart_spi_remove(struct platform_device *pdev)
|
|||
struct spi_controller *ctlr = platform_get_drvdata(pdev);
|
||||
struct at91_usart_spi *aus = spi_controller_get_devdata(ctlr);
|
||||
|
||||
spi_controller_get(ctlr);
|
||||
|
||||
spi_unregister_controller(ctlr);
|
||||
|
||||
at91_usart_spi_release_dma(ctlr);
|
||||
clk_disable_unprepare(aus->clk);
|
||||
|
||||
spi_controller_put(ctlr);
|
||||
}
|
||||
|
||||
static const struct dev_pm_ops at91_usart_spi_pm_ops = {
|
||||
|
|
|
|||
Loading…
Reference in New Issue