From mboxrd@z Thu Jan 1 00:00:00 1970 From: s.neumann@raumfeld.com (Sven Neumann) Date: Sun, 10 Oct 2010 01:20:34 +0200 Subject: 2.6.35.6 fails to suspend (pxa2xx-mci.0) In-Reply-To: References: <1286177435.2140.5.camel@sven> <201010072323.05218.rjw@sisk.pl> <1286526197.4493.19.camel@sven> <201010082208.25767.rjw@sisk.pl> Message-ID: <1286666434.26689.3.camel@bender> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On Sat, 2010-10-09 at 03:07 +0200, Ohad Ben-Cohen wrote: > On Fri, Oct 8, 2010 at 10:08 PM, Rafael J. Wysocki wrote: > > There is a problem with the pxa2xx-mci.0 suspend that has been introduced > > some time after 2.6.34, but it is not related to commit 152e1d5920. > > Sven, what type of card do you have in that slot ? is it SDIO ? what's > the function driver ? > > I have a hunch about this, but it may be a wild guess as I don't know > what's your setup exactly. > > Anyway, can you please try this and see if anything changes ? > > diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c > index c94565d..515ff39 100644 > --- a/drivers/mmc/core/core.c > +++ b/drivers/mmc/core/core.c > @@ -1682,6 +1682,19 @@ int mmc_suspend_host(struct mmc_host *host) > if (host->bus_ops && !host->bus_dead) { > if (host->bus_ops->suspend) > err = host->bus_ops->suspend(host); > + if (err == -ENOSYS || !host->bus_ops->resume) { > + /* > + * We simply "remove" the card in this case. > + * It will be redetected on resume. > + */ > + if (host->bus_ops->remove) > + host->bus_ops->remove(host); > + mmc_claim_host(host); > + mmc_detach_bus(host); > + mmc_release_host(host); > + host->pm_flags = 0; > + err = 0; > + } > } > mmc_bus_put(host); > > The reason I'm asking this is because it seems like commit > 4c2ef25fe0b847d2ae818f74758ddb0be1c27d8e "mmc: fix all hangs related > to mmc/sd card insert/removal during suspend/resume" has broken > suspending SDIO function drivers which don't have a suspend handler > (or do have one, but for some reason it returns -ENOSYS, like > libertas_sdio's does). That is exactly our setup (libertas over sdio). I will try your patch as soon as I get to the office on Monday morning and report back. Thanks, Sven