mirror of https://gitee.com/openkylin/linux.git
Input: sparse-keymap - report KEY_UNKNOWN for unknown scan codes
This allows for debugging non-functional keys easily from userspace. Signed-off-by: Seth Forshee <seth.forshee@canonical.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
This commit is contained in:
parent
f3cf5c4fed
commit
170531bae6
|
@ -209,6 +209,7 @@ int sparse_keymap_setup(struct input_dev *dev,
|
|||
}
|
||||
|
||||
if (test_bit(EV_KEY, dev->evbit)) {
|
||||
__set_bit(KEY_UNKNOWN, dev->keybit);
|
||||
__set_bit(EV_MSC, dev->evbit);
|
||||
__set_bit(MSC_SCAN, dev->mscbit);
|
||||
}
|
||||
|
@ -311,12 +312,19 @@ bool sparse_keymap_report_event(struct input_dev *dev, unsigned int code,
|
|||
{
|
||||
const struct key_entry *ke =
|
||||
sparse_keymap_entry_from_scancode(dev, code);
|
||||
struct key_entry unknown_ke;
|
||||
|
||||
if (ke) {
|
||||
sparse_keymap_report_entry(dev, ke, value, autorelease);
|
||||
return true;
|
||||
}
|
||||
|
||||
/* Report an unknown key event as a debugging aid */
|
||||
unknown_ke.type = KE_KEY;
|
||||
unknown_ke.code = code;
|
||||
unknown_ke.keycode = KEY_UNKNOWN;
|
||||
sparse_keymap_report_entry(dev, &unknown_ke, value, true);
|
||||
|
||||
return false;
|
||||
}
|
||||
EXPORT_SYMBOL(sparse_keymap_report_event);
|
||||
|
|
Loading…
Reference in New Issue