431fa59e49
Implement the actual port suspend/resume path using the USB 3.0
link state definitions, cross-referenced with Linux 7.1
xhci-hub.c: xhci_set_link_state().
port.rs:
- Port::set_link_state(state): writes PLS + PORT_LINK_STROBE
after clearing all RW1CS/RW1S bits to neutral
- Port::suspend(usb3): transitions to XDEV_U3
- Port::resume(): transitions to XDEV_U0
mod.rs:
- Xhci::suspend_port(port_id): detects USB 3.0 vs USB 2.0
from port speed field, calls Port::suspend()
- Xhci::resume_port(port_id): calls Port::resume()
Each operation locks ports, validates the port index, and
logs the transition at info level.
This means the xhci controller can now transition individual
USB 3.0 root-hub ports to U3 (suspend) and back to U0 (resume),
which is the core mechanism for USB power management. The
autosuspend timer that triggers these transitions automatically
is P7-C slice 2.