On Thu, Jun 9, 2011 at 7:44 PM, Daniel Drake <dsd@xxxxxxxxxx> wrote: > Note that during the insmod/rmmod calls, runtime PM did not touch the > power state - the card remained powered ever since the first insmod. > Not sure if this is in-line with your expectations. It definitely isn't. And that may very well be our culprit here. Let's focus now on just this one sequence: - boot - cat /sys/.../ios (power should be off) - insmod - cat /sys/.../ios (power should be on) - rmmod - cat /sys/.../ios (power should be off again) You will see the problem now. And I think I know why - there was a driver core change that indirectly caused this. Please try to revert e1866b33b1e89f077b7132daae3dfd9a594e9a1a "PM / Runtime: Rework runtime PM handling during driver removal" and tell me if it helped. If it did, un-revert that change, and try this one patch, which adopts SDIO runtime PM to that change: diff --git a/drivers/mmc/core/sdio_bus.c b/drivers/mmc/core/sdio_bus.c index d29b9c3..d2565df 100644 --- a/drivers/mmc/core/sdio_bus.c +++ b/drivers/mmc/core/sdio_bus.c @@ -189,7 +189,7 @@ static int sdio_bus_remove(struct device *dev) /* Then undo the runtime PM settings in sdio_bus_probe() */ if (func->card->host->caps & MMC_CAP_POWER_OFF_CARD) - pm_runtime_put_noidle(dev); + pm_runtime_put_sync(dev); out: return ret; Thanks, Ohad. -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html