Hi All,
While this is a replacement for
https://lore.kernel.org/linux-acpi/12803663.O9o76ZdvQC@rafael.j.wysocki/
it goes much farther than the simple workaround, so I've decided to start
over version numbering from 1.
The motivation is (again) to make the _OSC evaluation more robust against
platform firmware deficiencies related to setting error bits in _OSC
return buffers by mistake (which apparently don't affect alternative OSes),
but the approach is more in-depth now.
The first 5 patches are preliminary. The first one fixes the current
inconsistent handling of _OSC error bits. The second one reworks the
printing of debug messages from acpi_run_osc() for clarity. Patch
[3/8] splits the _OSC evaluation code out of acpi_run_osc() (so it
can be used in other functions), and patch [4/8] splits the handling
of _OSC error bits out of it (for the same purpose). Patch [5/8] is
just a by-the-way simple cleanup.
Patch [6/8] introduces a new function for handling _OSC handshakes in
a way that should be less susceptible to failing in certain cases due
to platform firmware mistakes that should not be fatal and makes the
\_SB._OSC platform features handling code use it.
Patch [7/8] is a cleanup on top of the previous one, and patch [8/8]
updates the USB4 \_SB._OSC features handling to use the new function
introduced in patch [8/8].
Thanks!