]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
ata: sata_dwc_460ex: use platform_get_irq()
authorRosen Penev <rosenp@gmail.com>
Sun, 12 Jul 2026 21:37:25 +0000 (14:37 -0700)
committerDamien Le Moal <dlemoal@kernel.org>
Mon, 13 Jul 2026 05:32:11 +0000 (14:32 +0900)
Replace irq_of_parse_and_map() with platform_get_irq() in both
sata_dwc_dma_init_old() and sata_dwc_probe(). This is the preferred
way to obtain IRQs for platform devices and provides better error
reporting.  Remove the now-unnecessary #include <linux/of_irq.h>.

irq_of_parse_and_map() requires irq_dispose_mapping(), which is missing.

Also fix unused variable when CONFIG_SATA_DWC_OLD_DMA is disabled.

Fixes: 62936009f35a ("[libata] Add 460EX on-chip SATA driver, sata_dwc_460ex")
Assisted-by: opencode:big-pickle
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Signed-off-by: Damien Le Moal <dlemoal@kernel.org>
drivers/ata/sata_dwc_460ex.c

index e10eeb8ca0305ddb5ed7485dd95841d26a8edcf7..85c5e67e9175463b4127b6f7109d931836d91bd4 100644 (file)
@@ -19,7 +19,6 @@
 #include <linux/device.h>
 #include <linux/dmaengine.h>
 #include <linux/of.h>
-#include <linux/of_irq.h>
 #include <linux/platform_device.h>
 #include <linux/phy/phy.h>
 #include <linux/libata.h>
@@ -226,7 +225,6 @@ static int sata_dwc_dma_init_old(struct platform_device *pdev,
                                 struct sata_dwc_device *hsdev)
 {
        struct device *dev = &pdev->dev;
-       struct device_node *np = dev->of_node;
 
        hsdev->dma = devm_kzalloc(dev, sizeof(*hsdev->dma), GFP_KERNEL);
        if (!hsdev->dma)
@@ -236,11 +234,9 @@ static int sata_dwc_dma_init_old(struct platform_device *pdev,
        hsdev->dma->id = pdev->id;
 
        /* Get SATA DMA interrupt number */
-       hsdev->dma->irq = irq_of_parse_and_map(np, 1);
-       if (!hsdev->dma->irq) {
-               dev_err(dev, "no SATA DMA irq\n");
-               return -ENODEV;
-       }
+       hsdev->dma->irq = platform_get_irq(pdev, 1);
+       if (hsdev->dma->irq < 0)
+               return hsdev->dma->irq;
 
        /* Get physical SATA DMA register base address */
        hsdev->dma->regs = devm_platform_ioremap_resource(pdev, 1);
@@ -1126,7 +1122,6 @@ static const struct ata_port_info sata_dwc_port_info[] = {
 static int sata_dwc_probe(struct platform_device *ofdev)
 {
        struct device *dev = &ofdev->dev;
-       struct device_node *np = dev->of_node;
        struct sata_dwc_device *hsdev;
        u32 idr, versionr;
        char *ver = (char *)&versionr;
@@ -1170,14 +1165,12 @@ static int sata_dwc_probe(struct platform_device *ofdev)
        hsdev->dev = dev;
 
        /* Get SATA interrupt number */
-       irq = irq_of_parse_and_map(np, 0);
-       if (!irq) {
-               dev_err(dev, "no SATA DMA irq\n");
-               return -ENODEV;
-       }
+       irq = platform_get_irq(ofdev, 0);
+       if (irq < 0)
+               return irq;
 
 #ifdef CONFIG_SATA_DWC_OLD_DMA
-       if (!of_property_present(np, "dmas")) {
+       if (!of_property_present(dev->of_node, "dmas")) {
                err = sata_dwc_dma_init_old(ofdev, hsdev);
                if (err)
                        return err;