lkml.org 
[lkml]   [2019]   [Oct]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    Subject[PATCH v1 5/5] of: property: Skip adding device links to suppliers that aren't devices
    From
    Some devices need to be initialized really early and can't wait for
    driver core or drivers to be functional. These devices are typically
    initialized without creating a struct device for their device nodes.

    If a supplier ends up being one of these devices, skip trying to add
    device links to them.

    Signed-off-by: Saravana Kannan <saravanak@google.com>
    ---
    drivers/of/property.c | 4 +++-
    1 file changed, 3 insertions(+), 1 deletion(-)

    diff --git a/drivers/of/property.c b/drivers/of/property.c
    index f16f85597ccc..21c9d251318a 100644
    --- a/drivers/of/property.c
    +++ b/drivers/of/property.c
    @@ -1038,6 +1038,7 @@ static int of_link_to_phandle(struct device *dev, struct device_node *sup_np,
    struct device *sup_dev;
    int ret = 0;
    struct device_node *tmp_np = sup_np;
    + int is_populated;

    of_node_get(sup_np);
    /*
    @@ -1062,9 +1063,10 @@ static int of_link_to_phandle(struct device *dev, struct device_node *sup_np,
    return -EINVAL;
    }
    sup_dev = get_dev_from_fwnode(&sup_np->fwnode);
    + is_populated = of_node_check_flag(sup_np, OF_POPULATED);
    of_node_put(sup_np);
    if (!sup_dev)
    - return -EAGAIN;
    + return is_populated ? 0 : -EAGAIN;
    if (!device_link_add(dev, sup_dev, dl_flags))
    ret = -EAGAIN;
    put_device(sup_dev);
    --
    2.24.0.rc0.303.g954a862665-goog
    \
     
     \ /
      Last update: 2019-10-28 23:01    [W:4.387 / U:0.340 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site