diff options
Diffstat (limited to 'fxstest.c')
-rwxr-xr-x | fxstest.c | 23 |
1 files changed, 23 insertions, 0 deletions
@@ -84,6 +84,29 @@ int main(int argc, char *argv[]) } printf("\n\n"); } + } else if (!strcasecmp(argv[2], "setdirect") || + !strcasecmp(argv[2], "setindirect")) { + struct wcfxs_regop regop; + int val; + int reg; + if ((argc < 5) || (sscanf(argv[3], "%i", ®) != 1) || + (sscanf(argv[4], "%i", &val) != 1)) { + fprintf(stderr, "Need a register and value...\n"); + } else { + regop.reg = reg; + regop.val = val; + if (!strcasecmp(argv[2], "setindirect")) { + regop.indirect = 1; + regop.val &= 0xff; + } else { + regop.indirect = 0; + } + res = ioctl(fd, WCFXS_SET_REG, ®op); + if (res) + fprintf(stderr, "Unable to get registers on channel %s\n", argv[1]); + else + printf("Success.\n"); + } } else fprintf(stderr, "Invalid command\n"); close(fd); |