public inbox for linux-usb@vger.kernel.org
 help / color / mirror / Atom feed
* xHCI over-current causing pm loop
@ 2021-05-16  2:17 Dominik Winecki
  2021-05-17 14:03 ` Alan Stern
  0 siblings, 1 reply; 2+ messages in thread
From: Dominik Winecki @ 2021-05-16  2:17 UTC (permalink / raw)
  To: linux-usb

Hello,

I've got an issue on my laptop (Dell XPS 9570 with an i7-7700HQ) that
I'm trying to fix. Multiple usb ports are reporting over-current, despite
nothing being plugged in:

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 138a:0091 Validity Sensors, Inc. VFS7552 Touch Fingerprint Sensor
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Two kworkers running runtime pm are trying to suspend the usb 2 & 3 root hubs.
The xHCI driver will not suspend a hub with over-current triggered
(since e9fb08d617bf) so it fails, resumes the hub, and pm tries again.
This is taking two CPU cores, but it stops if a device of the same usb
version is plugged in, or if I set the power control policy to on.
Also, this is blocking system suspend, but that's expected behavior.

Reverting the e9fb08d617bf check fixes both issues for me, but that may cause
system halts in other systems. Making it a non-retriable suspend failure
stops the kworkers but then it will never suspend after an OC event.

Does it make sense to fix this in the USB driver? Or is this a PM issue?
I'd rather fix my over-current issue, but taking two cpus whenever xHCI has
a no-device over-current reading seems like a bug.

Thanks,
Dominik

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: xHCI over-current causing pm loop
  2021-05-16  2:17 xHCI over-current causing pm loop Dominik Winecki
@ 2021-05-17 14:03 ` Alan Stern
  0 siblings, 0 replies; 2+ messages in thread
From: Alan Stern @ 2021-05-17 14:03 UTC (permalink / raw)
  To: Dominik Winecki, Mathias Nyman; +Cc: linux-usb

On Sat, May 15, 2021 at 10:17:07PM -0400, Dominik Winecki wrote:
> Hello,
> 
> I've got an issue on my laptop (Dell XPS 9570 with an i7-7700HQ) that
> I'm trying to fix. Multiple usb ports are reporting over-current, despite
> nothing being plugged in:
> 
> Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
> Bus 001 Device 002: ID 138a:0091 Validity Sensors, Inc. VFS7552 Touch Fingerprint Sensor
> Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
> 
> Two kworkers running runtime pm are trying to suspend the usb 2 & 3 root hubs.
> The xHCI driver will not suspend a hub with over-current triggered
> (since e9fb08d617bf) so it fails, resumes the hub, and pm tries again.
> This is taking two CPU cores, but it stops if a device of the same usb
> version is plugged in, or if I set the power control policy to on.
> Also, this is blocking system suspend, but that's expected behavior.
> 
> Reverting the e9fb08d617bf check fixes both issues for me, but that may cause
> system halts in other systems. Making it a non-retriable suspend failure
> stops the kworkers but then it will never suspend after an OC event.
> 
> Does it make sense to fix this in the USB driver? Or is this a PM issue?
> I'd rather fix my over-current issue, but taking two cpus whenever xHCI has
> a no-device over-current reading seems like a bug.

As you mentioned, the real bug is in your hardware.  Why does it report 
an over-current condition when nothing is plugged into the port?

The only reasonable way I can think of to fix this would be to add a 
quirk telling the xhci-hcd driver that your hardware does not report 
over-current conditions reliably, so the reports should be ignored.

Alan Stern

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2021-05-17 14:03 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-05-16  2:17 xHCI over-current causing pm loop Dominik Winecki
2021-05-17 14:03 ` Alan Stern

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox