summaryrefslogtreecommitdiff
path: root/target/linux/mediatek/patches-4.14/0105-usb-mtu3-remove-dummy-wakeup-debounce-clocks.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/mediatek/patches-4.14/0105-usb-mtu3-remove-dummy-wakeup-debounce-clocks.patch')
-rw-r--r--target/linux/mediatek/patches-4.14/0105-usb-mtu3-remove-dummy-wakeup-debounce-clocks.patch126
1 files changed, 126 insertions, 0 deletions
diff --git a/target/linux/mediatek/patches-4.14/0105-usb-mtu3-remove-dummy-wakeup-debounce-clocks.patch b/target/linux/mediatek/patches-4.14/0105-usb-mtu3-remove-dummy-wakeup-debounce-clocks.patch
new file mode 100644
index 0000000..adf1cec
--- /dev/null
+++ b/target/linux/mediatek/patches-4.14/0105-usb-mtu3-remove-dummy-wakeup-debounce-clocks.patch
@@ -0,0 +1,126 @@
+From 50005796f146351dc9c34bbf8898b305c562e964 Mon Sep 17 00:00:00 2001
+From: Chunfeng Yun <chunfeng.yun@mediatek.com>
+Date: Fri, 13 Oct 2017 17:10:39 +0800
+Subject: [PATCH 105/224] usb: mtu3: remove dummy wakeup debounce clocks
+
+The wakeup debounce clocks for each ports in fact are not
+needed, so remove them.
+
+Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com>
+Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
+---
+ drivers/usb/mtu3/mtu3.h | 4 ----
+ drivers/usb/mtu3/mtu3_host.c | 57 ++++----------------------------------------
+ 2 files changed, 4 insertions(+), 57 deletions(-)
+
+diff --git a/drivers/usb/mtu3/mtu3.h b/drivers/usb/mtu3/mtu3.h
+index 112723d6e7bc..6d3278e46431 100644
+--- a/drivers/usb/mtu3/mtu3.h
++++ b/drivers/usb/mtu3/mtu3.h
+@@ -214,8 +214,6 @@ struct otg_switch_mtk {
+ * disable u3port0, bit1==1 to disable u3port1,... etc
+ * @dbgfs_root: only used when supports manual dual-role switch via debugfs
+ * @wakeup_en: it's true when supports remote wakeup in host mode
+- * @wk_deb_p0: port0's wakeup debounce clock
+- * @wk_deb_p1: it's optional, and depends on port1 is supported or not
+ */
+ struct ssusb_mtk {
+ struct device *dev;
+@@ -238,8 +236,6 @@ struct ssusb_mtk {
+ struct dentry *dbgfs_root;
+ /* usb wakeup for host mode */
+ bool wakeup_en;
+- struct clk *wk_deb_p0;
+- struct clk *wk_deb_p1;
+ struct regmap *pericfg;
+ };
+
+diff --git a/drivers/usb/mtu3/mtu3_host.c b/drivers/usb/mtu3/mtu3_host.c
+index 4dd9508a60b5..edcc59148171 100644
+--- a/drivers/usb/mtu3/mtu3_host.c
++++ b/drivers/usb/mtu3/mtu3_host.c
+@@ -79,20 +79,6 @@ int ssusb_wakeup_of_property_parse(struct ssusb_mtk *ssusb,
+ if (!ssusb->wakeup_en)
+ return 0;
+
+- ssusb->wk_deb_p0 = devm_clk_get(dev, "wakeup_deb_p0");
+- if (IS_ERR(ssusb->wk_deb_p0)) {
+- dev_err(dev, "fail to get wakeup_deb_p0\n");
+- return PTR_ERR(ssusb->wk_deb_p0);
+- }
+-
+- if (of_property_read_bool(dn, "wakeup_deb_p1")) {
+- ssusb->wk_deb_p1 = devm_clk_get(dev, "wakeup_deb_p1");
+- if (IS_ERR(ssusb->wk_deb_p1)) {
+- dev_err(dev, "fail to get wakeup_deb_p1\n");
+- return PTR_ERR(ssusb->wk_deb_p1);
+- }
+- }
+-
+ ssusb->pericfg = syscon_regmap_lookup_by_phandle(dn,
+ "mediatek,syscon-wakeup");
+ if (IS_ERR(ssusb->pericfg)) {
+@@ -103,36 +89,6 @@ int ssusb_wakeup_of_property_parse(struct ssusb_mtk *ssusb,
+ return 0;
+ }
+
+-static int ssusb_wakeup_clks_enable(struct ssusb_mtk *ssusb)
+-{
+- int ret;
+-
+- ret = clk_prepare_enable(ssusb->wk_deb_p0);
+- if (ret) {
+- dev_err(ssusb->dev, "failed to enable wk_deb_p0\n");
+- goto usb_p0_err;
+- }
+-
+- ret = clk_prepare_enable(ssusb->wk_deb_p1);
+- if (ret) {
+- dev_err(ssusb->dev, "failed to enable wk_deb_p1\n");
+- goto usb_p1_err;
+- }
+-
+- return 0;
+-
+-usb_p1_err:
+- clk_disable_unprepare(ssusb->wk_deb_p0);
+-usb_p0_err:
+- return -EINVAL;
+-}
+-
+-static void ssusb_wakeup_clks_disable(struct ssusb_mtk *ssusb)
+-{
+- clk_disable_unprepare(ssusb->wk_deb_p1);
+- clk_disable_unprepare(ssusb->wk_deb_p0);
+-}
+-
+ static void host_ports_num_get(struct ssusb_mtk *ssusb)
+ {
+ u32 xhci_cap;
+@@ -286,19 +242,14 @@ void ssusb_host_exit(struct ssusb_mtk *ssusb)
+
+ int ssusb_wakeup_enable(struct ssusb_mtk *ssusb)
+ {
+- int ret = 0;
+-
+- if (ssusb->wakeup_en) {
+- ret = ssusb_wakeup_clks_enable(ssusb);
++ if (ssusb->wakeup_en)
+ ssusb_wakeup_ip_sleep_en(ssusb);
+- }
+- return ret;
++
++ return 0;
+ }
+
+ void ssusb_wakeup_disable(struct ssusb_mtk *ssusb)
+ {
+- if (ssusb->wakeup_en) {
++ if (ssusb->wakeup_en)
+ ssusb_wakeup_ip_sleep_dis(ssusb);
+- ssusb_wakeup_clks_disable(ssusb);
+- }
+ }
+--
+2.11.0
+