Signed-off-by: Sean Young <[email protected]>
---
 drivers/media/rc/iguanair.c | 22 ++++++----------------
 1 file changed, 6 insertions(+), 16 deletions(-)

diff --git a/drivers/media/rc/iguanair.c b/drivers/media/rc/iguanair.c
index 19632b1..7f05e19 100644
--- a/drivers/media/rc/iguanair.c
+++ b/drivers/media/rc/iguanair.c
@@ -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 */
-- 
1.8.3.1

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to