]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
spi: axi-spi-engine: use devm_request_irq()
authorDavid Lechner <dlechner@baylibre.com>
Fri, 17 Nov 2023 20:12:57 +0000 (14:12 -0600)
committerMark Brown <broonie@kernel.org>
Mon, 20 Nov 2023 13:29:08 +0000 (13:29 +0000)
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>
drivers/spi/spi-axi-spi-engine.c

index c18a4b34777eafd95381d290a0c26ade5f02a851..81d7352d2b8b09bb35a02b4e5a18ec8ad5620a29 100644 (file)
@@ -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[] = {