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: coldfire-qspi: fix controller deregistration

Make sure to deregister the controller before disabling underlying
resources like clocks (via runtime pm) during driver unbind.

Fixes: 34b8c6617366 ("spi: Add Freescale/Motorola Coldfire QSPI driver")
Cc: stable@vger.kernel.org # 2.6.34
Cc: Steven King <sfking@fdwdc.com>
Signed-off-by: Johan Hovold <johan@kernel.org>
Link: https://patch.msgid.link/20260409120419.388546-11-johan@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>

authored by

Johan Hovold and committed by
Mark Brown
e7c510e1 dbb6b012

+8 -2
+8 -2
drivers/spi/spi-coldfire-qspi.c
··· 410 410 platform_set_drvdata(pdev, host); 411 411 pm_runtime_enable(&pdev->dev); 412 412 413 - status = devm_spi_register_controller(&pdev->dev, host); 413 + status = spi_register_controller(host); 414 414 if (status) { 415 - dev_dbg(&pdev->dev, "devm_spi_register_controller failed\n"); 415 + dev_dbg(&pdev->dev, "failed to register controller\n"); 416 416 goto fail1; 417 417 } 418 418 ··· 436 436 struct spi_controller *host = platform_get_drvdata(pdev); 437 437 struct mcfqspi *mcfqspi = spi_controller_get_devdata(host); 438 438 439 + spi_controller_get(host); 440 + 441 + spi_unregister_controller(host); 442 + 439 443 pm_runtime_disable(&pdev->dev); 440 444 /* disable the hardware (set the baud rate to 0) */ 441 445 mcfqspi_wr_qmr(mcfqspi, MCFQSPI_QMR_MSTR); 442 446 443 447 mcfqspi_cs_teardown(mcfqspi); 448 + 449 + spi_controller_put(host); 444 450 } 445 451 446 452 #ifdef CONFIG_PM_SLEEP