[PATCH 2/5] mxc_nand: fix PM

Wolfram Sang w.sang at pengutronix.de
Fri May 21 09:10:58 EDT 2010


On Fri, May 21, 2010 at 01:12:40PM +0200, Eric Bénard wrote:

A short description what was fixed and how it was fixed would be great.

> Signed-off-by: Eric Bénard <eric at eukrea.com>
> ---
>  drivers/mtd/nand/mxc_nand.c |   27 ++++++++++-----------------
>  1 files changed, 10 insertions(+), 17 deletions(-)
> 
> diff --git a/drivers/mtd/nand/mxc_nand.c b/drivers/mtd/nand/mxc_nand.c
> index fb03aff..5e51d4d 100644
> --- a/drivers/mtd/nand/mxc_nand.c
> +++ b/drivers/mtd/nand/mxc_nand.c
> @@ -895,16 +895,13 @@ static int __devexit mxcnd_remove(struct platform_device *pdev)
>  #ifdef CONFIG_PM
>  static int mxcnd_suspend(struct platform_device *pdev, pm_message_t state)
>  {
> -	struct mtd_info *mtd = platform_get_drvdata(pdev);
> -	struct nand_chip *nand_chip = mtd->priv;
> -	struct mxc_nand_host *host = nand_chip->priv;
> +	struct mxc_nand_host *host = platform_get_drvdata(pdev);
>  	int ret = 0;
>  
>  	DEBUG(MTD_DEBUG_LEVEL0, "MXC_ND : NAND suspend\n");
> -	if (mtd) {
> -		ret = mtd->suspend(mtd);
> -		/* Disable the NFC clock */
> +	if (host->clk_act) {
>  		clk_disable(host->clk);
> +		host->clk_act = 0;
>  	}
>  
>  	return ret;
> @@ -912,31 +909,27 @@ static int mxcnd_suspend(struct platform_device *pdev, pm_message_t state)
>  
>  static int mxcnd_resume(struct platform_device *pdev)
>  {
> -	struct mtd_info *mtd = platform_get_drvdata(pdev);
> -	struct nand_chip *nand_chip = mtd->priv;
> -	struct mxc_nand_host *host = nand_chip->priv;
> +	struct mxc_nand_host *host = platform_get_drvdata(pdev);
>  	int ret = 0;
>  
>  	DEBUG(MTD_DEBUG_LEVEL0, "MXC_ND : NAND resume\n");
> -
> -	if (mtd) {
> -		/* Enable the NFC clock */
> +	if (!host->clk_act) {
>  		clk_enable(host->clk);
> -		mtd->resume(mtd);
> +		host->clk_act = 1;
>  	}
>  
>  	return ret;
>  }
>  
>  #else
> -# define mxcnd_suspend   NULL
> -# define mxcnd_resume    NULL
> -#endif				/* CONFIG_PM */
> +#define mxcnd_suspend	NULL
> +#define mxcnd_resume	NULL
> +#endif
>  
>  static struct platform_driver mxcnd_driver = {
>  	.driver = {
>  		   .name = DRIVER_NAME,
> -		   },
> +	},
>  	.remove = __devexit_p(mxcnd_remove),
>  	.suspend = mxcnd_suspend,
>  	.resume = mxcnd_resume,
> -- 
> 1.6.3.3
> 
> 
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

-- 
Pengutronix e.K.                           | Wolfram Sang                |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: Digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20100521/49433094/attachment.sig>


More information about the linux-arm-kernel mailing list