On 11/07/2017 20:35, Sean Young wrote: > Mason wrote: > >> Repeating the test (pressing '1' for one second) with ir-keytable: >> >> # ir-keytable -p all -t -v >> Found device /sys/class/rc/rc0/ >> Input sysfs node is /sys/class/rc/rc0/input0/ >> Event sysfs node is /sys/class/rc/rc0/input0/event0/ >> Parsing uevent /sys/class/rc/rc0/input0/event0/uevent >> /sys/class/rc/rc0/input0/event0/uevent uevent MAJOR=13 >> /sys/class/rc/rc0/input0/event0/uevent uevent MINOR=64 >> /sys/class/rc/rc0/input0/event0/uevent uevent DEVNAME=input/event0 >> Parsing uevent /sys/class/rc/rc0/uevent >> /sys/class/rc/rc0/uevent uevent NAME=rc-empty >> input device is /dev/input/event0 >> /sys/class/rc/rc0/protocols protocol rc-5 (disabled) >> /sys/class/rc/rc0/protocols protocol nec (disabled) >> /sys/class/rc/rc0/protocols protocol rc-6 (disabled) >> Opening /dev/input/event0 >> Input Protocol version: 0x00010001 >> /sys/class/rc/rc0//protocols: Invalid argument >> Couldn't change the IR protocols >> Testing events. Please, press CTRL-C to abort. >> 1296.124872: event type EV_MSC(0x04): scancode = 0x4cb41 >> 1296.124872: event type EV_SYN(0x00). >> 1296.178753: event type EV_MSC(0x04): scancode = 0x00 >> 1296.178753: event type EV_SYN(0x00). >> 1296.286526: event type EV_MSC(0x04): scancode = 0x00 >> 1296.286526: event type EV_SYN(0x00). >> 1296.394303: event type EV_MSC(0x04): scancode = 0x00 >> 1296.394303: event type EV_SYN(0x00). >> 1296.502081: event type EV_MSC(0x04): scancode = 0x00 >> 1296.502081: event type EV_SYN(0x00). >> 1296.609857: event type EV_MSC(0x04): scancode = 0x00 >> 1296.609857: event type EV_SYN(0x00). >> 1296.717635: event type EV_MSC(0x04): scancode = 0x00 >> 1296.717635: event type EV_SYN(0x00). >> 1296.825412: event type EV_MSC(0x04): scancode = 0x00 >> 1296.825412: event type EV_SYN(0x00). >> 1296.933189: event type EV_MSC(0x04): scancode = 0x00 >> 1296.933189: event type EV_SYN(0x00). >> 1297.040967: event type EV_MSC(0x04): scancode = 0x00 >> 1297.040967: event type EV_SYN(0x00). >> 1297.148745: event type EV_MSC(0x04): scancode = 0x00 >> 1297.148745: event type EV_SYN(0x00). >> 1297.256522: event type EV_MSC(0x04): scancode = 0x00 >> 1297.256522: event type EV_SYN(0x00). >> >> It looks like scancode 0x00 means "REPEAT" ? > > This looks like nec repeat to me; nec repeats are sent every 110ms; > however when a repeat occurs, the driver should call rc_repeat(), > sending a scancode of 0 won't work. IIUC, the driver requires some fixup, to behave as user-space would expect; is that correct? Are you the reviewer for rc drivers? >> And 0x4cb41 would be '1' then? >> >> If I compile the legacy driver (which is much more cryptic) >> it outputs 04 cb 41 be > > ~0xbe = 0x41. The code in tangox_ir_handle_nec() has decoded this > into extended nec (so the driver should send RC_TYPE_NECX), see > https://github.com/mansr/linux-tangox/blob/master/drivers/media/rc/tangox-ir.c#L68 Another required fixup IIUC, right? Thank you so much for all the insight you've provided. Regards.