diff options
author | Henrique de Moraes Holschuh <hmh@hmh.eng.br> | 2007-09-23 16:39:05 +0200 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2007-09-24 04:38:15 +0200 |
commit | 3e5ce914bd17335ca74a7c7b06a776c6be6ca434 (patch) | |
tree | 27e8bb857b1c4da34fa131816e08c6a398852adc /drivers | |
parent | ACPI: thinkpad-acpi: dequeue all pending hot key events at once (v2.2) (diff) | |
download | linux-3e5ce914bd17335ca74a7c7b06a776c6be6ca434.tar.xz linux-3e5ce914bd17335ca74a7c7b06a776c6be6ca434.zip |
ACPI: thinkpad-acpi: fix regression on HKEY LID event handling
We were letting ThinkPad-specific LID events through to userspace again,
instead of dropping them. Fix it. We don't want to give userspace the
option of not using generic LID handling.
Signed-off-by: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/misc/thinkpad_acpi.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/misc/thinkpad_acpi.c b/drivers/misc/thinkpad_acpi.c index 3efe81b1b73c..0a33c6ee4508 100644 --- a/drivers/misc/thinkpad_acpi.c +++ b/drivers/misc/thinkpad_acpi.c @@ -1197,6 +1197,7 @@ static void hotkey_notify(struct ibm_struct *ibm, u32 event) u32 hkey; unsigned int keycode, scancode; int send_acpi_ev; + int ignore_acpi_ev; if (event != 0x80) { printk(IBM_ERR "unknown HKEY notification event %d\n", event); @@ -1219,6 +1220,7 @@ static void hotkey_notify(struct ibm_struct *ibm, u32 event) } send_acpi_ev = 0; + ignore_acpi_ev = 0; switch (hkey >> 12) { case 1: @@ -1244,6 +1246,8 @@ static void hotkey_notify(struct ibm_struct *ibm, u32 event) "unknown LID-related HKEY event: 0x%04x\n", hkey); send_acpi_ev = 1; + } else { + ignore_acpi_ev = 1; } break; case 7: @@ -1263,11 +1267,12 @@ static void hotkey_notify(struct ibm_struct *ibm, u32 event) } /* Legacy events */ - if (send_acpi_ev || hotkey_report_mode < 2) + if (!ignore_acpi_ev && (send_acpi_ev || hotkey_report_mode < 2)) { acpi_bus_generate_proc_event(ibm->acpi->device, event, hkey); + } /* netlink events */ - if (send_acpi_ev) { + if (!ignore_acpi_ev && send_acpi_ev) { acpi_bus_generate_netlink_event(ibm->acpi->device->pnp.device_class, ibm->acpi->device->dev.bus_id, event, hkey); |