* [PATCH next 1/2] usb: mtu3: return successful suspend status
@ 2021-08-26 8:36 Chunfeng Yun
2021-08-26 8:36 ` [PATCH next 2/2] usb: mtu3: fix random remote wakeup Chunfeng Yun
0 siblings, 1 reply; 2+ messages in thread
From: Chunfeng Yun @ 2021-08-26 8:36 UTC (permalink / raw)
To: Greg Kroah-Hartman
Cc: Chunfeng Yun, Matthias Brugger, linux-usb, linux-arm-kernel,
linux-mediatek, linux-kernel, Eddie Hung
Forgot 'return 0;' when suspend successfully, make the mistake
when I split patches.
Fixes: 6b587394c65c ("usb: mtu3: support suspend/resume for dual-role mode")
Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com>
---
drivers/usb/mtu3/mtu3_plat.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/usb/mtu3/mtu3_plat.c b/drivers/usb/mtu3/mtu3_plat.c
index 81266f34986f..5b3f7f73cb40 100644
--- a/drivers/usb/mtu3/mtu3_plat.c
+++ b/drivers/usb/mtu3/mtu3_plat.c
@@ -502,6 +502,7 @@ static int mtu3_suspend_common(struct device *dev, pm_message_t msg)
ssusb_phy_power_off(ssusb);
clk_bulk_disable_unprepare(BULK_CLKS_CNT, ssusb->clks);
ssusb_wakeup_set(ssusb, true);
+ return 0;
sleep_err:
resume_ip_and_ports(ssusb, msg);
--
2.18.0
^ permalink raw reply related [flat|nested] 2+ messages in thread
* [PATCH next 2/2] usb: mtu3: fix random remote wakeup
2021-08-26 8:36 [PATCH next 1/2] usb: mtu3: return successful suspend status Chunfeng Yun
@ 2021-08-26 8:36 ` Chunfeng Yun
0 siblings, 0 replies; 2+ messages in thread
From: Chunfeng Yun @ 2021-08-26 8:36 UTC (permalink / raw)
To: Greg Kroah-Hartman
Cc: Chunfeng Yun, Matthias Brugger, linux-usb, linux-arm-kernel,
linux-mediatek, linux-kernel, Eddie Hung, stable
Some platforms, e.g. 8183/8192, use low level latch way to keep
wakeup signal, it may latch a wrong signal if debounce more time,
and enable wakeup earlier.
____________________
ip_sleep ____/ \__________
___________________
wakeup_signal ____________/ \______
_______________________________
wakeup_en _______/
^ ^
|(1) |(2)
latch wakeup_signal mistakenly at (1), should latch it at (2);
Workaround: delay about 100us to enable wakeup, meanwhile decrease
debounce time.
Fixes: b1a344589eea ("usb: mtu3: support ip-sleep wakeup for MT8183")
Cc: stable@vger.kernel.org
Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com>
---
drivers/usb/mtu3/mtu3_host.c | 2 +-
drivers/usb/mtu3/mtu3_plat.c | 3 +++
2 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/usb/mtu3/mtu3_host.c b/drivers/usb/mtu3/mtu3_host.c
index 7d528f3c2482..f3903367a6a0 100644
--- a/drivers/usb/mtu3/mtu3_host.c
+++ b/drivers/usb/mtu3/mtu3_host.c
@@ -62,7 +62,7 @@ static void ssusb_wakeup_ip_sleep_set(struct ssusb_mtk *ssusb, bool enable)
case SSUSB_UWK_V1_1:
reg = ssusb->uwk_reg_base + PERI_WK_CTRL0;
msk = WC0_IS_EN | WC0_IS_C(0xf) | WC0_IS_P;
- val = enable ? (WC0_IS_EN | WC0_IS_C(0x8)) : 0;
+ val = enable ? (WC0_IS_EN | WC0_IS_C(0x1)) : 0;
break;
case SSUSB_UWK_V1_2:
reg = ssusb->uwk_reg_base + PERI_WK_CTRL0;
diff --git a/drivers/usb/mtu3/mtu3_plat.c b/drivers/usb/mtu3/mtu3_plat.c
index 5b3f7f73cb40..f13531022f4a 100644
--- a/drivers/usb/mtu3/mtu3_plat.c
+++ b/drivers/usb/mtu3/mtu3_plat.c
@@ -63,6 +63,9 @@ static int wait_for_ip_sleep(struct ssusb_mtk *ssusb)
if (ret) {
dev_err(ssusb->dev, "ip sleep failed!!!\n");
ret = -EBUSY;
+ } else {
+ /* workaround: avoid wrong wakeup signal latch for some soc */
+ usleep_range(100, 200);
}
return ret;
--
2.18.0
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2021-08-26 8:36 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-08-26 8:36 [PATCH next 1/2] usb: mtu3: return successful suspend status Chunfeng Yun
2021-08-26 8:36 ` [PATCH next 2/2] usb: mtu3: fix random remote wakeup Chunfeng Yun
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).