Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp1191334yba; Thu, 18 Apr 2019 17:13:56 -0700 (PDT) X-Google-Smtp-Source: APXvYqz8yIxdr6eoipHM0GzUh3JRNHWV1qQRjz/xzxaRQctL2o6Hv7P97kT6SdAr5FQjPni5vLBW X-Received: by 2002:a62:204b:: with SMTP id g72mr578660pfg.51.1555632836680; Thu, 18 Apr 2019 17:13:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1555632836; cv=none; d=google.com; s=arc-20160816; b=e9KpVCsnuMiueXFX8bCR59EMb3aD2paWWCWflKJplYCqn+BQweT21+WUtP/x4gLrAN 9xQPs/h+8HDA86W+2PUG986RUYjjxb2X7ysmIXkjV9WU1b19M9DwdQH9NkNZjpwvbV4h XjlMU5Zq/yo1Gbbmjv9B3FeGbki0TnTjQ75koVfu+MMl2sZPA1Ta2/3Q/bFut+X4sEuQ 3saufPbHQW7tUFsKrJK581OM5pw4weZqdiwnDXLC6C1E9vcE2xCKPnco6P0CAkrbpOLC XqaSh3Dr21OVRKYmE8C013+StnLiUoG8dtVLNEp7Tph802B6hlmMab2HHbimFh/fgxJX 24Hg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=qeyklh019pmG3r3o4zGSorLFAitVP2kIlAcTGhzHgvE=; b=ht+ihoEuBBitkurH0mDJRPrQhJbbOCS5l8pbhznYqUhXz/Fz5o5diGFEfxLukgLiuJ ljFTIkdzlpCCxUIhkmX8z1YUzLWqrnZyjDFPZaLCz8ed7XEUmw3nw1B5LoxPQLP30IBg h0MC477I2vxl1hcbguRe89wUShZXeR9IOegR8wM2ANSk+uXk83HekQcapRBm3F8LOqB2 aZ2VJnivUv9VHC8I6KsMU3zJaGIq5KzNH/X/y7IFn6qcZV+MGTVMeBjoIKWtUUIz6B+3 AAPlrbDgUowhQhUrm5paYhFbTFTZPFR+Gm1wQJbSogK+RSJrzlI/wgxBIz/HQ7Np77Kh 3+Bw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id f16si3257622pgh.309.2019.04.18.17.13.41; Thu, 18 Apr 2019 17:13:56 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726377AbfDSAKT (ORCPT + 99 others); Thu, 18 Apr 2019 20:10:19 -0400 Received: from anholt.net ([50.246.234.109]:41320 "EHLO anholt.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725917AbfDSAKT (ORCPT ); Thu, 18 Apr 2019 20:10:19 -0400 Received: from localhost (localhost [127.0.0.1]) by anholt.net (Postfix) with ESMTP id 39C4B10A15DE; Thu, 18 Apr 2019 17:10:18 -0700 (PDT) X-Virus-Scanned: Debian amavisd-new at anholt.net Received: from anholt.net ([127.0.0.1]) by localhost (kingsolver.anholt.net [127.0.0.1]) (amavisd-new, port 10024) with LMTP id gkWqYgldLcFn; Thu, 18 Apr 2019 17:10:16 -0700 (PDT) Received: from eliezer.anholt.net (localhost [127.0.0.1]) by anholt.net (Postfix) with ESMTP id D798610A3377; Thu, 18 Apr 2019 17:10:15 -0700 (PDT) Received: by eliezer.anholt.net (Postfix, from userid 1000) id E72142FE3AA9; Thu, 18 Apr 2019 17:10:14 -0700 (PDT) From: Eric Anholt To: dri-devel@lists.freedesktop.org Cc: linux-kernel@vger.kernel.org, Paul Kocialkowski , Maxime Ripard , david.emett@broadcom.com, thomas.spurden@broadcom.com, Eric Anholt Subject: [PATCH 3/4] drm/v3d: Dump V3D error debug registers in debugfs, and one at reset. Date: Thu, 18 Apr 2019 17:10:13 -0700 Message-Id: <20190419001014.23579-3-eric@anholt.net> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190419001014.23579-1-eric@anholt.net> References: <20190419001014.23579-1-eric@anholt.net> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Looking at a hang recently, I noticed these registers that might tell me if something obvious was wrong. They didn't help in this case, but keep it around for the future. Signed-off-by: Eric Anholt --- drivers/gpu/drm/v3d/v3d_debugfs.c | 5 ++++ drivers/gpu/drm/v3d/v3d_gem.c | 4 +++- drivers/gpu/drm/v3d/v3d_regs.h | 38 +++++++++++++++++++++++++++++++ 3 files changed, 46 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/v3d/v3d_debugfs.c b/drivers/gpu/drm/v3d/v3d_debugfs.c index ab652a034959..78a78938e81f 100644 --- a/drivers/gpu/drm/v3d/v3d_debugfs.c +++ b/drivers/gpu/drm/v3d/v3d_debugfs.c @@ -58,6 +58,11 @@ static const struct v3d_reg_def v3d_core_reg_defs[] = { REGDEF(V3D_GMP_STATUS), REGDEF(V3D_GMP_CFG), REGDEF(V3D_GMP_VIO_ADDR), + + REGDEF(V3D_ERR_FDBGO), + REGDEF(V3D_ERR_FDBGB), + REGDEF(V3D_ERR_FDBGS), + REGDEF(V3D_ERR_STAT), }; static const struct v3d_reg_def v3d_csd_reg_defs[] = { diff --git a/drivers/gpu/drm/v3d/v3d_gem.c b/drivers/gpu/drm/v3d/v3d_gem.c index f736e021467a..27e0f87075d9 100644 --- a/drivers/gpu/drm/v3d/v3d_gem.c +++ b/drivers/gpu/drm/v3d/v3d_gem.c @@ -109,7 +109,9 @@ v3d_reset(struct v3d_dev *v3d) { struct drm_device *dev = &v3d->drm; - DRM_ERROR("Resetting GPU.\n"); + DRM_DEV_ERROR(dev->dev, "Resetting GPU for hang.\n"); + DRM_DEV_ERROR(dev->dev, "V3D_ERR_STAT: 0x%08x\n", + V3D_CORE_READ(0, V3D_ERR_STAT)); trace_v3d_reset_begin(dev); /* XXX: only needed for safe powerdown, not reset. */ diff --git a/drivers/gpu/drm/v3d/v3d_regs.h b/drivers/gpu/drm/v3d/v3d_regs.h index 54c8c4320da0..eda1e289976f 100644 --- a/drivers/gpu/drm/v3d/v3d_regs.h +++ b/drivers/gpu/drm/v3d/v3d_regs.h @@ -455,4 +455,42 @@ # define V3D_CSD_CURRENT_ID0_WG_Y_MASK V3D_MASK(15, 0) # define V3D_CSD_CURRENT_ID0_WG_Y_SHIFT 0 +#define V3D_ERR_FDBGO 0x00f04 +#define V3D_ERR_FDBGB 0x00f08 +#define V3D_ERR_FDBGR 0x00f0c + +#define V3D_ERR_FDBGS 0x00f10 +# define V3D_ERR_FDBGS_INTERPZ_IP_STALL BIT(17) +# define V3D_ERR_FDBGS_DEPTHO_FIFO_IP_STALL BIT(16) +# define V3D_ERR_FDBGS_XYNRM_IP_STALL BIT(14) +# define V3D_ERR_FDBGS_EZREQ_FIFO_OP_VALID BIT(13) +# define V3D_ERR_FDBGS_QXYF_FIFO_OP_VALID BIT(12) +# define V3D_ERR_FDBGS_QXYF_FIFO_OP_LAST BIT(11) +# define V3D_ERR_FDBGS_EZTEST_ANYQVALID BIT(7) +# define V3D_ERR_FDBGS_EZTEST_PASS BIT(6) +# define V3D_ERR_FDBGS_EZTEST_QREADY BIT(5) +# define V3D_ERR_FDBGS_EZTEST_VLF_OKNOVALID BIT(4) +# define V3D_ERR_FDBGS_EZTEST_QSTALL BIT(3) +# define V3D_ERR_FDBGS_EZTEST_IP_VLFSTALL BIT(2) +# define V3D_ERR_FDBGS_EZTEST_IP_PRSTALL BIT(1) +# define V3D_ERR_FDBGS_EZTEST_IP_QSTALL BIT(0) + +#define V3D_ERR_STAT 0x00f20 +# define V3D_ERR_L2CARE BIT(15) +# define V3D_ERR_VCMBE BIT(14) +# define V3D_ERR_VCMRE BIT(13) +# define V3D_ERR_VCDI BIT(12) +# define V3D_ERR_VCDE BIT(11) +# define V3D_ERR_VDWE BIT(10) +# define V3D_ERR_VPMEAS BIT(9) +# define V3D_ERR_VPMEFNA BIT(8) +# define V3D_ERR_VPMEWNA BIT(7) +# define V3D_ERR_VPMERNA BIT(6) +# define V3D_ERR_VPMERR BIT(5) +# define V3D_ERR_VPMEWR BIT(4) +# define V3D_ERR_VPAERRGL BIT(3) +# define V3D_ERR_VPAEBRGL BIT(2) +# define V3D_ERR_VPAERGS BIT(1) +# define V3D_ERR_VPAEABB BIT(0) + #endif /* V3D_REGS_H */ -- 2.20.1