diff mbox

[PM-WIP-OPP] cleaner ceil function for uv to vsel conversion

Message ID 4B4C6629.2040100@gmail.com (mailing list archive)
State Accepted
Delegated to: Kevin Hilman
Headers show

Commit Message

Nishanth Menon Jan. 12, 2010, 12:08 p.m. UTC
None
diff mbox

Patch

diff --git a/arch/arm/plat-omap/opp_twl_tps.c 
b/arch/arm/plat-omap/opp_twl_tps.c
index e0db39b..43dee2d 100644
--- a/arch/arm/plat-omap/opp_twl_tps.c
+++ b/arch/arm/plat-omap/opp_twl_tps.c
@@ -36,14 +36,7 @@  unsigned long omap_twl_vsel_to_uv(const u8 vsel)
  */
 u8 omap_twl_uv_to_vsel(unsigned long uv)
 {
-    u8 vsel;
+    /* Takes care of precision loss due to integer division */
+    return (((uv + 99) / 100 - 6000) + 124) / 125;
 
-    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;
 }