Message ID | 20210309122748.31842-2-kishon@ti.com |
---|---|
State | New |
Headers | show |
Series | TI/Cadence: Add Sierra/Torrent SERDES driver | expand |
Hi Kishon, On Tue, 9 Mar 2021 at 05:27, Kishon Vijay Abraham I <kishon@ti.com> wrote: > > Add helper to compare node names. > > Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com> > --- > drivers/core/ofnode.c | 13 +++++++++++++ > include/dm/ofnode.h | 9 +++++++++ > 2 files changed, 22 insertions(+) > > diff --git a/drivers/core/ofnode.c b/drivers/core/ofnode.c > index fa0bd2a9c4..4e196d680e 100644 > --- a/drivers/core/ofnode.c > +++ b/drivers/core/ofnode.c > @@ -18,6 +18,19 @@ > #include <linux/ioport.h> > #include <asm/global_data.h> > > +bool ofnode_name_eq(ofnode node, const char *name) > +{ > + const char *node_name; > + size_t len; > + > + assert(ofnode_valid(node)); > + > + node_name = ofnode_get_name(node); > + len = strchrnul(node_name, '@') - node_name; > + > + return (strlen(name) == len) && (strncmp(node_name, name, len) == 0); Can you use !strncmp() instead of == 0 ? > +} > + > int ofnode_read_u32(ofnode node, const char *propname, u32 *outp) > { > return ofnode_read_u32_index(node, propname, 0, outp); > diff --git a/include/dm/ofnode.h b/include/dm/ofnode.h > index 2c0597c407..86a139276b 100644 > --- a/include/dm/ofnode.h > +++ b/include/dm/ofnode.h > @@ -231,6 +231,15 @@ static inline ofnode ofnode_root(void) > return node; > } > > +/** > + * ofnode_name_eq() - Check if the node name is equivalent to a given name > + * How about a comment indicating this ignores the unit address? > + * @node: valid node reference that has to be compared > + * @name: name that has to be compared with the node name > + * @return 1 if matches, 0 if it doesn't match > + */ > +bool ofnode_name_eq(ofnode node, const char *name); > + > /** > * ofnode_read_u32() - Read a 32-bit integer from a property > * > -- > 2.17.1 > Please add a test for this in test/dm Regards, SImon
Hi Simon, On 12/03/21 10:15 am, Simon Glass wrote: > Hi Kishon, > > On Tue, 9 Mar 2021 at 05:27, Kishon Vijay Abraham I <kishon@ti.com> wrote: >> >> Add helper to compare node names. >> >> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com> >> --- >> drivers/core/ofnode.c | 13 +++++++++++++ >> include/dm/ofnode.h | 9 +++++++++ >> 2 files changed, 22 insertions(+) >> >> diff --git a/drivers/core/ofnode.c b/drivers/core/ofnode.c >> index fa0bd2a9c4..4e196d680e 100644 >> --- a/drivers/core/ofnode.c >> +++ b/drivers/core/ofnode.c >> @@ -18,6 +18,19 @@ >> #include <linux/ioport.h> >> #include <asm/global_data.h> >> >> +bool ofnode_name_eq(ofnode node, const char *name) >> +{ >> + const char *node_name; >> + size_t len; >> + >> + assert(ofnode_valid(node)); >> + >> + node_name = ofnode_get_name(node); >> + len = strchrnul(node_name, '@') - node_name; >> + >> + return (strlen(name) == len) && (strncmp(node_name, name, len) == 0); > > Can you use !strncmp() instead of == 0 ? > >> +} >> + >> int ofnode_read_u32(ofnode node, const char *propname, u32 *outp) >> { >> return ofnode_read_u32_index(node, propname, 0, outp); >> diff --git a/include/dm/ofnode.h b/include/dm/ofnode.h >> index 2c0597c407..86a139276b 100644 >> --- a/include/dm/ofnode.h >> +++ b/include/dm/ofnode.h >> @@ -231,6 +231,15 @@ static inline ofnode ofnode_root(void) >> return node; >> } >> >> +/** >> + * ofnode_name_eq() - Check if the node name is equivalent to a given name >> + * > > How about a comment indicating this ignores the unit address? > >> + * @node: valid node reference that has to be compared >> + * @name: name that has to be compared with the node name >> + * @return 1 if matches, 0 if it doesn't match >> + */ >> +bool ofnode_name_eq(ofnode node, const char *name); >> + >> /** >> * ofnode_read_u32() - Read a 32-bit integer from a property >> * >> -- >> 2.17.1 >> > > Please add a test for this in test/dm Thanks for reviewing! Will fix it in my next revision. Thanks Kishon
diff --git a/drivers/core/ofnode.c b/drivers/core/ofnode.c index fa0bd2a9c4..4e196d680e 100644 --- a/drivers/core/ofnode.c +++ b/drivers/core/ofnode.c @@ -18,6 +18,19 @@ #include <linux/ioport.h> #include <asm/global_data.h> +bool ofnode_name_eq(ofnode node, const char *name) +{ + const char *node_name; + size_t len; + + assert(ofnode_valid(node)); + + node_name = ofnode_get_name(node); + len = strchrnul(node_name, '@') - node_name; + + return (strlen(name) == len) && (strncmp(node_name, name, len) == 0); +} + int ofnode_read_u32(ofnode node, const char *propname, u32 *outp) { return ofnode_read_u32_index(node, propname, 0, outp); diff --git a/include/dm/ofnode.h b/include/dm/ofnode.h index 2c0597c407..86a139276b 100644 --- a/include/dm/ofnode.h +++ b/include/dm/ofnode.h @@ -231,6 +231,15 @@ static inline ofnode ofnode_root(void) return node; } +/** + * ofnode_name_eq() - Check if the node name is equivalent to a given name + * + * @node: valid node reference that has to be compared + * @name: name that has to be compared with the node name + * @return 1 if matches, 0 if it doesn't match + */ +bool ofnode_name_eq(ofnode node, const char *name); + /** * ofnode_read_u32() - Read a 32-bit integer from a property *
Add helper to compare node names. Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com> --- drivers/core/ofnode.c | 13 +++++++++++++ include/dm/ofnode.h | 9 +++++++++ 2 files changed, 22 insertions(+) -- 2.17.1