All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 00/10] Fix deferred probing in the USB host/gadget drivers
@ 2021-12-08 19:21 Sergey Shtylyov
  2021-12-08 19:21   ` Sergey Shtylyov
                   ` (10 more replies)
  0 siblings, 11 replies; 17+ messages in thread
From: Sergey Shtylyov @ 2021-12-08 19:21 UTC (permalink / raw)
  To: linux-usb, Greg Kroah-Hartman, Felipe Balbi, Alan Stern, Bin Liu

Here are 10 patches against the 'usb-linus' branch of Greg KH's 'usb.git'
repo. The affected host/gadget drivers call platform_get_irq() but override
its result in case of error which prevents the deferred probing from working.
These patches now logically depend on the previously posted patch:

https://marc.info/?l=linux-kernel&m=163623041902285

Sergey Shtylyov (10):
  usb: gadget: udc: bcm63xx: fix deferred probing
  usb: gadget: udc: gr: fix deferred probing
  usb: gadget: udc: pxa25x: fix deferred probing
  usb: host: ehci-atmel: fix deferred probing
  usb: host: ehci-orion: fix deferred probing
  usb: host: ehci-sh: fix deferred probing
  usb: host: ohci-da8xx: fix deferred probing
  usb: host: ohci-nxp: fix deferred probing
  usb: host: ohci-omap: fix deferred probing
  usb: musb: core: fix deferred probing

 drivers/usb/gadget/udc/bcm63xx_udc.c | 8 ++++++--
 drivers/usb/gadget/udc/gr_udc.c      | 8 ++++----
 drivers/usb/gadget/udc/pxa25x_udc.c  | 2 +-
 drivers/usb/host/ehci-atmel.c        | 4 ++--
 drivers/usb/host/ehci-orion.c        | 4 ++--
 drivers/usb/host/ehci-sh.c           | 4 ++--
 drivers/usb/host/ohci-da8xx.c        | 2 +-
 drivers/usb/host/ohci-nxp.c          | 2 +-
 drivers/usb/host/ohci-omap.c         | 2 +-
 drivers/usb/musb/musb_core.c         | 4 ++--
 10 files changed, 22 insertions(+), 18 deletions(-)

-- 
2.26.3


^ permalink raw reply	[flat|nested] 17+ messages in thread

* [PATCH v2 01/10] usb: gadget: udc: bcm63xx: fix deferred probing
  2021-12-08 19:21 [PATCH v2 00/10] Fix deferred probing in the USB host/gadget drivers Sergey Shtylyov
@ 2021-12-08 19:21   ` Sergey Shtylyov
  2021-12-08 19:21 ` [PATCH v2 02/10] usb: gadget: udc: gr: " Sergey Shtylyov
                     ` (9 subsequent siblings)
  10 siblings, 0 replies; 17+ messages in thread
From: Sergey Shtylyov @ 2021-12-08 19:21 UTC (permalink / raw)
  To: linux-usb, Greg Kroah-Hartman, Felipe Balbi
  Cc: Kevin Cernekee, Florian Fainelli, bcm-kernel-feedback-list,
	linux-arm-kernel

The driver overrides the error codes returned by platform_get_irq() to
-ENXIO for some strange reason, so if it returns -EPROBE_DEFER, the driver
will fail the probe permanently instead of the deferred probing. Switch to
propagating the error codes upstream.

Fixes: 613065e53cb1 ("usb: gadget: bcm63xx UDC driver")
Signed-off-by: Sergey Shtylyov <s.shtylyov@omp.ru>
---
 drivers/usb/gadget/udc/bcm63xx_udc.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/drivers/usb/gadget/udc/bcm63xx_udc.c b/drivers/usb/gadget/udc/bcm63xx_udc.c
index a9f07c59fc37..2cdb07905bde 100644
--- a/drivers/usb/gadget/udc/bcm63xx_udc.c
+++ b/drivers/usb/gadget/udc/bcm63xx_udc.c
@@ -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;
-- 
2.26.3


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v2 01/10] usb: gadget: udc: bcm63xx: fix deferred probing
@ 2021-12-08 19:21   ` Sergey Shtylyov
  0 siblings, 0 replies; 17+ messages in thread
From: Sergey Shtylyov @ 2021-12-08 19:21 UTC (permalink / raw)
  To: linux-usb, Greg Kroah-Hartman, Felipe Balbi
  Cc: Kevin Cernekee, Florian Fainelli, bcm-kernel-feedback-list,
	linux-arm-kernel

The driver overrides the error codes returned by platform_get_irq() to
-ENXIO for some strange reason, so if it returns -EPROBE_DEFER, the driver
will fail the probe permanently instead of the deferred probing. Switch to
propagating the error codes upstream.

Fixes: 613065e53cb1 ("usb: gadget: bcm63xx UDC driver")
Signed-off-by: Sergey Shtylyov <s.shtylyov@omp.ru>
---
 drivers/usb/gadget/udc/bcm63xx_udc.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/drivers/usb/gadget/udc/bcm63xx_udc.c b/drivers/usb/gadget/udc/bcm63xx_udc.c
index a9f07c59fc37..2cdb07905bde 100644
--- a/drivers/usb/gadget/udc/bcm63xx_udc.c
+++ b/drivers/usb/gadget/udc/bcm63xx_udc.c
@@ -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;
-- 
2.26.3


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v2 02/10] usb: gadget: udc: gr: fix deferred probing
  2021-12-08 19:21 [PATCH v2 00/10] Fix deferred probing in the USB host/gadget drivers Sergey Shtylyov
  2021-12-08 19:21   ` Sergey Shtylyov
@ 2021-12-08 19:21 ` Sergey Shtylyov
  2021-12-08 19:21   ` Sergey Shtylyov
                   ` (8 subsequent siblings)
  10 siblings, 0 replies; 17+ messages in thread
From: Sergey Shtylyov @ 2021-12-08 19:21 UTC (permalink / raw)
  To: linux-usb, Greg Kroah-Hartman, Felipe Balbi

The driver overrides the error codes and IRQ0 returned by platform_get_irq()
to -ENODEV, so if it returns -EPROBE_DEFER, the driver will fail the probe
permanently instead of the deferred probing. Switch to propagating the error
codes upstream. IRQ0 is no longer returned by platform_get_irq(), so we now
can safely ignore it...

Fixes: 196800da39a1 ("usb: gadget: gr_udc: Use platform_get_irq instead of irq_of_parse_and_map")
Signed-off-by: Sergey Shtylyov <s.shtylyov@omp.ru>
---
Changes in version 2:
- updated the patch description on treating IRQ0.

 drivers/usb/gadget/udc/gr_udc.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/usb/gadget/udc/gr_udc.c b/drivers/usb/gadget/udc/gr_udc.c
index 4b35739d3695..4aa5246a77e5 100644
--- a/drivers/usb/gadget/udc/gr_udc.c
+++ b/drivers/usb/gadget/udc/gr_udc.c
@@ -2136,15 +2136,15 @@ static int gr_probe(struct platform_device *pdev)
 		return PTR_ERR(regs);
 
 	dev->irq = platform_get_irq(pdev, 0);
-	if (dev->irq <= 0)
-		return -ENODEV;
+	if (dev->irq < 0)
+		return dev->irq;
 
 	/* Some core configurations has separate irqs for IN and OUT events */
 	dev->irqi = platform_get_irq(pdev, 1);
 	if (dev->irqi > 0) {
 		dev->irqo = platform_get_irq(pdev, 2);
-		if (dev->irqo <= 0)
-			return -ENODEV;
+		if (dev->irqo < 0)
+			return dev->irqo;
 	} else {
 		dev->irqi = 0;
 	}
-- 
2.26.3


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v2 03/10] usb: gadget: udc: pxa25x: fix deferred probing
  2021-12-08 19:21 [PATCH v2 00/10] Fix deferred probing in the USB host/gadget drivers Sergey Shtylyov
@ 2021-12-08 19:21   ` Sergey Shtylyov
  2021-12-08 19:21 ` [PATCH v2 02/10] usb: gadget: udc: gr: " Sergey Shtylyov
                     ` (9 subsequent siblings)
  10 siblings, 0 replies; 17+ messages in thread
From: Sergey Shtylyov @ 2021-12-08 19:21 UTC (permalink / raw)
  To: linux-usb, Greg Kroah-Hartman, Felipe Balbi
  Cc: Daniel Mack, Haojian Zhuang, Robert Jarzmik, linux-arm-kernel

The driver overrides the error codes returned by platform_get_irq() to
-ENODEV for some strange reason, so if it returns -EPROBE_DEFER, the driver
will fail the probe permanently instead of the deferred probing. Switch to
propagating the error codes upstream.

Fixes: 34ebcd28235d ("pxa2xx_udc: cleanups, use platform_get_irq")
Signed-off-by: Sergey Shtylyov <s.shtylyov@omp.ru>
---
 drivers/usb/gadget/udc/pxa25x_udc.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/usb/gadget/udc/pxa25x_udc.c b/drivers/usb/gadget/udc/pxa25x_udc.c
index 52cdfd8212d6..b38747fd3bb0 100644
--- a/drivers/usb/gadget/udc/pxa25x_udc.c
+++ b/drivers/usb/gadget/udc/pxa25x_udc.c
@@ -2364,7 +2364,7 @@ static int pxa25x_udc_probe(struct platform_device *pdev)
 
 	irq = platform_get_irq(pdev, 0);
 	if (irq < 0)
-		return -ENODEV;
+		return irq;
 
 	dev->regs = devm_platform_ioremap_resource(pdev, 0);
 	if (IS_ERR(dev->regs))
-- 
2.26.3


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v2 03/10] usb: gadget: udc: pxa25x: fix deferred probing
@ 2021-12-08 19:21   ` Sergey Shtylyov
  0 siblings, 0 replies; 17+ messages in thread
From: Sergey Shtylyov @ 2021-12-08 19:21 UTC (permalink / raw)
  To: linux-usb, Greg Kroah-Hartman, Felipe Balbi
  Cc: Daniel Mack, Haojian Zhuang, Robert Jarzmik, linux-arm-kernel

The driver overrides the error codes returned by platform_get_irq() to
-ENODEV for some strange reason, so if it returns -EPROBE_DEFER, the driver
will fail the probe permanently instead of the deferred probing. Switch to
propagating the error codes upstream.

Fixes: 34ebcd28235d ("pxa2xx_udc: cleanups, use platform_get_irq")
Signed-off-by: Sergey Shtylyov <s.shtylyov@omp.ru>
---
 drivers/usb/gadget/udc/pxa25x_udc.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/usb/gadget/udc/pxa25x_udc.c b/drivers/usb/gadget/udc/pxa25x_udc.c
index 52cdfd8212d6..b38747fd3bb0 100644
--- a/drivers/usb/gadget/udc/pxa25x_udc.c
+++ b/drivers/usb/gadget/udc/pxa25x_udc.c
@@ -2364,7 +2364,7 @@ static int pxa25x_udc_probe(struct platform_device *pdev)
 
 	irq = platform_get_irq(pdev, 0);
 	if (irq < 0)
-		return -ENODEV;
+		return irq;
 
 	dev->regs = devm_platform_ioremap_resource(pdev, 0);
 	if (IS_ERR(dev->regs))
-- 
2.26.3


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v2 04/10] usb: host: ehci-atmel: fix deferred probing
  2021-12-08 19:21 [PATCH v2 00/10] Fix deferred probing in the USB host/gadget drivers Sergey Shtylyov
@ 2021-12-08 19:21   ` Sergey Shtylyov
  2021-12-08 19:21 ` [PATCH v2 02/10] usb: gadget: udc: gr: " Sergey Shtylyov
                     ` (9 subsequent siblings)
  10 siblings, 0 replies; 17+ messages in thread
From: Sergey Shtylyov @ 2021-12-08 19:21 UTC (permalink / raw)
  To: linux-usb, Greg Kroah-Hartman, Alan Stern
  Cc: Nicolas Ferre, Alexandre Belloni, Ludovic Desroches, linux-arm-kernel

The driver overrides the error codes and IRQ0 returned by platform_get_irq()
to -ENODEV, so if it returns -EPROBE_DEFER, the driver will fail the probe
permanently instead of the deferred probing. Switch to propagating the error
codes upstream. IRQ0 is no longer returned by platform_get_irq(), so we now
can safely ignore it...

Fixes: 501c9c0802d9 ("USB: at91: Add USB EHCI driver for at91sam9g45 series")
Signed-off-by: Sergey Shtylyov <s.shtylyov@omp.ru>
---
Changes in version 2:
- removed the check for IRQ0, updated the patch description accordingly.

 drivers/usb/host/ehci-atmel.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/usb/host/ehci-atmel.c b/drivers/usb/host/ehci-atmel.c
index 05d41fd65f25..bc3fdb588e6b 100644
--- a/drivers/usb/host/ehci-atmel.c
+++ b/drivers/usb/host/ehci-atmel.c
@@ -104,8 +104,8 @@ static int ehci_atmel_drv_probe(struct platform_device *pdev)
 	pr_debug("Initializing Atmel-SoC USB Host Controller\n");
 
 	irq = platform_get_irq(pdev, 0);
-	if (irq <= 0) {
-		retval = -ENODEV;
+	if (irq < 0) {
+		retval = irq;
 		goto fail_create_hcd;
 	}
 
-- 
2.26.3


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v2 04/10] usb: host: ehci-atmel: fix deferred probing
@ 2021-12-08 19:21   ` Sergey Shtylyov
  0 siblings, 0 replies; 17+ messages in thread
From: Sergey Shtylyov @ 2021-12-08 19:21 UTC (permalink / raw)
  To: linux-usb, Greg Kroah-Hartman, Alan Stern
  Cc: Alexandre Belloni, Ludovic Desroches, linux-arm-kernel

The driver overrides the error codes and IRQ0 returned by platform_get_irq()
to -ENODEV, so if it returns -EPROBE_DEFER, the driver will fail the probe
permanently instead of the deferred probing. Switch to propagating the error
codes upstream. IRQ0 is no longer returned by platform_get_irq(), so we now
can safely ignore it...

Fixes: 501c9c0802d9 ("USB: at91: Add USB EHCI driver for at91sam9g45 series")
Signed-off-by: Sergey Shtylyov <s.shtylyov@omp.ru>
---
Changes in version 2:
- removed the check for IRQ0, updated the patch description accordingly.

 drivers/usb/host/ehci-atmel.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/usb/host/ehci-atmel.c b/drivers/usb/host/ehci-atmel.c
index 05d41fd65f25..bc3fdb588e6b 100644
--- a/drivers/usb/host/ehci-atmel.c
+++ b/drivers/usb/host/ehci-atmel.c
@@ -104,8 +104,8 @@ static int ehci_atmel_drv_probe(struct platform_device *pdev)
 	pr_debug("Initializing Atmel-SoC USB Host Controller\n");
 
 	irq = platform_get_irq(pdev, 0);
-	if (irq <= 0) {
-		retval = -ENODEV;
+	if (irq < 0) {
+		retval = irq;
 		goto fail_create_hcd;
 	}
 
-- 
2.26.3


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v2 05/10] usb: host: ehci-orion: fix deferred probing
  2021-12-08 19:21 [PATCH v2 00/10] Fix deferred probing in the USB host/gadget drivers Sergey Shtylyov
                   ` (3 preceding siblings ...)
  2021-12-08 19:21   ` Sergey Shtylyov
@ 2021-12-08 19:21 ` Sergey Shtylyov
  2021-12-08 19:21 ` [PATCH v2 06/10] usb: host: ehci-sh: " Sergey Shtylyov
                   ` (5 subsequent siblings)
  10 siblings, 0 replies; 17+ messages in thread
From: Sergey Shtylyov @ 2021-12-08 19:21 UTC (permalink / raw)
  To: linux-usb, Greg Kroah-Hartman, Alan Stern

The driver overrides the error codes and IRQ0 returned by platform_get_irq()
to -ENODEV, so if it returns -EPROBE_DEFER, the driver will fail the probe
permanently instead of the deferred probing. Switch to propagating the error
codes upstream. IRQ0 is no longer returned by platform_get_irq(), so we now
can safely ignore it...

Fixes: e96ffe2f9deb ("USB: add Marvell Orion USB host support")
Signed-off-by: Sergey Shtylyov <s.shtylyov@omp.ru>
---
Changes in version 2:
- removed the check for IRQ0, updated the patch description accordingly.

 drivers/usb/host/ehci-orion.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/usb/host/ehci-orion.c b/drivers/usb/host/ehci-orion.c
index 3626758b3e2a..36ea4febe29b 100644
--- a/drivers/usb/host/ehci-orion.c
+++ b/drivers/usb/host/ehci-orion.c
@@ -222,8 +222,8 @@ static int ehci_orion_drv_probe(struct platform_device *pdev)
 	pr_debug("Initializing Orion-SoC USB Host Controller\n");
 
 	irq = platform_get_irq(pdev, 0);
-	if (irq <= 0) {
-		err = -ENODEV;
+	if (irq < 0) {
+		err = irq;
 		goto err;
 	}
 
-- 
2.26.3


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v2 06/10] usb: host: ehci-sh: fix deferred probing
  2021-12-08 19:21 [PATCH v2 00/10] Fix deferred probing in the USB host/gadget drivers Sergey Shtylyov
                   ` (4 preceding siblings ...)
  2021-12-08 19:21 ` [PATCH v2 05/10] usb: host: ehci-orion: " Sergey Shtylyov
@ 2021-12-08 19:21 ` Sergey Shtylyov
  2021-12-08 19:21 ` [PATCH v2 07/10] usb: host: ohci-da8xx: " Sergey Shtylyov
                   ` (4 subsequent siblings)
  10 siblings, 0 replies; 17+ messages in thread
From: Sergey Shtylyov @ 2021-12-08 19:21 UTC (permalink / raw)
  To: linux-usb, Greg Kroah-Hartman, Alan Stern

The driver overrides the error codes and IRQ0 returned by platform_get_irq()
to -ENODEV, so if it returns -EPROBE_DEFER, the driver will fail the probe
permanently instead of the deferred probing. Switch to propagating the error
codes upstream. IRQ0 is no longer returned by platform_get_irq(), so we now
can safely ignore it...

Fixes: 9ec36cafe43b ("of/irq: do irq resolution in platform_get_irq")
Signed-off-by: Sergey Shtylyov <s.shtylyov@omp.ru>
---
Changes in version 2:
- removed the check for IRQ0, updated the patch description accordingly.

 drivers/usb/host/ehci-sh.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/usb/host/ehci-sh.c b/drivers/usb/host/ehci-sh.c
index c25c51d26f26..882231b5c382 100644
--- a/drivers/usb/host/ehci-sh.c
+++ b/drivers/usb/host/ehci-sh.c
@@ -82,8 +82,8 @@ static int ehci_hcd_sh_probe(struct platform_device *pdev)
 		return -ENODEV;
 
 	irq = platform_get_irq(pdev, 0);
-	if (irq <= 0) {
-		ret = -ENODEV;
+	if (irq < 0) {
+		ret = irq;
 		goto fail_create_hcd;
 	}
 
-- 
2.26.3


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v2 07/10] usb: host: ohci-da8xx: fix deferred probing
  2021-12-08 19:21 [PATCH v2 00/10] Fix deferred probing in the USB host/gadget drivers Sergey Shtylyov
                   ` (5 preceding siblings ...)
  2021-12-08 19:21 ` [PATCH v2 06/10] usb: host: ehci-sh: " Sergey Shtylyov
@ 2021-12-08 19:21 ` Sergey Shtylyov
  2021-12-08 19:21 ` [PATCH v2 08/10] usb: host: ohci-nxp: " Sergey Shtylyov
                   ` (3 subsequent siblings)
  10 siblings, 0 replies; 17+ messages in thread
From: Sergey Shtylyov @ 2021-12-08 19:21 UTC (permalink / raw)
  To: linux-usb, Greg Kroah-Hartman, Alan Stern

The driver overrides the error codes returned by platform_get_irq() to 
-ENODEV for some strange reason, so if it returns -EPROBE_DEFER, the driver
will fail the probe permanently instead of the deferred probing. Switch to
propagating the error codes upstream.

Fixes: efe7daf2231a ("USB: OHCI: DA8xx/OMAP-L1x glue layer")
Signed-off-by: Sergey Shtylyov <s.shtylyov@omp.ru>
---
 drivers/usb/host/ohci-da8xx.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/usb/host/ohci-da8xx.c b/drivers/usb/host/ohci-da8xx.c
index 1371b0c249ec..d1326c6ccade 100644
--- a/drivers/usb/host/ohci-da8xx.c
+++ b/drivers/usb/host/ohci-da8xx.c
@@ -446,7 +446,7 @@ static int ohci_da8xx_probe(struct platform_device *pdev)
 
 	hcd_irq = platform_get_irq(pdev, 0);
 	if (hcd_irq < 0) {
-		error = -ENODEV;
+		error = hcd_irq;
 		goto err;
 	}
 
-- 
2.26.3


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v2 08/10] usb: host: ohci-nxp: fix deferred probing
  2021-12-08 19:21 [PATCH v2 00/10] Fix deferred probing in the USB host/gadget drivers Sergey Shtylyov
                   ` (6 preceding siblings ...)
  2021-12-08 19:21 ` [PATCH v2 07/10] usb: host: ohci-da8xx: " Sergey Shtylyov
@ 2021-12-08 19:21 ` Sergey Shtylyov
  2021-12-08 19:21 ` [PATCH v2 09/10] usb: host: ohci-omap: " Sergey Shtylyov
                   ` (2 subsequent siblings)
  10 siblings, 0 replies; 17+ messages in thread
From: Sergey Shtylyov @ 2021-12-08 19:21 UTC (permalink / raw)
  To: linux-usb, Greg Kroah-Hartman, Alan Stern; +Cc: Vladimir Zapolskiy

The driver overrides the error codes returned by platform_get_irq() to
-ENXIO for some strange reason, so if it returns -EPROBE_DEFER, the driver
will fail the probe permanently instead of the deferred probing. Switch to
propagating the error codes upstream.

Fixes: 60bbfc84b6d9 ("USB OHCI controller support for PNX4008")
Signed-off-by: Sergey Shtylyov <s.shtylyov@omp.ru>
---
Changes in version 2:
- refreshed the patch;
- removed the eliipsis in the patch description.

 drivers/usb/host/ohci-nxp.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/usb/host/ohci-nxp.c b/drivers/usb/host/ohci-nxp.c
index 85878e8ad331..a84c5e714372 100644
--- a/drivers/usb/host/ohci-nxp.c
+++ b/drivers/usb/host/ohci-nxp.c
@@ -212,7 +212,7 @@ static int ohci_hcd_nxp_probe(struct platform_device *pdev)
 
 	irq = platform_get_irq(pdev, 0);
 	if (irq < 0) {
-		ret = -ENXIO;
+		ret = irq;
 		goto fail_resource;
 	}
 
-- 
2.26.3


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v2 09/10] usb: host: ohci-omap: fix deferred probing
  2021-12-08 19:21 [PATCH v2 00/10] Fix deferred probing in the USB host/gadget drivers Sergey Shtylyov
                   ` (7 preceding siblings ...)
  2021-12-08 19:21 ` [PATCH v2 08/10] usb: host: ohci-nxp: " Sergey Shtylyov
@ 2021-12-08 19:21 ` Sergey Shtylyov
  2021-12-08 19:53   ` Aaro Koskinen
  2021-12-08 19:21 ` [PATCH v2 10/10] usb: musb: core: " Sergey Shtylyov
  2021-12-09  9:23 ` [PATCH v2 00/10] Fix deferred probing in the USB host/gadget drivers Sergey Shtylyov
  10 siblings, 1 reply; 17+ messages in thread
From: Sergey Shtylyov @ 2021-12-08 19:21 UTC (permalink / raw)
  To: linux-usb, Greg Kroah-Hartman, Alan Stern; +Cc: linux-omap

The driver overrides the error codes returned by platform_get_irq() to
-ENXIO for some strange reason, so if it returns -EPROBE_DEFER, the driver
will fail the probe permanently instead of the deferred probing. Switch to
propagating the error codes upstream.

Fixes: 60bbfc84b6d9 ("USB OHCI controller support for PNX4008")
Signed-off-by: Sergey Shtylyov <s.shtylyov@omp.ru>
---
Changes in version 2:
- refreshed the patch.

 drivers/usb/host/ohci-omap.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/usb/host/ohci-omap.c b/drivers/usb/host/ohci-omap.c
index ded9738392e4..45dcf8292072 100644
--- a/drivers/usb/host/ohci-omap.c
+++ b/drivers/usb/host/ohci-omap.c
@@ -306,7 +306,7 @@ static int ohci_hcd_omap_probe(struct platform_device *pdev)
 
 	irq = platform_get_irq(pdev, 0);
 	if (irq < 0) {
-		retval = -ENXIO;
+		retval = irq;
 		goto err3;
 	}
 	retval = usb_add_hcd(hcd, irq, 0);
-- 
2.26.3


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v2 10/10] usb: musb: core: fix deferred probing
  2021-12-08 19:21 [PATCH v2 00/10] Fix deferred probing in the USB host/gadget drivers Sergey Shtylyov
                   ` (8 preceding siblings ...)
  2021-12-08 19:21 ` [PATCH v2 09/10] usb: host: ohci-omap: " Sergey Shtylyov
@ 2021-12-08 19:21 ` Sergey Shtylyov
  2021-12-09  9:23 ` [PATCH v2 00/10] Fix deferred probing in the USB host/gadget drivers Sergey Shtylyov
  10 siblings, 0 replies; 17+ messages in thread
From: Sergey Shtylyov @ 2021-12-08 19:21 UTC (permalink / raw)
  To: linux-usb, Greg Kroah-Hartman, Bin Liu

The driver overrides the error codes returned by platform_get_irq() to
-ENODEV, so if it returns -EPROBE_DEFER, the driver will fail the probe
permanently instead of the deferred probing. Switch to propagating the
error codes upstream. IRQ0 is no longer returned by platform_get_irq(),
so we now can safely ignore it...

Fixes: 9ec36cafe43b ("of/irq: do irq resolution in platform_get_irq")
Signed-off-by: Sergey Shtylyov <s.shtylyov@omp.ru>
---
Changes in version 2:
- updated the patch description on treating IRQ0.

 drivers/usb/musb/musb_core.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/usb/musb/musb_core.c b/drivers/usb/musb/musb_core.c
index f7b1d5993f8c..e57abc54d12b 100644
--- a/drivers/usb/musb/musb_core.c
+++ b/drivers/usb/musb/musb_core.c
@@ -2618,8 +2618,8 @@ static int musb_probe(struct platform_device *pdev)
 	int		irq = platform_get_irq_byname(pdev, "mc");
 	void __iomem	*base;
 
-	if (irq <= 0)
-		return -ENODEV;
+	if (irq < 0)
+		return irq;
 
 	base = devm_platform_ioremap_resource(pdev, 0);
 	if (IS_ERR(base))
-- 
2.26.3


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* Re: [PATCH v2 09/10] usb: host: ohci-omap: fix deferred probing
  2021-12-08 19:21 ` [PATCH v2 09/10] usb: host: ohci-omap: " Sergey Shtylyov
@ 2021-12-08 19:53   ` Aaro Koskinen
  2021-12-08 19:59     ` Sergey Shtylyov
  0 siblings, 1 reply; 17+ messages in thread
From: Aaro Koskinen @ 2021-12-08 19:53 UTC (permalink / raw)
  To: Sergey Shtylyov; +Cc: linux-usb, Greg Kroah-Hartman, Alan Stern, linux-omap

On Wed, Dec 08, 2021 at 10:21:17PM +0300, Sergey Shtylyov wrote:
> The driver overrides the error codes returned by platform_get_irq() to
> -ENXIO for some strange reason, so if it returns -EPROBE_DEFER, the driver
> will fail the probe permanently instead of the deferred probing. Switch to
> propagating the error codes upstream.
> 
> Fixes: 60bbfc84b6d9 ("USB OHCI controller support for PNX4008")

I don't see how this Fixes commit is related to OHCI OMAP?

A.

> Signed-off-by: Sergey Shtylyov <s.shtylyov@omp.ru>
> ---
> Changes in version 2:
> - refreshed the patch.
> 
>  drivers/usb/host/ohci-omap.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/usb/host/ohci-omap.c b/drivers/usb/host/ohci-omap.c
> index ded9738392e4..45dcf8292072 100644
> --- a/drivers/usb/host/ohci-omap.c
> +++ b/drivers/usb/host/ohci-omap.c
> @@ -306,7 +306,7 @@ static int ohci_hcd_omap_probe(struct platform_device *pdev)
>  
>  	irq = platform_get_irq(pdev, 0);
>  	if (irq < 0) {
> -		retval = -ENXIO;
> +		retval = irq;
>  		goto err3;
>  	}
>  	retval = usb_add_hcd(hcd, irq, 0);
> -- 
> 2.26.3
> 

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v2 09/10] usb: host: ohci-omap: fix deferred probing
  2021-12-08 19:53   ` Aaro Koskinen
@ 2021-12-08 19:59     ` Sergey Shtylyov
  0 siblings, 0 replies; 17+ messages in thread
From: Sergey Shtylyov @ 2021-12-08 19:59 UTC (permalink / raw)
  To: Aaro Koskinen; +Cc: linux-usb, Greg Kroah-Hartman, Alan Stern, linux-omap

Hello!

On 12/8/21 10:53 PM, Aaro Koskinen wrote:

>> The driver overrides the error codes returned by platform_get_irq() to
>> -ENXIO for some strange reason, so if it returns -EPROBE_DEFER, the driver
>> will fail the probe permanently instead of the deferred probing. Switch to
>> propagating the error codes upstream.
>>
>> Fixes: 60bbfc84b6d9 ("USB OHCI controller support for PNX4008")
> 
> I don't see how this Fixes commit is related to OHCI OMAP?

   Argh, I missed this! :-(
   The whole series should be discarded, as the patch #8 also doesn't have the valid
Fixes: tag, and I missed to add Alan's ACKs to patches #4..#9 too... :-/

> A.
> 
>> Signed-off-by: Sergey Shtylyov <s.shtylyov@omp.ru>
[...]

MBR, Sergey

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v2 00/10] Fix deferred probing in the USB host/gadget drivers
  2021-12-08 19:21 [PATCH v2 00/10] Fix deferred probing in the USB host/gadget drivers Sergey Shtylyov
                   ` (9 preceding siblings ...)
  2021-12-08 19:21 ` [PATCH v2 10/10] usb: musb: core: " Sergey Shtylyov
@ 2021-12-09  9:23 ` Sergey Shtylyov
  10 siblings, 0 replies; 17+ messages in thread
From: Sergey Shtylyov @ 2021-12-09  9:23 UTC (permalink / raw)
  To: linux-usb, Greg Kroah-Hartman, Felipe Balbi, Alan Stern, Bin Liu

On 08.12.2021 22:21, Sergey Shtylyov wrote:

> Here are 10 patches against the 'usb-linus' branch of Greg KH's 'usb.git'
> repo. The affected host/gadget drivers call platform_get_irq() but override
> its result in case of error which prevents the deferred probing from working.
> These patches now logically depend on the previously posted patch:
> 
> https://marc.info/?l=linux-kernel&m=163623041902285
> 
> Sergey Shtylyov (10):
>    usb: gadget: udc: bcm63xx: fix deferred probing
>    usb: gadget: udc: gr: fix deferred probing
>    usb: gadget: udc: pxa25x: fix deferred probing
>    usb: host: ehci-atmel: fix deferred probing
>    usb: host: ehci-orion: fix deferred probing
>    usb: host: ehci-sh: fix deferred probing
>    usb: host: ohci-da8xx: fix deferred probing
>    usb: host: ohci-nxp: fix deferred probing
>    usb: host: ohci-omap: fix deferred probing
>    usb: musb: core: fix deferred probing

    Ignore this -- I totally forgot I had a feedback to v1. :-/

[...]

MBR, Sergey

^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2021-12-09  9:23 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-12-08 19:21 [PATCH v2 00/10] Fix deferred probing in the USB host/gadget drivers Sergey Shtylyov
2021-12-08 19:21 ` [PATCH v2 01/10] usb: gadget: udc: bcm63xx: fix deferred probing Sergey Shtylyov
2021-12-08 19:21   ` Sergey Shtylyov
2021-12-08 19:21 ` [PATCH v2 02/10] usb: gadget: udc: gr: " Sergey Shtylyov
2021-12-08 19:21 ` [PATCH v2 03/10] usb: gadget: udc: pxa25x: " Sergey Shtylyov
2021-12-08 19:21   ` Sergey Shtylyov
2021-12-08 19:21 ` [PATCH v2 04/10] usb: host: ehci-atmel: " Sergey Shtylyov
2021-12-08 19:21   ` Sergey Shtylyov
2021-12-08 19:21 ` [PATCH v2 05/10] usb: host: ehci-orion: " Sergey Shtylyov
2021-12-08 19:21 ` [PATCH v2 06/10] usb: host: ehci-sh: " Sergey Shtylyov
2021-12-08 19:21 ` [PATCH v2 07/10] usb: host: ohci-da8xx: " Sergey Shtylyov
2021-12-08 19:21 ` [PATCH v2 08/10] usb: host: ohci-nxp: " Sergey Shtylyov
2021-12-08 19:21 ` [PATCH v2 09/10] usb: host: ohci-omap: " Sergey Shtylyov
2021-12-08 19:53   ` Aaro Koskinen
2021-12-08 19:59     ` Sergey Shtylyov
2021-12-08 19:21 ` [PATCH v2 10/10] usb: musb: core: " Sergey Shtylyov
2021-12-09  9:23 ` [PATCH v2 00/10] Fix deferred probing in the USB host/gadget drivers Sergey Shtylyov

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.