[Intel-gfx] [PATCH i-g-t 7/9] tools/intel_iosf_sb_*: Support reading/writing multiple registers at once

ville.syrjala at linux.intel.com ville.syrjala at linux.intel.com
Mon Mar 23 06:14:57 PDT 2015


From: Ville Syrjälä <ville.syrjala at linux.intel.com>

Allow the user to specify a list of registers to read, and register/value
pairs to write.

Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
---
 tools/intel_iosf_sb_read.c  | 13 ++++++++-----
 tools/intel_iosf_sb_write.c | 20 ++++++++++----------
 2 files changed, 18 insertions(+), 15 deletions(-)

diff --git a/tools/intel_iosf_sb_read.c b/tools/intel_iosf_sb_read.c
index abe7fb5..48a22be 100644
--- a/tools/intel_iosf_sb_read.c
+++ b/tools/intel_iosf_sb_read.c
@@ -73,7 +73,7 @@ static void usage(const char *name)
 	int i;
 
 	printf("Warning : This program will work only on Valleyview/Cherryview\n"
-	       "Usage: %s [-h] [--] <port> <reg>\n"
+	       "Usage: %s [-h] [--] <port> <reg> [<reg> ...]\n"
 	       "\t -h : Show this help text\n"
 	       "\t <port> : ", name);
 	for (i = 0; i < ARRAY_SIZE(iosf_sb_ports); i++)
@@ -96,7 +96,7 @@ int main(int argc, char *argv[])
 	}
 
 	for (;;) {
-		int c = getopt(argc, argv, "h");
+		int c = getopt(argc, argv, "hc:");
 
 		if (c == -1)
 			break;
@@ -120,9 +120,12 @@ int main(int argc, char *argv[])
 
 	intel_register_access_init(dev, 0);
 
-	reg = strtoul(argv[i], NULL, 16);
-	val = intel_iosf_sb_read(port, reg);
-	printf("0x%02x(%s)/0x%04x : 0x%08x\n", port, name, reg, val);
+	for (; i < argc; i++) {
+		reg = strtoul(argv[i], NULL, 16);
+
+		val = intel_iosf_sb_read(port, reg);
+		printf("0x%02x(%s)/0x%04x : 0x%08x\n", port, name, reg, val);
+	}
 
 	intel_register_access_fini();
 
diff --git a/tools/intel_iosf_sb_write.c b/tools/intel_iosf_sb_write.c
index d0ba4d3..eb6700d 100644
--- a/tools/intel_iosf_sb_write.c
+++ b/tools/intel_iosf_sb_write.c
@@ -72,7 +72,7 @@ static void usage(const char *name)
 	int i;
 
 	printf("Warning : This program will work only on Valleyview/Cherryview\n"
-	       "Usage: %s [-h] [--] <port> <reg> <val>\n"
+	       "Usage: %s [-h] [--] <port> <reg> <val> [<reg> <val> ...]\n"
 	       "\t -h : Show this help text\n"
 	       "\t <port> : ", name);
 	for (i = 0; i < ARRAY_SIZE(iosf_sb_ports); i++)
@@ -118,18 +118,18 @@ int main(int argc, char** argv)
 	name = argv[i++];
 	port = iosf_sb_port_parse(name);
 
-	reg = strtoul(argv[i], NULL, 16);
-	val = strtoul(argv[i+1], NULL, 16);
-
 	intel_register_access_init(dev, 0);
 
-	tmp = intel_iosf_sb_read(port, reg);
-	printf("0x%02x(%s)/0x%04x before : 0x%08x\n", port, name, reg, tmp);
-
-	intel_iosf_sb_write(port, reg, val);
+	for (; i < argc; i += 2) {
+		reg = strtoul(argv[i], NULL, 16);
+		val = strtoul(argv[i+1], NULL, 16);
 
-	tmp = intel_iosf_sb_read(port, reg);
-	printf("0x%02x(%s)/0x%04x after  : 0x%08x\n", port, name, reg, tmp);
+		tmp = intel_iosf_sb_read(port, reg);
+		printf("0x%02x(%s)/0x%04x before : 0x%08x\n", port, name, reg, tmp);
+		intel_iosf_sb_write(port, reg, val);
+		tmp = intel_iosf_sb_read(port, reg);
+		printf("0x%02x(%s)/0x%04x after  : 0x%08x\n", port, name, reg, tmp);
+	}
 
 	intel_register_access_fini();
 
-- 
2.0.5



More information about the Intel-gfx mailing list