From cd9b225e3903f6993fe41fb32c5f95844f85098c Mon Sep 17 00:00:00 2001 From: vasilito Date: Mon, 20 Jul 2026 19:27:00 +0900 Subject: [PATCH] =?UTF-8?q?docs:=20scope=20USB=20P7-B=20=E2=80=94=20real?= =?UTF-8?q?=20work=20is=20SEL/PEL=20timeout=20computation,=20not=20registe?= =?UTF-8?q?r=20writes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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. --- local/docs/USB-IMPLEMENTATION-PLAN.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/local/docs/USB-IMPLEMENTATION-PLAN.md b/local/docs/USB-IMPLEMENTATION-PLAN.md index f46fe4975d..80a129ced3 100644 --- a/local/docs/USB-IMPLEMENTATION-PLAN.md +++ b/local/docs/USB-IMPLEMENTATION-PLAN.md @@ -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.