diff options
Diffstat (limited to 'target/linux/ar71xx/patches-4.14/930-chipidea-pullup.patch')
-rw-r--r-- | target/linux/ar71xx/patches-4.14/930-chipidea-pullup.patch | 72 |
1 files changed, 0 insertions, 72 deletions
diff --git a/target/linux/ar71xx/patches-4.14/930-chipidea-pullup.patch b/target/linux/ar71xx/patches-4.14/930-chipidea-pullup.patch deleted file mode 100644 index 2e9a878630..0000000000 --- a/target/linux/ar71xx/patches-4.14/930-chipidea-pullup.patch +++ /dev/null @@ -1,72 +0,0 @@ ---- a/drivers/usb/chipidea/ci.h -+++ b/drivers/usb/chipidea/ci.h -@@ -205,6 +205,7 @@ struct hw_bank { - * @in_lpm: if the core in low power mode - * @wakeup_int: if wakeup interrupt occur - * @rev: The revision number for controller -+ * @dp_always_pullup: keep dp always pullup at device mode - */ - struct ci_hdrc { - struct device *dev; -@@ -259,6 +260,7 @@ struct ci_hdrc { - bool in_lpm; - bool wakeup_int; - enum ci_revision rev; -+ bool dp_always_pullup; - }; - - static inline struct ci_role_driver *ci_role(struct ci_hdrc *ci) ---- a/drivers/usb/chipidea/core.c -+++ b/drivers/usb/chipidea/core.c -@@ -818,7 +818,7 @@ static inline void ci_role_destroy(struc - { - ci_hdrc_gadget_destroy(ci); - ci_hdrc_host_destroy(ci); -- if (ci->is_otg && ci->roles[CI_ROLE_GADGET]) -+ if (!ci->dp_always_pullup && ci->roles[CI_ROLE_GADGET]) - ci_hdrc_otg_destroy(ci); - } - -@@ -923,6 +923,9 @@ static int ci_hdrc_probe(struct platform - CI_HDRC_SUPPORTS_RUNTIME_PM); - platform_set_drvdata(pdev, ci); - -+ ci->dp_always_pullup = !!(ci->platdata->flags & -+ CI_HDRC_DP_ALWAYS_PULLUP); -+ - ret = hw_device_init(ci, base); - if (ret < 0) { - dev_err(dev, "can't initialize hardware\n"); -@@ -1011,7 +1014,7 @@ static int ci_hdrc_probe(struct platform - goto deinit_gadget; - } - -- if (ci->is_otg && ci->roles[CI_ROLE_GADGET]) { -+ if (!ci->dp_always_pullup && ci->roles[CI_ROLE_GADGET]) { - ret = ci_hdrc_otg_init(ci); - if (ret) { - dev_err(dev, "init otg fails, ret = %d\n", ret); ---- a/drivers/usb/chipidea/otg.c -+++ b/drivers/usb/chipidea/otg.c -@@ -131,8 +131,10 @@ enum ci_role ci_otg_role(struct ci_hdrc - - void ci_handle_vbus_change(struct ci_hdrc *ci) - { -- if (!ci->is_otg) -+ if (ci->dp_always_pullup) { -+ usb_gadget_vbus_connect(&ci->gadget); - return; -+ } - - if (hw_read_otgsc(ci, OTGSC_BSV) && !ci->vbus_active) - usb_gadget_vbus_connect(&ci->gadget); ---- a/include/linux/usb/chipidea.h -+++ b/include/linux/usb/chipidea.h -@@ -60,6 +60,7 @@ struct ci_hdrc_platform_data { - #define CI_HDRC_OVERRIDE_RX_BURST BIT(11) - #define CI_HDRC_OVERRIDE_PHY_CONTROL BIT(12) /* Glue layer manages phy */ - #define CI_HDRC_REQUIRES_ALIGNED_DMA BIT(13) -+#define CI_HDRC_DP_ALWAYS_PULLUP BIT(14) - enum usb_dr_mode dr_mode; - #define CI_HDRC_CONTROLLER_RESET_EVENT 0 - #define CI_HDRC_CONTROLLER_STOPPED_EVENT 1 |