Commit 56e2c200 authored by Henrique de Moraes Holschuh's avatar Henrique de Moraes Holschuh Committed by Len Brown

thinkpad-acpi: enhanced debugging messages for the hotkey subdriver

Enhance debugging messages for the hotkey subdriver.
Signed-off-by: default avatarHenrique de Moraes Holschuh <hmh@hmh.eng.br>
Signed-off-by: default avatarLen Brown <len.brown@intel.com>
parent bee4cd9b
...@@ -1496,6 +1496,7 @@ to enable more than one output class, just add their values. ...@@ -1496,6 +1496,7 @@ to enable more than one output class, just add their values.
0x0002 Removal 0x0002 Removal
0x0004 RF Transmitter control (RFKILL) 0x0004 RF Transmitter control (RFKILL)
(bluetooth, WWAN, UWB...) (bluetooth, WWAN, UWB...)
0x0008 HKEY event interface, hotkeys
There is also a kernel build option to enable more debugging There is also a kernel build option to enable more debugging
information, which may be necessary to debug driver problems. information, which may be necessary to debug driver problems.
......
...@@ -190,6 +190,7 @@ enum { ...@@ -190,6 +190,7 @@ enum {
#define TPACPI_DBG_INIT 0x0001 #define TPACPI_DBG_INIT 0x0001
#define TPACPI_DBG_EXIT 0x0002 #define TPACPI_DBG_EXIT 0x0002
#define TPACPI_DBG_RFKILL 0x0004 #define TPACPI_DBG_RFKILL 0x0004
#define TPACPI_DBG_HKEY 0x0008
#define onoff(status, bit) ((status) & (1 << (bit)) ? "on" : "off") #define onoff(status, bit) ((status) & (1 << (bit)) ? "on" : "off")
#define enabled(status, bit) ((status) & (1 << (bit)) ? "enabled" : "disabled") #define enabled(status, bit) ((status) & (1 << (bit)) ? "enabled" : "disabled")
...@@ -1961,6 +1962,8 @@ static ssize_t hotkey_mask_store(struct device *dev, ...@@ -1961,6 +1962,8 @@ static ssize_t hotkey_mask_store(struct device *dev,
mutex_unlock(&hotkey_mutex); mutex_unlock(&hotkey_mutex);
tpacpi_disclose_usertask("hotkey_mask", "set to 0x%08lx\n", t);
return (res) ? res : count; return (res) ? res : count;
} }
...@@ -2047,6 +2050,8 @@ static ssize_t hotkey_source_mask_store(struct device *dev, ...@@ -2047,6 +2050,8 @@ static ssize_t hotkey_source_mask_store(struct device *dev,
mutex_unlock(&hotkey_mutex); mutex_unlock(&hotkey_mutex);
tpacpi_disclose_usertask("hotkey_source_mask", "set to 0x%08lx\n", t);
return count; return count;
} }
...@@ -2079,6 +2084,8 @@ static ssize_t hotkey_poll_freq_store(struct device *dev, ...@@ -2079,6 +2084,8 @@ static ssize_t hotkey_poll_freq_store(struct device *dev,
hotkey_poll_setup(1); hotkey_poll_setup(1);
mutex_unlock(&hotkey_mutex); mutex_unlock(&hotkey_mutex);
tpacpi_disclose_usertask("hotkey_poll_freq", "set to %lu\n", t);
return count; return count;
} }
...@@ -2248,7 +2255,7 @@ static void hotkey_exit(void) ...@@ -2248,7 +2255,7 @@ static void hotkey_exit(void)
kfree(hotkey_keycode_map); kfree(hotkey_keycode_map);
if (tp_features.hotkey) { if (tp_features.hotkey) {
dbg_printk(TPACPI_DBG_EXIT, dbg_printk(TPACPI_DBG_EXIT | TPACPI_DBG_HKEY,
"restoring original hot key mask\n"); "restoring original hot key mask\n");
/* no short-circuit boolean operator below! */ /* no short-circuit boolean operator below! */
if ((hotkey_mask_set(hotkey_orig_mask) | if ((hotkey_mask_set(hotkey_orig_mask) |
...@@ -2378,7 +2385,8 @@ static int __init hotkey_init(struct ibm_init_struct *iibm) ...@@ -2378,7 +2385,8 @@ static int __init hotkey_init(struct ibm_init_struct *iibm)
int status; int status;
int hkeyv; int hkeyv;
vdbg_printk(TPACPI_DBG_INIT, "initializing hotkey subdriver\n"); vdbg_printk(TPACPI_DBG_INIT | TPACPI_DBG_HKEY,
"initializing hotkey subdriver\n");
BUG_ON(!tpacpi_inputdev); BUG_ON(!tpacpi_inputdev);
BUG_ON(tpacpi_inputdev->open != NULL || BUG_ON(tpacpi_inputdev->open != NULL ||
...@@ -2395,7 +2403,8 @@ static int __init hotkey_init(struct ibm_init_struct *iibm) ...@@ -2395,7 +2403,8 @@ static int __init hotkey_init(struct ibm_init_struct *iibm)
/* hotkey not supported on 570 */ /* hotkey not supported on 570 */
tp_features.hotkey = hkey_handle != NULL; tp_features.hotkey = hkey_handle != NULL;
vdbg_printk(TPACPI_DBG_INIT, "hotkeys are %s\n", vdbg_printk(TPACPI_DBG_INIT | TPACPI_DBG_HKEY,
"hotkeys are %s\n",
str_supported(tp_features.hotkey)); str_supported(tp_features.hotkey));
if (!tp_features.hotkey) if (!tp_features.hotkey)
...@@ -2427,10 +2436,14 @@ static int __init hotkey_init(struct ibm_init_struct *iibm) ...@@ -2427,10 +2436,14 @@ static int __init hotkey_init(struct ibm_init_struct *iibm)
* T4x, X31, and later * T4x, X31, and later
*/ */
tp_features.hotkey_mask = 1; tp_features.hotkey_mask = 1;
vdbg_printk(TPACPI_DBG_INIT | TPACPI_DBG_HKEY,
"firmware HKEY interface version: 0x%x\n",
hkeyv);
} }
} }
vdbg_printk(TPACPI_DBG_INIT, "hotkey masks are %s\n", vdbg_printk(TPACPI_DBG_INIT | TPACPI_DBG_HKEY,
"hotkey masks are %s\n",
str_supported(tp_features.hotkey_mask)); str_supported(tp_features.hotkey_mask));
if (tp_features.hotkey_mask) { if (tp_features.hotkey_mask) {
...@@ -2469,7 +2482,7 @@ static int __init hotkey_init(struct ibm_init_struct *iibm) ...@@ -2469,7 +2482,7 @@ static int __init hotkey_init(struct ibm_init_struct *iibm)
hotkey_source_mask = TPACPI_HKEY_NVRAM_GOOD_MASK; hotkey_source_mask = TPACPI_HKEY_NVRAM_GOOD_MASK;
} }
vdbg_printk(TPACPI_DBG_INIT, vdbg_printk(TPACPI_DBG_INIT | TPACPI_DBG_HKEY,
"hotkey source mask 0x%08x, polling freq %d\n", "hotkey source mask 0x%08x, polling freq %d\n",
hotkey_source_mask, hotkey_poll_freq); hotkey_source_mask, hotkey_poll_freq);
#endif #endif
...@@ -2523,12 +2536,12 @@ static int __init hotkey_init(struct ibm_init_struct *iibm) ...@@ -2523,12 +2536,12 @@ static int __init hotkey_init(struct ibm_init_struct *iibm)
} }
if (thinkpad_id.vendor == PCI_VENDOR_ID_LENOVO) { if (thinkpad_id.vendor == PCI_VENDOR_ID_LENOVO) {
dbg_printk(TPACPI_DBG_INIT, dbg_printk(TPACPI_DBG_INIT | TPACPI_DBG_HKEY,
"using Lenovo default hot key map\n"); "using Lenovo default hot key map\n");
memcpy(hotkey_keycode_map, &lenovo_keycode_map, memcpy(hotkey_keycode_map, &lenovo_keycode_map,
TPACPI_HOTKEY_MAP_SIZE); TPACPI_HOTKEY_MAP_SIZE);
} else { } else {
dbg_printk(TPACPI_DBG_INIT, dbg_printk(TPACPI_DBG_INIT | TPACPI_DBG_HKEY,
"using IBM default hot key map\n"); "using IBM default hot key map\n");
memcpy(hotkey_keycode_map, &ibm_keycode_map, memcpy(hotkey_keycode_map, &ibm_keycode_map,
TPACPI_HOTKEY_MAP_SIZE); TPACPI_HOTKEY_MAP_SIZE);
...@@ -2585,7 +2598,8 @@ static int __init hotkey_init(struct ibm_init_struct *iibm) ...@@ -2585,7 +2598,8 @@ static int __init hotkey_init(struct ibm_init_struct *iibm)
| (1 << TP_ACPI_HOTKEYSCAN_FNEND); | (1 << TP_ACPI_HOTKEYSCAN_FNEND);
} }
dbg_printk(TPACPI_DBG_INIT, "enabling hot key handling\n"); dbg_printk(TPACPI_DBG_INIT | TPACPI_DBG_HKEY,
"enabling firmware HKEY event interface...\n");
res = hotkey_status_set(true); res = hotkey_status_set(true);
if (res) { if (res) {
hotkey_exit(); hotkey_exit();
...@@ -2599,8 +2613,8 @@ static int __init hotkey_init(struct ibm_init_struct *iibm) ...@@ -2599,8 +2613,8 @@ static int __init hotkey_init(struct ibm_init_struct *iibm)
return res; return res;
} }
dbg_printk(TPACPI_DBG_INIT, dbg_printk(TPACPI_DBG_INIT | TPACPI_DBG_HKEY,
"legacy hot key reporting over procfs %s\n", "legacy ibm/hotkey event reporting over procfs %s\n",
(hotkey_report_mode < 2) ? (hotkey_report_mode < 2) ?
"enabled" : "disabled"); "enabled" : "disabled");
...@@ -2971,6 +2985,11 @@ static int hotkey_write(char *buf) ...@@ -2971,6 +2985,11 @@ static int hotkey_write(char *buf)
goto errexit; goto errexit;
} }
} }
if (!res)
tpacpi_disclose_usertask("procfs hotkey",
"set mask to 0x%08x\n", mask);
if (!res && mask != hotkey_mask) if (!res && mask != hotkey_mask)
res = hotkey_mask_set(mask); res = hotkey_mask_set(mask);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment