Message ID | 1524019125-26287-3-git-send-email-yamada.masahiro@socionext.com |
---|---|
State | Superseded |
Headers | show |
Series | Add Linux-compatible syscon_to_regmap API | expand |
Hi Masahiro, On 17 April 2018 at 20:38, Masahiro Yamada <yamada.masahiro@socionext.com> wrote: > device_is_compatible() takes udevice, but there is no such a helper > that takes ofnode. > > Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> > --- > > drivers/core/device.c | 8 +------- > drivers/core/ofnode.c | 11 +++++++++++ > include/dm/ofnode.h | 11 +++++++++++ > 3 files changed, 23 insertions(+), 7 deletions(-) Please can you add a call to this to a test? Regards, Simon
2018-04-23 5:11 GMT+09:00 Simon Glass <sjg@chromium.org>: > Hi Masahiro, > > On 17 April 2018 at 20:38, Masahiro Yamada <yamada.masahiro@socionext.com> > wrote: >> device_is_compatible() takes udevice, but there is no such a helper >> that takes ofnode. >> >> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> >> --- >> >> drivers/core/device.c | 8 +------- >> drivers/core/ofnode.c | 11 +++++++++++ >> include/dm/ofnode.h | 11 +++++++++++ >> 3 files changed, 23 insertions(+), 7 deletions(-) > > Please can you add a call to this to a test? > No. I do not see any ofnode helper test in test/dm/. You are requesting additional work beyond this patch. It is unfair. This helper is tested indirectly by other tests. Of course, you (and anybody) are free to add per-helper grained tests, but this is not a good reason to block this patch.
Hi Masahiro, On 22 April 2018 at 22:50, Masahiro Yamada <yamada.masahiro@socionext.com> wrote: > 2018-04-23 5:11 GMT+09:00 Simon Glass <sjg@chromium.org>: >> Hi Masahiro, >> >> On 17 April 2018 at 20:38, Masahiro Yamada <yamada.masahiro@socionext.com > >> wrote: >>> device_is_compatible() takes udevice, but there is no such a helper >>> that takes ofnode. >>> >>> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> >>> --- >>> >>> drivers/core/device.c | 8 +------- >>> drivers/core/ofnode.c | 11 +++++++++++ >>> include/dm/ofnode.h | 11 +++++++++++ >>> 3 files changed, 23 insertions(+), 7 deletions(-) >> >> Please can you add a call to this to a test? >> > > No. > > I do not see any ofnode helper test in test/dm/. > > You are requesting additional work beyond this patch. > It is unfair. > > > This helper is tested indirectly by other tests. > > Of course, you (and anybody) are free to add per-helper grained tests, > but this is not a good reason to block this patch. I understand what you are saying, but you don't need to do any plumbing to make this work. A simple call is enough, perhaps in test-fdt.c? If we get enough tests we can refactor them into a separate ofnode test suite. We should not add code without tests. I plan to go back and add tests for specific calls, but don't want the work to become any harder for me. Regards, Simon
diff --git a/drivers/core/device.c b/drivers/core/device.c index 940a153..8d95787 100644 --- a/drivers/core/device.c +++ b/drivers/core/device.c @@ -709,13 +709,7 @@ int device_set_name(struct udevice *dev, const char *name) bool device_is_compatible(struct udevice *dev, const char *compat) { - const void *fdt = gd->fdt_blob; - ofnode node = dev_ofnode(dev); - - if (ofnode_is_np(node)) - return of_device_is_compatible(ofnode_to_np(node), compat, NULL, NULL); - else - return !fdt_node_check_compatible(fdt, ofnode_to_offset(node), compat); + return ofnode_device_is_compatible(dev_ofnode(dev), compat); } bool of_machine_is_compatible(const char *compat) diff --git a/drivers/core/ofnode.c b/drivers/core/ofnode.c index 5909a25..ee2109b 100644 --- a/drivers/core/ofnode.c +++ b/drivers/core/ofnode.c @@ -687,3 +687,14 @@ u64 ofnode_translate_address(ofnode node, const fdt32_t *in_addr) else return fdt_translate_address(gd->fdt_blob, ofnode_to_offset(node), in_addr); } + +int ofnode_device_is_compatible(ofnode node, const char *compat) +{ + if (ofnode_is_np(node)) + return of_device_is_compatible(ofnode_to_np(node), compat, + NULL, NULL); + else + return !fdt_node_check_compatible(gd->fdt_blob, + ofnode_to_offset(node), + compat); +} diff --git a/include/dm/ofnode.h b/include/dm/ofnode.h index 0d00840..a2c6a50 100644 --- a/include/dm/ofnode.h +++ b/include/dm/ofnode.h @@ -681,4 +681,15 @@ int ofnode_read_resource_byname(ofnode node, const char *name, * @return the translated address; OF_BAD_ADDR on error */ u64 ofnode_translate_address(ofnode node, const fdt32_t *in_addr); + +/** + * ofnode_device_is_compatible() - check if the node is compatible with compat + * + * This allows to check whether the node is comaptible with the compat. + * + * @node: Device tree node for which compatible needs to be verified. + * @compat: Compatible string which needs to verified in the given node. + * @return true if OK, false if the compatible is not found + */ +int ofnode_device_is_compatible(ofnode node, const char *compat); #endif
device_is_compatible() takes udevice, but there is no such a helper that takes ofnode. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> --- drivers/core/device.c | 8 +------- drivers/core/ofnode.c | 11 +++++++++++ include/dm/ofnode.h | 11 +++++++++++ 3 files changed, 23 insertions(+), 7 deletions(-)