forked from Minki/linux
thinkpad-acpi: enhanced debugging messages for the hotkey subdriver
Enhance debugging messages for the hotkey subdriver. 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
bee4cd9b9e
commit
56e2c20094
@ -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 {
|
|||||||
#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,
|
|||||||
|
|
||||||
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,
|
|||||||
|
|
||||||
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,
|
|||||||
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)
|
|||||||
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)
|
|||||||
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)
|
|||||||
/* 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)
|
|||||||
* 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)
|
|||||||
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)
|
|||||||
}
|
}
|
||||||
|
|
||||||
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)
|
|||||||
| (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)
|
|||||||
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)
|
|||||||
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);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user