From: Andy Shevchenko Date: Mon, 18 Feb 2019 13:26:31 +0000 (+0200) Subject: usb: dwc3: drd: Defer probe if extcon device is not found X-Git-Tag: v5.1-rc1~142^2~21 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=98bba546e82d7785b9560c6b141b73ac8d3d820f;p=thirdparty%2Fkernel%2Flinux.git usb: dwc3: drd: Defer probe if extcon device is not found In case the "linux,extcon-name" property is defined but device itself is not ready, defer the probe. Signed-off-by: Andy Shevchenko Acked-by: Felipe Balbi Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/usb/dwc3/drd.c b/drivers/usb/dwc3/drd.c index 869725d15c749..726100d1ac0d8 100644 --- a/drivers/usb/dwc3/drd.c +++ b/drivers/usb/dwc3/drd.c @@ -457,8 +457,13 @@ static struct extcon_dev *dwc3_get_extcon(struct dwc3 *dwc) * This device property is for kernel internal use only and * is expected to be set by the glue code. */ - if (device_property_read_string(dev, "linux,extcon-name", &name) == 0) - return extcon_get_extcon_dev(name); + if (device_property_read_string(dev, "linux,extcon-name", &name) == 0) { + edev = extcon_get_extcon_dev(name); + if (!edev) + return ERR_PTR(-EPROBE_DEFER); + + return edev; + } np_phy = of_parse_phandle(dev->of_node, "phys", 0); np_conn = of_graph_get_remote_node(np_phy, -1, -1);