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

Make sure to deregister the controller before releasing underlying
resources like DMA during driver unbind.

Fixes: 011f23a3c2f2 ("spi/ep93xx: implemented driver for Cirrus EP93xx SPI controller")
Cc: stable@vger.kernel.org # 2.6.35
Signed-off-by: Johan Hovold <johan@kernel.org>
Link: https://patch.msgid.link/20260409120419.388546-13-johan@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>

authored by

Johan Hovold and committed by
Mark Brown
f4838934 c353020f

+7 -1
+7 -1
drivers/spi/spi-ep93xx.c
··· 689 689 /* make sure that the hardware is disabled */ 690 690 writel(0, espi->mmio + SSPCR1); 691 691 692 - error = devm_spi_register_controller(&pdev->dev, host); 692 + error = spi_register_controller(host); 693 693 if (error) { 694 694 dev_err(&pdev->dev, "failed to register SPI host\n"); 695 695 goto fail_free_dma; ··· 713 713 struct spi_controller *host = platform_get_drvdata(pdev); 714 714 struct ep93xx_spi *espi = spi_controller_get_devdata(host); 715 715 716 + spi_controller_get(host); 717 + 718 + spi_unregister_controller(host); 719 + 716 720 ep93xx_spi_release_dma(espi); 721 + 722 + spi_controller_put(host); 717 723 } 718 724 719 725 static const struct of_device_id ep93xx_spi_of_ids[] = {