ipq806x: switch to upstream usb driver and backport fixes
[openwrt/openwrt.git] / target / linux / ipq806x / patches-4.4 / 096-04-usb-dwc3-DWC_usb31-controller-check.patch
diff --git a/target/linux/ipq806x/patches-4.4/096-04-usb-dwc3-DWC_usb31-controller-check.patch b/target/linux/ipq806x/patches-4.4/096-04-usb-dwc3-DWC_usb31-controller-check.patch
new file mode 100644 (file)
index 0000000..47278d4
--- /dev/null
@@ -0,0 +1,32 @@
+From c4137a9c841ec7fb300782d211f2d6907f4d6e20 Mon Sep 17 00:00:00 2001
+From: John Youn <John.Youn@synopsys.com>
+Date: Fri, 5 Feb 2016 17:08:18 -0800
+Subject: usb: dwc3: DWC_usb31 controller check
+
+Add a convenience function to check if the controller is DWC_usb31.
+
+Signed-off-by: John Youn <johnyoun@synopsys.com>
+Signed-off-by: Felipe Balbi <balbi@kernel.org>
+---
+ drivers/usb/dwc3/core.h | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/drivers/usb/dwc3/core.h b/drivers/usb/dwc3/core.h
+index e4f8b90..c0520d67 100644
+--- a/drivers/usb/dwc3/core.h
++++ b/drivers/usb/dwc3/core.h
+@@ -1024,6 +1024,12 @@ struct dwc3_gadget_ep_cmd_params {
+ void dwc3_set_mode(struct dwc3 *dwc, u32 mode);
+ int dwc3_gadget_resize_tx_fifos(struct dwc3 *dwc);
++/* check whether we are on the DWC_usb31 core */
++static inline bool dwc3_is_usb31(struct dwc3 *dwc)
++{
++      return !!(dwc->revision & DWC3_REVISION_IS_DWC31);
++}
++
+ #if IS_ENABLED(CONFIG_USB_DWC3_HOST) || IS_ENABLED(CONFIG_USB_DWC3_DUAL_ROLE)
+ int dwc3_host_init(struct dwc3 *dwc);
+ void dwc3_host_exit(struct dwc3 *dwc);
+-- 
+cgit v0.12