HomeFreeBSD

re(4): add hw.re.aspm_disable loader tunable

Description

re(4): add hw.re.aspm_disable loader tunable

re(4) has unconditionally disabled ASPM L0s/L1 and CLKREQ at attach
for years; on laptops this costs 200mW+ (requested by adrian@ in the PR).

Make it a tunable following the existing hw.re.* pattern:

  • default 1 keeps today's behavior;
  • 0 preserves the firmware-configured ASPM state at attach and skips the watchdog re-assert from the previous revision.

Documented in re.4.

  • Verified on RTL8168H (XID 0x541): with hw.re.aspm_disable=0, attach no longer logs "ASPM disabled" and pciconf -lcb shows the firmware Link Control state preserved -- including Clock PM, which the unconditional code previously cleared.
  • Default (1) is behaviorally identical to the current driver.
  • Note the tunable also stops the driver clearing CLKREQ, a small power win even where firmware leaves L0s/L1 off.

Reviewed by: adrian
Differential Revision: https://reviews.freebsd.org/D58280
PR: kern/166724

Details

Provenance
jeremie_jourdin.orgAuthored on Jul 19 2026, 6:49 PM
adrianCommitted on Jul 19 2026, 6:49 PM
Reviewer
adrian
Differential Revision
Restricted Differential Revision
Parents
rG42f3088bd980: re(4): harden re_watchdog() recovery and log controller state
Branches
Unknown
Tags
Unknown