* [PATCH 1/2] mtd: pxa3xx_nand: don't duplicate MTD suspend/resume @ 2015-10-12 20:33 Brian Norris 2015-10-12 20:33 ` [PATCH 2/2] mtd: pxa3xx_nand: switch to device PM Brian Norris 2015-10-15 18:33 ` [PATCH 1/2] mtd: pxa3xx_nand: don't duplicate MTD suspend/resume Ezequiel Garcia 0 siblings, 2 replies; 11+ messages in thread From: Brian Norris @ 2015-10-12 20:33 UTC (permalink / raw) To: linux-mtd; +Cc: Ezequiel Garcia, Brian Norris 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@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 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 2/2] mtd: pxa3xx_nand: switch to device PM 2015-10-12 20:33 [PATCH 1/2] mtd: pxa3xx_nand: don't duplicate MTD suspend/resume Brian Norris @ 2015-10-12 20:33 ` Brian Norris 2015-10-12 21:07 ` Brian Norris 2015-10-15 18:33 ` [PATCH 1/2] mtd: pxa3xx_nand: don't duplicate MTD suspend/resume Ezequiel Garcia 1 sibling, 1 reply; 11+ messages in thread From: Brian Norris @ 2015-10-12 20:33 UTC (permalink / raw) To: linux-mtd; +Cc: Ezequiel Garcia, Brian Norris The old PM model is deprecated. This is equivalent. Signed-off-by: Brian Norris <computersforpeace@gmail.com> --- drivers/mtd/nand/pxa3xx_nand.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/drivers/mtd/nand/pxa3xx_nand.c b/drivers/mtd/nand/pxa3xx_nand.c index cce5a32eef60..e074a3b406f6 100644 --- a/drivers/mtd/nand/pxa3xx_nand.c +++ b/drivers/mtd/nand/pxa3xx_nand.c @@ -1889,21 +1889,21 @@ static int pxa3xx_nand_probe(struct platform_device *pdev) } #ifdef CONFIG_PM -static int pxa3xx_nand_suspend(struct platform_device *pdev, pm_message_t state) +static int pxa3xx_nand_suspend(struct device *dev) { - struct pxa3xx_nand_info *info = platform_get_drvdata(pdev); + struct pxa3xx_nand_info *info = dev_get_drvdata(dev); if (info->state) { - dev_err(&pdev->dev, "driver busy, state = %d\n", info->state); + dev_err(dev, "driver busy, state = %d\n", info->state); return -EAGAIN; } return 0; } -static int pxa3xx_nand_resume(struct platform_device *pdev) +static int pxa3xx_nand_resume(struct device *dev) { - struct pxa3xx_nand_info *info = platform_get_drvdata(pdev); + struct pxa3xx_nand_info *info = dev_get_drvdata(dev); /* We don't want to handle interrupt without calling mtd routine */ disable_int(info, NDCR_INT_MASK); @@ -1934,11 +1934,13 @@ static struct platform_driver pxa3xx_nand_driver = { .driver = { .name = "pxa3xx-nand", .of_match_table = pxa3xx_nand_dt_ids, + .pm = { + .suspend = pxa3xx_nand_suspend, + .resume = pxa3xx_nand_resume, + }, }, .probe = pxa3xx_nand_probe, .remove = pxa3xx_nand_remove, - .suspend = pxa3xx_nand_suspend, - .resume = pxa3xx_nand_resume, }; module_platform_driver(pxa3xx_nand_driver); -- 2.6.0.rc2.230.g3dd15c0 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH 2/2] mtd: pxa3xx_nand: switch to device PM 2015-10-12 20:33 ` [PATCH 2/2] mtd: pxa3xx_nand: switch to device PM Brian Norris @ 2015-10-12 21:07 ` Brian Norris 2015-10-15 18:32 ` Ezequiel Garcia 0 siblings, 1 reply; 11+ messages in thread From: Brian Norris @ 2015-10-12 21:07 UTC (permalink / raw) To: linux-mtd; +Cc: Ezequiel Garcia On Mon, Oct 12, 2015 at 01:33:12PM -0700, Brian Norris wrote: > The old PM model is deprecated. This is equivalent. > > Signed-off-by: Brian Norris <computersforpeace@gmail.com> Sorry, this patch was garbage. Below is the correct one: --- Signed-off-by: Brian Norris <computersforpeace@gmail.com> --- drivers/mtd/nand/pxa3xx_nand.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/drivers/mtd/nand/pxa3xx_nand.c b/drivers/mtd/nand/pxa3xx_nand.c index cce5a32eef60..51b67ae5ac1c 100644 --- a/drivers/mtd/nand/pxa3xx_nand.c +++ b/drivers/mtd/nand/pxa3xx_nand.c @@ -1889,21 +1889,21 @@ static int pxa3xx_nand_probe(struct platform_device *pdev) } #ifdef CONFIG_PM -static int pxa3xx_nand_suspend(struct platform_device *pdev, pm_message_t state) +static int pxa3xx_nand_suspend(struct device *dev) { - struct pxa3xx_nand_info *info = platform_get_drvdata(pdev); + struct pxa3xx_nand_info *info = dev_get_drvdata(dev); if (info->state) { - dev_err(&pdev->dev, "driver busy, state = %d\n", info->state); + dev_err(dev, "driver busy, state = %d\n", info->state); return -EAGAIN; } return 0; } -static int pxa3xx_nand_resume(struct platform_device *pdev) +static int pxa3xx_nand_resume(struct device *dev) { - struct pxa3xx_nand_info *info = platform_get_drvdata(pdev); + struct pxa3xx_nand_info *info = dev_get_drvdata(dev); /* We don't want to handle interrupt without calling mtd routine */ disable_int(info, NDCR_INT_MASK); @@ -1930,15 +1930,19 @@ static int pxa3xx_nand_resume(struct platform_device *pdev) #define pxa3xx_nand_resume NULL #endif +static const struct dev_pm_ops pxa3xx_nand_pm_ops = { + .suspend = pxa3xx_nand_suspend, + .resume = pxa3xx_nand_resume, +}; + static struct platform_driver pxa3xx_nand_driver = { .driver = { .name = "pxa3xx-nand", .of_match_table = pxa3xx_nand_dt_ids, + .pm = &pxa3xx_nand_pm_ops, }, .probe = pxa3xx_nand_probe, .remove = pxa3xx_nand_remove, - .suspend = pxa3xx_nand_suspend, - .resume = pxa3xx_nand_resume, }; module_platform_driver(pxa3xx_nand_driver); -- 2.6.0.rc2.230.g3dd15c0 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH 2/2] mtd: pxa3xx_nand: switch to device PM 2015-10-12 21:07 ` Brian Norris @ 2015-10-15 18:32 ` Ezequiel Garcia 2015-10-16 15:24 ` Ezequiel Garcia 0 siblings, 1 reply; 11+ messages in thread From: Ezequiel Garcia @ 2015-10-15 18:32 UTC (permalink / raw) To: Brian Norris, Robert Jarzmik; +Cc: linux-mtd, Ezequiel Garcia +Robert On 12 October 2015 at 18:07, Brian Norris <computersforpeace@gmail.com> wrote: > On Mon, Oct 12, 2015 at 01:33:12PM -0700, Brian Norris wrote: >> The old PM model is deprecated. This is equivalent. >> >> Signed-off-by: Brian Norris <computersforpeace@gmail.com> > > Sorry, this patch was garbage. Below is the correct one: > > --- > > Signed-off-by: Brian Norris <computersforpeace@gmail.com> > --- > drivers/mtd/nand/pxa3xx_nand.c | 18 +++++++++++------- > 1 file changed, 11 insertions(+), 7 deletions(-) > > diff --git a/drivers/mtd/nand/pxa3xx_nand.c b/drivers/mtd/nand/pxa3xx_nand.c > index cce5a32eef60..51b67ae5ac1c 100644 > --- a/drivers/mtd/nand/pxa3xx_nand.c > +++ b/drivers/mtd/nand/pxa3xx_nand.c > @@ -1889,21 +1889,21 @@ static int pxa3xx_nand_probe(struct platform_device *pdev) > } > > #ifdef CONFIG_PM > -static int pxa3xx_nand_suspend(struct platform_device *pdev, pm_message_t state) > +static int pxa3xx_nand_suspend(struct device *dev) > { > - struct pxa3xx_nand_info *info = platform_get_drvdata(pdev); > + struct pxa3xx_nand_info *info = dev_get_drvdata(dev); > > if (info->state) { > - dev_err(&pdev->dev, "driver busy, state = %d\n", info->state); > + dev_err(dev, "driver busy, state = %d\n", info->state); > return -EAGAIN; > } > > return 0; > } > > -static int pxa3xx_nand_resume(struct platform_device *pdev) > +static int pxa3xx_nand_resume(struct device *dev) > { > - struct pxa3xx_nand_info *info = platform_get_drvdata(pdev); > + struct pxa3xx_nand_info *info = dev_get_drvdata(dev); > > /* We don't want to handle interrupt without calling mtd routine */ > disable_int(info, NDCR_INT_MASK); > @@ -1930,15 +1930,19 @@ static int pxa3xx_nand_resume(struct platform_device *pdev) > #define pxa3xx_nand_resume NULL > #endif > > +static const struct dev_pm_ops pxa3xx_nand_pm_ops = { > + .suspend = pxa3xx_nand_suspend, > + .resume = pxa3xx_nand_resume, > +}; > + > static struct platform_driver pxa3xx_nand_driver = { > .driver = { > .name = "pxa3xx-nand", > .of_match_table = pxa3xx_nand_dt_ids, > + .pm = &pxa3xx_nand_pm_ops, > }, > .probe = pxa3xx_nand_probe, > .remove = pxa3xx_nand_remove, > - .suspend = pxa3xx_nand_suspend, > - .resume = pxa3xx_nand_resume, > }; > > module_platform_driver(pxa3xx_nand_driver); > -- > 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 ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 2/2] mtd: pxa3xx_nand: switch to device PM 2015-10-15 18:32 ` Ezequiel Garcia @ 2015-10-16 15:24 ` Ezequiel Garcia 2015-10-16 16:35 ` Brian Norris 0 siblings, 1 reply; 11+ messages in thread From: Ezequiel Garcia @ 2015-10-16 15:24 UTC (permalink / raw) To: Brian Norris, Robert Jarzmik; +Cc: linux-mtd, Ezequiel Garcia On 15 Oct 03:32 PM, Ezequiel Garcia wrote: > +Robert > > On 12 October 2015 at 18:07, Brian Norris <computersforpeace@gmail.com> wrote: > > On Mon, Oct 12, 2015 at 01:33:12PM -0700, Brian Norris wrote: > >> The old PM model is deprecated. This is equivalent. > >> > >> Signed-off-by: Brian Norris <computersforpeace@gmail.com> > > > > Sorry, this patch was garbage. Below is the correct one: > > Tested on Armada XP-GP using standby and checking nandtest continues to work after a resume. Tested-by: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar> Patch looks good, so: Acked-by: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar> Thanks! > > --- > > > > Signed-off-by: Brian Norris <computersforpeace@gmail.com> > > --- > > drivers/mtd/nand/pxa3xx_nand.c | 18 +++++++++++------- > > 1 file changed, 11 insertions(+), 7 deletions(-) > > > > diff --git a/drivers/mtd/nand/pxa3xx_nand.c b/drivers/mtd/nand/pxa3xx_nand.c > > index cce5a32eef60..51b67ae5ac1c 100644 > > --- a/drivers/mtd/nand/pxa3xx_nand.c > > +++ b/drivers/mtd/nand/pxa3xx_nand.c > > @@ -1889,21 +1889,21 @@ static int pxa3xx_nand_probe(struct platform_device *pdev) > > } > > > > #ifdef CONFIG_PM > > -static int pxa3xx_nand_suspend(struct platform_device *pdev, pm_message_t state) > > +static int pxa3xx_nand_suspend(struct device *dev) > > { > > - struct pxa3xx_nand_info *info = platform_get_drvdata(pdev); > > + struct pxa3xx_nand_info *info = dev_get_drvdata(dev); > > > > if (info->state) { > > - dev_err(&pdev->dev, "driver busy, state = %d\n", info->state); > > + dev_err(dev, "driver busy, state = %d\n", info->state); > > return -EAGAIN; > > } > > > > return 0; > > } > > > > -static int pxa3xx_nand_resume(struct platform_device *pdev) > > +static int pxa3xx_nand_resume(struct device *dev) > > { > > - struct pxa3xx_nand_info *info = platform_get_drvdata(pdev); > > + struct pxa3xx_nand_info *info = dev_get_drvdata(dev); > > > > /* We don't want to handle interrupt without calling mtd routine */ > > disable_int(info, NDCR_INT_MASK); > > @@ -1930,15 +1930,19 @@ static int pxa3xx_nand_resume(struct platform_device *pdev) > > #define pxa3xx_nand_resume NULL > > #endif > > > > +static const struct dev_pm_ops pxa3xx_nand_pm_ops = { > > + .suspend = pxa3xx_nand_suspend, > > + .resume = pxa3xx_nand_resume, > > +}; > > + > > static struct platform_driver pxa3xx_nand_driver = { > > .driver = { > > .name = "pxa3xx-nand", > > .of_match_table = pxa3xx_nand_dt_ids, > > + .pm = &pxa3xx_nand_pm_ops, > > }, > > .probe = pxa3xx_nand_probe, > > .remove = pxa3xx_nand_remove, > > - .suspend = pxa3xx_nand_suspend, > > - .resume = pxa3xx_nand_resume, > > }; > > > > module_platform_driver(pxa3xx_nand_driver); > > -- > > 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 -- Ezequiel Garcia, VanguardiaSur www.vanguardiasur.com.ar ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 2/2] mtd: pxa3xx_nand: switch to device PM 2015-10-16 15:24 ` Ezequiel Garcia @ 2015-10-16 16:35 ` Brian Norris 0 siblings, 0 replies; 11+ messages in thread From: Brian Norris @ 2015-10-16 16:35 UTC (permalink / raw) To: Ezequiel Garcia; +Cc: Robert Jarzmik, linux-mtd, Ezequiel Garcia On Fri, Oct 16, 2015 at 12:24:17PM -0300, Ezequiel Garcia wrote: > On 15 Oct 03:32 PM, Ezequiel Garcia wrote: > > +Robert > > > > On 12 October 2015 at 18:07, Brian Norris <computersforpeace@gmail.com> wrote: > > > On Mon, Oct 12, 2015 at 01:33:12PM -0700, Brian Norris wrote: > > >> The old PM model is deprecated. This is equivalent. > > >> > > >> Signed-off-by: Brian Norris <computersforpeace@gmail.com> > > > > > > Sorry, this patch was garbage. Below is the correct one: > > > > > Tested on Armada XP-GP using standby and checking nandtest > continues to work after a resume. > > Tested-by: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar> > > Patch looks good, so: > > Acked-by: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar> > > Thanks! Pushed to l2-mtd.git ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 1/2] mtd: pxa3xx_nand: don't duplicate MTD suspend/resume 2015-10-12 20:33 [PATCH 1/2] mtd: pxa3xx_nand: don't duplicate MTD suspend/resume Brian Norris 2015-10-12 20:33 ` [PATCH 2/2] mtd: pxa3xx_nand: switch to device PM Brian Norris @ 2015-10-15 18:33 ` Ezequiel Garcia 2015-10-16 15:26 ` Ezequiel Garcia 2015-10-20 19:33 ` Robert Jarzmik 1 sibling, 2 replies; 11+ messages in thread From: Ezequiel Garcia @ 2015-10-15 18:33 UTC (permalink / raw) To: Brian Norris, Robert Jarzmik; +Cc: linux-mtd, Ezequiel Garcia 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@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@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 ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 1/2] mtd: pxa3xx_nand: don't duplicate MTD suspend/resume 2015-10-15 18:33 ` [PATCH 1/2] mtd: pxa3xx_nand: don't duplicate MTD suspend/resume Ezequiel Garcia @ 2015-10-16 15:26 ` Ezequiel Garcia 2015-10-16 16:37 ` Brian Norris 2015-10-20 19:33 ` Robert Jarzmik 1 sibling, 1 reply; 11+ messages in thread From: Ezequiel Garcia @ 2015-10-16 15:26 UTC (permalink / raw) To: Brian Norris, Robert Jarzmik; +Cc: linux-mtd, Ezequiel Garcia On 15 Oct 03:33 PM, Ezequiel Garcia wrote: > 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@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. > > Brian, We discussed this on IRC, but I completely forgot about it :/ Without this patch nand_{suspend, resume} is called twice (which seems harmless), tested on Armada XP-GP using nandtest. Tested-by: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar> Acked-by: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar> -- Ezequiel Garcia, VanguardiaSur www.vanguardiasur.com.ar ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 1/2] mtd: pxa3xx_nand: don't duplicate MTD suspend/resume 2015-10-16 15:26 ` Ezequiel Garcia @ 2015-10-16 16:37 ` Brian Norris 2015-10-16 16:50 ` Ezequiel Garcia 0 siblings, 1 reply; 11+ messages in thread From: Brian Norris @ 2015-10-16 16:37 UTC (permalink / raw) To: Ezequiel Garcia; +Cc: Robert Jarzmik, linux-mtd, Ezequiel Garcia On Fri, Oct 16, 2015 at 12:26:54PM -0300, Ezequiel Garcia wrote: > On 15 Oct 03:33 PM, Ezequiel Garcia wrote: > > 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@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. > > > > > Brian, > > We discussed this on IRC, but I completely forgot about it :/ No problem. > Without this patch nand_{suspend, resume} is called twice > (which seems harmless), tested on Armada XP-GP using nandtest. Right, I think it's incidentally harmless. But you do get this warning without the patch set, right? nand_resume called for a chip which is not in suspended state > Tested-by: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar> > Acked-by: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar> Pushed to l2-mtd.git ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 1/2] mtd: pxa3xx_nand: don't duplicate MTD suspend/resume 2015-10-16 16:37 ` Brian Norris @ 2015-10-16 16:50 ` Ezequiel Garcia 0 siblings, 0 replies; 11+ messages in thread From: Ezequiel Garcia @ 2015-10-16 16:50 UTC (permalink / raw) To: Brian Norris; +Cc: Robert Jarzmik, linux-mtd, Ezequiel Garcia On 16 October 2015 at 13:37, Brian Norris <computersforpeace@gmail.com> wrote: > On Fri, Oct 16, 2015 at 12:26:54PM -0300, Ezequiel Garcia wrote: >> On 15 Oct 03:33 PM, Ezequiel Garcia wrote: >> > 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@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. >> > > >> >> Brian, >> >> We discussed this on IRC, but I completely forgot about it :/ > > No problem. > >> Without this patch nand_{suspend, resume} is called twice >> (which seems harmless), tested on Armada XP-GP using nandtest. > > Right, I think it's incidentally harmless. But you do get this warning > without the patch set, right? > > nand_resume called for a chip which is not in suspended state > Yup, I get that warning. >> Tested-by: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar> >> Acked-by: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar> > > Pushed to l2-mtd.git -- Ezequiel García, VanguardiaSur www.vanguardiasur.com.ar ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 1/2] mtd: pxa3xx_nand: don't duplicate MTD suspend/resume 2015-10-15 18:33 ` [PATCH 1/2] mtd: pxa3xx_nand: don't duplicate MTD suspend/resume Ezequiel Garcia 2015-10-16 15:26 ` Ezequiel Garcia @ 2015-10-20 19:33 ` Robert Jarzmik 1 sibling, 0 replies; 11+ messages in thread From: Robert Jarzmik @ 2015-10-20 19:33 UTC (permalink / raw) To: Ezequiel Garcia; +Cc: Brian Norris, linux-mtd, Ezequiel Garcia Ezequiel Garcia <ezequiel@vanguardiasur.com.ar> writes: > Robert: > > Can you test this on a platform with PM support, and make sure > the NAND works fine after a resume? Euh actually I can't. I'm only sure Suspend to RAM is working for pxa27x, I have not yet this proof for pxa3xx, and my last try wasn't very successful 3 monthes ago ... As this regression might be within my platform's configuration (IPL setup, ...), I don't yet know where the bug is. Cheers. -- Robert ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2015-10-20 19:39 UTC | newest] Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2015-10-12 20:33 [PATCH 1/2] mtd: pxa3xx_nand: don't duplicate MTD suspend/resume Brian Norris 2015-10-12 20:33 ` [PATCH 2/2] mtd: pxa3xx_nand: switch to device PM Brian Norris 2015-10-12 21:07 ` Brian Norris 2015-10-15 18:32 ` Ezequiel Garcia 2015-10-16 15:24 ` Ezequiel Garcia 2015-10-16 16:35 ` Brian Norris 2015-10-15 18:33 ` [PATCH 1/2] mtd: pxa3xx_nand: don't duplicate MTD suspend/resume Ezequiel Garcia 2015-10-16 15:26 ` Ezequiel Garcia 2015-10-16 16:37 ` Brian Norris 2015-10-16 16:50 ` Ezequiel Garcia 2015-10-20 19:33 ` Robert Jarzmik
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.