This will allow reusing the flag printing code for the DV timings flags. Signed-off-by: Laurent Pinchart <laurent.pinch...@ideasonboard.com> --- utils/media-ctl/media-ctl.c | 43 +++++++++++++++++++++++++++++-------------- 1 file changed, 29 insertions(+), 14 deletions(-)
diff --git a/utils/media-ctl/media-ctl.c b/utils/media-ctl/media-ctl.c index d48969f..44c9644 100644 --- a/utils/media-ctl/media-ctl.c +++ b/utils/media-ctl/media-ctl.c @@ -48,6 +48,33 @@ * Printing */ +struct flag_name { + __u32 flag; + char *name; +}; + +static void print_flags(const struct flag_name *flag_names, unsigned int num_entries, __u32 flags) +{ + bool first = true; + unsigned int i; + + for (i = 0; i < num_entries; i++) { + if (!(flags & flag_names[i].flag)) + continue; + if (!first) + printf(","); + printf("%s", flag_names[i].name); + flags &= ~flag_names[i].flag; + first = false; + } + + if (flags) { + if (!first) + printf(","); + printf("0x%x", flags); + } +} + static void v4l2_subdev_print_format(struct media_entity *entity, unsigned int pad, enum v4l2_subdev_format_whence which) { @@ -255,10 +282,7 @@ static void media_print_topology_dot(struct media_device *media) static void media_print_topology_text(struct media_device *media) { - static const struct { - __u32 flag; - char *name; - } link_flags[] = { + static const struct flag_name link_flags[] = { { MEDIA_LNK_FL_ENABLED, "ENABLED" }, { MEDIA_LNK_FL_IMMUTABLE, "IMMUTABLE" }, { MEDIA_LNK_FL_DYNAMIC, "DYNAMIC" }, @@ -299,8 +323,6 @@ static void media_print_topology_text(struct media_device *media) const struct media_link *link = media_entity_get_link(entity, k); const struct media_pad *source = link->source; const struct media_pad *sink = link->sink; - bool first = true; - unsigned int i; if (source->entity == entity && source->index == j) printf("\t\t-> \"%s\":%u [", @@ -313,14 +335,7 @@ static void media_print_topology_text(struct media_device *media) else continue; - for (i = 0; i < ARRAY_SIZE(link_flags); i++) { - if (!(link->flags & link_flags[i].flag)) - continue; - if (!first) - printf(","); - printf("%s", link_flags[i].name); - first = false; - } + print_flags(link_flags, ARRAY_SIZE(link_flags), link->flags); printf("]\n"); } -- 1.8.5.5 -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html