Re: [PATCH 3/7] component: Introduce struct aggregate_device

From: Stephen Boyd
Date: Mon May 24 2021 - 02:01:30 EST


Quoting Saravana Kannan (2021-05-20 13:20:45)
> On Wed, May 19, 2021 at 5:25 PM Stephen Boyd <swboyd@xxxxxxxxxxxx> wrote:
> >
> > - master->parent = parent;
> > - master->ops = ops;
> > - master->match = match;
> > + id = ida_alloc(&aggregate_ida, GFP_KERNEL);
> > + if (id < 0) {
> > + kfree(adev);
> > + return id;
> > + }
> > +
> > + adev->id = id;
> > + adev->parent = parent;
> > + adev->dev.parent = parent;
>
> Don't set adev->dev.parent. You are creating a functional 1-1
> dependency where none exists. The real dependencies are the 1-many
> dependencies between the aggregate and the components. Use device
> links to capture that and enforce proper suspend/resume and runtime PM
> ordering.
>

Ah ok. Yeah it seems like that was the thing causing me runtime PM
problems. I've removed the parent patch from this series now and I'll
look at working in the device links now.