docs: scope USB P7-B — real work is SEL/PEL timeout computation, not register writes
Upstream xhci_calculate_lpm_timeout needs SuperSpeed endpoint companion SEL/PEL parsing across the hub tree + tier policy + XHCI_LPM_SUPPORT vendor quirk. Defaults-only timeout writes would be speculative and can break device links. P7-B assigned a dedicated workstream.
This commit is contained in:
@@ -699,6 +699,18 @@ defensive LPM clear runs on USB2 ports at attach when unsupported.
|
||||
|
||||
**Reference:** `linux-7.1/drivers/usb/host/xhci-port.h:17-30`, `xhci.c:2800+` `xhci_stop_device()`.
|
||||
|
||||
**Scoping audit (2026-07-20):** U1/U2 timeout *register* programming is trivial
|
||||
(xhci-hub.c:1488-1510, `PORT_U1/U2_TIMEOUT` in PORTPMSC), but the real work is
|
||||
upstream's timeout *computation*: `xhci_calculate_lpm_timeout` requires
|
||||
per-endpoint SEL/PEL from SuperSpeed endpoint companion descriptors across the
|
||||
hub tree, `calculate_max_exit_latency`, `xhci_check_tier_policy`, and only
|
||||
engages for controllers carrying the `XHCI_LPM_SUPPORT` quirk (vendor
|
||||
whitelist — "don't enable hub-initiated timeouts unless the vendor has
|
||||
provided information about their timeout algorithm"). A defaults-only
|
||||
implementation would be speculative non-upstream behavior that can break
|
||||
device links on real hardware. P7-B therefore needs a dedicated workstream
|
||||
covering endpoint-companion parsing + SEL/PEL plumbing first.
|
||||
|
||||
**Tasks:**
|
||||
|
||||
1. Implement U1/U2 entry per port via `PORT_U1_TIMEOUT` / `PORT_U2_TIMEOUT` registers.
|
||||
|
||||
Reference in New Issue
Block a user