On Thu, Aug 10, 2023 at 10:51:09PM +0000, Alexandru Gagniuc wrote:
On Thu, Aug 10, 2023 at 01:34:39PM -0400, Alan Stern wrote:
I was thinking that the host controller driver's shutdown method might turn off power to all of the ports.
For example, in the ehci-hcd driver, ehci_shutdown() calls ehci_silence_controller(), which calls ehci_turn_off_all_ports(). I don't know if xhci-hcd does anything similar.
EHCI is a different beast. I don't think EHCI (USB2.0) has the U3 link state.
USB-2 doesn't have link states, but it does have the notion of a downstream port being suspended, which is effectively the same as U3.
The equivalent for would be xhci_shutdown(). It makes a call to usb_disable_xhci_ports() for XHCI_SPURIOUS_REBOOT quirk. As I have not encountered it, I don't know how it will affect the link state of other ports. The quirk appears to switch ports to EHCI mode, rather than turn off power.
All right. The important point is that the patch works for your situation. I was just trying to find out how much thought you had given to the possibilities other people might face, if their systems aren't quite the same as yours.
Alan Stern