Re: [PATCH 3/4] atmel-mci: support multiple mmc slots

From: Haavard Skinnemoen
Date: Wed Sep 24 2008 - 10:42:34 EST


Pierre Ossman <drzeus-list@xxxxxxxxx> wrote:
> On Tue, 23 Sep 2008 20:16:50 +0200
> Haavard Skinnemoen <haavard.skinnemoen@xxxxxxxxx> wrote:
>
> > Pierre Ossman <drzeus-list@xxxxxxxxx> wrote:
> > >
> > > You forgot the most important part; how to handle the clock given two
> > > different requests.
> >
> > I don't think I did. The set_ios() function merely calculates the value
> > of MR and stashes it away. It isn't written to the controller until
> > after the host has been claimed for a request.
> >
>
> I see... It still doesn't take into account conflicting clocks. Or does
> the multiplexer disable the clock for the inactive slot?

On AP7000, the clock line is shared. Do I have to run the clock at the
minimum of the two slots' maximum rates, or does it only matter when
the card is being accessed?

> > > (This will also get a bit more painful when/if the core starts
> > > disabling the clock when a card is idle)
> >
> > The atmel-mci driver already stops the clock between requests.
>
> Then I expect a patch to remove that. Fiddling with the clock is
> dangerous and I've seen everything from hung cards to silently broken
> writes when you disable the clock too early after a request.

Ok. I'll see if I can fix that -- I take it you want a patch for
2.6.27, then?

> > Though I don't understand why the core would care about clocks.
> >
>
> Power management. But it needs to be handled centrally. Primarily
> because of the reason above, but you might also have such things as
> SDIO functions requiring the clock to be on.

I see.

> > >
> > > Fall back to polling?
> >
> > Probably, yes. Can I fall back to polling after the host has been
> > registered?
> >
>
> Hmm... no. Not sure how to handle this...

I'll see if I can figure out a way to do it. I'm not giving it high
priority since it's a fairly obscure error case which shouldn't happen
with properly implemented board code.

Haavard
--
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/