input: imon driver for SoundGraph iMON/Antec Veris IR devices
Subsystems (3)
PATCH RESEND v2 1/1 input: imon driver for SoundGraph iMON/Antec Veris IR devices
This is an input layer driver for the SoundGraph iMON and Antec Veris IR and/or Display (LCD/VFD/VGA touchscreen) devices that do onboard signal decoding.
This driver has been baking for quite a while in the lirc tree, as lirc_imon, which supported both all the current onboard decoding imon devices, as well as some older raw IR ones. I've split support into two different drivers now, this one, a pure input driver with no ties to lirc at all (device can be used with lircd via its userspace devinput driver though) and a pure lirc driver for the older devices that don't do onboard decoding. There's a bit of code duplication between the two, but not much anymore...
I did start using *some* of the new sparse keymap code for this driver, but I quickly found I really needed more access to the raw data (as well as 64-bit hw codes), so I'm really only using sparse_keymap_{setup,free} right now, and I've not had cause to implement {s,g}etkeycode to date. Work for the future.
Heavily tested with an Antec Veris Elite (IR + VFD), lightly tested with an Antec Veris Premiere (IR + LCD), works quite well on both, using both the stock Antec RM-200 remote and a Windows MCE remote (as well as with a Logitech Harmony 880 programmed to emulate the Antec remote).
Version 2 changes:
- Make separate const fops for lcd and vfd character devices
- Move key tables into main driver source
- Remove assorted lirc legacy cruft
- Fix a use-after-free bug
- Reduced printk spew
- Heavily refactor imon_probe() into smaller functions
- Refactor imon_incoming_packet() into smaller functions
- Make tx.busy actually work as intended (with memory barriers)
- Fix key table lookup issue on big-endian systems
- Make variables used as bools actual bool types
Even after all that churn, its still working. :)
--- drivers/input/misc/Kconfig | 12 + drivers/input/misc/Makefile | 1 + drivers/input/misc/imon.c | 2430 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 2443 insertions(+), 0 deletions(-)
drivers/input/misc/Kconfig +12 -0
@@ -319,4 +319,16 @@ config INPUT_PCAP To compile this driver as a module, choose M here: the module will be called pcap_keys. +config INPUT_IMON + tristate "SoundGraph iMON Receiver and Display" + depends on USB_ARCH_HAS_HCD + select USB + select INPUT_SPARSEKMAP + help + Say Y here if you want to use a SoundGraph iMON (aka Antec Veris) + IR Receiver and/or LCD/VFD/VGA display. + + To compile this driver as a module, choose M here: the + module will be called imon. + endif
drivers/input/misc/Makefile +1 -0
@@ -13,6 +13,7 @@ obj-$(CONFIG_INPUT_CM109) += cm109.o obj-$(CONFIG_INPUT_COBALT_BTNS) += cobalt_btns.o obj-$(CONFIG_INPUT_DM355EVM) += dm355evm_keys.o obj-$(CONFIG_HP_SDC_RTC) += hp_sdc_rtc.o +obj-$(CONFIG_INPUT_IMON) += imon.o obj-$(CONFIG_INPUT_IXP4XX_BEEPER) += ixp4xx-beeper.o obj-$(CONFIG_INPUT_KEYSPAN_REMOTE) += keyspan_remote.o obj-$(CONFIG_INPUT_M68K_BEEP) += m68kspkr.o
drivers/input/misc/imon.c new file +2430 -0
2,430 lines not on this page · raw message
Signature · 2 lines
Jarod Wilson [email protected]