This is an automatic generated email to let you know that the following patch were queued at the http://git.linuxtv.org/cgit.cgi/v4l-utils.git tree:
Subject: v4l2-compliance: show device paths Author: Hans Verkuil <hans.verk...@cisco.com> Date: Sat Jun 23 11:41:39 2018 +0200 When logging the topology also translate major/minor numbers for a device node into an actual device path. Signed-off-by: Hans Verkuil <hans.verk...@cisco.com> utils/v4l2-compliance/v4l2-test-media.cpp | 31 ++++++++++++++++++++++++------- 1 file changed, 24 insertions(+), 7 deletions(-) --- http://git.linuxtv.org/cgit.cgi/v4l-utils.git/commit/?id=3b035ef053590856a4625d00dcef8d45cd3d9ea3 diff --git a/utils/v4l2-compliance/v4l2-test-media.cpp b/utils/v4l2-compliance/v4l2-test-media.cpp index 2953052774f8..9c10f95b4e89 100644 --- a/utils/v4l2-compliance/v4l2-test-media.cpp +++ b/utils/v4l2-compliance/v4l2-test-media.cpp @@ -25,6 +25,7 @@ #include <inttypes.h> #include <sys/types.h> #include <sys/stat.h> +#include <sys/sysmacros.h> #include <fcntl.h> #include <dirent.h> #include <ctype.h> @@ -167,10 +168,14 @@ int testMediaTopology(struct node *node) } for (unsigned i = 0; i < topology.num_interfaces; i++) { media_v2_interface &iface = v2_ifaces[i]; + dev_t dev = makedev(iface.devnode.major, iface.devnode.minor); + std::string devpath = mi_get_devpath_from_dev_t(dev); if (show_info) - printf("\t\tInterface: 0x%08x (Type: %s)\n", - iface.id, ifacetype2s(iface.intf_type).c_str()); + printf("\t\tInterface: 0x%08x (Type: %s, DevPath: %s)\n", + iface.id, ifacetype2s(iface.intf_type).c_str(), + devpath.c_str()); + fail_on_test(devpath.empty()); fail_on_test(check_0(iface.reserved, sizeof(iface.reserved))); fail_on_test(checkDevice(iface.devnode.major, iface.devnode.minor, true, iface.id)); @@ -216,11 +221,15 @@ int testMediaTopology(struct node *node) if (is_iface) { fail_on_test(v2_interfaces_set.find(link.source_id) == v2_interfaces_set.end()); fail_on_test(v2_entities_set.find(link.sink_id) == v2_entities_set.end()); + + media_v2_interface &iface = *v2_iface_map[link.source_id]; + dev_t dev = makedev(iface.devnode.major, iface.devnode.minor); + std::string devpath = mi_get_devpath_from_dev_t(dev); + if (show_info) - printf("\t\tLink: 0x%08x (%s to %s interface 0x%08x)\n", link.id, + printf("\t\tLink: 0x%08x (%s to interface %s)\n", link.id, v2_entity_map[link.sink_id]->name, - ifacetype2s(v2_iface_map[link.source_id]->intf_type).c_str(), - link.source_id); + devpath.c_str()); } else { fail_on_test(v2_pads_set.find(link.source_id) == v2_pads_set.end()); fail_on_test(v2_pads_set.find(link.sink_id) == v2_pads_set.end()); @@ -261,9 +270,17 @@ int testMediaEnum(struct node *node) ret = doioctl(node, MEDIA_IOC_ENUM_ENTITIES, &ent); if (ret == EINVAL) break; - if (show_info) - printf("\t\tEntity: 0x%08x (Name: '%s', Type: %s)\n", + dev_t dev = makedev(ent.dev.major, ent.dev.minor); + std::string devpath = mi_get_devpath_from_dev_t(dev); + + if (show_info) { + printf("\t\tEntity: 0x%08x (Name: '%s', Type: %s", ent.id, ent.name, entfunction2s(ent.type).c_str()); + if (!devpath.empty()) + printf(" DevPath: %s", devpath.c_str()); + printf(")\n"); + } + fail_on_test(dev && devpath.empty()); fail_on_test(check_0(ent.reserved, sizeof(ent.reserved))); fail_on_test(ent.id & MEDIA_ENT_ID_FLAG_NEXT); fail_on_test(!ent.id); _______________________________________________ linuxtv-commits mailing list linuxtv-commits@linuxtv.org https://www.linuxtv.org/cgi-bin/mailman/listinfo/linuxtv-commits