Quoting Saravana Kannan (2021-10-06 20:07:11)
On Wed, Oct 6, 2021 at 12:38 PM Stephen Boyd swboyd@chromium.org 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.
- 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.