On Fri, Feb 5, 2021 at 4:27 PM Saravana Kannan <saravanak@xxxxxxxxxx> wrote: > > This allows fw_devlink to recognize clock provider drivers that don't > use the device-driver model to initialize the device. fw_devlink will > use this information to make sure consumers of such clock providers > aren't indefinitely blocked from probing, waiting for the power domain > device to appear and bind to a driver. Don't we have cases that are a mixture? IOW, a subset of the clock provider is initialized early, then the full driver takes over. You'd want consumers that are not a driver to succeed, but drivers to defer until the full driver is up. > > Signed-off-by: Saravana Kannan <saravanak@xxxxxxxxxx> > --- > drivers/clk/clk.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c > index 8c1d04db990d..27ff90eacb1f 100644 > --- a/drivers/clk/clk.c > +++ b/drivers/clk/clk.c > @@ -4555,6 +4555,8 @@ int of_clk_add_provider(struct device_node *np, > if (ret < 0) > of_clk_del_provider(np); > > + fwnode_dev_initialized(&np->fwnode, true); > + > return ret; > } > EXPORT_SYMBOL_GPL(of_clk_add_provider); > @@ -4672,6 +4674,7 @@ void of_clk_del_provider(struct device_node *np) > list_for_each_entry(cp, &of_clk_providers, link) { > if (cp->node == np) { > list_del(&cp->link); > + fwnode_dev_initialized(&np->fwnode, false); > of_node_put(cp->node); > kfree(cp); > break; > -- > 2.30.0.478.g8a0d178c01-goog >