[PATCH 2/4] mmci: adjust calculation of f_min

Linus Walleij linus.walleij at linaro.org
Thu Jul 7 16:22:12 EDT 2011


2011/7/5 Russell King - ARM Linux <linux at arm.linux.org.uk>:
> On Tue, Jun 28, 2011 at 09:57:33AM +0200, Linus Walleij wrote:
>> From: Ulf Hansson <ulf.hansson at stericsson.com>
>>
>> For the st_clkdiv variant f_min is too low for practical cases,
>> there is a heuristic calculation that appear to set the min
>> frequency to mclk rounded up with 512, for our practical use
>> cases dividing by 257 gives a reasonable floor value on the
>> ST Micro version of the clock divider.
>
> The only requirement with f_min is that the hardware is capable of
> producing a clock at that rate.  Having it smaller than 'practical'
> is not a problem, and may help some cards be detected.

Sorry the changelog is confused. What we're doing is just obey
the maximum clockdivider as seen in mmci_set_clkreg().

It's host->cclk = host->mclk / (clk + 2); for the ST version, and
since the maximum divider in hardware is 255 this becomes
257, so we cannot divide the frequency with anything lower
than 257.

This should also be DIV_ROUND_UP() though, I'm fixing a new
patch.

> So unless there is a reason not to (eg, divisors above 257 are invalid)
> its better to leave it as is.

Above 257 is indeed invalid on ST variants, as above 512 is on
ARM variants.

Thanks,
Linus Walleij



More information about the linux-arm-kernel mailing list