Skip to content

Commit 09ceedc

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 b99939b commit 09ceedc

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
@@ -719,7 +719,7 @@ static int fsl_espi_probe(struct device *dev, struct resource *mem,
719719
pm_runtime_enable(dev);
720720
pm_runtime_get_sync(dev);
721721

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

@@ -783,7 +783,15 @@ static int of_fsl_espi_probe(struct platform_device *ofdev)
783783

784784
static void of_fsl_espi_remove(struct platform_device *dev)
785785
{
786+
struct spi_controller *host = platform_get_drvdata(dev);
787+
788+
spi_controller_get(host);
789+
790+
spi_unregister_controller(host);
791+
786792
pm_runtime_disable(&dev->dev);
793+
794+
spi_controller_put(host);
787795
}
788796

789797
#ifdef CONFIG_PM_SLEEP

0 commit comments

Comments
 (0)