[PATCH 1/2] mtd: rawnand: gpmi: Fix suspend/resume problem

Miquel Raynal miquel.raynal at bootlin.com
Thu Jan 9 07:15:12 PST 2020


Hi Han,

Han Xu <xhnjupt at gmail.com> wrote on Tue, 7 Jan 2020 13:31:27 -0600:

> On Thu, Jan 2, 2020 at 7:09 AM Esben Haabendal <esben at geanix.com> wrote:
> >
> > On system resume, the gpmi clock must be enabled before accessing gpmi
> > block.  Without this, resume causes something like
> >
> > [  661.348790] gpmi_reset_block(5cbb0f7e): module reset timeout
> > [  661.348889] gpmi-nand 1806000.gpmi-nand: Error setting GPMI : -110
> > [  661.348928] PM: dpm_run_callback(): platform_pm_resume+0x0/0x44 returns -110
> > [  661.348961] PM: Device 1806000.gpmi-nand failed to resume: error -110
> >
> > Signed-off-by: Esben Haabendal <esben at geanix.com>
> > ---
> >  drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c | 6 ++++++
> >  1 file changed, 6 insertions(+)
> >
> > diff --git a/drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c b/drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c
> > index 334fe3130285..7ac8c8b95afc 100644
> > --- a/drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c
> > +++ b/drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c
> > @@ -148,6 +148,10 @@ static int gpmi_init(struct gpmi_nand_data *this)
> >         struct resources *r = &this->resources;
> >         int ret;
> >
> > +       ret = pm_runtime_get_sync(this->dev);
> > +       if (ret < 0)
> > +               return ret;
> > +
> >         ret = gpmi_reset_block(r->gpmi_regs, false);
> >         if (ret)
> >                 goto err_out;
> > @@ -181,6 +185,8 @@ static int gpmi_init(struct gpmi_nand_data *this)
> >
> >         return 0;
> >  err_out:
> > +       pm_runtime_mark_last_busy(this->dev);
> > +       pm_runtime_put_autosuspend(this->dev);
> >         return ret;
> >  }  
> 
> I have a similar patch with more fixes, will send out tonight for review.

What should I do with this patch? It seems okay to me, what is your
plan? May I take this one for this release and you'll build above with
your series, is this fine for you?

Thanks,
Miquèl



More information about the linux-mtd mailing list