[media] iguanair: reset the IR state after rx overflow or receiver enable
authorSean Young <sean@mess.org>
Mon, 13 Aug 2012 11:59:44 +0000 (08:59 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Mon, 13 Aug 2012 19:07:19 +0000 (16:07 -0300)
Signed-off-by: Sean Young <sean@mess.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/rc/iguanair.c

index 68172585c961afa0b6c5c2f616219540eafaae88..8de690aa2c7e051410824ab945ef7b19dcb11a2c 100644 (file)
@@ -123,6 +123,7 @@ static void process_ir_data(struct iguanair *ir, unsigned len)
                        break;
                case CMD_RX_OVERFLOW:
                        dev_warn(ir->dev, "receive overflow\n");
+                       ir_raw_event_reset(ir->rc);
                        break;
                default:
                        dev_warn(ir->dev, "control code %02x received\n",
@@ -255,6 +256,9 @@ static int iguanair_receiver(struct iguanair *ir, bool enable)
        struct packet packet = { 0, DIR_OUT, enable ?
                                CMD_RECEIVER_ON : CMD_RECEIVER_OFF };
 
+       if (enable)
+               ir_raw_event_reset(ir->rc);
+
        return iguanair_send(ir, &packet, sizeof(packet));
 }