diff options
author | Linux Build Service Account <lnxbuild@quicinc.com> | 2017-06-06 13:21:37 -0700 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2017-06-06 13:21:37 -0700 |
commit | 3eb3dbc346d1b5f1d2fc9d6c31be3787f6bedc77 (patch) | |
tree | 05186c744e15cd47bad1e348cc63df1e27e03690 /drivers | |
parent | 37bca2d3379afeefc42a500730ab3136d3d2de1e (diff) | |
parent | bcf8bc839ec0ebcf800336f84713c412caa553c1 (diff) |
Merge "ARM: dts: msm: Enable DRD mode for 2nd USB controller on MSM8996 Auto"
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/usb/dwc3/dwc3-msm.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/drivers/usb/dwc3/dwc3-msm.c b/drivers/usb/dwc3/dwc3-msm.c index 4ed46d9ca279..c2d788bc4bc5 100644 --- a/drivers/usb/dwc3/dwc3-msm.c +++ b/drivers/usb/dwc3/dwc3-msm.c @@ -2671,12 +2671,16 @@ static int dwc3_msm_extcon_register(struct dwc3_msm *mdwc) { struct device_node *node = mdwc->dev->of_node; struct extcon_dev *edev; + struct dwc3 *dwc; int ret = 0; + dwc = platform_get_drvdata(mdwc->dwc3); if (!of_property_read_bool(node, "extcon")) { - if (usb_get_dr_mode(&mdwc->dwc3->dev) == USB_DR_MODE_HOST) + dev_dbg(mdwc->dev, "extcon property doesn't exist\n"); + if (usb_get_dr_mode(&mdwc->dwc3->dev) == USB_DR_MODE_HOST + || dwc->is_drd) return 0; - dev_err(mdwc->dev, "extcon property doesn't exist\n"); + dev_err(mdwc->dev, "Neither host nor DRD, fail probe\n"); return -EINVAL; } @@ -3137,8 +3141,9 @@ static int dwc3_msm_probe(struct platform_device *pdev) device_create_file(&pdev->dev, &dev_attr_speed); host_mode = usb_get_dr_mode(&mdwc->dwc3->dev) == USB_DR_MODE_HOST; - if (!dwc->is_drd && host_mode) { - dev_dbg(&pdev->dev, "DWC3 in host only mode\n"); + if (host_mode || + (dwc->is_drd && !of_property_read_bool(node, "extcon"))) { + dev_dbg(&pdev->dev, "DWC3 in default host mode\n"); mdwc->id_state = DWC3_ID_GROUND; dwc3_ext_event_notify(mdwc); } |