lkml.org 
[lkml]   [2012]   [Apr]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v5 1/1] dt: add of_get_child_count helper function
    Date
    From: Dong Aisheng <dong.aisheng@linaro.org>

    Currently most code to get child count in kernel are almost same,
    add a helper to implement this function for dt to use.

    Cc: Grant Likely <grant.likely@secretlab.ca>
    Acked-by: Rob Herring <rob.herring@calxeda.com>
    Signed-off-by: Dong Aisheng <dong.aisheng@linaro.org>

    ---
    Rob missed this patch for 3.4 kernel.
    Based on Rob's suggestion, we can get it go in with pinctrl driver.
    Since Rob once had applied it, i added Rob's ack.
    See:
    https://lkml.org/lkml/2012/4/14/239

    changes v4->v5:
    * do not initialize child node pointer based on Stephen's suggestion.

    changes v3->v4:
    * addressed Grant's suggestion to use for_each_child_of_node.

    changes v2->v3:
    Addressed some people's comments:
    * do not use assignment as expression
    * return 0 for non-dt case

    Changes v1->v2:
    * change the name from of_get_child_number to of_get_child_count
    ---
    include/linux/of.h | 16 ++++++++++++++++
    1 files changed, 16 insertions(+), 0 deletions(-)

    diff --git a/include/linux/of.h b/include/linux/of.h
    index e3f942d..2ec1083 100644
    --- a/include/linux/of.h
    +++ b/include/linux/of.h
    @@ -193,6 +193,17 @@ extern struct device_node *of_get_next_child(const struct device_node *node,
    for (child = of_get_next_child(parent, NULL); child != NULL; \
    child = of_get_next_child(parent, child))

    +static inline int of_get_child_count(const struct device_node *np)
    +{
    + struct device_node *child;
    + int num = 0;
    +
    + for_each_child_of_node(np, child)
    + num++;
    +
    + return num;
    +}
    +
    extern struct device_node *of_find_node_with_property(
    struct device_node *from, const char *prop_name);
    #define for_each_node_with_property(dn, prop_name) \
    @@ -300,6 +311,11 @@ static inline bool of_have_populated_dt(void)
    #define for_each_child_of_node(parent, child) \
    while (0)

    +static inline int of_get_child_count(const struct device_node *np)
    +{
    + return 0;
    +}
    +
    static inline int of_device_is_compatible(const struct device_node *device,
    const char *name)
    {
    --
    1.7.0.4



    \
     
     \ /
      Last update: 2012-04-27 07:02    [W:4.025 / U:0.512 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site