usb: gadget: udc: bcm63xx: propagate errors from platform_get_irq()
authorSergey Shtylyov <s.shtylyov@omp.ru>
Tue, 14 Dec 2021 20:42:44 +0000 (23:42 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 17 Dec 2021 15:54:23 +0000 (16:54 +0100)
The driver overrides the error codes returned by platform_get_irq() to
-ENXIO for some strange reason.  Switch to propagating the error codes
upstream.

Acked-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: Sergey Shtylyov <s.shtylyov@omp.ru>
Link: https://lore.kernel.org/r/20211214204247.7172-2-s.shtylyov@omp.ru
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/gadget/udc/bcm63xx_udc.c

index a9f07c5..2cdb079 100644 (file)
@@ -2321,8 +2321,10 @@ static int bcm63xx_udc_probe(struct platform_device *pdev)
 
        /* IRQ resource #0: control interrupt (VBUS, speed, etc.) */
        irq = platform_get_irq(pdev, 0);
-       if (irq < 0)
+       if (irq < 0) {
+               rc = irq;
                goto out_uninit;
+       }
        if (devm_request_irq(dev, irq, &bcm63xx_udc_ctrl_isr, 0,
                             dev_name(dev), udc) < 0)
                goto report_request_failure;
@@ -2330,8 +2332,10 @@ static int bcm63xx_udc_probe(struct platform_device *pdev)
        /* IRQ resources #1-6: data interrupts for IUDMA channels 0-5 */
        for (i = 0; i < BCM63XX_NUM_IUDMA; i++) {
                irq = platform_get_irq(pdev, i + 1);
-               if (irq < 0)
+               if (irq < 0) {
+                       rc = irq;
                        goto out_uninit;
+               }
                if (devm_request_irq(dev, irq, &bcm63xx_udc_data_isr, 0,
                                     dev_name(dev), &udc->iudma[i]) < 0)
                        goto report_request_failure;