I think this could start to be integrated in the trunk. If anyone thinks this isn't a good idea, or that major changes in the approach are needed, please let me know.
My approach would be:
For the initial checkin, all unconverted cameras would be set to use KBD_CUSTOM_ALL i.e. use their own kbd.c and ignore the current generic code. This would be temporary except for the ones (like ixus30) that need radically different kbd.c code.
Start converting the don't have any special weirdness blind, as well as cameras that have testers available. A list of which cameras haven't been tested should be kept.
Additional generic code for e.g. inverted key logic, the extra button hack, can be added later.
some other random notes:
* GetKbdState is found by the sig finder on many cams now, and can be used instead of reading MMIOs directly.
* KEY_DUMMY will be removed
* MALLOCD_STACK for vxworks kbd task was never used and can be removed
* Using C code in the vxworks naked mykbd_task is suspect
* DryOS on cams that start kbd_task directly can merge mykbd_task and mykbd_task_proceed (see D10 etc in patch)
* alt_mode_key_mask can probably be removed at some point
* Many kbd.c assume USB_IDX == SD_READONLY_IDX