From: Romit Dasgupta <romit@xxxxxx> 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 <khilman@xxxxxxxxxxxxxxxxxxx> Acked-by: Nishanth Menon <nm@xxxxxx> Signed-off-by: Romit Dasgupta <romit@xxxxxx> --- 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 majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html