[Intel-gfx] [PATCH 2/3] intel_reg_read: support reading multiple registers

Eugeni Dodonov eugeni.dodonov at intel.com
Wed Feb 29 17:40:03 CET 2012


The registers must be passed on the command line and will be read
sequentially, one at a time.

Signed-off-by: Eugeni Dodonov <eugeni.dodonov at intel.com>
---
 tools/intel_reg_read.c |   12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/tools/intel_reg_read.c b/tools/intel_reg_read.c
index 95d28c5..5f94fed 100644
--- a/tools/intel_reg_read.c
+++ b/tools/intel_reg_read.c
@@ -43,7 +43,7 @@ static void dump_range(uint32_t start, uint32_t end)
 
 static void usage(char *cmdname)
 {
-	printf("Usage: %s [-f | addr]\n", cmdname);
+	printf("Usage: %s [-f] [addr1] [addr2] .. [addrN]\n", cmdname);
 	printf("\t -f : read back full range of registers.\n");
 	printf("\t      WARNING! This option may result in a machine hang!\n");
 	printf("\t addr : in 0xXXXX format\n");
@@ -53,7 +53,7 @@ int main(int argc, char** argv)
 {
 	int ret = 0;
 	uint32_t reg;
-	int ch;
+	int i, ch;
 	char *cmdname = strdup(argv[0]);
 	int full_dump = 0;
 
@@ -71,7 +71,7 @@ int main(int argc, char** argv)
 	argc -= optind;
 	argv += optind;
 
-	if (argc != 1) {
+	if (argc < 1) {
 		usage(cmdname);
 		ret = 1;
 		goto out;
@@ -95,8 +95,10 @@ int main(int argc, char** argv)
 		dump_range(0x70000, 0x72fff);   /* display and cursor registers */
 		dump_range(0x73000, 0x73fff);   /* performance counters */
 	} else {
-		sscanf(argv[0], "0x%x", &reg);
-		dump_range(reg, reg + 4);
+		for (i=0; i < argc; i++) {
+			sscanf(argv[i], "0x%x", &reg);
+			dump_range(reg, reg + 4);
+		}
 	}
 
 	intel_register_access_fini();
-- 
1.7.9.2




More information about the Intel-gfx mailing list