On Mon, Jan 22, 2018 at 12:59 PM, Marco Martin <notmart@xxxxxxxxx> wrote: > On Fri, Jan 19, 2018 at 6:29 PM, Dmitry Torokhov > <dmitry.torokhov@xxxxxxxxx> wrote: >>> We discussed a little more on the bug he filed with attached DSDT. I think that in >>> sparse keymap he can use KE_VSW for the entries and sparse keymap can handle. >> >> No it should be KE_SW I believe, as the "keycode" encodes the state. >> See example in intel-hid.c. >> >> So you probably want: >> >> ... >> { KE_SW, 0xCC, { .sw = { SW_TABLET_MODE, 1 } } }, /* Press */ >> { KE_SW, 0xCD, { .sw = { SW_TABLET_MODE, 0 } } }, /* Release */ >> >> Thanks. > > If I add those lines to intel_vbtn_keymap and remove the two special > cases for 0xCC and 0xCD, it does work, but only if I explicitly call > input_sync(priv->input_dev) after sparse_keymap_report_event() > otherwise i don't get the event (cheching for instance with evtest) > until a sync gets called (i tried to put the sync only for 0xcd and in > that case i get both 0xcc and 0xcd when i go out of tablet mode) with the caveat of an input_sync every event, new patch as a new thread with Mario's and Dmitry's suggestions integrated in, and formatted to conform checkpatch controls -- Marco Martin