mirror of https://gitee.com/openkylin/linux.git
usb: dwc3: gadget: Remove check for bounded driver
The check for bounded gadget driver in dwc3_gadget_start() was to
prevent going through the initialization again without any cleanup. The
recent commit 49d08cfc78
("usb: udc: core: Introduce started state")
updated the UDC framework and 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>
Link: https://lore.kernel.org/r/ccc90f316cf78bb5f7d46d3fd84f4c7f2c3020b1.1612518764.git.Thinh.Nguyen@synopsys.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
450b9e9fab
commit
8cf9045b91
|
@ -2411,7 +2411,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;
|
||||
|
@ -2420,29 +2420,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)
|
||||
|
|
Loading…
Reference in New Issue