[media] redrat3: cap duration in the right place
authorJarod Wilson <jarod@redhat.com>
Wed, 13 Jul 2011 21:26:06 +0000 (18:26 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Wed, 27 Jul 2011 20:55:59 +0000 (17:55 -0300)
Trying to cap duration before multiplying it was obviously wrong.

CC: Chris Dodge <chris@redrat.co.uk>
CC: Andrew Vincer <andrew.vincer@redrat.co.uk>
CC: Stephen Cox <scox_nz@yahoo.com>
Signed-off-by: Jarod Wilson <jarod@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/rc/redrat3.c

index 95a9436..ea5039b 100644 (file)
@@ -496,9 +496,6 @@ static void redrat3_process_ir_data(struct redrat3_dev *rr3)
                u16 val = len_vals[data_vals[i]];
                single_len = redrat3_len_to_us((u32)be16_to_cpu(val));
 
-               /* cap the value to IR_MAX_DURATION */
-               single_len &= IR_MAX_DURATION;
-
                /* we should always get pulse/space/pulse/space samples */
                if (i % 2)
                        rawir.pulse = false;
@@ -506,6 +503,9 @@ static void redrat3_process_ir_data(struct redrat3_dev *rr3)
                        rawir.pulse = true;
 
                rawir.duration = US_TO_NS(single_len);
+               /* cap the value to IR_MAX_DURATION */
+               rawir.duration &= IR_MAX_DURATION;
+
                rr3_dbg(dev, "storing %s with duration %d (i: %d)\n",
                        rawir.pulse ? "pulse" : "space", rawir.duration, i);
                ir_raw_event_store_with_filter(rr3->rc, &rawir);