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)) {
|
if (test_bit(EV_KEY, dev->evbit)) {
|
||||||
|
__set_bit(KEY_UNKNOWN, dev->keybit);
|
||||||
__set_bit(EV_MSC, dev->evbit);
|
__set_bit(EV_MSC, dev->evbit);
|
||||||
__set_bit(MSC_SCAN, dev->mscbit);
|
__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 =
|
const struct key_entry *ke =
|
||||||
sparse_keymap_entry_from_scancode(dev, code);
|
sparse_keymap_entry_from_scancode(dev, code);
|
||||||
|
struct key_entry unknown_ke;
|
||||||
|
|
||||||
if (ke) {
|
if (ke) {
|
||||||
sparse_keymap_report_entry(dev, ke, value, autorelease);
|
sparse_keymap_report_entry(dev, ke, value, autorelease);
|
||||||
return true;
|
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;
|
return false;
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(sparse_keymap_report_event);
|
EXPORT_SYMBOL(sparse_keymap_report_event);
|
||||||
|
|
Loading…
Reference in New Issue