mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-29 23:53:32 +00:00
ACPI: thinkpad-acpi: cleanup hotkey_notify and HKEY log messages
Use a generic message on hotkey_notify to log unknown and unhandled events, and cleanup hotkey_notify a little. Also, document event 0x5010 (brightness changed notification) and do not log it as an unknown event (even if we do not use it for anything right now). Signed-off-by: Henrique de Moraes Holschuh <hmh@hmh.eng.br> Signed-off-by: Len Brown <len.brown@intel.com>
This commit is contained in:
parent
083f17606f
commit
3b64b51d20
2 changed files with 24 additions and 15 deletions
|
@ -475,6 +475,10 @@ Non hot-key ACPI HKEY event map:
|
|||
The above events are not propagated by the driver, except for legacy
|
||||
compatibility purposes when hotkey_report_mode is set to 1.
|
||||
|
||||
0x5010 Brightness level changed (newer Lenovo BIOSes)
|
||||
|
||||
The above events are propagated by the driver.
|
||||
|
||||
Compatibility notes:
|
||||
|
||||
ibm-acpi and thinkpad-acpi 0.15 (mainline kernels before 2.6.23) never
|
||||
|
|
|
@ -2007,6 +2007,7 @@ static void hotkey_notify(struct ibm_struct *ibm, u32 event)
|
|||
unsigned int scancode;
|
||||
int send_acpi_ev;
|
||||
int ignore_acpi_ev;
|
||||
int unk_ev;
|
||||
|
||||
if (event != 0x80) {
|
||||
printk(TPACPI_ERR
|
||||
|
@ -2030,8 +2031,9 @@ static void hotkey_notify(struct ibm_struct *ibm, u32 event)
|
|||
return;
|
||||
}
|
||||
|
||||
send_acpi_ev = 0;
|
||||
send_acpi_ev = 1;
|
||||
ignore_acpi_ev = 0;
|
||||
unk_ev = 0;
|
||||
|
||||
switch (hkey >> 12) {
|
||||
case 1:
|
||||
|
@ -2041,33 +2043,34 @@ static void hotkey_notify(struct ibm_struct *ibm, u32 event)
|
|||
scancode--;
|
||||
if (!(hotkey_source_mask & (1 << scancode))) {
|
||||
tpacpi_input_send_key(scancode);
|
||||
send_acpi_ev = 0;
|
||||
} else {
|
||||
ignore_acpi_ev = 1;
|
||||
}
|
||||
} else {
|
||||
printk(TPACPI_ERR
|
||||
"hotkey 0x%04x out of range "
|
||||
"for keyboard map\n", hkey);
|
||||
send_acpi_ev = 1;
|
||||
unk_ev = 1;
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
/* 0x5000-0x5FFF: LID */
|
||||
/* we don't handle it through this path, just
|
||||
* eat up known LID events */
|
||||
if (hkey != 0x5001 && hkey != 0x5002) {
|
||||
printk(TPACPI_ERR
|
||||
"unknown LID-related HKEY event: "
|
||||
"0x%04x\n", hkey);
|
||||
send_acpi_ev = 1;
|
||||
} else {
|
||||
/* 0x5000-0x5FFF: On screen display helpers */
|
||||
switch (hkey) {
|
||||
case 0x5010:
|
||||
/* Lenovo Vista BIOS: brightness changed */
|
||||
break;
|
||||
case 0x5001:
|
||||
case 0x5002:
|
||||
/* LID switch events. Do not propagate */
|
||||
ignore_acpi_ev = 1;
|
||||
break;
|
||||
default:
|
||||
unk_ev = 1;
|
||||
}
|
||||
break;
|
||||
case 7:
|
||||
/* 0x7000-0x7FFF: misc */
|
||||
if (tp_features.hotkey_wlsw && hkey == 0x7000) {
|
||||
tpacpi_input_send_radiosw();
|
||||
send_acpi_ev = 0;
|
||||
break;
|
||||
}
|
||||
/* fallthrough to default */
|
||||
|
@ -2078,9 +2081,11 @@ static void hotkey_notify(struct ibm_struct *ibm, u32 event)
|
|||
/* case 3: ultra-bay related. maybe bay in dock? */
|
||||
/* 0x3003 - T43 after wake up by bay lever
|
||||
* eject (0x2305) */
|
||||
unk_ev = 1;
|
||||
}
|
||||
if (unk_ev) {
|
||||
printk(TPACPI_NOTICE
|
||||
"unhandled HKEY event 0x%04x\n", hkey);
|
||||
send_acpi_ev = 1;
|
||||
}
|
||||
|
||||
/* Legacy events */
|
||||
|
|
Loading…
Reference in a new issue