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: aspeed-smc: fix controller deregistration

Make sure to deregister the controller before disabling it to allow
SPI device drivers to do I/O during deregistration.

Fixes: e3228ed92893 ("spi: spi-mem: Convert Aspeed SMC driver to spi-mem")
Cc: stable@vger.kernel.org # 5.19
Cc: Cédric Le Goater <clg@kaod.org>
Signed-off-by: Johan Hovold <johan@kernel.org>
Link: https://patch.msgid.link/20260409120419.388546-3-johan@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>

authored by

Johan Hovold and committed by
Mark Brown
1044e5a4 84d31bb1

+6 -3
+6 -3
drivers/spi/spi-aspeed-smc.c
··· 972 972 return -ENOMEM; 973 973 974 974 aspi = spi_controller_get_devdata(ctlr); 975 - platform_set_drvdata(pdev, aspi); 975 + platform_set_drvdata(pdev, ctlr); 976 976 aspi->data = data; 977 977 aspi->dev = dev; 978 978 ··· 1021 1021 return ret; 1022 1022 } 1023 1023 1024 - ret = devm_spi_register_controller(dev, ctlr); 1024 + ret = spi_register_controller(ctlr); 1025 1025 if (ret) 1026 1026 dev_err(&pdev->dev, "spi_register_controller failed\n"); 1027 1027 ··· 1030 1030 1031 1031 static void aspeed_spi_remove(struct platform_device *pdev) 1032 1032 { 1033 - struct aspeed_spi *aspi = platform_get_drvdata(pdev); 1033 + struct spi_controller *ctlr = platform_get_drvdata(pdev); 1034 + struct aspeed_spi *aspi = spi_controller_get_devdata(ctlr); 1035 + 1036 + spi_unregister_controller(ctlr); 1034 1037 1035 1038 aspeed_spi_enable(aspi, false); 1036 1039 }