Re: [PATCH] usb: dwc2: host: Fix remote wakeup when not in DWC2_L2
From: Heiko Stuebner
Date: Thu Oct 29 2015 - 19:23:58 EST
Am Donnerstag, 22. Oktober 2015, 13:05:03 schrieb Douglas Anderson:
> 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")
> Signed-off-by: Douglas Anderson <dianders@xxxxxxxxxxxx>
I've talked with Doug a lot about that problem today and from reading
this change and the referenced causing change, it looks correct
and good to me, so
Reviewed-by: Heiko Stuebner <heiko@xxxxxxxxxx>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/