Re: [PATCH 3/3 v2] lirc driver for SoundGraph iMON IR receivers anddisplays
From: Jarod Wilson
Date: Mon Nov 23 2009 - 23:26:30 EST
On 11/23/2009 07:58 AM, Mauro Carvalho Chehab wrote:
Jarod Wilson wrote:
lirc driver for SoundGraph iMON IR receivers and displays
Successfully tested with multiple devices with and without displays.
+static struct usb_device_id imon_usb_id_table[] = {
+ /* TriGem iMON (IR only) -- TG_iMON.inf */
+ { USB_DEVICE(0x0aa8, 0x8001) },
...
Another set of USB vendor ID's... this time, vendors weren't described. The
same comment I did on patch 2/3 applies here... IMO, we should really try
to create a global list of vendors/devices on kernel. Of course this is not
a non-go issue, as it is already present on several other USB drivers.
My first thought is that a global list shared by everyone would be a
pain to manage -- which upstream tree would be the entry point for
additions? I think a global-within-lirc header would be just fine
though. Most usb lirc drivers don't have very long lists, these two
(mceusb and imon) are by far the longest ones.
+
+ /*
+ * Translate received data to pulse and space lengths.
+ * Received data is active low, i.e. pulses are 0 and
+ * spaces are 1.
+ *
+ * My original algorithm was essentially similar to
+ * Changwoo Ryu's with the exception that he switched
+ * the incoming bits to active high and also fed an
+ * initial space to LIRC at the start of a new sequence
+ * if the previous bit was a pulse.
+ *
+ * I've decided to adopt his algorithm.
+ */
+
Before digging into all code details, am I wrong or this device has the
pulse/space decoding inside the chip?
The current generation of imon devices do onboard decoding, but the
driver supports older imon devices as well, which do NOT do onboard
decoding, and follow the code referenced by the above comment block.
In this case, we shouldn't really be converting their IR keystroke events into
a pseudo set of pulse/space marks, but use the standard events interface.
And that's actually the default mode for the devices that do onboard
decoding -- the key mappings are all in lirc_imon.h. A modparam can be
used to override pure input mode and instead pass the decoded hex values
out to userspace for lircd to handle.
Its entirely possible we could split this driver into two, one that is
for the older devices, and another for the newer devices that do onboard
decoding, which is a pure input mode driver (and still usable with lirc
via its devinput userspace driver). It'd be a lot of extra work at the
moment though, and I have no older devices to test with, only the newer
ones.
--
Jarod Wilson
jarod@xxxxxxxxxxxx
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/