| From ac5156aad3d50ae4acfe30f57e74c0677b5cc3a7 Mon Sep 17 00:00:00 2001 |
| From: Guennadi Liakhovetski <g.liakhovetski@gmx.de> |
| Date: Wed, 23 Nov 2011 15:52:30 +0100 |
| Subject: mmc: sh_mmcif: simplify clock divisor calculation |
| |
| Replace ilog2(__rounddown_pow_of_two(x)) with the equivalent but much |
| simpler fls(x) - 1. |
| |
| Reported-by: Andrew Morton <akpm@linux-foundation.org> |
| Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de> |
| Signed-off-by: Chris Ball <cjb@laptop.org> |
| (cherry picked from commit 86df174585de79a460e3515ec413ea1f5a0bcf68) |
| |
| Signed-off-by: Simon Horman <horms@verge.net.au> |
| --- |
| drivers/mmc/host/sh_mmcif.c | 3 ++- |
| 1 file changed, 2 insertions(+), 1 deletion(-) |
| |
| diff --git a/drivers/mmc/host/sh_mmcif.c b/drivers/mmc/host/sh_mmcif.c |
| index b758b21..86edbad 100644 |
| --- a/drivers/mmc/host/sh_mmcif.c |
| +++ b/drivers/mmc/host/sh_mmcif.c |
| @@ -16,6 +16,7 @@ |
| * |
| */ |
| |
| +#include <linux/bitops.h> |
| #include <linux/clk.h> |
| #include <linux/completion.h> |
| #include <linux/delay.h> |
| @@ -399,7 +400,7 @@ static void sh_mmcif_clock_control(struct sh_mmcif_host *host, unsigned int clk) |
| sh_mmcif_bitset(host, MMCIF_CE_CLK_CTRL, CLK_SUP_PCLK); |
| else |
| sh_mmcif_bitset(host, MMCIF_CE_CLK_CTRL, CLK_CLEAR & |
| - (ilog2(__rounddown_pow_of_two(host->clk / clk)) << 16)); |
| + ((fls(host->clk / clk) - 1) << 16)); |
| |
| sh_mmcif_bitset(host, MMCIF_CE_CLK_CTRL, CLK_ENABLE); |
| } |
| -- |
| 1.7.10.2.565.gbd578b5 |
| |