aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/ar71xx/patches-4.14/930-chipidea-pullup.patch
diff options
context:
space:
mode:
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.patch72
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