Quoting Saravana Kannan (2021-10-06 20:07:11) > On Wed, Oct 6, 2021 at 12:38 PM Stephen Boyd <swboyd@xxxxxxxxxxxx> wrote: > > diff --git a/drivers/base/component.c b/drivers/base/component.c > > index 0a41bbe14981..d99e99cabb99 100644 > > --- a/drivers/base/component.c > > +++ b/drivers/base/component.c [...] > > + continue; > > + > > + /* Matches put in component_del() */ > > + get_device(&adev->dev); > > + c->link = device_link_add(&adev->dev, c->dev, > > + DL_FLAG_STATELESS | DL_FLAG_PM_RUNTIME); > > Remove the STATELESS flag and you'll get a bunch of other stuff done for free: I tried that and it didn't work for me. The aggregate device never probed and I was left with no display. Let me see if I can reproduce it with logging to provide more details. > 1. The aggregate device would get force unbound when the component > devices unbind. > 2. You don't need to explicitly keep track of and delete the link. If > either of the devices get deleted, it'll get deleted automatically. > 3. It will avoid useless probe attempts of the aggregate device before > all the component devices are probed. > I don't think point 3 is happening right now. We only try to probe the aggregate device once all components probe.