Files
i2c-imc-skylake/VERSION
T
Simone 8d70d99ae2 i2c-imc-skylake: hand the engine back quiesced at shutdown
The engine is shared with the firmware, and until now the driver never
returned it: at shutdown the BIOS finds whatever command state the last
transfer left behind.  ws1-mint shows an intermittent poweroff hang
isolated to machine_power_off() -> ACPI _S5 with the engine in session
use; a BIOS SMI handler wedging on a mid-session engine at the S5 trap
is the working hypothesis.  Handing the engine back the way the
firmware left it is correct hygiene regardless of that outcome.

- probe snapshots both pristine CMD words before the driver's first
  transfer, and fails if they cannot be read: an unreadable snapshot
  would turn the handback into writing garbage
- new .shutdown callback (shutdown and kexec): mark both adapters
  suspended, drain the possible in-flight transfer under the lock,
  wait for the engine to go idle, restore the pristine words with GO
  masked.  Best effort: it never blocks the power-off
- resume refreshes the snapshot after the firmware-polling re-check
  passes, since the firmware demonstrably drives the engine across
  suspend; an unreadable refresh leaves the adapters suspended
- the unbind comment now distinguishes unbind (state left as-is, next
  user is another instance of this driver) from shutdown (next user is
  the firmware)

Version 1.0.4.
2026-07-31 11:25:27 +02:00

2 lines
6 B
Plaintext