RE: [PATCH V2 3/3] soc: fsl: add RCPM driver

From: Ran Wang
Date: Mon May 20 2019 - 05:06:15 EST


Hi Pavel,

On Monday, May 20, 2019 16:57, Pavel Machek wrote:
>
> Hi!
>
> > > > +static int rcpm_pm_prepare(struct device *dev) {
> > > > + struct device_node *np = dev->of_node;
> > > > + struct wakeup_source *ws;
> > > > + struct rcpm *rcpm;
> > > > + u32 value[RCPM_WAKEUP_CELL_MAX_SIZE + 1], tmp;
> > > > + int i, ret;
> > > > +
> > > > + rcpm = dev_get_drvdata(dev);
> > > > + if (!rcpm)
> > > > + return -EINVAL;
> > > > +
> > > > + /* Begin with first registered wakeup source */
> > > > + ws = wakeup_source_get_next(NULL);
> > > > + while (ws) {
> > >
> > > while (ws = wakeup_source_get_next(NULL)) ?
> >
> > Actually, we only pass NULL to wakeup_source_get_next() at very first
> > call to get 1st wakeup source. Then in the while loop, we will fetch
> > next source but not 1st, that's different. I am afraid your suggestion
> > is not quite correct.
>
> Sorry, I seen your next version before seeing this explanation.
>
> You are right, but the current code is "interesting". What about
>
> ws = NULL;
> while (ws = wakeup_source_get_next(NULL)) ...
>
> then?

Did you mean:
ws = NULL;
while (ws = wakeup_source_get_next(ws)) ...

Yes, that will be the same to my original logic, do you recommend to change
to this? :)

Regards,
Ran