[media] iguanair: simplify calculation of carrier delay cycles
authorSean Young <sean@mess.org>
Sun, 3 Nov 2013 22:13:57 +0000 (19:13 -0300)
committerMauro Carvalho Chehab <m.chehab@samsung.com>
Thu, 7 Nov 2013 17:04:12 +0000 (15:04 -0200)
Simplify the logic that calculates the carrier, and removes a warning
on avr32 arch:
        drivers/media/rc/iguanair.c: In function 'iguanair_set_tx_carrier':
        drivers/media/rc/iguanair.c:304: warning: 'sevens' may be used uninitialized in this function

Signed-off-by: Sean Young <sean@mess.org>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
Reviewed-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
drivers/media/rc/iguanair.c

index 19632b1c21908cb52e0c483f7a7339f647756e1e..7f05e197680bc7daacbb4072828c83efd4986fd5 100644 (file)
@@ -308,22 +308,12 @@ static int iguanair_set_tx_carrier(struct rc_dev *dev, uint32_t carrier)
                cycles = DIV_ROUND_CLOSEST(24000000, carrier * 2) -
                                                        ir->cycle_overhead;
 
-               /*  make up the the remainer of 4-cycle blocks */
-               switch (cycles & 3) {
-               case 0:
-                       sevens = 0;
-                       break;
-               case 1:
-                       sevens = 3;
-                       break;
-               case 2:
-                       sevens = 2;
-                       break;
-               case 3:
-                       sevens = 1;
-                       break;
-               }
-
+               /*
+                * Calculate minimum number of 7 cycles needed so
+                * we are left with a multiple of 4; so we want to have
+                * (sevens * 7) & 3 == cycles & 3
+                */
+               sevens = (4 - cycles) & 3;
                fours = (cycles - sevens * 7) / 4;
 
                /* magic happens here */