Unverified Commit f4838934 authored by Johan Hovold's avatar Johan Hovold Committed by Mark Brown
Browse files

spi: ep93xx: fix controller deregistration



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

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


Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent c353020f
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -689,7 +689,7 @@ static int ep93xx_spi_probe(struct platform_device *pdev)
	/* make sure that the hardware is disabled */
	writel(0, espi->mmio + SSPCR1);

	error = devm_spi_register_controller(&pdev->dev, host);
	error = spi_register_controller(host);
	if (error) {
		dev_err(&pdev->dev, "failed to register SPI host\n");
		goto fail_free_dma;
@@ -713,7 +713,13 @@ static void ep93xx_spi_remove(struct platform_device *pdev)
	struct spi_controller *host = platform_get_drvdata(pdev);
	struct ep93xx_spi *espi = spi_controller_get_devdata(host);

	spi_controller_get(host);

	spi_unregister_controller(host);

	ep93xx_spi_release_dma(espi);

	spi_controller_put(host);
}

static const struct of_device_id ep93xx_spi_of_ids[] = {