From patchwork Mon Sep 3 15:16:27 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Damien Lespiau X-Patchwork-Id: 1400261 Return-Path: X-Original-To: patchwork-intel-gfx@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork1.kernel.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by patchwork1.kernel.org (Postfix) with ESMTP id E8A393FC85 for ; Mon, 3 Sep 2012 15:17:57 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 7818A9EFFD for ; Mon, 3 Sep 2012 08:17:57 -0700 (PDT) X-Original-To: intel-gfx@lists.freedesktop.org Delivered-To: intel-gfx@lists.freedesktop.org Received: from mail-pb0-f49.google.com (mail-pb0-f49.google.com [209.85.160.49]) by gabe.freedesktop.org (Postfix) with ESMTP id 53D199E964 for ; Mon, 3 Sep 2012 08:16:38 -0700 (PDT) Received: by mail-pb0-f49.google.com with SMTP id rq8so8630458pbb.36 for ; Mon, 03 Sep 2012 08:16:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:subject:date:message-id:x-mailer:in-reply-to:references; bh=9D9wtXi9AbuRUR/+0bo+70AH96R3xd9U4sY39f9mC7I=; b=ZQQm/xxvlocUIJjjesk972hKsTFV+xWbBHM5iCzcQsT6i39i6+3ECsDCCwGmyH3cnL 5MakaS9FDQev5ZVp0igNEWd+Xc02UdDGBSzy3rQqtpOXJnTH9WM1wPollV7xUQDpM9vS IIegIDIjLmBwJT7/u1N8d3Gi+rmanUqdEyiqqDJc4woZOrHb7x277Vt81obJLAMW2KBw 0jqimqHLrKhzdiiq3BSYM0nF1QOvf0aKp+84rkd5j99kKr2F/bFX6hGHGw2Z7bT+b3+1 lQfclsvs7TRRmRYDkqrI9mUXE0KZIaDAAZ/Qx3R0OJ5D6XHcT5MjL4SF1CQ+Q8JSfcyI MDWg== Received: by 10.68.222.102 with SMTP id ql6mr38608308pbc.72.1346685398134; Mon, 03 Sep 2012 08:16:38 -0700 (PDT) Received: from dyon.amr.corp.intel.com ([83.217.123.106]) by mx.google.com with ESMTPS id gf7sm10095505pbc.65.2012.09.03.08.16.36 (version=TLSv1/SSLv3 cipher=OTHER); Mon, 03 Sep 2012 08:16:37 -0700 (PDT) From: Damien Lespiau To: intel-gfx@lists.freedesktop.org Date: Mon, 3 Sep 2012 16:16:27 +0100 Message-Id: <1346685389-26198-2-git-send-email-damien.lespiau@gmail.com> X-Mailer: git-send-email 1.7.7.5 In-Reply-To: <1346685389-26198-1-git-send-email-damien.lespiau@gmail.com> References: <1346685389-26198-1-git-send-email-damien.lespiau@gmail.com> Subject: [Intel-gfx] [PATCH 2/4] intel_reg_dumper: Also decode registers given by address X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: intel-gfx-bounces+patchwork-intel-gfx=patchwork.kernel.org@lists.freedesktop.org Errors-To: intel-gfx-bounces+patchwork-intel-gfx=patchwork.kernel.org@lists.freedesktop.org From: Damien Lespiau One can now give an address instead of a register name to decode a single register. Signed-off-by: Damien Lespiau --- tools/intel_reg_dumper.c | 31 ++++++++++++++++++++++++++++++- 1 files changed, 30 insertions(+), 1 deletions(-) diff --git a/tools/intel_reg_dumper.c b/tools/intel_reg_dumper.c index cc68985..5bc47b6 100644 --- a/tools/intel_reg_dumper.c +++ b/tools/intel_reg_dumper.c @@ -1996,7 +1996,7 @@ find_register_by_name(struct reg_debug *regs, int count, } static void -decode_register(const char *name, uint32_t val) +decode_register_name(const char *name, uint32_t val) { int i; struct reg_debug *reg = NULL; @@ -2018,6 +2018,35 @@ decode_register(const char *name, uint32_t val) } static void +decode_register_address(int address, uint32_t val) +{ + int i, j; + + for (i = 0; i < ARRAY_SIZE(known_registers); i++) { + struct reg_debug *regs = known_registers[i].regs; + + for (j = 0; j < known_registers[i].count; j++) + if (regs[j].reg == address) + _intel_dump_reg(®s[j], val); + } +} + +static void +decode_register(const char *name, uint32_t val) +{ + long int address; + char *end; + + address = strtoul(name, &end, 0); + + /* found a register address */ + if (address && *end == '\0') + decode_register_address(address, val); + else + decode_register_name(name, val); +} + +static void intel_dump_other_regs(void) { int i;