Re: [PATCH] mxs-mmc: fix clock rate setting

Wolfram Sang
2011-06-30T14:55:09Z

[-- Attachment #1: Type: text/plain, Size: 2179 bytes --]

On Thu, Jun 30, 2011 at 12:13:34PM +0200, Koen Beel wrote:
> Fix clock rate setting on mxs-mmc driver.
> Previously, if div2 was zero the value for TIMING_CLOCK_RATE would
> have been 255 instead of 0.
> Also the limits for div1 (TIMING_CLOCK_DIVIDE) and div2
> (TIMING_CLOCK_RATE + 1) where not correctly defined.
>
> Can easily be reproduced on mx23evk: default clock for high speed sdio
> cards is 50 MHz. With a SSP_CLK of 28.8 MHz (default), this resulted in
> an actual clock rate of about 56 kHz.
>
> Signed-off-by: Koen Beel <koen.beel.barco <at> gmail.com>

Looks promising, but your tabs are garbled (0xa0 0x20 here?)

> ---
>  drivers/mmc/host/mxs-mmc.c |   12 ++++++------
>  1 files changed, 6 insertions(+), 6 deletions(-)
> diff --git a/drivers/mmc/host/mxs-mmc.c b/drivers/mmc/host/mxs-mmc.c
> index 99d39a6..3575330 100644
> --- a/drivers/mmc/host/mxs-mmc.c
> +++ b/drivers/mmc/host/mxs-mmc.c
> @@ -570,22 +570,22 @@ static void mxs_mmc_set_clk_rate(struct
> mxs_mmc_host *host, unsigned int rate)
>     ssp_rate = clk_get_rate(host->clk);
> -   for (div1 = 2; div1 < 254; div1 += 2) {
> +   for (div1 = 2; div1 <= 254; div1 += 2) {
>         div2 = ssp_rate / rate / div1;
> -       if (div2 < 0x100)
> +       if (div2 <= 256)
>             break;
>     }
> -   if (div1 >= 254) {
> +   if (div1 > 254) {
>         dev_err(mmc_dev(host->mmc),
>             "%s: cannot set clock to %d\n", __func__, rate);
>         return;
>     }
>     if (div2 == 0)
> -       bit_rate = ssp_rate / div1;
> -   else
> -       bit_rate = ssp_rate / div1 / div2;
> +       div2 = 1;
> +
> +   bit_rate = ssp_rate / div1 / div2;
>     val = readl(host->base + HW_SSP_TIMING);
>     val &= ~(BM_SSP_TIMING_CLOCK_DIVIDE | BM_SSP_TIMING_CLOCK_RATE);
> --
> 1.7.4.1
> --
> To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html

--
Pengutronix e.K. | Wolfram Sang |
Industrial Linux Solutions | http://www.pengutronix.de/ |

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 198 bytes --]