Re: [mmc] incorrect behavior on resume

From: Alex Dubov
Date: Sat Feb 17 2007 - 20:46:55 EST

--- Pavel Machek <pavel@xxxxxx> wrote:

> On Sun 2007-02-18 00:35:33, Pierre Ossman wrote:
> > Alex Dubov wrote:
> > > And today: yet another problem with mmc.
> > > It so happens that after resume mmc layer issues requests to the device before
> mmc_resume_host is
> > > called at all. Moreover, this prevents the machine from resuming, unless worked around,
> because
> > > software timer does not work at this stage of the resume and interrupts may not be delivered
> (if
> > > card was removed, for example).
> >
> > Now this sounds incredibly broken. A child device should never be resumed before
> > its parent. Pavel, can you comment?
> No, child devices should not be resumed before their parents. Is it
> true child?
> What bus is mmc on? Timer should be resumed fairly early...?
> Can you confirm that rmmod/insmod of mmc around suspend fixes the issue?
> But this is greg's area.
It sure does - if I'll do "rmmod mmc" I'd be forced to remove my driver as well (symbol
dependency) and the problem will magically disappear.

The problem here is that mmc_block's device is a child of real device (tifm_dev here), so it gets
resumed right after it. However, it correct functioning depends on mmc_core, which must be
manually resumed (mmc_resume_host). Therefore, I think this is purely mmc's problem.

Bored stiff? Loosen up...
Download and play hundreds of games for free on Yahoo! Games.
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at