soc/amd/{cezanne,common}/acpi: Add _OSC method

The linux kernel requires a valid _OSC method. Otherwise the _LPI table
is ignored.
See https://source.chromium.org/chromiumos/chromiumos/codesearch/+/main:src/third_party/kernel/v5.10/drivers/acpi/bus.c;l=324

Before this patch:
acpi_processor_get_lpi_info: LPI is not supported

After this patch:
acpi_processor_evaluate_lpi: ACPI: \_SB_.CP00: ACPI: Found 4 power states

BUG=b:178728116
TEST=Boot OS and verify _LPI table is parsed

Signed-off-by: Raul E Rangel <rrangel@chromium.org>
Change-Id: I44e554b9db6f70fdd1559105cdaee53aeb2bfbf5
Reviewed-on: https://review.coreboot.org/c/coreboot/+/52528
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Marshall Dawson <marshalldawson3rd@gmail.com>
This commit is contained in:
Raul E Rangel 2021-04-19 17:09:30 -06:00 committed by Raul Rangel
parent e3f7645a8b
commit a89a4ea8ea
2 changed files with 24 additions and 0 deletions

View File

@ -8,6 +8,8 @@ Scope(\_SB) {
#include <soc/amd/common/acpi/gpio_bank_lib.asl>
#include <soc/amd/common/acpi/osc.asl>
#include "pci_int_defs.asl"
#include "mmio.asl"

View File

@ -0,0 +1,22 @@
/* SPDX-License-Identifier: GPL-2.0-only */
#include <acpi/acpi_osc.h>
/*
* Platform-Wide _OSC Operating System Capabilities
*
* Arg0: A Buffer containing a UUID
* Arg1: An Integer containing a Revision ID of the buffer format
* Arg2: An Integer containing a count of entries in Arg3
* Arg3: A Buffer containing a list of DWORD capabilities
*/
Method (_OSC, 4, NotSerialized) {
CreateDWordField (Arg3, 0, CDW1)
If (Arg0 == ToUUID (OSC_SB_UUID)) {
/* Don't mask any capability bits off. */
Return (Arg3)
} Else {
CDW1 |= OSC_CDW1_UNRECOGNIZED_UUID
Return (Arg3)
}
}