ec/lenovo/h8/ssdt: Add keyboard backlight interface
Add methods MLCG and MLCS for thinkpad_acpi kernel module. Required for backlight or thinklight control from userspace. Change-Id: Ia65e770e772936c9c32be33c30839a2dee2a107c Signed-off-by: Patrick Rudolph <siro@das-labor.org> Reviewed-on: https://review.coreboot.org/21002 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
This commit is contained in:
committed by
Felix Held
parent
60eca531df
commit
6b7178aa10
@@ -19,6 +19,7 @@ Device (HKEY)
|
|||||||
/* Generated by ssdt.c */
|
/* Generated by ssdt.c */
|
||||||
External (\HBDC, IntObj)
|
External (\HBDC, IntObj)
|
||||||
External (\HWAN, IntObj)
|
External (\HWAN, IntObj)
|
||||||
|
External (\HKBL, IntObj)
|
||||||
|
|
||||||
Name (_HID, EisaId ("IBM0068"))
|
Name (_HID, EisaId ("IBM0068"))
|
||||||
|
|
||||||
@@ -228,4 +229,34 @@ Device (HKEY)
|
|||||||
/* FIXME: Store state at resume */
|
/* FIXME: Store state at resume */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Argument is unused.
|
||||||
|
* Returns the current state:
|
||||||
|
* Bit 9: Backlight HW present
|
||||||
|
* Bit 0-1: Brightness level
|
||||||
|
*/
|
||||||
|
Method (MLCG, 1)
|
||||||
|
{
|
||||||
|
If (HKBL) {
|
||||||
|
Store (0x200, Local0)
|
||||||
|
/* FIXME: Support 2bit brightness control */
|
||||||
|
Or (Local0, \_SB.PCI0.LPCB.EC.KBLT, Local0)
|
||||||
|
Return (Local0)
|
||||||
|
} Else {
|
||||||
|
Return (0)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Set the current state:
|
||||||
|
* Bit 0-1: Brightness level
|
||||||
|
*/
|
||||||
|
Method (MLCS, 1)
|
||||||
|
{
|
||||||
|
If (HKBL) {
|
||||||
|
/* FIXME: Support 2bit brightness control */
|
||||||
|
Store (And(Arg0, 1), \_SB.PCI0.LPCB.EC.WWEB)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -36,6 +36,8 @@ static char *h8_dsdt_scope(struct device *dev, const char *scope)
|
|||||||
*/
|
*/
|
||||||
void h8_ssdt_generator(struct device *dev)
|
void h8_ssdt_generator(struct device *dev)
|
||||||
{
|
{
|
||||||
|
struct ec_lenovo_h8_config *conf = dev->chip_info;
|
||||||
|
|
||||||
if (!acpi_device_path(dev))
|
if (!acpi_device_path(dev))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@@ -47,6 +49,8 @@ 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_write_name_byte("HWAN", h8_has_wwan(dev) ? ONE_OP : ZERO_OP);
|
||||||
|
acpigen_write_name_byte("HKBL", (conf && conf->has_keyboard_backlight) ?
|
||||||
|
ONE_OP : ZERO_OP);
|
||||||
|
|
||||||
acpigen_pop_len(); /* Scope HKEY */
|
acpigen_pop_len(); /* Scope HKEY */
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user