OSDN Git Service

[media] iguanair: fix receiver overflow
authorSean Young <sean@mess.org>
Mon, 13 Aug 2012 11:59:45 +0000 (08:59 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Mon, 13 Aug 2012 19:19:10 +0000 (16:19 -0300)
The Pioneer CU-700 remote causes receiver overflows if you hold down any
button. The remote does not send NEC IR repeats, it repeats the entire
NEC code after 20ms.

The iguanair hardware advertises an interval of 10 which just not enough;
with 100 URBs per second and at most 7 edges per URB, we handle at most
700 edges per second. The remote generates about 900.

Signed-off-by: Sean Young <sean@mess.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/rc/iguanair.c

index 9810008..6a09c2e 100644 (file)
@@ -484,9 +484,8 @@ static int __devinit iguanair_probe(struct usb_interface *intf,
        init_completion(&ir->completion);
 
        pipein = usb_rcvintpipe(udev, idesc->endpoint[0].desc.bEndpointAddress);
-       usb_fill_int_urb(ir->urb_in, udev, pipein, ir->buf_in,
-               MAX_PACKET_SIZE, iguanair_rx, ir,
-               idesc->endpoint[0].desc.bInterval);
+       usb_fill_int_urb(ir->urb_in, udev, pipein, ir->buf_in, MAX_PACKET_SIZE,
+                                                        iguanair_rx, ir, 1);
        ir->urb_in->transfer_dma = ir->dma_in;
        ir->urb_in->transfer_flags |= URB_NO_TRANSFER_DMA_MAP;