Re: [PATCH] au1xmmc: dev_pm_ops conversion

From: Frans Pop
Date: Mon Jul 20 2009 - 16:00:48 EST


> Signed-off-by: Manuel Lauss <manuel.lauss@xxxxxxxxx>
> ---
> Run-tested on Au1200.
>
>  drivers/mmc/host/au1xmmc.c |   23 +++++++++++------------
>  1 files changed, 11 insertions(+), 12 deletions(-)
>
> diff --git a/drivers/mmc/host/au1xmmc.c b/drivers/mmc/host/au1xmmc.c
> index d3f5561..70509c9 100644
> --- a/drivers/mmc/host/au1xmmc.c
> +++ b/drivers/mmc/host/au1xmmc.c
> @@ -1131,13 +1131,12 @@ static int __devexit au1xmmc_remove(struct
> platform_device *pdev) return 0;
>  }
>  
> -#ifdef CONFIG_PM

Won't the removal of this test cause a build failure if CONFIG_PM is not
set? If the removal of the test is safe, this should IMHO at least be
explained in the commit message.

The IMO simplest fix would be to restore the #ifdef ...

> -static int au1xmmc_suspend(struct platform_device *pdev, pm_message_t
> state) +static int au1xmmc_suspend(struct device *dev)
>  {
> -       struct au1xmmc_host *host = platform_get_drvdata(pdev);
> +       struct au1xmmc_host *host = dev_get_drvdata(dev);
>         int ret;
>  
> -       ret = mmc_suspend_host(host->mmc, state);
> +       ret = mmc_suspend_host(host->mmc, PMSG_SUSPEND);
>         if (ret)
>                 return ret;
>  
> @@ -1150,27 +1149,27 @@ static int au1xmmc_suspend(struct
> platform_device *pdev, pm_message_t state) return 0;
>  }
>  
> -static int au1xmmc_resume(struct platform_device *pdev)
> +static int au1xmmc_resume(struct device *dev)
>  {
> -       struct au1xmmc_host *host = platform_get_drvdata(pdev);
> +       struct au1xmmc_host *host = dev_get_drvdata(dev);
>  
>         au1xmmc_reset_controller(host);
>  
>         return mmc_resume_host(host->mmc);
>  }
> -#else
> -#define au1xmmc_suspend NULL
> -#define au1xmmc_resume NULL

... drop the 3 lines above (as you did) ...

> -#endif

... move this #endif to after the new struct below ...

> +
> +static struct dev_pm_ops au1xmmc_pmops = {
> +       .resume         = au1xmmc_resume,
> +       .suspend        = au1xmmc_suspend,
> +};
>  
>  static struct platform_driver au1xmmc_driver = {
>         .probe         = au1xmmc_probe,
>         .remove        = au1xmmc_remove,
> -       .suspend       = au1xmmc_suspend,
> -       .resume        = au1xmmc_resume,
>         .driver        = {
>                 .name  = DRIVER_NAME,
>                 .owner = THIS_MODULE,
> +               .pm    = &au1xmmc_pmops,

... and add an #ifdef CONFIG_PM around the new line above.

>         },
>  };

Cheers,
FJP
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/