diff options
| author | Kevin Bowling <kbowling@FreeBSD.org> | 2026-08-30 08:25:09 +0000 |
|---|---|---|
| committer | Kevin Bowling <kbowling@FreeBSD.org> | 2026-08-31 13:18:43 +0000 |
| commit | 52fbff96549904933898908644f3a99e5cd4cdca (patch) | |
| tree | 2d144aeb621de3827ea1dd61b5ac1090e7df176a /sys/modules/hid/(developers-only) | |
| parent | c6ae11c1b0d96fd2ed0b55c655ff58a46b26ddcb (diff) | |
The PCH suspend path kept a wake link fully powered and did not restore
the negotiated EEE modes after its stop-time reset. Intel provides the
ULP entry and exit machinery in the shared code, but FreeBSD did not
invoke its Sx policy.
Enter ULP on LPT and newer PCH controllers when wake is armed without
directed-unicast, multicast, or broadcast filters, which ULP cannot
preserve. For a link retained by host wake or management, restore the
100BASE-TX and 1000BASE-T LPI controls selected by the local
advertisement and the cached link-partner ability.
Keep these power reductions best-effort: wake filters and PME are
already configured independently, and a ULP or EEE failure is logged
without converting an optional power optimization into a suspend
failure. The existing PCH resume workaround forcibly exits ULP and
clears automatic Sx LPI state before normal initialization.
Validated on a ThinkPad T440p with an I217-LM. FBT confirmed that the
helper received the magic-wake mask during device suspend. The shared
ULP helper returned its documented no-op for the initial I217 device ID.
A full S3 cycle resumed cleanly.
On a ThinkPad P51 with an I219, full S3 waited for a magic packet and
then resumed with the 1-Gbps link and traffic restored.
MFC after: 2 weeks
Sponsored by: BBOX.io
Diffstat (limited to 'sys/modules/hid/(developers-only)')
0 files changed, 0 insertions, 0 deletions
