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>

authored by Seth Forshee and committed by Dmitry Torokhov 170531ba f3cf5c4f

+8
+8
drivers/input/sparse-keymap.c
··· 209 209 } 210 210 211 211 if (test_bit(EV_KEY, dev->evbit)) { 212 + __set_bit(KEY_UNKNOWN, dev->keybit); 212 213 __set_bit(EV_MSC, dev->evbit); 213 214 __set_bit(MSC_SCAN, dev->mscbit); 214 215 } ··· 312 311 { 313 312 const struct key_entry *ke = 314 313 sparse_keymap_entry_from_scancode(dev, code); 314 + struct key_entry unknown_ke; 315 315 316 316 if (ke) { 317 317 sparse_keymap_report_entry(dev, ke, value, autorelease); 318 318 return true; 319 319 } 320 + 321 + /* Report an unknown key event as a debugging aid */ 322 + unknown_ke.type = KE_KEY; 323 + unknown_ke.code = code; 324 + unknown_ke.keycode = KEY_UNKNOWN; 325 + sparse_keymap_report_entry(dev, &unknown_ke, value, true); 320 326 321 327 return false; 322 328 }