At Tue, 5 Aug 2008 11:01:00 +0200, Phil Jordan wrote:
From: Phillip Michael Jordan phil@philjordan.eu
The support for the SB Extigy's remote seems to be broken in all recent ALSA versions, including 1.0.17. The driver detects the event correctly, then submits a URB to query the RC code. On the Extigy, the URB is submitted with a length of 2 bytes. My hardware, however, only replies with 1 byte, containing the correct RC button code. The current implementation discards this as being too short. (line 1784 of usbmixer.c)
This patch specifies a "minimum packet length" in the remote control configuration. I've left the values for the Audigy 2/Live! the same as the packet length, as I'm assuming the existing code works with them. (I don't have the hardware to confirm) This fixes the Extigy RC support, e.g. for use with Lirc.
Signed-off-by: Phillip Michael Jordan phil@philjordan.eu
An alternative, simpler fix would be to change the check on line 1784 to
if (urb->status < 0 || urb->actual_length < rc->offset + rc->length)
On the Extigy, this works out the same as the fix proposed in the patch (urb->actual_length < 1), but I have no idea how this would behave with the other types of hardware.
I think your fix is more flexible because you can set a different value for each device type in case any device behaves differently.
Thus I applied your patch as is on my tree now.
Thanks,
Takashi