diff options
Diffstat (limited to 'tools/intel_iosf_sb_read.c')
-rw-r--r-- | tools/intel_iosf_sb_read.c | 153 |
1 files changed, 0 insertions, 153 deletions
diff --git a/tools/intel_iosf_sb_read.c b/tools/intel_iosf_sb_read.c deleted file mode 100644 index 097b0b8a..00000000 --- a/tools/intel_iosf_sb_read.c +++ /dev/null @@ -1,153 +0,0 @@ -/* - * Copyright © 2014 Intel Corporation - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ - -#include <unistd.h> -#include <stdlib.h> -#include <stdio.h> -#include <err.h> -#include <string.h> -#include "intel_io.h" -#include "intel_chipset.h" -#include "drmtest.h" - -/* keep sorted by name for bsearch() */ -static const struct iosf_sb_port { - const char *name; - uint8_t port; - uint8_t reg_stride; -} iosf_sb_ports[] = { - { "bunit", 0x03, 1, }, - { "cck", 0x14, 1, }, - { "ccu", 0xa9, 4, }, - { "dpio", 0x12, 4, }, - { "dpio2", 0x1a, 4, }, - { "flisdsi", 0x1b, 1, }, - { "gpio_nc", 0x13, 4, }, - { "nc", 0x11, 4, }, - { "punit", 0x04, 1, }, -}; - -static int iosf_sb_port_compare(const void *a, const void *b) -{ - const char *name = a; - const struct iosf_sb_port *p = b; - - return strcasecmp(name, p->name); -} - -static int iosf_sb_port_parse(const char *name, int *reg_stride) -{ - const struct iosf_sb_port *p; - - p = bsearch(name, iosf_sb_ports, ARRAY_SIZE(iosf_sb_ports), - sizeof(iosf_sb_ports[0]), - iosf_sb_port_compare); - if (p) { - *reg_stride = p->reg_stride; - return p->port; - } - - *reg_stride = 4; - return strtoul(name, NULL, 16); -} - -static void usage(const char *name) -{ - int i; - - printf("Warning : This program will work only on Valleyview/Cherryview\n" - "Usage: %s [-h] [-c <count>] [--] <port> <reg> [<reg> ...]\n" - "\t -h : Show this help text\n" - "\t -c <count> : how many consecutive registers to read\n" - "\t <port> : ", name); - for (i = 0; i < ARRAY_SIZE(iosf_sb_ports); i++) - printf("%s,", iosf_sb_ports[i].name); - printf(" or in hex\n" - "\t <reg> : in hex\n"); -} - -int main(int argc, char *argv[]) -{ - uint32_t port, reg, val; - struct pci_device *dev = intel_get_pci_device(); - int i, nregs, count = 1, reg_stride; - const char *name; - - fprintf(stderr, "WARNING: Use of %s has been deprecated and replaced by" - " intel_reg.\n", argv[0]); - - if (!IS_VALLEYVIEW(dev->device_id) && - !IS_CHERRYVIEW(dev->device_id)) { - usage(argv[0]); - return 1; - } - - for (;;) { - int c = getopt(argc, argv, "hc:"); - - if (c == -1) - break; - - switch (c) { - case 'h': - usage(argv[0]); - return 0; - case 'c': - count = strtol(optarg, NULL, 0); - if (count < 1) { - usage(argv[0]); - return 3; - } - break; - } - } - - nregs = argc - optind; - if (nregs < 1) { - usage(argv[0]); - return 2; - } - - i = optind; - name = argv[i++]; - port = iosf_sb_port_parse(name, ®_stride); - - intel_register_access_init(dev, 0); - - for (; i < argc; i++) { - int j; - - reg = strtoul(argv[i], NULL, 16); - - for (j = 0; j < count; j++) { - val = intel_iosf_sb_read(port, reg); - printf("0x%02x(%s)/0x%04x : 0x%08x\n", port, name, reg, val); - reg += reg_stride; - } - } - - intel_register_access_fini(); - - return 0; -} |