On Tue, 15 Sep 2009 23:51:47 -0400
Nicolas Pitre <[email protected]> wrote:
> Subject: [PATCH 1/3] [MMC] core SDIO suspend/resume support
Please use titles of the form
[patch n/m] mmc: ...
because text which goes inside [] is conventionally stripped away by
the patch recipient, but we do want the patch's title to identify its
subsystem within its leading text.
> Date: Tue, 15 Sep 2009 23:51:47 -0400
> X-Mailer: git-send-email 1.6.5.rc0.164.g5f6b0
>
> Currently, all SDIO cards are virtually removed upon a suspend, and
> completely reprobed upon a resume. This adds the suspend and resume
> methods to the SDIO bus driver so to be able to dispatch those events
> to the actual SDIO function drivers for real suspend/resume instead.
>
> All active functions on a card must have a driver with both a suspend
> and a resume method though. Failing that, we fall back to the current
> behavior of simply "removing" the card when suspending.
>
> When resuming, we make sure the same card is still inserted by comparing
> the vendor and product IDs. If there is a mismatch, or if there is simply
> no card anymore in the slot, then the previous card is "removed" and the
> new card is detected. This is further enhanced with the next patch.
I get these:
drivers/mmc/core/sdio.c: In function 'mmc_sdio_suspend':
drivers/mmc/core/sdio.c:410: warning: initialization discards qualifiers from
pointer target type
drivers/mmc/core/sdio.c:426: warning: initialization discards qualifiers from
pointer target type
drivers/mmc/core/sdio.c: In function 'mmc_sdio_resume':
drivers/mmc/core/sdio.c:454: warning: initialization discards qualifiers from
pointer target type
struct dev_pm_ops *pmops = func->dev.driver->pm;
struct dev_pm_ops *pmops = func->dev.driver->pm;
struct dev_pm_ops *pmops = func->dev.driver->pm;
because someone changed the type of device_driver.pm in the development
code.
--- a/drivers/mmc/core/sdio.c~mmc-core-sdio-suspend-resume-support-fix
+++ a/drivers/mmc/core/sdio.c
@@ -407,7 +407,7 @@ static void mmc_sdio_suspend(struct mmc_
for (i = 0; i < host->card->sdio_funcs; i++) {
struct sdio_func *func = host->card->sdio_func[i];
if (func && sdio_func_present(func) && func->dev.driver) {
- struct dev_pm_ops *pmops = func->dev.driver->pm;
+ const struct dev_pm_ops *pmops = func->dev.driver->pm;
if (!pmops || !pmops->suspend || !pmops->resume) {
/* just remove the entire card in that case */
mmc_sdio_remove(host);
@@ -423,7 +423,7 @@ static void mmc_sdio_suspend(struct mmc_
for (i = 0; i < host->card->sdio_funcs; i++) {
struct sdio_func *func = host->card->sdio_func[i];
if (func && sdio_func_present(func) && func->dev.driver) {
- struct dev_pm_ops *pmops = func->dev.driver->pm;
+ const struct dev_pm_ops *pmops = func->dev.driver->pm;
pmops->suspend(&func->dev);
}
}
@@ -451,7 +451,7 @@ static void mmc_sdio_resume(struct mmc_h
for (i = 0; i < host->card->sdio_funcs; i++) {
struct sdio_func *func = host->card->sdio_func[i];
if (func && sdio_func_present(func) && func->dev.driver) {
- struct dev_pm_ops *pmops = func->dev.driver->pm;
+ const struct dev_pm_ops *pmops = func->dev.driver->pm;
pmops->resume(&func->dev);
}
}
_
--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html