aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/misc
diff options
context:
space:
mode:
authorHenrique de Moraes Holschuh <hmh@hmh.eng.br>2008-01-08 10:02:51 -0500
committerLen Brown <len.brown@intel.com>2008-02-01 22:26:08 -0500
commit3b64b51d20d9b633bb2efe63af785a49f8092898 (patch)
treec03ff90f8fca9821d068f1b315e6a6685829de10 /drivers/misc
parent083f17606f624c79555e313d87cf37ac1486b073 (diff)
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>
Diffstat (limited to 'drivers/misc')
-rw-r--r--drivers/misc/thinkpad_acpi.c35
1 files changed, 20 insertions, 15 deletions
diff --git a/drivers/misc/thinkpad_acpi.c b/drivers/misc/thinkpad_acpi.c
index c6c25a460c9c..f5f306ae4413 100644
--- a/drivers/misc/thinkpad_acpi.c
+++ b/drivers/misc/thinkpad_acpi.c
@@ -2007,6 +2007,7 @@ static void hotkey_notify(struct ibm_struct *ibm, u32 event)
2007 unsigned int scancode; 2007 unsigned int scancode;
2008 int send_acpi_ev; 2008 int send_acpi_ev;
2009 int ignore_acpi_ev; 2009 int ignore_acpi_ev;
2010 int unk_ev;
2010 2011
2011 if (event != 0x80) { 2012 if (event != 0x80) {
2012 printk(TPACPI_ERR 2013 printk(TPACPI_ERR
@@ -2030,8 +2031,9 @@ static void hotkey_notify(struct ibm_struct *ibm, u32 event)
2030 return; 2031 return;
2031 } 2032 }
2032 2033
2033 send_acpi_ev = 0; 2034 send_acpi_ev = 1;
2034 ignore_acpi_ev = 0; 2035 ignore_acpi_ev = 0;
2036 unk_ev = 0;
2035 2037
2036 switch (hkey >> 12) { 2038 switch (hkey >> 12) {
2037 case 1: 2039 case 1:
@@ -2041,33 +2043,34 @@ static void hotkey_notify(struct ibm_struct *ibm, u32 event)
2041 scancode--; 2043 scancode--;
2042 if (!(hotkey_source_mask & (1 << scancode))) { 2044 if (!(hotkey_source_mask & (1 << scancode))) {
2043 tpacpi_input_send_key(scancode); 2045 tpacpi_input_send_key(scancode);
2046 send_acpi_ev = 0;
2044 } else { 2047 } else {
2045 ignore_acpi_ev = 1; 2048 ignore_acpi_ev = 1;
2046 } 2049 }
2047 } else { 2050 } else {
2048 printk(TPACPI_ERR 2051 unk_ev = 1;
2049 "hotkey 0x%04x out of range "
2050 "for keyboard map\n", hkey);
2051 send_acpi_ev = 1;
2052 } 2052 }
2053 break; 2053 break;
2054 case 5: 2054 case 5:
2055 /* 0x5000-0x5FFF: LID */ 2055 /* 0x5000-0x5FFF: On screen display helpers */
2056 /* we don't handle it through this path, just 2056 switch (hkey) {
2057 * eat up known LID events */ 2057 case 0x5010:
2058 if (hkey != 0x5001 && hkey != 0x5002) { 2058 /* Lenovo Vista BIOS: brightness changed */
2059 printk(TPACPI_ERR 2059 break;
2060 "unknown LID-related HKEY event: " 2060 case 0x5001:
2061 "0x%04x\n", hkey); 2061 case 0x5002:
2062 send_acpi_ev = 1; 2062 /* LID switch events. Do not propagate */
2063 } else {
2064 ignore_acpi_ev = 1; 2063 ignore_acpi_ev = 1;
2064 break;
2065 default:
2066 unk_ev = 1;
2065 } 2067 }
2066 break; 2068 break;
2067 case 7: 2069 case 7:
2068 /* 0x7000-0x7FFF: misc */ 2070 /* 0x7000-0x7FFF: misc */
2069 if (tp_features.hotkey_wlsw && hkey == 0x7000) { 2071 if (tp_features.hotkey_wlsw && hkey == 0x7000) {
2070 tpacpi_input_send_radiosw(); 2072 tpacpi_input_send_radiosw();
2073 send_acpi_ev = 0;
2071 break; 2074 break;
2072 } 2075 }
2073 /* fallthrough to default */ 2076 /* fallthrough to default */
@@ -2078,9 +2081,11 @@ static void hotkey_notify(struct ibm_struct *ibm, u32 event)
2078 /* case 3: ultra-bay related. maybe bay in dock? */ 2081 /* case 3: ultra-bay related. maybe bay in dock? */
2079 /* 0x3003 - T43 after wake up by bay lever 2082 /* 0x3003 - T43 after wake up by bay lever
2080 * eject (0x2305) */ 2083 * eject (0x2305) */
2084 unk_ev = 1;
2085 }
2086 if (unk_ev) {
2081 printk(TPACPI_NOTICE 2087 printk(TPACPI_NOTICE
2082 "unhandled HKEY event 0x%04x\n", hkey); 2088 "unhandled HKEY event 0x%04x\n", hkey);
2083 send_acpi_ev = 1;
2084 } 2089 }
2085 2090
2086 /* Legacy events */ 2091 /* Legacy events */