Re: [PATCH] MMC Core: Drop initialization frequency floor to 50kHz

From: Ben Nizette
Date: Thu Jul 02 2009 - 07:12:01 EST


On Thu, 2009-07-02 at 09:18 +0200, Pierre Ossman wrote:

>
> 50 kHz seems very low. I'd be more comfortable if we deviate from
> specified behaviour as little as possible, say 300 kHz. Has anyone
> checked what USB readers use?

Before this patch my controller used ~135kHz, I was just basing the
floor off that. If the spec says 400 and this is just to work around
broken cards then sure, 300kHz sounds a good plan.

>
> And have you confirmed that the card is actually getting 350 kHz when
> it fails? Perhaps there is a bug that is causing it to actually run at
> a higher frequency.

'scope confirmed that when 400kHz is requested my controller is giving
the card ~397kHz.

>
> > diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c
> > index d84c880..6ee1931 100644
> > --- a/drivers/mmc/core/core.c
> > +++ b/drivers/mmc/core/core.c
> > @@ -708,12 +708,13 @@ static void mmc_power_up(struct mmc_host *host)
> > */
> > mmc_delay(10);
> >
> > - if (host->f_min > 400000) {
> > - pr_warning("%s: Minimum clock frequency too high for "
> > - "identification mode\n", mmc_hostname(host));
> > - host->ios.clock = host->f_min;
> > - } else
> > - host->ios.clock = 400000;
> > + /*
> > + * Card discovery is typically done at the controller's minimum
> > + * allowable frequency but for some controllers this is minimum
> > + * is unreasonably slow. In that case we limit slow clock rate
> > + * to 50KHz.
> > + */
> > + host->ios.clock = max(host->f_min, 50000);
> >
>
> I like getting that warning for too fast controllers. It makes it
> easier to spot possible problems.

For sure, it's just that if the floor is 50kHz then pretty much /every/
controller is a 'fast' controller and the warning's redundant. If you
just drop the 400k to 300k, I agree the warning's a good thing to have.

Cheers,
--Ben.

>
> Rgds

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/