[PATCH] usb: dwc3: gadget: Remove check for bounded driver

Subsystems: designware usb3 drd ip driver, the rest, usb subsystem

STALE2040d

5 messages, 2 authors, 2021-02-05 · open the first message on its own page

[PATCH] usb: dwc3: gadget: Remove check for bounded driver

From: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
Date: 2021-02-04 04:15:41

The check for bounded gadget driver in dwc3_gadget_start() was to
prevent going through the initialization again without any cleanup. With
a recent update, the UDC framework guarantees this won't happen while
the UDC is started. Also, this check doesn't prevent requesting threaded
irq to the same dev_id, which will mess up the irq freeing logic. Let's
remove it.

Signed-off-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
---
 drivers/usb/dwc3/gadget.c | 19 ++-----------------
 1 file changed, 2 insertions(+), 17 deletions(-)
diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c
index 86f257f12d45..6a18e822fa98 100644
--- a/drivers/usb/dwc3/gadget.c
+++ b/drivers/usb/dwc3/gadget.c
@@ -2370,7 +2370,7 @@ static int dwc3_gadget_start(struct usb_gadget *g,
 {
 	struct dwc3		*dwc = gadget_to_dwc(g);
 	unsigned long		flags;
-	int			ret = 0;
+	int			ret;
 	int			irq;
 
 	irq = dwc->irq_gadget;
@@ -2379,29 +2379,14 @@ static int dwc3_gadget_start(struct usb_gadget *g,
 	if (ret) {
 		dev_err(dwc->dev, "failed to request irq #%d --> %d\n",
 				irq, ret);
-		goto err0;
+		return ret;
 	}
 
 	spin_lock_irqsave(&dwc->lock, flags);
-	if (dwc->gadget_driver) {
-		dev_err(dwc->dev, "%s is already bound to %s\n",
-				dwc->gadget->name,
-				dwc->gadget_driver->driver.name);
-		ret = -EBUSY;
-		goto err1;
-	}
-
 	dwc->gadget_driver	= driver;
 	spin_unlock_irqrestore(&dwc->lock, flags);
 
 	return 0;
-
-err1:
-	spin_unlock_irqrestore(&dwc->lock, flags);
-	free_irq(irq, dwc);
-
-err0:
-	return ret;
 }
 
 static void __dwc3_gadget_stop(struct dwc3 *dwc)
base-commit: d021e0694d77ee3cdc5d3fca2c8d53ae7575499a
-- 
2.28.0

Re: [PATCH] usb: dwc3: gadget: Remove check for bounded driver

From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date: 2021-02-05 09:31:25

On Wed, Feb 03, 2021 at 08:14:37PM -0800, Thinh Nguyen wrote:
The check for bounded gadget driver in dwc3_gadget_start() was to
prevent going through the initialization again without any cleanup. With
a recent update, the UDC framework guarantees this won't happen while
the UDC is started. Also, this check doesn't prevent requesting threaded
irq to the same dev_id, which will mess up the irq freeing logic. Let's
remove it.
What "recent update" caused this?  Is this a fix for something that
needs to be backported?  If so, can you provide a "Fixes:" tag on here?
Or is this just a general cleanup that is good to do now.

thanks,

greg k-h

Re: [PATCH] usb: dwc3: gadget: Remove check for bounded driver

From: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
Date: 2021-02-05 09:41:48

Greg Kroah-Hartman wrote:
On Wed, Feb 03, 2021 at 08:14:37PM -0800, Thinh Nguyen wrote:
quoted
The check for bounded gadget driver in dwc3_gadget_start() was to
prevent going through the initialization again without any cleanup. With
a recent update, the UDC framework guarantees this won't happen while
the UDC is started. Also, this check doesn't prevent requesting threaded
irq to the same dev_id, which will mess up the irq freeing logic. Let's
remove it.
What "recent update" caused this?  Is this a fix for something that
needs to be backported?  If so, can you provide a "Fixes:" tag on here?
Or is this just a general cleanup that is good to do now.

thanks,

greg k-h
It's general cleanup. The "recent update" is not in mainline yet but on
your "usb-next" branch so I'm not sure how to properly reference it.

But here's the commit on your branch I was referring to: 49d08cfc7830
("usb: udc: core: Introduce started state")

No need to backport this because it doesn't fix anything.

Thanks,
Thinh

Re: [PATCH] usb: dwc3: gadget: Remove check for bounded driver

From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date: 2021-02-05 09:44:18

On Fri, Feb 05, 2021 at 09:39:37AM +0000, Thinh Nguyen wrote:
Greg Kroah-Hartman wrote:
quoted
On Wed, Feb 03, 2021 at 08:14:37PM -0800, Thinh Nguyen wrote:
quoted
The check for bounded gadget driver in dwc3_gadget_start() was to
prevent going through the initialization again without any cleanup. With
a recent update, the UDC framework guarantees this won't happen while
the UDC is started. Also, this check doesn't prevent requesting threaded
irq to the same dev_id, which will mess up the irq freeing logic. Let's
remove it.
What "recent update" caused this?  Is this a fix for something that
needs to be backported?  If so, can you provide a "Fixes:" tag on here?
Or is this just a general cleanup that is good to do now.

thanks,

greg k-h
It's general cleanup. The "recent update" is not in mainline yet but on
your "usb-next" branch so I'm not sure how to properly reference it.

But here's the commit on your branch I was referring to: 49d08cfc7830
("usb: udc: core: Introduce started state")
Please refer to this commit just like this, as the id is not going to
change.  Can you redo this patch with that information in it?

thanks,

greg k-h

Re: [PATCH] usb: dwc3: gadget: Remove check for bounded driver

From: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
Date: 2021-02-05 23:25:10

Greg Kroah-Hartman wrote:
On Fri, Feb 05, 2021 at 09:39:37AM +0000, Thinh Nguyen wrote:
quoted
Greg Kroah-Hartman wrote:
quoted
On Wed, Feb 03, 2021 at 08:14:37PM -0800, Thinh Nguyen wrote:
quoted
The check for bounded gadget driver in dwc3_gadget_start() was to
prevent going through the initialization again without any cleanup. With
a recent update, the UDC framework guarantees this won't happen while
the UDC is started. Also, this check doesn't prevent requesting threaded
irq to the same dev_id, which will mess up the irq freeing logic. Let's
remove it.
What "recent update" caused this?  Is this a fix for something that
needs to be backported?  If so, can you provide a "Fixes:" tag on here?
Or is this just a general cleanup that is good to do now.

thanks,

greg k-h
It's general cleanup. The "recent update" is not in mainline yet but on
your "usb-next" branch so I'm not sure how to properly reference it.

But here's the commit on your branch I was referring to: 49d08cfc7830
("usb: udc: core: Introduce started state")
Please refer to this commit just like this, as the id is not going to
change.  Can you redo this patch with that information in it?

thanks,

greg k-h
Will do.

Thanks,
Thinh
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help