Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

spi: tegra114: fix controller deregistration

Make sure to deregister the controller before disabling underlying
resources like clocks during driver unbind.

Fixes: 5c8096439600 ("spi: tegra114: use devm_spi_register_master()")
Cc: stable@vger.kernel.org # 3.13
Cc: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Johan Hovold <johan@kernel.org>
Link: https://patch.msgid.link/20260410081757.503099-22-johan@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>

authored by

Johan Hovold and committed by
Mark Brown
9c9c27ff 75d849c3

+7 -1
+7 -1
drivers/spi/spi-tegra114.c
··· 1415 1415 goto exit_pm_disable; 1416 1416 } 1417 1417 1418 - ret = devm_spi_register_controller(&pdev->dev, host); 1418 + ret = spi_register_controller(host); 1419 1419 if (ret < 0) { 1420 1420 dev_err(&pdev->dev, "can not register to host err %d\n", ret); 1421 1421 goto exit_free_irq; ··· 1441 1441 struct spi_controller *host = platform_get_drvdata(pdev); 1442 1442 struct tegra_spi_data *tspi = spi_controller_get_devdata(host); 1443 1443 1444 + spi_controller_get(host); 1445 + 1446 + spi_unregister_controller(host); 1447 + 1444 1448 free_irq(tspi->irq, tspi); 1445 1449 1446 1450 if (tspi->tx_dma_chan) ··· 1456 1452 pm_runtime_disable(&pdev->dev); 1457 1453 if (!pm_runtime_status_suspended(&pdev->dev)) 1458 1454 tegra_spi_runtime_suspend(&pdev->dev); 1455 + 1456 + spi_controller_put(host); 1459 1457 } 1460 1458 1461 1459 #ifdef CONFIG_PM_SLEEP