Files
RedBear-OS/drivers/usb
Red Bear OS 01cab772aa xhcid: P7-A slice 1 — USB 2.0 Hardware LPM detection + PORT enable
First USB 2.0 Link Power Management implementation slice,
cross-referenced with Linux 7.1 drivers/usb/host/xhci.c:
  xhci_set_usb2_hardware_lpm() and xhci-port.h.

capability.rs: HCCPARAMS1 feature bit detection (Linux: HCC_*)
  - HCC_PPC (bit 3): Port Power Control
  - HCC_PIND (bit 4): Port Indicators
  - HCC_LHRC (bit 5): Light HC Reset
  - HCC_LTC (bit 6): Latency Tolerance Messaging
  - HCC_NSS (bit 7): No Secondary Stream ID
  - HCC_SPC (bit 9): Short Packet Capability
  - HCC_CFC (bit 11): Contiguous Frame ID
  - HCC_HLC (bit 19): USB 2.0 Hardware LPM Capability (xHCI 1.1+)

port.rs: PORTHLPMC register bit definitions (Linux: xhci-port.h)
  - PORT_HLE: Hardware LPM Enable (bit 16)
  - PORT_HIRD_MASK, PORT_L1_TIMEOUT_MASK, PORT_BESLD_MASK
  - XHCI_DEFAULT_BESL = 4, XHCI_L1_TIMEOUT = 512us
  - Port::enable_lpm(hird, l1_timeout): programs PORTHLPMC
  - Port::disable_lpm(): clears PORTHLPMC

mod.rs:
  - init() logs HCC1.HLC capability
  - LPM-aware quirk XHCI_HW_LPM_DISABLE gates LPM enable

This makes USB 2.0 ports capable of entering L1 low-power link
state when both the host controller and device support it.
Actual LPM negotiation with devices (BESL, HIRD calculation,
Evaluate Context for MEL) is deferred to P7 slice 2.
2026-07-07 12:40:15 +03:00
..