mb/google/x86-boards: Get rid of power button device in coreboot

As per the ACPI specification, there are two types of power button
devices:
1. Fixed hardware power button
2. Generic hardware power button

Fixed hardware power button is added by the OSPM if POWER_BUTTON flag
is not set in FADT by the BIOS. This device has its programming model
in PM1x_EVT_BLK. All ACPI compliant OSes are expected to add this
power button device by default if the power button FADT flag is not
set.

On the other hand, generic hardware power button can be used by
platforms if fixed register space cannot be used for the power button
device. In order to support this, power button device object with HID
PNP0C0C is expected to be added to ACPI tables. Additionally,
POWER_BUTTON flag should be set to indicate the presence of control
method for power button.

Chrome EC mainboards implemented the generic hardware power button in
a broken manner i.e. power button object with HID PNP0C0C is added to
ACPI however none of the boards set POWER_BUTTON flag in FADT. This
results in Linux kernel adding both fixed hardware power button as
well as generic hardware power button to the list of devices present
on the system. Though this is mostly harmless, it is logically
incorrect and can confuse any userspace utilities scanning the ACPI
devices.

This change gets rid of the generic hardware power button from all
google mainboards and relies completely on the fixed hardware power
button.

BUG=b:110913245
TEST=Verified that fixed hardware power button still works correctly
on nautilus.

Change-Id: I733e69affc82ed77aa79c5eca6654aaa531476ca
Signed-off-by: Furquan Shaikh <furquan@google.com>
Reviewed-on: https://review.coreboot.org/27272
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
This commit is contained in:
Furquan Shaikh 2018-07-25 08:49:23 -07:00
parent e3816b4bc9
commit d7b88dcbcd
17 changed files with 0 additions and 98 deletions

View File

@ -16,14 +16,6 @@
#include <variant/onboard.h>
Scope (\_SB)
{
Device (PWRB)
{
Name(_HID, EisaId("PNP0C0C"))
}
}
Scope (\_SB.PCI0.RP01)
{
Device (WLAN)

View File

@ -16,14 +16,6 @@
#include <onboard.h>
Scope (\_SB)
{
Device (PWRB)
{
Name(_HID, EisaId("PNP0C0C"))
}
}
/*
* LAN connected to Root Port 3, becomes Root Port 1 after coalesce
*/

View File

@ -27,11 +27,6 @@ Scope (\_SB) {
}
}
Device (PWRB)
{
Name (_HID, EisaId("PNP0C0C"))
}
Device (TPAD)
{
Name (_ADR, 0x0)

View File

@ -17,15 +17,6 @@
#include <variant/onboard.h>
Scope (\_SB)
{
Device (PWRB)
{
Name (_HID, EisaId ("PNP0C0C"))
Name (_UID, 1)
}
}
Scope (\_SB.GPNC)
{
Method (_AEI, 0, Serialized) // _AEI: ACPI Event Interrupts

View File

@ -36,10 +36,6 @@ DefinitionBlock(
Scope (\_SB)
{
Device (PWRB)
{
Name (_HID, EisaId ("PNP0C0C"))
}
Device (PCI0)
{
#include <soc/intel/skylake/acpi/systemagent.asl>

View File

@ -36,10 +36,6 @@ DefinitionBlock(
Scope (\_SB)
{
Device (PWRB)
{
Name (_HID, EisaId ("PNP0C0C"))
}
Device (PCI0)
{
#include <soc/intel/skylake/acpi/systemagent.asl>

View File

@ -13,13 +13,5 @@
* GNU General Public License for more details.
*/
Scope (\_SB)
{
Device (PWRB)
{
Name (_HID, EisaId ("PNP0C0C"))
}
}
/* Variant-specific ACPI, including USB port defs */
#include <variant/acpi/mainboard.asl>

View File

@ -16,14 +16,6 @@
#include <mainboard/google/jecht/onboard.h>
Scope (\_SB)
{
Device (PWRB)
{
Name(_HID, EisaId("PNP0C0C"))
}
}
/*
* LAN connected to Root Port 3, becomes Root Port 1 after coalesce
*/

View File

@ -56,11 +56,6 @@ DefinitionBlock (
/* IRQ Routing mapping for this platform (in \_SB scope) */
#include <variant/acpi/routing.asl>
Device(PWRB) {
Name(_HID, EISAID("PNP0C0C"))
Name(_UID, 0xAA)
}
/* Describe the SOC */
#include <soc.asl>

View File

@ -19,7 +19,6 @@ Scope (\_GPE)
Method (_L08)
{
/* DBGO ("\\_GPE\\_L08\n") */
Notify (\_SB.PWRB, 0x02) /* NOTIFY_DEVICE_WAKE */
}
/* EHCI USB controller PME# SCIMAP24*/
@ -27,7 +26,6 @@ Scope (\_GPE)
{
/* DBGO ("\\_GPE\\_L18\n") */
Notify (\_SB.PCI0.EHC0, 0x02) /* NOTIFY_DEVICE_WAKE */
Notify (\_SB.PWRB, 0x02) /* NOTIFY_DEVICE_WAKE */
}
/* XHCI USB controller PME# SCIMAP56*/
@ -35,6 +33,5 @@ Scope (\_GPE)
{
/* DBGO ("\\_GPE\\_L1F\n") */
Notify (\_SB.PCI0.XHC0, 0x02) /* NOTIFY_DEVICE_WAKE */
Notify (\_SB.PWRB, 0x02) /* NOTIFY_DEVICE_WAKE */
}
} /* End Scope GPE */

View File

@ -17,11 +17,6 @@
#include <mainboard/google/link/onboard.h>
Scope (\_SB) {
Device (PWRB)
{
Name(_HID, EisaId("PNP0C0C"))
}
Device (TPAD)
{
Name (_ADR, 0x0)

View File

@ -41,11 +41,6 @@ Scope (\_SB) {
}
}
Device (PWRB)
{
Name(_HID, EisaId("PNP0C0C"))
}
Device (TPAD)
{
Name (_ADR, 0x0)

View File

@ -36,10 +36,6 @@ DefinitionBlock(
Scope (\_SB)
{
Device (PWRB)
{
Name (_HID, EisaId ("PNP0C0C"))
}
Device (PCI0)
{
/* Image processing unit */

View File

@ -18,11 +18,6 @@
Scope (\_SB)
{
Device (PWRB)
{
Name (_HID, EisaId ("PNP0C0C"))
Name (_UID, 1)
}
#ifdef BOARD_TRACKPAD_IRQ
/* Wake device for touchpad */
Device (TPAD)

View File

@ -14,14 +14,6 @@
#include <onboard.h>
Scope (\_SB)
{
Device (PWRB)
{
Name(_HID, EisaId("PNP0C0C"))
}
}
#include <variant/acpi/mainboard.asl>
/* USB port entries */

View File

@ -33,9 +33,4 @@ Scope (\_SB)
Store (Arg0, \_SB.PCI0.LPCB.EC0.HWLO)
}
}
Device (PWRB)
{
Name (_HID, EisaId("PNP0C0C"))
}
}

View File

@ -37,10 +37,6 @@ DefinitionBlock(
#include <soc/intel/cannonlake/acpi/cpu.asl>
Scope (\_SB) {
Device (PWRB)
{
Name (_HID, EisaId ("PNP0C0C"))
}
Device (PCI0)
{
#include <soc/intel/cannonlake/acpi/northbridge.asl>