aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarek Szyprowski <m.szyprowski@samsung.com>2016-02-08 07:42:14 -0500
committerFelipe Balbi <balbi@kernel.org>2016-02-23 01:51:37 -0500
commit31b994a4986dcdd664c597afcef2c0918763019a (patch)
treee71ac280b59baa997399b214a99b6156f64a9185
parentbba40e6948b94cba71965285fbac31bd078c024a (diff)
usb: gadget: remove driver from pending list on probe error
Retry gadget probe only if the probe result is -EPROBE_DEFER, not on every probe error. Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> Signed-off-by: Felipe Balbi <balbi@kernel.org>
-rw-r--r--drivers/usb/gadget/udc/udc-core.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/usb/gadget/udc/udc-core.c b/drivers/usb/gadget/udc/udc-core.c
index fd73a3ea07c2..b86a6f03592e 100644
--- a/drivers/usb/gadget/udc/udc-core.c
+++ b/drivers/usb/gadget/udc/udc-core.c
@@ -413,9 +413,10 @@ int usb_add_gadget_udc_release(struct device *parent, struct usb_gadget *gadget,
413 if (!driver->udc_name || strcmp(driver->udc_name, 413 if (!driver->udc_name || strcmp(driver->udc_name,
414 dev_name(&udc->dev)) == 0) { 414 dev_name(&udc->dev)) == 0) {
415 ret = udc_bind_to_driver(udc, driver); 415 ret = udc_bind_to_driver(udc, driver);
416 if (ret != -EPROBE_DEFER)
417 list_del(&driver->pending);
416 if (ret) 418 if (ret)
417 goto err4; 419 goto err4;
418 list_del(&driver->pending);
419 break; 420 break;
420 } 421 }
421 } 422 }