[lkml]   [2019]   [Dec]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: [PATCH] usb: chipidea: host: Disable port power only if previously enabled
On 19-12-26 14:46:15, Alan Stern wrote:
> On Thu, 26 Dec 2019, Guenter Roeck wrote:
> > On shutdown, ehci_power_off() is called unconditionally to power off
> > each port, even if it was never called to power on the port.
> > For chipidea, this results in a call to ehci_ci_portpower() with a request
> > to power off ports even if the port was never powered on.
> > This results in the following warning from the regulator code.
> That's weird -- we should always power-on every port during hub
> initialization.
> It looks like there's a bug in hub.c:hub_activate(): The line under
> HUB_INIT which calls hub_power_on() should call
> usb_hub_set_port_power() instead. In fact, the comment near the start
> of hub_power_on() is wrong. It says "Enable power on each port", but
> in fact it only enables power for ports that had been powered-on
> previously (i.e., the port's bit in hub->power_bits was set).
> Apparently this got messed up in commit ad493e5e5805 ("usb: add usb
> port auto power off mechanism").
> Now, the chipidea driver may still need to be updated, because
> ehci_turn_off_all_ports() will still be called during shutdown and it
> will try to power-down all ports, even those which are already powered
> down (for example, because the port is suspended).

Hi Alan,

When the port is suspended, why it was turned off? If it was turned
off, how could respond wakeup event?


Peter Chen
 \ /
  Last update: 2019-12-27 02:45    [W:0.075 / U:0.332 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site