[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