V4L/DVB (5332): Ir_rc5_timer_end decoder lockup fix
authorVincent Penne <ziggy@sashipa.com>
Sun, 25 Mar 2007 14:58:23 +0000 (11:58 -0300)
committerMauro Carvalho Chehab <mchehab@infradead.org>
Tue, 27 Mar 2007 11:45:53 +0000 (08:45 -0300)
ir_rc5_timer_end decoder lockup fix

Signed-off-by: Vincent Penne <ziggy@sashipa.com>
Signed-off-by: Hermann Pitton <hermann-pitton@arcor.de>
Signed-off-by: Hartmut Hackmann <hartmut.hackmann@t-online.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
drivers/media/common/ir-functions.c

index cbf7c05648896776e4a60b1bfd01c83956730051..fcb194135627f9e32bb01f8f33db53e4b2a41fdd 100644 (file)
@@ -310,13 +310,15 @@ void ir_rc5_timer_end(unsigned long data)
                    tv.tv_usec - ir->base_time.tv_usec;
        }
 
-       /* Allow some timmer jitter (RC5 is ~24ms anyway so this is ok) */
+       /* signal we're ready to start a new code */
+       ir->active = 0;
+
+       /* Allow some timer jitter (RC5 is ~24ms anyway so this is ok) */
        if (gap < 28000) {
                dprintk(1, "ir-common: spurious timer_end\n");
                return;
        }
 
-       ir->active = 0;
        if (ir->last_bit < 20) {
                /* ignore spurious codes (caused by light/other remotes) */
                dprintk(1, "ir-common: short code: %x\n", ir->code);