lkml.org 
[lkml]   [2021]   [Feb]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Date
    SubjectRe: [PATCH v4 8/8] clk: Mark fwnodes when their clock provider is added/removed
    On Fri, Feb 5, 2021 at 4:27 PM Saravana Kannan <saravanak@google.com> 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@google.com>
    > ---
    > 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
    >

    \
     
     \ /
      Last update: 2021-02-08 19:11    [W:2.580 / U:0.052 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site