ec/lenovo/h8/acpi: Add WWAN ACPI methods

Implement GWAN and SWAN for thinkpad_acpi kernel module.
Both methods allow power control of the WWAN module.

Change-Id: I5550c78e0d36884eca7a8d8ece19b64aaee44045
Signed-off-by: Patrick Rudolph <siro@das-labor.org>
Reviewed-on: https://review.coreboot.org/20986
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
This commit is contained in:
Patrick Rudolph 2017-08-13 12:55:41 +02:00 committed by Felix Held
parent 94d79a338b
commit 60eca531df
2 changed files with 39 additions and 0 deletions

View File

@ -18,6 +18,7 @@ Device (HKEY)
{ {
/* Generated by ssdt.c */ /* Generated by ssdt.c */
External (\HBDC, IntObj) External (\HBDC, IntObj)
External (\HWAN, IntObj)
Name (_HID, EisaId ("IBM0068")) Name (_HID, EisaId ("IBM0068"))
@ -190,4 +191,41 @@ Device (HKEY)
/* FIXME: Store state at resume */ /* FIXME: Store state at resume */
} }
} }
/*
* Returns the current state:
* Bit 0: WWAN HW present
* Bit 1: WWAN radio enabled
* Bit 2: WWAN state at resume
*/
Method (GWAN, 0)
{
If (HWAN) {
Store(One, Local0)
If(\_SB.PCI0.LPCB.EC.WWEB)
{
Or(Local0, 2, Local0)
}
/* FIXME: Implement state at resume, for now Enabled */
Or(Local0, 4, Local0)
Return (Local0)
} Else {
Return (0)
}
}
/*
* Set the current state:
* Bit 1: WWAN radio enabled
* Bit 2: WWAN state at resume
*/
Method (SWAN, 1)
{
If (HWAN) {
ShiftRight (And(Arg0, 2), 1, Local0)
Store (Local0, \_SB.PCI0.LPCB.EC.WWEB)
/* FIXME: Store state at resume */
}
}
} }

View File

@ -46,6 +46,7 @@ void h8_ssdt_generator(struct device *dev)
/* Used by thinkpad_acpi */ /* Used by thinkpad_acpi */
acpigen_write_name_byte("HBDC", h8_has_bdc(dev) ? ONE_OP : ZERO_OP); acpigen_write_name_byte("HBDC", h8_has_bdc(dev) ? ONE_OP : ZERO_OP);
acpigen_write_name_byte("HWAN", h8_has_wwan(dev) ? ONE_OP : ZERO_OP);
acpigen_pop_len(); /* Scope HKEY */ acpigen_pop_len(); /* Scope HKEY */
} }