All of lore.kernel.org
 help / color / mirror / Atom feed
* [v4l-utils PATCH 0/2] Print information on given entity only
@ 2016-09-13  8:28 Sakari Ailus
  2016-09-13  8:28 ` [v4l-utils PATCH 1/2] media-ctl: Split off printing information related to a single entity Sakari Ailus
  2016-09-13  8:28 ` [v4l-utils PATCH 2/2] media-ctl: Print " Sakari Ailus
  0 siblings, 2 replies; 12+ messages in thread
From: Sakari Ailus @ 2016-09-13  8:28 UTC (permalink / raw)
  To: linux-media; +Cc: laurent.pinchart

Hi,

These patches add the ability to media-ctl to print information on a given
entity only. That's sometimes handy.

-- 
Regards,
Sakari



^ permalink raw reply	[flat|nested] 12+ messages in thread

* [v4l-utils PATCH 1/2] media-ctl: Split off printing information related to a single entity
  2016-09-13  8:28 [v4l-utils PATCH 0/2] Print information on given entity only Sakari Ailus
@ 2016-09-13  8:28 ` Sakari Ailus
  2016-09-13 23:34   ` Laurent Pinchart
  2016-09-13  8:28 ` [v4l-utils PATCH 2/2] media-ctl: Print " Sakari Ailus
  1 sibling, 1 reply; 12+ messages in thread
From: Sakari Ailus @ 2016-09-13  8:28 UTC (permalink / raw)
  To: linux-media; +Cc: laurent.pinchart

As a result, a function that can be used to print information on a given
entity only is provided.

Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
 utils/media-ctl/media-ctl.c | 93 ++++++++++++++++++++++++---------------------
 1 file changed, 49 insertions(+), 44 deletions(-)

diff --git a/utils/media-ctl/media-ctl.c b/utils/media-ctl/media-ctl.c
index 2f049c6..0499008 100644
--- a/utils/media-ctl/media-ctl.c
+++ b/utils/media-ctl/media-ctl.c
@@ -436,67 +436,72 @@ static void media_print_pad_text(struct media_entity *entity,
 		v4l2_subdev_print_subdev_dv(entity);
 }
 
-static void media_print_topology_text(struct media_device *media)
+static void media_print_topology_text_entity(struct media_device *media,
+					     struct media_entity *entity)
 {
 	static const struct flag_name link_flags[] = {
 		{ MEDIA_LNK_FL_ENABLED, "ENABLED" },
 		{ MEDIA_LNK_FL_IMMUTABLE, "IMMUTABLE" },
 		{ MEDIA_LNK_FL_DYNAMIC, "DYNAMIC" },
 	};
-
-	unsigned int nents = media_get_entities_count(media);
-	unsigned int i, j, k;
+	const struct media_entity_desc *info = media_entity_get_info(entity);
+	const char *devname = media_entity_get_devname(entity);
+	unsigned int num_links = media_entity_get_links_count(entity);
+	unsigned int j, k;
 	unsigned int padding;
 
-	printf("Device topology\n");
-
-	for (i = 0; i < nents; ++i) {
-		struct media_entity *entity = media_get_entity(media, i);
-		const struct media_entity_desc *info = media_entity_get_info(entity);
-		const char *devname = media_entity_get_devname(entity);
-		unsigned int num_links = media_entity_get_links_count(entity);
-
-		padding = printf("- entity %u: ", info->id);
-		printf("%s (%u pad%s, %u link%s)\n", info->name,
-			info->pads, info->pads > 1 ? "s" : "",
-			num_links, num_links > 1 ? "s" : "");
-		printf("%*ctype %s subtype %s flags %x\n", padding, ' ',
-			media_entity_type_to_string(info->type),
-			media_entity_subtype_to_string(info->type),
-			info->flags);
-		if (devname)
-			printf("%*cdevice node name %s\n", padding, ' ', devname);
+	padding = printf("- entity %u: ", info->id);
+	printf("%s (%u pad%s, %u link%s)\n", info->name,
+	       info->pads, info->pads > 1 ? "s" : "",
+	       num_links, num_links > 1 ? "s" : "");
+	printf("%*ctype %s subtype %s flags %x\n", padding, ' ',
+	       media_entity_type_to_string(info->type),
+	       media_entity_subtype_to_string(info->type),
+	       info->flags);
+	if (devname)
+		printf("%*cdevice node name %s\n", padding, ' ', devname);
 
-		for (j = 0; j < info->pads; j++) {
-			const struct media_pad *pad = media_entity_get_pad(entity, j);
+	for (j = 0; j < info->pads; j++) {
+		const struct media_pad *pad = media_entity_get_pad(entity, j);
 
-			printf("\tpad%u: %s\n", j, media_pad_type_to_string(pad->flags));
+		printf("\tpad%u: %s\n", j, media_pad_type_to_string(pad->flags));
 
-			media_print_pad_text(entity, pad);
+		media_print_pad_text(entity, pad);
 
-			for (k = 0; k < num_links; k++) {
-				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;
+		for (k = 0; k < num_links; k++) {
+			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;
 
-				if (source->entity == entity && source->index == j)
-					printf("\t\t-> \"%s\":%u [",
-						media_entity_get_info(sink->entity)->name,
-						sink->index);
-				else if (sink->entity == entity && sink->index == j)
-					printf("\t\t<- \"%s\":%u [",
-						media_entity_get_info(source->entity)->name,
-						source->index);
-				else
-					continue;
+			if (source->entity == entity && source->index == j)
+				printf("\t\t-> \"%s\":%u [",
+				       media_entity_get_info(sink->entity)->name,
+				       sink->index);
+			else if (sink->entity == entity && sink->index == j)
+				printf("\t\t<- \"%s\":%u [",
+				       media_entity_get_info(source->entity)->name,
+				       source->index);
+			else
+				continue;
 
-				print_flags(link_flags, ARRAY_SIZE(link_flags), link->flags);
+			print_flags(link_flags, ARRAY_SIZE(link_flags), link->flags);
 
-				printf("]\n");
-			}
+			printf("]\n");
 		}
-		printf("\n");
 	}
+	printf("\n");
+}
+
+static void media_print_topology_text(struct media_device *media)
+{
+	unsigned int nents = media_get_entities_count(media);
+	unsigned int i;
+
+	printf("Device topology\n");
+
+	for (i = 0; i < nents; ++i)
+		media_print_topology_text_entity(
+			media, media_get_entity(media, i));
 }
 
 void media_print_topology(struct media_device *media, int dot)
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [v4l-utils PATCH 2/2] media-ctl: Print information related to a single entity
  2016-09-13  8:28 [v4l-utils PATCH 0/2] Print information on given entity only Sakari Ailus
  2016-09-13  8:28 ` [v4l-utils PATCH 1/2] media-ctl: Split off printing information related to a single entity Sakari Ailus
@ 2016-09-13  8:28 ` Sakari Ailus
  2016-09-13 23:41   ` Laurent Pinchart
  1 sibling, 1 reply; 12+ messages in thread
From: Sakari Ailus @ 2016-09-13  8:28 UTC (permalink / raw)
  To: linux-media; +Cc: laurent.pinchart

Add an optional argument to the -p option that allows printing all
information related to a given entity. This may be handy sometimes if only
a single entity is of interest and there are many entities.

Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
 utils/media-ctl/media-ctl.c | 26 +++++++++++++++-----------
 utils/media-ctl/options.c   |  9 ++++++---
 utils/media-ctl/options.h   |  1 +
 3 files changed, 22 insertions(+), 14 deletions(-)

diff --git a/utils/media-ctl/media-ctl.c b/utils/media-ctl/media-ctl.c
index 0499008..fdd2449 100644
--- a/utils/media-ctl/media-ctl.c
+++ b/utils/media-ctl/media-ctl.c
@@ -504,14 +504,6 @@ static void media_print_topology_text(struct media_device *media)
 			media, media_get_entity(media, i));
 }
 
-void media_print_topology(struct media_device *media, int dot)
-{
-	if (dot)
-		media_print_topology_dot(media);
-	else
-		media_print_topology_text(media);
-}
-
 int main(int argc, char **argv)
 {
 	struct media_device *media;
@@ -611,9 +603,21 @@ int main(int argc, char **argv)
 		}
 	}
 
-	if (media_opts.print || media_opts.print_dot) {
-		media_print_topology(media, media_opts.print_dot);
-		printf("\n");
+	if (media_opts.print_dot) {
+		media_print_topology_dot(media);
+	} else if (media_opts.print_entity) {
+		struct media_entity *entity = NULL;
+
+		entity = media_get_entity_by_name(media,
+						  media_opts.print_entity);
+		if (entity == NULL) {
+			printf("Entity '%s' not found\n",
+			       media_opts.print_entity);
+			goto out;
+		}
+		media_print_topology_text_entity(media, entity);
+	} else if (media_opts.print) {
+		media_print_topology_text(media);
 	}
 
 	if (media_opts.reset) {
diff --git a/utils/media-ctl/options.c b/utils/media-ctl/options.c
index a288a1b..3352626 100644
--- a/utils/media-ctl/options.c
+++ b/utils/media-ctl/options.c
@@ -51,7 +51,9 @@ static void usage(const char *argv0)
 	printf("-i, --interactive	Modify links interactively\n");
 	printf("-l, --links links	Comma-separated list of link descriptors to setup\n");
 	printf("    --known-mbus-fmts	List known media bus formats and their numeric values\n");
-	printf("-p, --print-topology	Print the device topology\n");
+	printf("-p, --print-topology [name] Print the device topology\n");
+	printf("			If entity name is specified, information to that entity\n");
+	printf("			only is printed.\n");
 	printf("    --print-dot		Print the device topology as a dot graph\n");
 	printf("-r, --reset		Reset all links to inactive\n");
 	printf("-v, --verbose		Be verbose\n");
@@ -109,7 +111,7 @@ static struct option opts[] = {
 	{"links", 1, 0, 'l'},
 	{"known-mbus-fmts", 0, 0, OPT_LIST_KNOWN_MBUS_FMTS},
 	{"print-dot", 0, 0, OPT_PRINT_DOT},
-	{"print-topology", 0, 0, 'p'},
+	{"print-topology", 2, 0, 'p'},
 	{"reset", 0, 0, 'r'},
 	{"verbose", 0, 0, 'v'},
 	{ },
@@ -146,7 +148,7 @@ int parse_cmdline(int argc, char **argv)
 	}
 
 	/* parse options */
-	while ((opt = getopt_long(argc, argv, "d:e:f:hil:prvV:",
+	while ((opt = getopt_long(argc, argv, "d:e:f:hil:p::rvV:",
 				  opts, NULL)) != -1) {
 		switch (opt) {
 		case 'd':
@@ -182,6 +184,7 @@ int parse_cmdline(int argc, char **argv)
 
 		case 'p':
 			media_opts.print = 1;
+			media_opts.print_entity = optarg;
 			break;
 
 		case 'r':
diff --git a/utils/media-ctl/options.h b/utils/media-ctl/options.h
index 9b5f314..ff9dfdf 100644
--- a/utils/media-ctl/options.h
+++ b/utils/media-ctl/options.h
@@ -30,6 +30,7 @@ struct media_options
 		     print_dot:1,
 		     reset:1,
 		     verbose:1;
+	const char *print_entity;
 	const char *entity;
 	const char *formats;
 	const char *links;
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* Re: [v4l-utils PATCH 1/2] media-ctl: Split off printing information related to a single entity
  2016-09-13  8:28 ` [v4l-utils PATCH 1/2] media-ctl: Split off printing information related to a single entity Sakari Ailus
@ 2016-09-13 23:34   ` Laurent Pinchart
  0 siblings, 0 replies; 12+ messages in thread
From: Laurent Pinchart @ 2016-09-13 23:34 UTC (permalink / raw)
  To: Sakari Ailus; +Cc: linux-media

Hi Sakari,

Thank you for the patch.

On Tuesday 13 Sep 2016 11:28:15 Sakari Ailus wrote:
> As a result, a function that can be used to print information on a given
> entity only is provided.
> 
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>

Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

> ---
>  utils/media-ctl/media-ctl.c | 93 +++++++++++++++++++++---------------------
>  1 file changed, 49 insertions(+), 44 deletions(-)

-- 
Regards,

Laurent Pinchart


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [v4l-utils PATCH 2/2] media-ctl: Print information related to a single entity
  2016-09-13  8:28 ` [v4l-utils PATCH 2/2] media-ctl: Print " Sakari Ailus
@ 2016-09-13 23:41   ` Laurent Pinchart
  2016-09-14 14:27     ` [v4l-utils PATCH v1.1 " Sakari Ailus
  2016-09-14 14:29     ` [v4l-utils PATCH v1.2 " Sakari Ailus
  0 siblings, 2 replies; 12+ messages in thread
From: Laurent Pinchart @ 2016-09-13 23:41 UTC (permalink / raw)
  To: Sakari Ailus; +Cc: linux-media

Hi Sakari,

Thank you for the patch. This is a feature I've often thought would be useful.

On Tuesday 13 Sep 2016 11:28:16 Sakari Ailus wrote:
> Add an optional argument to the -p option that allows printing all
> information related to a given entity. This may be handy sometimes if only
> a single entity is of interest and there are many entities.

Would it make sense to instead reuse the -e argument ? If both -p and -e are 
specified, print entity information for the entity referenced by -e. If only -
p or -e are specified, operate as we do today.

> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> ---
>  utils/media-ctl/media-ctl.c | 26 +++++++++++++++-----------
>  utils/media-ctl/options.c   |  9 ++++++---
>  utils/media-ctl/options.h   |  1 +
>  3 files changed, 22 insertions(+), 14 deletions(-)
> 
> diff --git a/utils/media-ctl/media-ctl.c b/utils/media-ctl/media-ctl.c
> index 0499008..fdd2449 100644
> --- a/utils/media-ctl/media-ctl.c
> +++ b/utils/media-ctl/media-ctl.c
> @@ -504,14 +504,6 @@ static void media_print_topology_text(struct
> media_device *media) media, media_get_entity(media, i));
>  }
> 
> -void media_print_topology(struct media_device *media, int dot)
> -{
> -	if (dot)
> -		media_print_topology_dot(media);
> -	else
> -		media_print_topology_text(media);
> -}
> -
>  int main(int argc, char **argv)
>  {
>  	struct media_device *media;
> @@ -611,9 +603,21 @@ int main(int argc, char **argv)
>  		}
>  	}
> 
> -	if (media_opts.print || media_opts.print_dot) {
> -		media_print_topology(media, media_opts.print_dot);
> -		printf("\n");
> +	if (media_opts.print_dot) {
> +		media_print_topology_dot(media);
> +	} else if (media_opts.print_entity) {
> +		struct media_entity *entity = NULL;
> +
> +		entity = media_get_entity_by_name(media,
> +						  media_opts.print_entity);
> +		if (entity == NULL) {
> +			printf("Entity '%s' not found\n",
> +			       media_opts.print_entity);
> +			goto out;
> +		}
> +		media_print_topology_text_entity(media, entity);
> +	} else if (media_opts.print) {
> +		media_print_topology_text(media);
>  	}
> 
>  	if (media_opts.reset) {
> diff --git a/utils/media-ctl/options.c b/utils/media-ctl/options.c
> index a288a1b..3352626 100644
> --- a/utils/media-ctl/options.c
> +++ b/utils/media-ctl/options.c
> @@ -51,7 +51,9 @@ static void usage(const char *argv0)
>  	printf("-i, --interactive	Modify links interactively\n");
>  	printf("-l, --links links	Comma-separated list of link
> descriptors to setup\n");
> 	printf("    --known-mbus-fmts	List known media bus formats and
> their numeric values\n");
> -	printf("-p, --print-topology	Print the device topology\n");
> +	printf("-p, --print-topology [name] Print the device topology\n");
> +	printf("			If entity name is specified,
> information to that entity\n");
> +	printf("			only is printed.\n");

I'd wrap this to make lines a bit shorter, and perhaps write it as

printf("-p, --print-topology [name]\n);
printf("			Print the device topology. If name\n");
printf("			is specified, print information for\n");
printf("			the named entity only.\n);

Or if you go by my proposal above,

printf("-p, --print-topology	Print the device topology. If an entity\n");
printf("			is specified through the -e option, print\n");
printf("			information for that entity only.\n);

>  	printf("    --print-dot		Print the device topology as a dot 
graph\n");
>  	printf("-r, --reset		Reset all links to inactive\n");
>  	printf("-v, --verbose		Be verbose\n");
> @@ -109,7 +111,7 @@ static struct option opts[] = {
>  	{"links", 1, 0, 'l'},
>  	{"known-mbus-fmts", 0, 0, OPT_LIST_KNOWN_MBUS_FMTS},
>  	{"print-dot", 0, 0, OPT_PRINT_DOT},
> -	{"print-topology", 0, 0, 'p'},
> +	{"print-topology", 2, 0, 'p'},
>  	{"reset", 0, 0, 'r'},
>  	{"verbose", 0, 0, 'v'},
>  	{ },
> @@ -146,7 +148,7 @@ int parse_cmdline(int argc, char **argv)
>  	}
> 
>  	/* parse options */
> -	while ((opt = getopt_long(argc, argv, "d:e:f:hil:prvV:",
> +	while ((opt = getopt_long(argc, argv, "d:e:f:hil:p::rvV:",
>  				  opts, NULL)) != -1) {
>  		switch (opt) {
>  		case 'd':
> @@ -182,6 +184,7 @@ int parse_cmdline(int argc, char **argv)
> 
>  		case 'p':
>  			media_opts.print = 1;
> +			media_opts.print_entity = optarg;
>  			break;
> 
>  		case 'r':
> diff --git a/utils/media-ctl/options.h b/utils/media-ctl/options.h
> index 9b5f314..ff9dfdf 100644
> --- a/utils/media-ctl/options.h
> +++ b/utils/media-ctl/options.h
> @@ -30,6 +30,7 @@ struct media_options
>  		     print_dot:1,
>  		     reset:1,
>  		     verbose:1;
> +	const char *print_entity;
>  	const char *entity;
>  	const char *formats;
>  	const char *links;

-- 
Regards,

Laurent Pinchart


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [v4l-utils PATCH v1.1 2/2] media-ctl: Print information related to a single entity
  2016-09-13 23:41   ` Laurent Pinchart
@ 2016-09-14 14:27     ` Sakari Ailus
  2016-09-14 14:29     ` [v4l-utils PATCH v1.2 " Sakari Ailus
  1 sibling, 0 replies; 12+ messages in thread
From: Sakari Ailus @ 2016-09-14 14:27 UTC (permalink / raw)
  To: linux-media; +Cc: laurent.pinchart

Add an optional argument to the -p option that allows printing all
information related to a given entity. This may be handy sometimes if only
a single entity is of interest and there are many entities.

Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
 utils/media-ctl/media-ctl.c | 33 +++++++++++++++------------------
 utils/media-ctl/options.c   |  2 ++
 2 files changed, 17 insertions(+), 18 deletions(-)

diff --git a/utils/media-ctl/media-ctl.c b/utils/media-ctl/media-ctl.c
index 0499008..109cc11 100644
--- a/utils/media-ctl/media-ctl.c
+++ b/utils/media-ctl/media-ctl.c
@@ -504,19 +504,11 @@ static void media_print_topology_text(struct media_device *media)
 			media, media_get_entity(media, i));
 }
 
-void media_print_topology(struct media_device *media, int dot)
-{
-	if (dot)
-		media_print_topology_dot(media);
-	else
-		media_print_topology_text(media);
-}
-
 int main(int argc, char **argv)
 {
 	struct media_device *media;
+	struct media_entity *entity = NULL;
 	int ret = -1;
-	const char *devname;
 
 	if (parse_cmdline(argc, argv))
 		return EXIT_FAILURE;
@@ -562,17 +554,11 @@ int main(int argc, char **argv)
 	}
 
 	if (media_opts.entity) {
-		struct media_entity *entity;
-
 		entity = media_get_entity_by_name(media, media_opts.entity);
 		if (entity == NULL) {
 			printf("Entity '%s' not found\n", media_opts.entity);
 			goto out;
 		}
-
-		devname = media_entity_get_devname(entity);
-		if (devname)
-			printf("%s\n", devname);
 	}
 
 	if (media_opts.fmt_pad) {
@@ -611,9 +597,20 @@ int main(int argc, char **argv)
 		}
 	}
 
-	if (media_opts.print || media_opts.print_dot) {
-		media_print_topology(media, media_opts.print_dot);
-		printf("\n");
+	if (media_opts.print_dot) {
+		media_print_topology_dot(media);
+	} else if (media_opts.print) {
+		if (entity) {
+			media_print_topology_text_entity(media, entity);
+		} else {
+			media_print_topology_text(media);
+		}
+	} else if (entity) {
+		const char *devname;
+
+		devname = media_entity_get_devname(entity);
+		if (devname)
+			printf("%s\n", devname);
 	}
 
 	if (media_opts.reset) {
diff --git a/utils/media-ctl/options.c b/utils/media-ctl/options.c
index a288a1b..304a86c 100644
--- a/utils/media-ctl/options.c
+++ b/utils/media-ctl/options.c
@@ -52,6 +52,8 @@ static void usage(const char *argv0)
 	printf("-l, --links links	Comma-separated list of link descriptors to setup\n");
 	printf("    --known-mbus-fmts	List known media bus formats and their numeric values\n");
 	printf("-p, --print-topology	Print the device topology\n");
+	printf("			If entity name is specified using -e option, information\n");
+	printf("			related to that entity only is printed.\n");
 	printf("    --print-dot		Print the device topology as a dot graph\n");
 	printf("-r, --reset		Reset all links to inactive\n");
 	printf("-v, --verbose		Be verbose\n");
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [v4l-utils PATCH v1.2 2/2] media-ctl: Print information related to a single entity
  2016-09-13 23:41   ` Laurent Pinchart
  2016-09-14 14:27     ` [v4l-utils PATCH v1.1 " Sakari Ailus
@ 2016-09-14 14:29     ` Sakari Ailus
  2016-09-14 22:05       ` Laurent Pinchart
  1 sibling, 1 reply; 12+ messages in thread
From: Sakari Ailus @ 2016-09-14 14:29 UTC (permalink / raw)
  To: linux-media; +Cc: laurent.pinchart

Add a possibility to printing all information related to a given entity by
using both -p and -e options. This may be handy sometimes if only a single
entity is of interest and there are many entities.

Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
Fixed the commit message as well.

 utils/media-ctl/media-ctl.c | 33 +++++++++++++++------------------
 utils/media-ctl/options.c   |  2 ++
 2 files changed, 17 insertions(+), 18 deletions(-)

diff --git a/utils/media-ctl/media-ctl.c b/utils/media-ctl/media-ctl.c
index 0499008..109cc11 100644
--- a/utils/media-ctl/media-ctl.c
+++ b/utils/media-ctl/media-ctl.c
@@ -504,19 +504,11 @@ static void media_print_topology_text(struct media_device *media)
 			media, media_get_entity(media, i));
 }
 
-void media_print_topology(struct media_device *media, int dot)
-{
-	if (dot)
-		media_print_topology_dot(media);
-	else
-		media_print_topology_text(media);
-}
-
 int main(int argc, char **argv)
 {
 	struct media_device *media;
+	struct media_entity *entity = NULL;
 	int ret = -1;
-	const char *devname;
 
 	if (parse_cmdline(argc, argv))
 		return EXIT_FAILURE;
@@ -562,17 +554,11 @@ int main(int argc, char **argv)
 	}
 
 	if (media_opts.entity) {
-		struct media_entity *entity;
-
 		entity = media_get_entity_by_name(media, media_opts.entity);
 		if (entity == NULL) {
 			printf("Entity '%s' not found\n", media_opts.entity);
 			goto out;
 		}
-
-		devname = media_entity_get_devname(entity);
-		if (devname)
-			printf("%s\n", devname);
 	}
 
 	if (media_opts.fmt_pad) {
@@ -611,9 +597,20 @@ int main(int argc, char **argv)
 		}
 	}
 
-	if (media_opts.print || media_opts.print_dot) {
-		media_print_topology(media, media_opts.print_dot);
-		printf("\n");
+	if (media_opts.print_dot) {
+		media_print_topology_dot(media);
+	} else if (media_opts.print) {
+		if (entity) {
+			media_print_topology_text_entity(media, entity);
+		} else {
+			media_print_topology_text(media);
+		}
+	} else if (entity) {
+		const char *devname;
+
+		devname = media_entity_get_devname(entity);
+		if (devname)
+			printf("%s\n", devname);
 	}
 
 	if (media_opts.reset) {
diff --git a/utils/media-ctl/options.c b/utils/media-ctl/options.c
index a288a1b..304a86c 100644
--- a/utils/media-ctl/options.c
+++ b/utils/media-ctl/options.c
@@ -52,6 +52,8 @@ static void usage(const char *argv0)
 	printf("-l, --links links	Comma-separated list of link descriptors to setup\n");
 	printf("    --known-mbus-fmts	List known media bus formats and their numeric values\n");
 	printf("-p, --print-topology	Print the device topology\n");
+	printf("			If entity name is specified using -e option, information\n");
+	printf("			related to that entity only is printed.\n");
 	printf("    --print-dot		Print the device topology as a dot graph\n");
 	printf("-r, --reset		Reset all links to inactive\n");
 	printf("-v, --verbose		Be verbose\n");
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* Re: [v4l-utils PATCH v1.2 2/2] media-ctl: Print information related to a single entity
  2016-09-14 14:29     ` [v4l-utils PATCH v1.2 " Sakari Ailus
@ 2016-09-14 22:05       ` Laurent Pinchart
  2016-09-15  6:39         ` Sakari Ailus
  2016-09-15  6:40         ` [v4l-utils PATCH v1.3 " Sakari Ailus
  0 siblings, 2 replies; 12+ messages in thread
From: Laurent Pinchart @ 2016-09-14 22:05 UTC (permalink / raw)
  To: Sakari Ailus; +Cc: linux-media

Hi Sakari,

Thank you for the patch.

On Wednesday 14 Sep 2016 17:29:39 Sakari Ailus wrote:
> Add a possibility to printing all information related to a given entity by
> using both -p and -e options. This may be handy sometimes if only a single
> entity is of interest and there are many entities.
> 
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> ---
> Fixed the commit message as well.
> 
>  utils/media-ctl/media-ctl.c | 33 +++++++++++++++------------------
>  utils/media-ctl/options.c   |  2 ++
>  2 files changed, 17 insertions(+), 18 deletions(-)
> 
> diff --git a/utils/media-ctl/media-ctl.c b/utils/media-ctl/media-ctl.c
> index 0499008..109cc11 100644
> --- a/utils/media-ctl/media-ctl.c
> +++ b/utils/media-ctl/media-ctl.c
> @@ -504,19 +504,11 @@ static void media_print_topology_text(struct
> media_device *media) media, media_get_entity(media, i));
>  }
> 
> -void media_print_topology(struct media_device *media, int dot)
> -{
> -	if (dot)
> -		media_print_topology_dot(media);
> -	else
> -		media_print_topology_text(media);
> -}
> -
>  int main(int argc, char **argv)
>  {
>  	struct media_device *media;
> +	struct media_entity *entity = NULL;
>  	int ret = -1;
> -	const char *devname;
> 
>  	if (parse_cmdline(argc, argv))
>  		return EXIT_FAILURE;
> @@ -562,17 +554,11 @@ int main(int argc, char **argv)
>  	}
> 
>  	if (media_opts.entity) {
> -		struct media_entity *entity;
> -
>  		entity = media_get_entity_by_name(media, media_opts.entity);
>  		if (entity == NULL) {
>  			printf("Entity '%s' not found\n", media_opts.entity);
>  			goto out;
>  		}
> -
> -		devname = media_entity_get_devname(entity);
> -		if (devname)
> -			printf("%s\n", devname);
>  	}
> 
>  	if (media_opts.fmt_pad) {
> @@ -611,9 +597,20 @@ int main(int argc, char **argv)
>  		}
>  	}
> 
> -	if (media_opts.print || media_opts.print_dot) {
> -		media_print_topology(media, media_opts.print_dot);
> -		printf("\n");
> +	if (media_opts.print_dot) {
> +		media_print_topology_dot(media);
> +	} else if (media_opts.print) {
> +		if (entity) {
> +			media_print_topology_text_entity(media, entity);
> +		} else {
> +			media_print_topology_text(media);
> +		}

You could remove the curly braces here.

> +	} else if (entity) {
> +		const char *devname;
> +
> +		devname = media_entity_get_devname(entity);
> +		if (devname)
> +			printf("%s\n", devname);
>  	}
> 
>  	if (media_opts.reset) {
> diff --git a/utils/media-ctl/options.c b/utils/media-ctl/options.c
> index a288a1b..304a86c 100644
> --- a/utils/media-ctl/options.c
> +++ b/utils/media-ctl/options.c
> @@ -52,6 +52,8 @@ static void usage(const char *argv0)
>  	printf("-l, --links links	Comma-separated list of link 
descriptors to
> setup\n"); printf("    --known-mbus-fmts	List known media bus formats 
and
> their numeric values\n"); printf("-p, --print-topology	Print the 
device
> topology\n");
> +	printf("			If entity name is specified using -e 
option, information\n");
> +	printf("			related to that entity only is 
printed.\n");

Nitpicking, was anything wrong with

printf("-p, --print-topology    Print the device topology. If an entity\n");
printf("                        is specified through the -e option, print\n");
printf("                        information for that entity only.\n);

? I think the help text looks more natural when using articles :-)

>  	printf("    --print-dot		Print the device topology as a dot 
graph\n");
>  	printf("-r, --reset		Reset all links to inactive\n");
>  	printf("-v, --verbose		Be verbose\n");

-- 
Regards,

Laurent Pinchart


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [v4l-utils PATCH v1.2 2/2] media-ctl: Print information related to a single entity
  2016-09-14 22:05       ` Laurent Pinchart
@ 2016-09-15  6:39         ` Sakari Ailus
  2016-09-15  6:40         ` [v4l-utils PATCH v1.3 " Sakari Ailus
  1 sibling, 0 replies; 12+ messages in thread
From: Sakari Ailus @ 2016-09-15  6:39 UTC (permalink / raw)
  To: Laurent Pinchart; +Cc: linux-media

On 09/15/16 01:05, Laurent Pinchart wrote:
> Hi Sakari,
> 
> Thank you for the patch.
> 
> On Wednesday 14 Sep 2016 17:29:39 Sakari Ailus wrote:
>> Add a possibility to printing all information related to a given entity by
>> using both -p and -e options. This may be handy sometimes if only a single
>> entity is of interest and there are many entities.
>>
>> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
>> ---
>> Fixed the commit message as well.
>>
>>  utils/media-ctl/media-ctl.c | 33 +++++++++++++++------------------
>>  utils/media-ctl/options.c   |  2 ++
>>  2 files changed, 17 insertions(+), 18 deletions(-)
>>
>> diff --git a/utils/media-ctl/media-ctl.c b/utils/media-ctl/media-ctl.c
>> index 0499008..109cc11 100644
>> --- a/utils/media-ctl/media-ctl.c
>> +++ b/utils/media-ctl/media-ctl.c
>> @@ -504,19 +504,11 @@ static void media_print_topology_text(struct
>> media_device *media) media, media_get_entity(media, i));
>>  }
>>
>> -void media_print_topology(struct media_device *media, int dot)
>> -{
>> -	if (dot)
>> -		media_print_topology_dot(media);
>> -	else
>> -		media_print_topology_text(media);
>> -}
>> -
>>  int main(int argc, char **argv)
>>  {
>>  	struct media_device *media;
>> +	struct media_entity *entity = NULL;
>>  	int ret = -1;
>> -	const char *devname;
>>
>>  	if (parse_cmdline(argc, argv))
>>  		return EXIT_FAILURE;
>> @@ -562,17 +554,11 @@ int main(int argc, char **argv)
>>  	}
>>
>>  	if (media_opts.entity) {
>> -		struct media_entity *entity;
>> -
>>  		entity = media_get_entity_by_name(media, media_opts.entity);
>>  		if (entity == NULL) {
>>  			printf("Entity '%s' not found\n", media_opts.entity);
>>  			goto out;
>>  		}
>> -
>> -		devname = media_entity_get_devname(entity);
>> -		if (devname)
>> -			printf("%s\n", devname);
>>  	}
>>
>>  	if (media_opts.fmt_pad) {
>> @@ -611,9 +597,20 @@ int main(int argc, char **argv)
>>  		}
>>  	}
>>
>> -	if (media_opts.print || media_opts.print_dot) {
>> -		media_print_topology(media, media_opts.print_dot);
>> -		printf("\n");
>> +	if (media_opts.print_dot) {
>> +		media_print_topology_dot(media);
>> +	} else if (media_opts.print) {
>> +		if (entity) {
>> +			media_print_topology_text_entity(media, entity);
>> +		} else {
>> +			media_print_topology_text(media);
>> +		}
> 
> You could remove the curly braces here.

Will fix.

> 
>> +	} else if (entity) {
>> +		const char *devname;
>> +
>> +		devname = media_entity_get_devname(entity);
>> +		if (devname)
>> +			printf("%s\n", devname);
>>  	}
>>
>>  	if (media_opts.reset) {
>> diff --git a/utils/media-ctl/options.c b/utils/media-ctl/options.c
>> index a288a1b..304a86c 100644
>> --- a/utils/media-ctl/options.c
>> +++ b/utils/media-ctl/options.c
>> @@ -52,6 +52,8 @@ static void usage(const char *argv0)
>>  	printf("-l, --links links	Comma-separated list of link 
> descriptors to
>> setup\n"); printf("    --known-mbus-fmts	List known media bus formats 
> and
>> their numeric values\n"); printf("-p, --print-topology	Print the 
> device
>> topology\n");
>> +	printf("			If entity name is specified using -e 
> option, information\n");
>> +	printf("			related to that entity only is 
> printed.\n");
> 
> Nitpicking, was anything wrong with
> 
> printf("-p, --print-topology    Print the device topology. If an entity\n");
> printf("                        is specified through the -e option, print\n");
> printf("                        information for that entity only.\n);

Not necessarily, but I missed that part of your reply. I'll replace it.

> 
> ? I think the help text looks more natural when using articles :-)

The message was still clear, wasn't it? :-D

> 
>>  	printf("    --print-dot		Print the device topology as a dot 
> graph\n");
>>  	printf("-r, --reset		Reset all links to inactive\n");
>>  	printf("-v, --verbose		Be verbose\n");
> 


-- 
Cheers,

Sakari Ailus
sakari.ailus@linux.intel.com

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [v4l-utils PATCH v1.3 2/2] media-ctl: Print information related to a single entity
  2016-09-14 22:05       ` Laurent Pinchart
  2016-09-15  6:39         ` Sakari Ailus
@ 2016-09-15  6:40         ` Sakari Ailus
  2016-09-15  8:10           ` Laurent Pinchart
  1 sibling, 1 reply; 12+ messages in thread
From: Sakari Ailus @ 2016-09-15  6:40 UTC (permalink / raw)
  To: linux-media; +Cc: laurent.pinchart

Add a possibility to printing all information related to a given entity by
using both -p and -e options. This may be handy sometimes if only a single
entity is of interest and there are many entities.

Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
 utils/media-ctl/media-ctl.c | 32 ++++++++++++++------------------
 utils/media-ctl/options.c   |  4 +++-
 2 files changed, 17 insertions(+), 19 deletions(-)

diff --git a/utils/media-ctl/media-ctl.c b/utils/media-ctl/media-ctl.c
index 0499008..b60d297 100644
--- a/utils/media-ctl/media-ctl.c
+++ b/utils/media-ctl/media-ctl.c
@@ -504,19 +504,11 @@ static void media_print_topology_text(struct media_device *media)
 			media, media_get_entity(media, i));
 }
 
-void media_print_topology(struct media_device *media, int dot)
-{
-	if (dot)
-		media_print_topology_dot(media);
-	else
-		media_print_topology_text(media);
-}
-
 int main(int argc, char **argv)
 {
 	struct media_device *media;
+	struct media_entity *entity = NULL;
 	int ret = -1;
-	const char *devname;
 
 	if (parse_cmdline(argc, argv))
 		return EXIT_FAILURE;
@@ -562,17 +554,11 @@ int main(int argc, char **argv)
 	}
 
 	if (media_opts.entity) {
-		struct media_entity *entity;
-
 		entity = media_get_entity_by_name(media, media_opts.entity);
 		if (entity == NULL) {
 			printf("Entity '%s' not found\n", media_opts.entity);
 			goto out;
 		}
-
-		devname = media_entity_get_devname(entity);
-		if (devname)
-			printf("%s\n", devname);
 	}
 
 	if (media_opts.fmt_pad) {
@@ -611,9 +597,19 @@ int main(int argc, char **argv)
 		}
 	}
 
-	if (media_opts.print || media_opts.print_dot) {
-		media_print_topology(media, media_opts.print_dot);
-		printf("\n");
+	if (media_opts.print_dot) {
+		media_print_topology_dot(media);
+	} else if (media_opts.print) {
+		if (entity)
+			media_print_topology_text_entity(media, entity);
+		else
+			media_print_topology_text(media);
+	} else if (entity) {
+		const char *devname;
+
+		devname = media_entity_get_devname(entity);
+		if (devname)
+			printf("%s\n", devname);
 	}
 
 	if (media_opts.reset) {
diff --git a/utils/media-ctl/options.c b/utils/media-ctl/options.c
index a288a1b..77d1a51 100644
--- a/utils/media-ctl/options.c
+++ b/utils/media-ctl/options.c
@@ -51,7 +51,9 @@ static void usage(const char *argv0)
 	printf("-i, --interactive	Modify links interactively\n");
 	printf("-l, --links links	Comma-separated list of link descriptors to setup\n");
 	printf("    --known-mbus-fmts	List known media bus formats and their numeric values\n");
-	printf("-p, --print-topology	Print the device topology\n");
+	printf("-p, --print-topology	Print the device topology. If an entity\n");
+	printf("			is specified through the -e option, print\n");
+	printf("			information for that entity only.\n);
 	printf("    --print-dot		Print the device topology as a dot graph\n");
 	printf("-r, --reset		Reset all links to inactive\n");
 	printf("-v, --verbose		Be verbose\n");
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* Re: [v4l-utils PATCH v1.3 2/2] media-ctl: Print information related to a single entity
  2016-09-15  6:40         ` [v4l-utils PATCH v1.3 " Sakari Ailus
@ 2016-09-15  8:10           ` Laurent Pinchart
  2016-09-15  8:15             ` Sakari Ailus
  0 siblings, 1 reply; 12+ messages in thread
From: Laurent Pinchart @ 2016-09-15  8:10 UTC (permalink / raw)
  To: Sakari Ailus; +Cc: linux-media

Hi Sakari,

Thank you for the patch.

On Thursday 15 Sep 2016 09:40:39 Sakari Ailus wrote:
> Add a possibility to printing all information related to a given entity by
> using both -p and -e options. This may be handy sometimes if only a single
> entity is of interest and there are many entities.
> 
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>

Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

> ---
>  utils/media-ctl/media-ctl.c | 32 ++++++++++++++------------------
>  utils/media-ctl/options.c   |  4 +++-
>  2 files changed, 17 insertions(+), 19 deletions(-)
> 
> diff --git a/utils/media-ctl/media-ctl.c b/utils/media-ctl/media-ctl.c
> index 0499008..b60d297 100644
> --- a/utils/media-ctl/media-ctl.c
> +++ b/utils/media-ctl/media-ctl.c
> @@ -504,19 +504,11 @@ static void media_print_topology_text(struct
> media_device *media) media, media_get_entity(media, i));
>  }
> 
> -void media_print_topology(struct media_device *media, int dot)
> -{
> -	if (dot)
> -		media_print_topology_dot(media);
> -	else
> -		media_print_topology_text(media);
> -}
> -
>  int main(int argc, char **argv)
>  {
>  	struct media_device *media;
> +	struct media_entity *entity = NULL;
>  	int ret = -1;
> -	const char *devname;
> 
>  	if (parse_cmdline(argc, argv))
>  		return EXIT_FAILURE;
> @@ -562,17 +554,11 @@ int main(int argc, char **argv)
>  	}
> 
>  	if (media_opts.entity) {
> -		struct media_entity *entity;
> -
>  		entity = media_get_entity_by_name(media, media_opts.entity);
>  		if (entity == NULL) {
>  			printf("Entity '%s' not found\n", media_opts.entity);
>  			goto out;
>  		}
> -
> -		devname = media_entity_get_devname(entity);
> -		if (devname)
> -			printf("%s\n", devname);
>  	}
> 
>  	if (media_opts.fmt_pad) {
> @@ -611,9 +597,19 @@ int main(int argc, char **argv)
>  		}
>  	}
> 
> -	if (media_opts.print || media_opts.print_dot) {
> -		media_print_topology(media, media_opts.print_dot);
> -		printf("\n");
> +	if (media_opts.print_dot) {
> +		media_print_topology_dot(media);
> +	} else if (media_opts.print) {
> +		if (entity)
> +			media_print_topology_text_entity(media, entity);
> +		else
> +			media_print_topology_text(media);
> +	} else if (entity) {
> +		const char *devname;
> +
> +		devname = media_entity_get_devname(entity);
> +		if (devname)
> +			printf("%s\n", devname);
>  	}
> 
>  	if (media_opts.reset) {
> diff --git a/utils/media-ctl/options.c b/utils/media-ctl/options.c
> index a288a1b..77d1a51 100644
> --- a/utils/media-ctl/options.c
> +++ b/utils/media-ctl/options.c
> @@ -51,7 +51,9 @@ static void usage(const char *argv0)
>  	printf("-i, --interactive	Modify links interactively\n");
>  	printf("-l, --links links	Comma-separated list of link 
descriptors to
> setup\n"); printf("    --known-mbus-fmts	List known media bus formats 
and
> their numeric values\n"); -	printf("-p, --print-topology	Print the 
device
> topology\n");
> +	printf("-p, --print-topology	Print the device topology. If an 
entity\n");
> +	printf("			is specified through the -e option, 
print\n");
> +	printf("			information for that entity only.\n);
>  	printf("    --print-dot		Print the device topology as a dot 
graph\n");
>  	printf("-r, --reset		Reset all links to inactive\n");
>  	printf("-v, --verbose		Be verbose\n");

-- 
Regards,

Laurent Pinchart


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [v4l-utils PATCH v1.3 2/2] media-ctl: Print information related to a single entity
  2016-09-15  8:10           ` Laurent Pinchart
@ 2016-09-15  8:15             ` Sakari Ailus
  0 siblings, 0 replies; 12+ messages in thread
From: Sakari Ailus @ 2016-09-15  8:15 UTC (permalink / raw)
  To: Laurent Pinchart; +Cc: linux-media

On 09/15/16 11:10, Laurent Pinchart wrote:
> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

Thanks!

pushed to master.

-- 
Sakari Ailus
sakari.ailus@linux.intel.com

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2016-09-15  8:15 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-09-13  8:28 [v4l-utils PATCH 0/2] Print information on given entity only Sakari Ailus
2016-09-13  8:28 ` [v4l-utils PATCH 1/2] media-ctl: Split off printing information related to a single entity Sakari Ailus
2016-09-13 23:34   ` Laurent Pinchart
2016-09-13  8:28 ` [v4l-utils PATCH 2/2] media-ctl: Print " Sakari Ailus
2016-09-13 23:41   ` Laurent Pinchart
2016-09-14 14:27     ` [v4l-utils PATCH v1.1 " Sakari Ailus
2016-09-14 14:29     ` [v4l-utils PATCH v1.2 " Sakari Ailus
2016-09-14 22:05       ` Laurent Pinchart
2016-09-15  6:39         ` Sakari Ailus
2016-09-15  6:40         ` [v4l-utils PATCH v1.3 " Sakari Ailus
2016-09-15  8:10           ` Laurent Pinchart
2016-09-15  8:15             ` Sakari Ailus

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.