From patchwork Tue Oct 1 17:26:24 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ramalingam C X-Patchwork-Id: 11169327 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id F095B14DB for ; Tue, 1 Oct 2019 17:27:01 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id D7DF92053B for ; Tue, 1 Oct 2019 17:27:01 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D7DF92053B Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 87D226E868; Tue, 1 Oct 2019 17:27:00 +0000 (UTC) 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 ESMTPS id 814706E867 for ; Tue, 1 Oct 2019 17:26:34 +0000 (UTC) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 01 Oct 2019 10:26:34 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.64,571,1559545200"; d="scan'208";a="221083326" Received: from ramaling-i9x.iind.intel.com ([10.99.66.154]) by fmsmga002.fm.intel.com with ESMTP; 01 Oct 2019 10:26:32 -0700 From: Ramalingam C To: intel-gfx Date: Tue, 1 Oct 2019 22:56:24 +0530 Message-Id: <20191001172624.26479-2-ramalingam.c@intel.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20191001172624.26479-1-ramalingam.c@intel.com> References: <20191001172624.26479-1-ramalingam.c@intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH 2/2] drm/i915/tgl: Skip Wa_1604555607 verification at A0 X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" Read of FF_MODE2 register is broken at TGL A0. Hence verification of the Wa_1604555607 associated to that register needs to be skipped. Signed-off-by: Ramalingam C cc: Tvrtko Ursulin --- drivers/gpu/drm/i915/gt/intel_workarounds.c | 22 ++++++++++++++++++++- drivers/gpu/drm/i915/i915_drv.h | 6 ++++++ 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/i915/gt/intel_workarounds.c b/drivers/gpu/drm/i915/gt/intel_workarounds.c index 4049b876492a..c63d8c3df4d3 100644 --- a/drivers/gpu/drm/i915/gt/intel_workarounds.c +++ b/drivers/gpu/drm/i915/gt/intel_workarounds.c @@ -991,10 +991,21 @@ wa_list_apply(struct intel_uncore *uncore, const struct i915_wa_list *wal) for (i = 0, wa = wal->list; i < wal->count; i++, wa++) { intel_uncore_rmw_fw(uncore, wa->reg, wa->mask, wa->val); - if (IS_ENABLED(CONFIG_DRM_I915_DEBUG_GEM)) + if (IS_ENABLED(CONFIG_DRM_I915_DEBUG_GEM)) { + + /* + * Read of FF_MODE2 is broken on TGL A0. + * Hence skip the corresponding WA verification. + */ + if (IS_TGL_REVID(uncore->i915, 0, TGL_REVID_A0) && + i915_mmio_reg_equal(wa->reg, FF_MODE2) && + wa->mask == FF_MODE2_TDS_TIMER_MASK) + continue; + wa_verify(wa, intel_uncore_read_fw(uncore, wa->reg), wal->name, "application"); + } } intel_uncore_forcewake_put__locked(uncore, fw); @@ -1553,6 +1564,15 @@ static int engine_wa_list_verify(struct intel_context *ce, if (mcr_range(rq->i915, i915_mmio_reg_offset(wa->reg))) continue; + /* + * Read of FF_MODE2 is broken on TGL A0. + * Hence skip the corresponding WA verification. + */ + if (IS_TGL_REVID(rq->i915, 0, TGL_REVID_A0) && + i915_mmio_reg_equal(wa->reg, FF_MODE2) && + wa->mask == FF_MODE2_TDS_TIMER_MASK) + continue; + if (!wa_verify(wa, results[i], wal->name, from)) err = -ENXIO; } diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h index 337d8306416a..05bf0b398ce7 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h @@ -2065,6 +2065,12 @@ IS_SUBPLATFORM(const struct drm_i915_private *i915, #define IS_ICL_REVID(p, since, until) \ (IS_ICELAKE(p) && IS_REVID(p, since, until)) +#define TGL_REVID_A0 0x0 +#define TGL_REVID_B0 0x1 + +#define IS_TGL_REVID(p, since, until) \ + (IS_TIGERLAKE(p) && IS_REVID(p, since, until)) + #define IS_LP(dev_priv) (INTEL_INFO(dev_priv)->is_lp) #define IS_GEN9_LP(dev_priv) (IS_GEN(dev_priv, 9) && IS_LP(dev_priv)) #define IS_GEN9_BC(dev_priv) (IS_GEN(dev_priv, 9) && !IS_LP(dev_priv))