diff options
author | Linyu Yuan <quic_linyyuan@quicinc.com> | 2023-05-12 08:45:24 +0800 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2023-05-13 17:30:59 +0900 |
commit | 4e8ef34e36f2839ef8c8da521ab7035956436818 (patch) | |
tree | d2e1d4133f6e447f8346135a0428eb7c5e782280 /lib | |
parent | c8540870af4ce6ddeb27a7bb5498b75fb29b643c (diff) | |
download | lwn-4e8ef34e36f2839ef8c8da521ab7035956436818.tar.gz lwn-4e8ef34e36f2839ef8c8da521ab7035956436818.zip |
usb: dwc3: fix gadget mode suspend interrupt handler issue
When work in gadget mode, currently driver doesn't update software level
link_state correctly as link state change event is not enabled for most
devices, in function dwc3_gadget_suspend_interrupt(), it will only pass
suspend event to UDC core when software level link state changes, so when
interrupt generated in sequences of suspend -> reset -> conndone ->
suspend, link state is not updated during reset and conndone, so second
suspend interrupt event will not pass to UDC core.
Remove link_state compare in dwc3_gadget_suspend_interrupt() and add a
suspended flag to replace the compare function.
Fixes: 799e9dc82968 ("usb: dwc3: gadget: conditionally disable Link State change events")
Cc: stable <stable@kernel.org>
Acked-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
Signed-off-by: Linyu Yuan <quic_linyyuan@quicinc.com>
Link: https://lore.kernel.org/r/20230512004524.31950-1-quic_linyyuan@quicinc.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'lib')
0 files changed, 0 insertions, 0 deletions