[PATCH v2.1 0/8] ACPI: bus: Rework of the \_SB._OSC handling

Rafael J. Wysocki posted 8 patches 1 month, 2 weeks ago
Only 1 patches received!
[PATCH v2.1 0/8] ACPI: bus: Rework of the \_SB._OSC handling
Posted by Rafael J. Wysocki 1 month, 2 weeks ago
Hi All,

This is an update of

https://lore.kernel.org/linux-acpi/5049211.GXAFRqVoOG@rafael.j.wysocki/

and the version is 2.1 because I've already posted a v2 of the first patch:

https://lore.kernel.org/linux-acpi/5967663.DvuYhMxLoT@rafael.j.wysocki/

which is updated again (in a minor way) is this series.

The original motivation was 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
since it can be argued that the current implementation of acpi_run_osc()
does not follow the specification exactly (see the changelog of patch
[1/8] for details), this is now more in the fixes territory.  However,
all of the patches except for the [1/8] can be regarded as cleanups and
optimizations.

The essential changes takes place in patch [1/8] this time.  It fixes
the error handling in acpi_run_osc() to remove inconsistencies from it
and follow the _OSC definition more closely, which also addresses the
"robustness" issue as kind of a side effect.

The second one reworks the printing of debug messages from acpi_run_osc()
for clarity, like in v1.  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 helper function for handling _OSC handshakes
in a generic way that should allow some code duplication and unnecessary
overhead to be avoided going forward 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 [6/8].

Thanks!