FAILED: patch "[PATCH] usb: mtu3: fix random remote wakeup" failed to apply to 5.13-stable tree
Subsystems (3)
[email protected]
maintainerThe patch below does not apply to the 5.13-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From d98a30ccdc839947c9233369744341d1fa54439c Mon Sep 17 00:00:00 2001
From: Chunfeng Yun <[email protected]>
Date: Thu, 26 Aug 2021 16:36:37 +0800
Subject: [PATCH] usb: mtu3: fix random remote wakeup
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.
drivers/usb/mtu3/mtu3_host.c +1 -1
@@ -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 ;
drivers/usb/mtu3/mtu3_plat.c +3 -0
@@ -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;