From patchwork Mon Sep 1 13:29:47 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: arun.siluvery@linux.intel.com X-Patchwork-Id: 4819501 Return-Path: X-Original-To: patchwork-intel-gfx@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork2.web.kernel.org (Postfix) with ESMTP id AA835C0338 for ; Mon, 1 Sep 2014 13:30:11 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 7550820160 for ; Mon, 1 Sep 2014 13:30:09 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by mail.kernel.org (Postfix) with ESMTP id 41B9620154 for ; Mon, 1 Sep 2014 13:30:08 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id A98BC6E2C8; Mon, 1 Sep 2014 06:30:07 -0700 (PDT) X-Original-To: intel-gfx@lists.freedesktop.org Delivered-To: intel-gfx@lists.freedesktop.org Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id 4B8BD6E2C8 for ; Mon, 1 Sep 2014 06:30:06 -0700 (PDT) Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga101.fm.intel.com with ESMTP; 01 Sep 2014 06:30:05 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.04,442,1406617200"; d="scan'208";a="592851334" Received: from asiluver-linux.isw.intel.com ([10.102.226.49]) by fmsmga002.fm.intel.com with ESMTP; 01 Sep 2014 06:30:02 -0700 From: Arun Siluvery To: intel-gfx@lists.freedesktop.org Date: Mon, 1 Sep 2014 14:29:47 +0100 Message-Id: <1409578187-2909-3-git-send-email-arun.siluvery@linux.intel.com> X-Mailer: git-send-email 2.0.4 In-Reply-To: <1409578187-2909-1-git-send-email-arun.siluvery@linux.intel.com> References: <1409578187-2909-1-git-send-email-arun.siluvery@linux.intel.com> Subject: [Intel-gfx] [PATCH 2/2] igt/gem_workarounds: rework igt to test workaround registers X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" X-Spam-Status: No, score=-5.9 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_MED, RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP kernel patch that exports w/a data to debugfs is reworked so update igt accordingly. Address review comments from Damien. - if kernel is not exposing w/a data instead of failing just skip instead. - if the platform is not exposing w/a table then no of workarounds applied are 0; we can use this data to skip platform checks. Signed-off-by: Arun Siluvery --- tests/gem_workarounds.c | 44 +++++++++++++++++++++++--------------------- 1 file changed, 23 insertions(+), 21 deletions(-) diff --git a/tests/gem_workarounds.c b/tests/gem_workarounds.c index 32156d2..fae4382 100644 --- a/tests/gem_workarounds.c +++ b/tests/gem_workarounds.c @@ -62,7 +62,7 @@ int drm_fd; uint32_t devid; static drm_intel_bufmgr *bufmgr; struct intel_batchbuffer *batch; -int num_wa_regs; +int num_wa_regs = 0; struct intel_wa_reg *wa_regs; @@ -153,7 +153,7 @@ static void check_workarounds(enum operation op, int num) igt_info("Address\tbefore\t\tafter\t\tw/a mask\tresult\n"); for (i = 0; i < num; ++i) { status = (current_wa[i].value & current_wa[i].mask) != - (wa_regs[i].value & wa_regs[i].mask); + wa_regs[i].mask; if (status) ++fail_count; @@ -171,21 +171,15 @@ out: igt_main { igt_fixture { - int i; int fd; int ret; FILE *file; char *line = NULL; size_t line_size; - drm_fd = drm_open_any(); - - bufmgr = drm_intel_bufmgr_gem_init(drm_fd, 4096); - devid = intel_get_drm_devid(drm_fd); - batch = intel_batchbuffer_alloc(bufmgr, devid); - fd = igt_debugfs_open("i915_wa_registers", O_RDONLY); - igt_assert(fd >= 0); + if (fd < 0) + igt_skip_on("No Workaround table available !!\n"); file = fdopen(fd, "r"); igt_assert(file > 0); @@ -193,32 +187,40 @@ igt_main ret = getline(&line, &line_size, file); igt_assert(ret > 0); sscanf(line, "Workarounds applied: %d", &num_wa_regs); - igt_assert(num_wa_regs > 0); - wa_regs = malloc(num_wa_regs * sizeof(*wa_regs)); + if (num_wa_regs) { + int i = 0; - i = 0; - while(getline(&line, &line_size, file) > 0) { - sscanf(line, "0x%X: 0x%08X, mask: 0x%08X", - &wa_regs[i].addr, &wa_regs[i].value, - &wa_regs[i].mask); - ++i; - } + wa_regs = malloc(num_wa_regs * sizeof(*wa_regs)); + while (getline(&line, &line_size, file) > 0) { + sscanf(line, "0x%X: 0x%08X, mask: 0x%08X", + &wa_regs[i].addr, &wa_regs[i].value, + &wa_regs[i].mask); + ++i; + } + } else + igt_info("No workarounds exported\n"); free(line); fclose(file); close(fd); + + drm_fd = drm_open_any(); + + bufmgr = drm_intel_bufmgr_gem_init(drm_fd, 4096); + devid = intel_get_drm_devid(drm_fd); + batch = intel_batchbuffer_alloc(bufmgr, devid); } igt_subtest("check-workaround-data-after-reset") { - if (IS_BROADWELL(devid)) + if (num_wa_regs) check_workarounds(GPU_RESET, num_wa_regs); else igt_skip_on("No Workaround table available!!\n"); } igt_subtest("check-workaround-data-after-suspend-resume") { - if (IS_BROADWELL(devid)) + if (num_wa_regs) check_workarounds(SUSPEND_RESUME, num_wa_regs); else igt_skip_on("No Workaround table available!!\n");