From: Adrian Hunter <adrian.hunter@intel.com>
To: Manuel Lauss <manuel.lauss@googlemail.com>
Cc: linux-mmc@vger.kernel.org, Chris Ball <cjb@laptop.org>
Subject: Re: [PATCH v3] mmc: sdhci: remove "state" argument from sdhci_suspend_host
Date: Thu, 03 Nov 2011 10:05:36 +0200 [thread overview]
Message-ID: <4EB24B50.1050901@intel.com> (raw)
In-Reply-To: <1320244174-2568-1-git-send-email-manuel.lauss@googlemail.com>
On 02/11/11 16:29, Manuel Lauss wrote:
> Drop the "state" argument from sdhci_suspend_host. Its only user
> is the PCI glue; this allows to move all SDHCI glues to use
> dev_pm_ops instead.
>
> Signed-off-by: Manuel Lauss <manuel.lauss@googlemail.com>
> ---
There is a checkpatch warning:
WARNING: struct dev_pm_ops should normally be const
#279: FILE: drivers/mmc/host/sdhci-pltfm.h:102:
+extern struct dev_pm_ops sdhci_pltfm_pmops;
total: 0 errors, 1 warnings, 0 checks, 310 lines checked
> V3: remove unused local var in sdhci-pci.c
> V2: sdhci-s3c does not use sdhci-pltfm.c and gets its own dev_pm_ops.
>
> Tested on PCI/x86 only.
>
> drivers/mmc/host/sdhci-cns3xxx.c | 5 +----
> drivers/mmc/host/sdhci-dove.c | 5 +----
> drivers/mmc/host/sdhci-esdhc-imx.c | 5 +----
> drivers/mmc/host/sdhci-of-esdhc.c | 5 +----
> drivers/mmc/host/sdhci-of-hlwd.c | 5 +----
> drivers/mmc/host/sdhci-pci.c | 26 +++++++++++++-------------
> drivers/mmc/host/sdhci-pltfm.c | 18 +++++++++++-------
> drivers/mmc/host/sdhci-pltfm.h | 6 ++++--
> drivers/mmc/host/sdhci-pxav2.c | 5 +----
> drivers/mmc/host/sdhci-pxav3.c | 5 +----
> drivers/mmc/host/sdhci-s3c.c | 21 ++++++++++++++-------
> drivers/mmc/host/sdhci-tegra.c | 5 +----
> drivers/mmc/host/sdhci.c | 2 +-
> drivers/mmc/host/sdhci.h | 2 +-
> 14 files changed, 52 insertions(+), 63 deletions(-)
>
> diff --git a/drivers/mmc/host/sdhci-cns3xxx.c b/drivers/mmc/host/sdhci-cns3xxx.c
> index 4b920b7..fbd0638 100644
> --- a/drivers/mmc/host/sdhci-cns3xxx.c
> +++ b/drivers/mmc/host/sdhci-cns3xxx.c
> @@ -108,13 +108,10 @@ static struct platform_driver sdhci_cns3xxx_driver = {
> .driver = {
> .name = "sdhci-cns3xxx",
> .owner = THIS_MODULE,
> + .pm = SDHCI_PLTFM_PMOPS,
> },
> .probe = sdhci_cns3xxx_probe,
> .remove = __devexit_p(sdhci_cns3xxx_remove),
> -#ifdef CONFIG_PM
> - .suspend = sdhci_pltfm_suspend,
> - .resume = sdhci_pltfm_resume,
> -#endif
> };
>
> static int __init sdhci_cns3xxx_init(void)
> diff --git a/drivers/mmc/host/sdhci-dove.c b/drivers/mmc/host/sdhci-dove.c
> index f2d29dc..a81312c 100644
> --- a/drivers/mmc/host/sdhci-dove.c
> +++ b/drivers/mmc/host/sdhci-dove.c
> @@ -82,13 +82,10 @@ static struct platform_driver sdhci_dove_driver = {
> .driver = {
> .name = "sdhci-dove",
> .owner = THIS_MODULE,
> + .pm = SDHCI_PLTFM_PMOPS,
> },
> .probe = sdhci_dove_probe,
> .remove = __devexit_p(sdhci_dove_remove),
> -#ifdef CONFIG_PM
> - .suspend = sdhci_pltfm_suspend,
> - .resume = sdhci_pltfm_resume,
> -#endif
> };
>
> static int __init sdhci_dove_init(void)
> diff --git a/drivers/mmc/host/sdhci-esdhc-imx.c b/drivers/mmc/host/sdhci-esdhc-imx.c
> index ae57769..8fc8006 100644
> --- a/drivers/mmc/host/sdhci-esdhc-imx.c
> +++ b/drivers/mmc/host/sdhci-esdhc-imx.c
> @@ -591,14 +591,11 @@ static struct platform_driver sdhci_esdhc_imx_driver = {
> .name = "sdhci-esdhc-imx",
> .owner = THIS_MODULE,
> .of_match_table = imx_esdhc_dt_ids,
> + .pm = SDHCI_PLTFM_PMOPS,
> },
> .id_table = imx_esdhc_devtype,
> .probe = sdhci_esdhc_imx_probe,
> .remove = __devexit_p(sdhci_esdhc_imx_remove),
> -#ifdef CONFIG_PM
> - .suspend = sdhci_pltfm_suspend,
> - .resume = sdhci_pltfm_resume,
> -#endif
> };
>
> static int __init sdhci_esdhc_imx_init(void)
> diff --git a/drivers/mmc/host/sdhci-of-esdhc.c b/drivers/mmc/host/sdhci-of-esdhc.c
> index 59e9d00..01e5f62 100644
> --- a/drivers/mmc/host/sdhci-of-esdhc.c
> +++ b/drivers/mmc/host/sdhci-of-esdhc.c
> @@ -125,13 +125,10 @@ static struct platform_driver sdhci_esdhc_driver = {
> .name = "sdhci-esdhc",
> .owner = THIS_MODULE,
> .of_match_table = sdhci_esdhc_of_match,
> + .pm = SDHCI_PLTFM_PMOPS,
> },
> .probe = sdhci_esdhc_probe,
> .remove = __devexit_p(sdhci_esdhc_remove),
> -#ifdef CONFIG_PM
> - .suspend = sdhci_pltfm_suspend,
> - .resume = sdhci_pltfm_resume,
> -#endif
> };
>
> static int __init sdhci_esdhc_init(void)
> diff --git a/drivers/mmc/host/sdhci-of-hlwd.c b/drivers/mmc/host/sdhci-of-hlwd.c
> index 9b0d794..3619adc 100644
> --- a/drivers/mmc/host/sdhci-of-hlwd.c
> +++ b/drivers/mmc/host/sdhci-of-hlwd.c
> @@ -87,13 +87,10 @@ static struct platform_driver sdhci_hlwd_driver = {
> .name = "sdhci-hlwd",
> .owner = THIS_MODULE,
> .of_match_table = sdhci_hlwd_of_match,
> + .pm = SDHCI_PLTFM_PMOPS,
> },
> .probe = sdhci_hlwd_probe,
> .remove = __devexit_p(sdhci_hlwd_remove),
> -#ifdef CONFIG_PM
> - .suspend = sdhci_pltfm_suspend,
> - .resume = sdhci_pltfm_resume,
> -#endif
> };
>
> static int __init sdhci_hlwd_init(void)
> diff --git a/drivers/mmc/host/sdhci-pci.c b/drivers/mmc/host/sdhci-pci.c
> index d833d9c..6878a94 100644
> --- a/drivers/mmc/host/sdhci-pci.c
> +++ b/drivers/mmc/host/sdhci-pci.c
> @@ -54,8 +54,7 @@ struct sdhci_pci_fixes {
> int (*probe_slot) (struct sdhci_pci_slot *);
> void (*remove_slot) (struct sdhci_pci_slot *, int);
>
> - int (*suspend) (struct sdhci_pci_chip *,
> - pm_message_t);
> + int (*suspend) (struct sdhci_pci_chip *);
> int (*resume) (struct sdhci_pci_chip *);
> };
>
> @@ -549,7 +548,7 @@ static void jmicron_remove_slot(struct sdhci_pci_slot *slot, int dead)
> jmicron_enable_mmc(slot->host, 0);
> }
>
> -static int jmicron_suspend(struct sdhci_pci_chip *chip, pm_message_t state)
> +static int jmicron_suspend(struct sdhci_pci_chip *chip)
> {
> int i;
>
> @@ -993,8 +992,9 @@ static struct sdhci_ops sdhci_pci_ops = {
>
> #ifdef CONFIG_PM
>
> -static int sdhci_pci_suspend(struct pci_dev *pdev, pm_message_t state)
> +static int sdhci_pci_suspend(struct device *dev)
> {
> + struct pci_dev *pdev = to_pci_dev(dev);
> struct sdhci_pci_chip *chip;
> struct sdhci_pci_slot *slot;
> mmc_pm_flag_t slot_pm_flags;
> @@ -1010,7 +1010,7 @@ static int sdhci_pci_suspend(struct pci_dev *pdev, pm_message_t state)
> if (!slot)
> continue;
>
> - ret = sdhci_suspend_host(slot->host, state);
> + ret = sdhci_suspend_host(slot->host);
>
> if (ret) {
> for (i--; i >= 0; i--)
> @@ -1026,7 +1026,7 @@ static int sdhci_pci_suspend(struct pci_dev *pdev, pm_message_t state)
> }
>
> if (chip->fixes && chip->fixes->suspend) {
> - ret = chip->fixes->suspend(chip, state);
> + ret = chip->fixes->suspend(chip);
> if (ret) {
> for (i = chip->num_slots - 1; i >= 0; i--)
> sdhci_resume_host(chip->slots[i]->host);
> @@ -1042,16 +1042,17 @@ static int sdhci_pci_suspend(struct pci_dev *pdev, pm_message_t state)
> }
> pci_set_power_state(pdev, PCI_D3hot);
> } else {
> - pci_enable_wake(pdev, pci_choose_state(pdev, state), 0);
> + pci_enable_wake(pdev, PCI_D3hot, 0);
> pci_disable_device(pdev);
> - pci_set_power_state(pdev, pci_choose_state(pdev, state));
> + pci_set_power_state(pdev, PCI_D3hot);
> }
>
> return 0;
> }
>
> -static int sdhci_pci_resume(struct pci_dev *pdev)
> +static int sdhci_pci_resume(struct device *dev)
> {
> + struct pci_dev *pdev = to_pci_dev(dev);
> struct sdhci_pci_chip *chip;
> struct sdhci_pci_slot *slot;
> int i, ret;
> @@ -1099,7 +1100,6 @@ static int sdhci_pci_runtime_suspend(struct device *dev)
> struct pci_dev *pdev = container_of(dev, struct pci_dev, dev);
> struct sdhci_pci_chip *chip;
> struct sdhci_pci_slot *slot;
> - pm_message_t state = { .event = PM_EVENT_SUSPEND };
> int i, ret;
>
> chip = pci_get_drvdata(pdev);
> @@ -1121,7 +1121,7 @@ static int sdhci_pci_runtime_suspend(struct device *dev)
> }
>
> if (chip->fixes && chip->fixes->suspend) {
> - ret = chip->fixes->suspend(chip, state);
> + ret = chip->fixes->suspend(chip);
> if (ret) {
> for (i = chip->num_slots - 1; i >= 0; i--)
> sdhci_runtime_resume_host(chip->slots[i]->host);
> @@ -1176,6 +1176,8 @@ static int sdhci_pci_runtime_idle(struct device *dev)
> #endif
>
> static const struct dev_pm_ops sdhci_pci_pm_ops = {
> + .suspend = sdhci_pci_suspend,
> + .resume = sdhci_pci_resume,
> .runtime_suspend = sdhci_pci_runtime_suspend,
> .runtime_resume = sdhci_pci_runtime_resume,
> .runtime_idle = sdhci_pci_runtime_idle,
> @@ -1428,8 +1430,6 @@ static struct pci_driver sdhci_driver = {
> .id_table = pci_ids,
> .probe = sdhci_pci_probe,
> .remove = __devexit_p(sdhci_pci_remove),
> - .suspend = sdhci_pci_suspend,
> - .resume = sdhci_pci_resume,
> .driver = {
> .pm = &sdhci_pci_pm_ops
> },
> diff --git a/drivers/mmc/host/sdhci-pltfm.c b/drivers/mmc/host/sdhci-pltfm.c
> index a9e12ea..03970bc 100644
> --- a/drivers/mmc/host/sdhci-pltfm.c
> +++ b/drivers/mmc/host/sdhci-pltfm.c
> @@ -194,21 +194,25 @@ int sdhci_pltfm_unregister(struct platform_device *pdev)
> EXPORT_SYMBOL_GPL(sdhci_pltfm_unregister);
>
> #ifdef CONFIG_PM
> -int sdhci_pltfm_suspend(struct platform_device *dev, pm_message_t state)
> +static int sdhci_pltfm_suspend(struct device *dev)
> {
> - struct sdhci_host *host = platform_get_drvdata(dev);
> + struct sdhci_host *host = dev_get_drvdata(dev);
>
> - return sdhci_suspend_host(host, state);
> + return sdhci_suspend_host(host);
> }
> -EXPORT_SYMBOL_GPL(sdhci_pltfm_suspend);
>
> -int sdhci_pltfm_resume(struct platform_device *dev)
> +static int sdhci_pltfm_resume(struct device *dev)
> {
> - struct sdhci_host *host = platform_get_drvdata(dev);
> + struct sdhci_host *host = dev_get_drvdata(dev);
>
> return sdhci_resume_host(host);
> }
> -EXPORT_SYMBOL_GPL(sdhci_pltfm_resume);
> +
> +const struct dev_pm_ops sdhci_pltfm_pmops = {
> + .suspend = sdhci_pltfm_suspend,
> + .resume = sdhci_pltfm_resume,
> +};
> +EXPORT_SYMBOL_GPL(sdhci_pltfm_pmops);
> #endif /* CONFIG_PM */
>
> static int __init sdhci_pltfm_drv_init(void)
> diff --git a/drivers/mmc/host/sdhci-pltfm.h b/drivers/mmc/host/sdhci-pltfm.h
> index 3a9fc3f..700bdf7 100644
> --- a/drivers/mmc/host/sdhci-pltfm.h
> +++ b/drivers/mmc/host/sdhci-pltfm.h
> @@ -99,8 +99,10 @@ extern int sdhci_pltfm_register(struct platform_device *pdev,
> extern int sdhci_pltfm_unregister(struct platform_device *pdev);
>
> #ifdef CONFIG_PM
> -extern int sdhci_pltfm_suspend(struct platform_device *dev, pm_message_t state);
> -extern int sdhci_pltfm_resume(struct platform_device *dev);
> +extern struct dev_pm_ops sdhci_pltfm_pmops;
> +#define SDHCI_PLTFM_PMOPS (&sdhci_pltfm_pmops)
> +#else
> +#define SDHCI_PLTFM_PMOPS NULL
> #endif
>
> #endif /* _DRIVERS_MMC_SDHCI_PLTFM_H */
> diff --git a/drivers/mmc/host/sdhci-pxav2.c b/drivers/mmc/host/sdhci-pxav2.c
> index d4bf6d3..7a039c3 100644
> --- a/drivers/mmc/host/sdhci-pxav2.c
> +++ b/drivers/mmc/host/sdhci-pxav2.c
> @@ -218,13 +218,10 @@ static struct platform_driver sdhci_pxav2_driver = {
> .driver = {
> .name = "sdhci-pxav2",
> .owner = THIS_MODULE,
> + .pm = SDHCI_PLTFM_PMOPS,
> },
> .probe = sdhci_pxav2_probe,
> .remove = __devexit_p(sdhci_pxav2_remove),
> -#ifdef CONFIG_PM
> - .suspend = sdhci_pltfm_suspend,
> - .resume = sdhci_pltfm_resume,
> -#endif
> };
> static int __init sdhci_pxav2_init(void)
> {
> diff --git a/drivers/mmc/host/sdhci-pxav3.c b/drivers/mmc/host/sdhci-pxav3.c
> index cff4ad3..15673a7 100644
> --- a/drivers/mmc/host/sdhci-pxav3.c
> +++ b/drivers/mmc/host/sdhci-pxav3.c
> @@ -264,13 +264,10 @@ static struct platform_driver sdhci_pxav3_driver = {
> .driver = {
> .name = "sdhci-pxav3",
> .owner = THIS_MODULE,
> + .pm = SDHCI_PLTFM_PMOPS,
> },
> .probe = sdhci_pxav3_probe,
> .remove = __devexit_p(sdhci_pxav3_remove),
> -#ifdef CONFIG_PM
> - .suspend = sdhci_pltfm_suspend,
> - .resume = sdhci_pltfm_resume,
> -#endif
> };
> static int __init sdhci_pxav3_init(void)
> {
> diff --git a/drivers/mmc/host/sdhci-s3c.c b/drivers/mmc/host/sdhci-s3c.c
> index 3d00e72..c992e4f 100644
> --- a/drivers/mmc/host/sdhci-s3c.c
> +++ b/drivers/mmc/host/sdhci-s3c.c
> @@ -622,23 +622,29 @@ static int __devexit sdhci_s3c_remove(struct platform_device *pdev)
>
> #ifdef CONFIG_PM
>
> -static int sdhci_s3c_suspend(struct platform_device *dev, pm_message_t pm)
> +static int sdhci_s3c_suspend(struct device *dev)
> {
> - struct sdhci_host *host = platform_get_drvdata(dev);
> + struct sdhci_host *host = dev_get_drvdata(dev);
>
> - return sdhci_suspend_host(host, pm);
> + return sdhci_suspend_host(host);
> }
>
> -static int sdhci_s3c_resume(struct platform_device *dev)
> +static int sdhci_s3c_resume(struct device *dev)
> {
> - struct sdhci_host *host = platform_get_drvdata(dev);
> + struct sdhci_host *host = dev_get_drvdata(dev);
>
> return sdhci_resume_host(host);
> }
>
> +static const struct dev_pm_ops sdhci_s3c_pmops = {
> + .suspend = sdhci_s3c_suspend,
> + .resume = sdhci_s3c_resume,
> +};
> +
> +#define SDHCI_S3C_PMOPS (&sdhci_s3c_pmops)
> +
> #else
> -#define sdhci_s3c_suspend NULL
> -#define sdhci_s3c_resume NULL
> +#define SDHCI_S3C_PMOPS NULL
> #endif
>
> static struct platform_driver sdhci_s3c_driver = {
> @@ -649,6 +655,7 @@ static struct platform_driver sdhci_s3c_driver = {
> .driver = {
> .owner = THIS_MODULE,
> .name = "s3c-sdhci",
> + .pm = SDHCI_S3C_PMOPS,
> },
> };
>
> diff --git a/drivers/mmc/host/sdhci-tegra.c b/drivers/mmc/host/sdhci-tegra.c
> index 067a4cd..ea77df7 100644
> --- a/drivers/mmc/host/sdhci-tegra.c
> +++ b/drivers/mmc/host/sdhci-tegra.c
> @@ -317,13 +317,10 @@ static struct platform_driver sdhci_tegra_driver = {
> .name = "sdhci-tegra",
> .owner = THIS_MODULE,
> .of_match_table = sdhci_tegra_dt_match,
> + .pm = SDHCI_PLTFM_PMOPS,
> },
> .probe = sdhci_tegra_probe,
> .remove = __devexit_p(sdhci_tegra_remove),
> -#ifdef CONFIG_PM
> - .suspend = sdhci_pltfm_suspend,
> - .resume = sdhci_pltfm_resume,
> -#endif
> };
>
> static int __init sdhci_tegra_init(void)
> diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
> index 6d8eea3..19ed580 100644
> --- a/drivers/mmc/host/sdhci.c
> +++ b/drivers/mmc/host/sdhci.c
> @@ -2327,7 +2327,7 @@ out:
>
> #ifdef CONFIG_PM
>
> -int sdhci_suspend_host(struct sdhci_host *host, pm_message_t state)
> +int sdhci_suspend_host(struct sdhci_host *host)
> {
> int ret;
>
> diff --git a/drivers/mmc/host/sdhci.h b/drivers/mmc/host/sdhci.h
> index 0a5b654..a04d4d0 100644
> --- a/drivers/mmc/host/sdhci.h
> +++ b/drivers/mmc/host/sdhci.h
> @@ -374,7 +374,7 @@ extern int sdhci_add_host(struct sdhci_host *host);
> extern void sdhci_remove_host(struct sdhci_host *host, int dead);
>
> #ifdef CONFIG_PM
> -extern int sdhci_suspend_host(struct sdhci_host *host, pm_message_t state);
> +extern int sdhci_suspend_host(struct sdhci_host *host);
> extern int sdhci_resume_host(struct sdhci_host *host);
> extern void sdhci_enable_irq_wakeups(struct sdhci_host *host);
> #endif
prev parent reply other threads:[~2011-11-03 8:05 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-11-02 14:29 [PATCH v3] mmc: sdhci: remove "state" argument from sdhci_suspend_host Manuel Lauss
2011-11-03 8:05 ` Adrian Hunter [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4EB24B50.1050901@intel.com \
--to=adrian.hunter@intel.com \
--cc=cjb@laptop.org \
--cc=linux-mmc@vger.kernel.org \
--cc=manuel.lauss@googlemail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.