diff options
author | Sean Young <sean@mess.org> | 2013-11-03 19:13:57 -0300 |
---|---|---|
committer | Mauro Carvalho Chehab <m.chehab@samsung.com> | 2013-11-07 15:04:12 -0200 |
commit | 9bd766b79a80159338c10f8cec4c1f7ed0fe4a4e (patch) | |
tree | 475be25a4b5ce68d54c672bf397eb764e136760c /drivers/media/rc/iguanair.c | |
parent | 5f27ca418bedd0342942eca61a12f76d73d95962 (diff) | |
download | lwn-9bd766b79a80159338c10f8cec4c1f7ed0fe4a4e.tar.gz lwn-9bd766b79a80159338c10f8cec4c1f7ed0fe4a4e.zip |
[media] iguanair: simplify calculation of carrier delay cycles
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>
Diffstat (limited to 'drivers/media/rc/iguanair.c')
-rw-r--r-- | drivers/media/rc/iguanair.c | 22 |
1 files changed, 6 insertions, 16 deletions
diff --git a/drivers/media/rc/iguanair.c b/drivers/media/rc/iguanair.c index 19632b1c2190..7f05e197680b 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 */ |