diff options
author | Douglas Anderson <dianders@chromium.org> | 2015-10-22 13:05:03 -0700 |
---|---|---|
committer | Felipe Balbi <balbi@ti.com> | 2015-11-17 11:35:38 -0600 |
commit | 1fb7f12d5bec1b0a699c85d724bd5184a01fa2dd (patch) | |
tree | ff862dcfe2f66e6b4cbab0ae0f67a2a3f0343a38 /drivers/firmware/arm_scpi.c | |
parent | f16593034a30bcbef8f63c37d0f2b9e1a0902c2d (diff) |
usb: dwc2: host: Fix remote wakeup when not in DWC2_L2
In commit 734643dfbdde ("usb: dwc2: host: add flag to reflect bus
state") we changed dwc2_port_suspend() not to set the lx_state
anymore (instead it sets the new bus_suspended variable). This
introduced a bug where we would fail to detect device insertions if:
1. Plug empty hub into dwc2
2. Plug USB flash drive into the empty hub.
3. Wait a few seconds
4. Unplug USB flash drive
5. Less than 2 seconds after step 4, plug the USB flash drive in again.
The dwc2_hcd_rem_wakeup() function should have been changed to look at
the new bus_suspended variable.
Let's fix it. Since commit b46146d59fda ("usb: dwc2: host: resume root
hub on remote wakeup") talks about needing the root hub resumed if the
bus was suspended, we'll include it in our test.
It appears that the "port_l1_change" should only be set to 1 if we were
in DWC2_L1 (the driver currently never sets this), so we'll update the
former "else" case based on this test.
Fixes: 734643dfbdde ("usb: dwc2: host: add flag to reflect bus state")
Acked-by: John Youn <johnyoun@synopsys.com>
Tested-by: Gregory Herrero <gregory.herrero@intel.com>
Reviewed-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Douglas Anderson <dianders@chromium.org>
Signed-off-by: Felipe Balbi <balbi@ti.com>
Diffstat (limited to 'drivers/firmware/arm_scpi.c')
0 files changed, 0 insertions, 0 deletions