Skip to content

Commit 89c0a77

Browse files
jhovoldgregkh
authored andcommitted
spi: fsl-espi: fix controller deregistration
commit e506a70 upstream. Make sure to deregister the controller before disabling runtime PM (which can leave the controller disabled) to allow SPI device drivers to do I/O during deregistration. Fixes: e9abb4d ("spi: fsl-espi: add runtime PM") Cc: stable@vger.kernel.org # 4.3 Cc: Heiner Kallweit <hkallweit1@gmail.com> Signed-off-by: Johan Hovold <johan@kernel.org> Link: https://patch.msgid.link/20260409120419.388546-14-johan@kernel.org Signed-off-by: Mark Brown <broonie@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1 parent 2be3922 commit 89c0a77

1 file changed

Lines changed: 9 additions & 1 deletion

File tree

drivers/spi/spi-fsl-espi.c

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -720,7 +720,7 @@ static int fsl_espi_probe(struct device *dev, struct resource *mem,
720720
pm_runtime_enable(dev);
721721
pm_runtime_get_sync(dev);
722722

723-
ret = devm_spi_register_controller(dev, host);
723+
ret = spi_register_controller(host);
724724
if (ret < 0)
725725
goto err_pm;
726726

@@ -785,7 +785,15 @@ static int of_fsl_espi_probe(struct platform_device *ofdev)
785785

786786
static void of_fsl_espi_remove(struct platform_device *dev)
787787
{
788+
struct spi_controller *host = platform_get_drvdata(dev);
789+
790+
spi_controller_get(host);
791+
792+
spi_unregister_controller(host);
793+
788794
pm_runtime_disable(&dev->dev);
795+
796+
spi_controller_put(host);
789797
}
790798

791799
#ifdef CONFIG_PM_SLEEP

0 commit comments

Comments
 (0)