mediatek: backport upstream mediatek patches
[openwrt/openwrt.git] / target / linux / mediatek / patches-4.14 / 0111-usb-mtu3-set-invalid-dr_mode-as-dual-role-mode.patch
diff --git a/target/linux/mediatek/patches-4.14/0111-usb-mtu3-set-invalid-dr_mode-as-dual-role-mode.patch b/target/linux/mediatek/patches-4.14/0111-usb-mtu3-set-invalid-dr_mode-as-dual-role-mode.patch
new file mode 100644 (file)
index 0000000..1c23d15
--- /dev/null
@@ -0,0 +1,34 @@
+From e315036cdbf8dad7cff4df9dfe8bcff2eddf2277 Mon Sep 17 00:00:00 2001
+From: Chunfeng Yun <chunfeng.yun@mediatek.com>
+Date: Fri, 13 Oct 2017 17:10:45 +0800
+Subject: [PATCH 111/224] usb: mtu3: set invalid dr_mode as dual-role mode
+
+Treat dr_mode of USB_DR_MODE_UNKNOWN as USB_DR_MODE_OTG to
+enhance functional robustness.
+
+Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com>
+Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
+---
+ drivers/usb/mtu3/mtu3_plat.c | 6 ++----
+ 1 file changed, 2 insertions(+), 4 deletions(-)
+
+diff --git a/drivers/usb/mtu3/mtu3_plat.c b/drivers/usb/mtu3/mtu3_plat.c
+index 7ca81f4e78a3..9ff33579b42e 100644
+--- a/drivers/usb/mtu3/mtu3_plat.c
++++ b/drivers/usb/mtu3/mtu3_plat.c
+@@ -283,10 +283,8 @@ static int get_ssusb_rscs(struct platform_device *pdev, struct ssusb_mtk *ssusb)
+               return PTR_ERR(ssusb->ippc_base);
+       ssusb->dr_mode = usb_get_dr_mode(dev);
+-      if (ssusb->dr_mode == USB_DR_MODE_UNKNOWN) {
+-              dev_err(dev, "dr_mode is error\n");
+-              return -EINVAL;
+-      }
++      if (ssusb->dr_mode == USB_DR_MODE_UNKNOWN)
++              ssusb->dr_mode = USB_DR_MODE_OTG;
+       if (ssusb->dr_mode == USB_DR_MODE_PERIPHERAL)
+               return 0;
+-- 
+2.11.0
+