From: Romit Dasgupta <[email protected]>

For integer values x and y; int div x / y causes truncation. Current
omap_twl_uv_to_vsel function implements an equivalent of ceil which
is based on an if condition to check truncation and round up. We can
do this in a more optimal manner without the if condition. The round
up is handled by adding the round off factor prior to truncation as:
(x + (y - 1)) / y

Cc: Kevin Hilman <[email protected]>
Acked-by: Nishanth Menon <[email protected]>

Signed-off-by: Romit Dasgupta <[email protected]>
---
Discussions:
v2: http://marc.info/?t=126318930800001&r=1&w=2
v1: http://marc.info/?t=126226623800006&r=1&w=2

 arch/arm/plat-omap/opp_twl_tps.c |   12 ++----------
 1 files changed, 2 insertions(+), 10 deletions(-)

diff --git a/arch/arm/plat-omap/opp_twl_tps.c b/arch/arm/plat-omap/opp_twl_tps.c
index e0db39b..468fb97 100644
--- a/arch/arm/plat-omap/opp_twl_tps.c
+++ b/arch/arm/plat-omap/opp_twl_tps.c
@@ -36,14 +36,6 @@ unsigned long omap_twl_vsel_to_uv(const u8 vsel)
  */
 u8 omap_twl_uv_to_vsel(unsigned long uv)
 {
-       u8 vsel;
-
-       vsel = ((uv / 100) - 6000) / 125;
-
-       /* round off to higher voltage */
-       /* XXX Surely not the best way to handle this. */
-       if (uv > omap_twl_vsel_to_uv(vsel))
-               vsel++;
-
-       return vsel;
+       /* Round up to higher voltage */
+       return (((uv + 99) / 100 - 6000) + 124) / 125;
 }
-- 
1.6.3.3

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

Reply via email to