Re: [PATCH v3 3/4] mtd: rawnand: Add support manufacturer specific suspend/resume operation

From: Boris Brezillon
Date: Wed Mar 11 2020 - 03:56:49 EST


On Wed, 11 Mar 2020 08:43:04 +0100
Miquel Raynal <miquel.raynal@xxxxxxxxxxx> wrote:

> Hi Mason,
>
> masonccyang@xxxxxxxxxxx wrote on Wed, 11 Mar 2020 13:40:52 +0800:
>
> > Hi Boris,
> >
> > > > diff --git a/include/linux/mtd/rawnand.h b/include/linux/mtd/rawnand.h
> > > > index bc2fa3c..c0055ed 100644
> > > > --- a/include/linux/mtd/rawnand.h
> > > > +++ b/include/linux/mtd/rawnand.h
> > > > @@ -1064,6 +1064,8 @@ struct nand_legacy {
> > > > * @lock: lock protecting the suspended field. Also used to
> > > > * serialize accesses to the NAND device.
> > > > * @suspended: set to 1 when the device is suspended, 0 when
> > it's not.
> > > > + * @_suspend: [REPLACEABLE] specific NAND device suspend
> > operation
> > > > + * @_resume: [REPLACEABLE] specific NAND device resume operation
> > > > * @bbt: [INTERN] bad block table pointer
> > > > * @bbt_td: [REPLACEABLE] bad block table descriptor for flash
> > > > * lookup.
> > > > @@ -1119,6 +1121,8 @@ struct nand_chip {
> > > >
> > > > struct mutex lock;
> > > > unsigned int suspended : 1;
> > > > + int (*_suspend)(struct nand_chip *chip);
> > > > + void (*_resume)(struct nand_chip *chip);
> > >
> > > I thought we agreed on not prefixing new hooks with _ ?
> >
> > For [PATCH v2] series, you mentioned to drop the _ prefix
> > of _lock/_unlock only and we finally patched to lock_area/unlock_area.
> >
>
> I missed this _, this is not something we want to add.
>
> Also, when applying your patches I had several issues because they
> where not base on the last -rc1.
>
> Finally, I think I forgot a line when patching manually so it produces
> a warning now.
>
> I am dropping patch 3 and 4, I keep patch 1 and 2 which seem fine.
>
> Please send a rebased and edited v4 for these, don't forget to drop the
> kbuildtest robot tag and please also follow these slightly edited
> commit logs:
>
> 2/4
>
> mtd: rawnand: Add support for manufacturer specific suspend/resume operation
>
> Patch nand_suspend() & nand_resume() to let manufacturers overwrite
> suspend/resume operations.
>
> 3/4
>
> mtd: rawnand: macronix: Add support for deep power down mode
>
> Macronix AD series support deep power down mode for a minimum
> power consumption state.
>
> Overlaod nand_suspend() & nand_resume() in Macronix specific code to
> support deep power down mode.

And don't forget to propagate the ->suspend() error code to the upper
layer.