summaryrefslogtreecommitdiff
path: root/drivers/spi/spi-axi-spi-engine.c
diff options
context:
space:
mode:
authorDavid Lechner <dlechner@baylibre.com>2023-11-17 14:12:57 -0600
committerMark Brown <broonie@kernel.org>2023-11-20 13:29:08 +0000
commit076f32d5db73f16c95b38149f9168210cf267b33 (patch)
treeafdffa1630e6e3af5aebe590c2f2ebab6686ae89 /drivers/spi/spi-axi-spi-engine.c
parente094de13ae78035c5642d5dfc65b07301765eebc (diff)
spi: axi-spi-engine: use devm_request_irq()
This replaces request_irq() with devm_request_irq() in the AXI SPI Engine driver. This simplifies the error path and removes the need to call free_irq() in the remove function. Signed-off-by: David Lechner <dlechner@baylibre.com> Link: https://lore.kernel.org/r/20231117-axi-spi-engine-series-1-v1-6-cc59db999b87@baylibre.com Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'drivers/spi/spi-axi-spi-engine.c')
-rw-r--r--drivers/spi/spi-axi-spi-engine.c11
1 files changed, 3 insertions, 8 deletions
diff --git a/drivers/spi/spi-axi-spi-engine.c b/drivers/spi/spi-axi-spi-engine.c
index c18a4b34777e..81d7352d2b8b 100644
--- a/drivers/spi/spi-axi-spi-engine.c
+++ b/drivers/spi/spi-axi-spi-engine.c
@@ -520,7 +520,8 @@ static int spi_engine_probe(struct platform_device *pdev)
if (ret)
return ret;
- ret = request_irq(irq, spi_engine_irq, 0, pdev->name, host);
+ ret = devm_request_irq(&pdev->dev, irq, spi_engine_irq, 0, pdev->name,
+ host);
if (ret)
return ret;
@@ -533,24 +534,18 @@ static int spi_engine_probe(struct platform_device *pdev)
ret = spi_register_controller(host);
if (ret)
- goto err_free_irq;
+ return ret;
platform_set_drvdata(pdev, host);
return 0;
-err_free_irq:
- free_irq(irq, host);
- return ret;
}
static void spi_engine_remove(struct platform_device *pdev)
{
struct spi_controller *host = platform_get_drvdata(pdev);
- int irq = platform_get_irq(pdev, 0);
spi_unregister_controller(host);
-
- free_irq(irq, host);
}
static const struct of_device_id spi_engine_match_table[] = {