[PATCH 1/2] mtd: pxa3xx_nand: don't duplicate MTD suspend/resume

Ezequiel Garcia ezequiel at vanguardiasur.com.ar
Thu Oct 15 11:33:48 PDT 2015


Robert:

Can you test this on a platform with PM support, and make sure
the NAND works fine after a resume?

On 12 October 2015 at 17:33, Brian Norris <computersforpeace at gmail.com> wrote:
> mtd_{suspend,resume}() get called from mtdcore in a class suspend/resume
> callback. We don't need to call them again here. In practice, this would
> actually work OK, as nand_base actually handles nesting OK -- it just
> might print warnings.
>
> Untested, but there are few (no?) users of PM for this driver AFAIK.
>
> Signed-off-by: Brian Norris <computersforpeace at gmail.com>
> ---
>  drivers/mtd/nand/pxa3xx_nand.c | 17 -----------------
>  1 file changed, 17 deletions(-)
>
> diff --git a/drivers/mtd/nand/pxa3xx_nand.c b/drivers/mtd/nand/pxa3xx_nand.c
> index 232c7074624a..cce5a32eef60 100644
> --- a/drivers/mtd/nand/pxa3xx_nand.c
> +++ b/drivers/mtd/nand/pxa3xx_nand.c
> @@ -1892,32 +1892,19 @@ static int pxa3xx_nand_probe(struct platform_device *pdev)
>  static int pxa3xx_nand_suspend(struct platform_device *pdev, pm_message_t state)
>  {
>         struct pxa3xx_nand_info *info = platform_get_drvdata(pdev);
> -       struct pxa3xx_nand_platform_data *pdata;
> -       struct mtd_info *mtd;
> -       int cs;
>
> -       pdata = dev_get_platdata(&pdev->dev);
>         if (info->state) {
>                 dev_err(&pdev->dev, "driver busy, state = %d\n", info->state);
>                 return -EAGAIN;
>         }
>
> -       for (cs = 0; cs < pdata->num_cs; cs++) {
> -               mtd = info->host[cs]->mtd;
> -               mtd_suspend(mtd);
> -       }
> -
>         return 0;
>  }
>
>  static int pxa3xx_nand_resume(struct platform_device *pdev)
>  {
>         struct pxa3xx_nand_info *info = platform_get_drvdata(pdev);
> -       struct pxa3xx_nand_platform_data *pdata;
> -       struct mtd_info *mtd;
> -       int cs;
>
> -       pdata = dev_get_platdata(&pdev->dev);
>         /* We don't want to handle interrupt without calling mtd routine */
>         disable_int(info, NDCR_INT_MASK);
>
> @@ -1935,10 +1922,6 @@ static int pxa3xx_nand_resume(struct platform_device *pdev)
>          * all status before resume
>          */
>         nand_writel(info, NDSR, NDSR_MASK);
> -       for (cs = 0; cs < pdata->num_cs; cs++) {
> -               mtd = info->host[cs]->mtd;
> -               mtd_resume(mtd);
> -       }
>
>         return 0;
>  }
> --
> 2.6.0.rc2.230.g3dd15c0
>
>
> ______________________________________________________
> Linux MTD discussion mailing list
> http://lists.infradead.org/mailman/listinfo/linux-mtd/



-- 
Ezequiel García, VanguardiaSur
www.vanguardiasur.com.ar



More information about the linux-mtd mailing list