On 26/03/2021 11:11, Hanjun Guo wrote:
On 2021/3/25 18:09, LeoLiu-oc wrote:
During polling phase after some device plug in type-c port, if polling timeout three times, link state will goto inactive. However this event not handle by the driver, which will cause device can't be recognized. To fix this issue, if port link state detected in inactive, record this event that will trigger a warm reset to bring device identified by driver.
The patch is scheduled to be submitted to the kernel mainline in 2021.
Signed-off-by: LeoLiu-oc LeoLiu-oc@zhaoxin.com
drivers/usb/core/hub.c | 5 +++++ 1 file changed, 5 insertions(+)
diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c index fa28f23a4a33..302caa1ea345 100644 --- a/drivers/usb/core/hub.c +++ b/drivers/usb/core/hub.c @@ -1135,6 +1135,11 @@ static void hub_activate(struct usb_hub *hub, enum hub_activation_type type) USB_SS_PORT_LS_POLLING)) need_debounce_delay = true;
+ /* Make sure a warm-reset request is handled by port_event */ + if (type == HUB_RESUME && + hub_port_warm_reset_required(hub, port1, portstatus)) + set_bit(port1, hub->event_bits);
Make sure only happens for Zhaoxin platform.
Not only for Zhaoxin platform. Refer to upsteam patch 4fdc1790e6a9ef22399c6bc6e63b80f4609f3b7e. Will send V2 followed openeuler patch format.
Sincerely TonyWWangoc
Thanks Hanjun .