* [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 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 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 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 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-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.