I'm trying to rework the ati-remote.c driver to use the input layer better, such as supporting keyboard remapping. And I'm finding documentation on the input layer... lacking. What's the point of these two event types? Should I emit either or both when someone presses a button? Does it matter if the button has an EV_KEY mapping? If I should generate multiple input events for one keypress, what order should they be in? I notice that atkbd.c generates MSC_SCAN, then EV_KEY. But Documentation/laptops/thinkpad-acpi.txt says "A Hot key is mapped to a single input layer EV_KEY event, possibly followed by an EV_MSC MSC_SCAN event." I notice there was a proposed patch to fix this in 2007: http://www.mail-archive.com/linux-input@xxxxxxxxxxxxxxxxxxxxxxxx/msg00482.html This recommends generating EV_KEY/KEY_UNKNOWN events for unfamiliar keys, which atkbd.c (probably the most-used input handler) does not do. The other question is that the ATI remote retransmits scan codes while they key is held down, and key-up has to be inferred via a timeout. Should I generate an MSC_SCAN event for each true reception, or only for the synthesized key events? I have a few other questions about the input layer: - Should I fill in the input_id with the BUS_USB and the device's idVendor, idProduct, and bcdDevice? - What should I put in the input->phys and input->uniq fields? Thank you! -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html