Message ID | 20201210132853.1521-1-saichandana.s@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/i915/debugfs : PM_REQ and PM_RES register debugfs | expand |
[Stripped "--cc=" from Cc: addresses] On Thu, 10 Dec 2020, Saichandana S <saichandana.s@intel.com> wrote: > From: Saichandana <saichandana.s@intel.com> > > PM_REQ register provides the value of the last PM request from PCU to > Display Engine.PM_RES register provides the value of the last PM response from > Display Engine to PCU. > This debugfs will be used by DC9 IGT test to know about "DC9 Ready" > status. > B.Spec : 49501, 49502 > > Signed-off-by: Saichandana <saichandana.s@intel.com> > --- > .../drm/i915/display/intel_display_debugfs.c | 24 +++++++++++++++++++ > drivers/gpu/drm/i915/i915_reg.h | 5 ++++ > 2 files changed, 29 insertions(+) > > diff --git a/drivers/gpu/drm/i915/display/intel_display_debugfs.c b/drivers/gpu/drm/i915/display/intel_display_debugfs.c > index cd7e5519ee7d..09e734e54032 100644 > --- a/drivers/gpu/drm/i915/display/intel_display_debugfs.c > +++ b/drivers/gpu/drm/i915/display/intel_display_debugfs.c > @@ -559,6 +559,29 @@ static int i915_dmc_info(struct seq_file *m, void *unused) > return 0; > } > > +static int i915_pm_req_res_info(struct seq_file *m, void *unused) > +{ > + struct drm_i915_private *dev_priv = node_to_i915(m->private); > + struct intel_csr *csr = &dev_priv->csr; > + > + if (!HAS_CSR(dev_priv)) > + return -ENODEV; > + > + if (!csr->dmc_payload) > + return 0; > + > + seq_printf(m, "PM debug request 0 (0x45284) : 0x%x\n", > + intel_de_read(dev_priv, PM_REQ_DBG_0)); > + seq_printf(m, "PM debug request 1 (0x45288) : 0x%x\n", > + intel_de_read(dev_priv, PM_REQ_DBG_1)); > + seq_printf(m, "PM debug response 0 (0x4528C) : 0x%x\n", > + intel_de_read(dev_priv, PM_RSP_DBG_0)); > + seq_printf(m, "PM debug response 1 (0x45290) : 0x%x\n", > + intel_de_read(dev_priv, PM_RSP_DBG_1)); IMO there is no point in providing a debugfs interface for reading and dumping platform specific registers. Instead, you should provide a more generic interface that parses the relevant information. Look at *all* the other register reads in the i915_debugfs.c file. None of them output the registers as-is. BR, Jani. > + > + return 0; > +} > + > static void intel_seq_print_mode(struct seq_file *m, int tabs, > const struct drm_display_mode *mode) > { > @@ -2100,6 +2123,7 @@ static const struct drm_info_list intel_display_debugfs_list[] = { > {"i915_edp_psr_status", i915_edp_psr_status, 0}, > {"i915_power_domain_info", i915_power_domain_info, 0}, > {"i915_dmc_info", i915_dmc_info, 0}, > + {"i915_pm_req_res_info", i915_pm_req_res_info, 0}, > {"i915_display_info", i915_display_info, 0}, > {"i915_shared_dplls_info", i915_shared_dplls_info, 0}, > {"i915_dp_mst_info", i915_dp_mst_info, 0}, > diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h > index 0023c023f472..b477a1f7b1bd 100644 > --- a/drivers/gpu/drm/i915/i915_reg.h > +++ b/drivers/gpu/drm/i915/i915_reg.h > @@ -371,6 +371,11 @@ static inline bool i915_mmio_reg_valid(i915_reg_t reg) > #define VLV_G3DCTL _MMIO(0x9024) > #define VLV_GSCKGCTL _MMIO(0x9028) > > +#define PM_REQ_DBG_0 _MMIO(0x45284) > +#define PM_REQ_DBG_1 _MMIO(0x45288) > +#define PM_RSP_DBG_0 _MMIO(0x4528C) > +#define PM_RSP_DBG_1 _MMIO(0x45290) > + > #define GEN6_MBCTL _MMIO(0x0907c) > #define GEN6_MBCTL_ENABLE_BOOT_FETCH (1 << 4) > #define GEN6_MBCTL_CTX_FETCH_NEEDED (1 << 3)
On Thu, 10 Dec 2020, Patchwork <patchwork@emeril.freedesktop.org> wrote: > == Series Details == > > Series: drm/i915/debugfs : PM_REQ and PM_RES register debugfs > URL : https://patchwork.freedesktop.org/series/84782/ > State : warning > > == Summary == Please look at these and learn to use checkpatch.pl locally. BR, Jani. > > $ dim checkpatch origin/drm-tip > b23f408141a8 drm/i915/debugfs : PM_REQ and PM_RES register debugfs > -:7: WARNING:COMMIT_LOG_LONG_LINE: Possible unwrapped commit description (prefer a maximum 75 chars per line) > #7: > Display Engine.PM_RES register provides the value of the last PM response from > > -:25: ERROR:CODE_INDENT: code indent should use tabs where possible > #25: FILE: drivers/gpu/drm/i915/display/intel_display_debugfs.c:564: > + struct drm_i915_private *dev_priv = node_to_i915(m->private);$ > > -:25: WARNING:LEADING_SPACE: please, no spaces at the start of a line > #25: FILE: drivers/gpu/drm/i915/display/intel_display_debugfs.c:564: > + struct drm_i915_private *dev_priv = node_to_i915(m->private);$ > > -:26: ERROR:CODE_INDENT: code indent should use tabs where possible > #26: FILE: drivers/gpu/drm/i915/display/intel_display_debugfs.c:565: > + struct intel_csr *csr = &dev_priv->csr;$ > > -:26: WARNING:LEADING_SPACE: please, no spaces at the start of a line > #26: FILE: drivers/gpu/drm/i915/display/intel_display_debugfs.c:565: > + struct intel_csr *csr = &dev_priv->csr;$ > > -:28: ERROR:CODE_INDENT: code indent should use tabs where possible > #28: FILE: drivers/gpu/drm/i915/display/intel_display_debugfs.c:567: > + if (!HAS_CSR(dev_priv))$ > > -:28: WARNING:LEADING_SPACE: please, no spaces at the start of a line > #28: FILE: drivers/gpu/drm/i915/display/intel_display_debugfs.c:567: > + if (!HAS_CSR(dev_priv))$ > > -:29: ERROR:CODE_INDENT: code indent should use tabs where possible > #29: FILE: drivers/gpu/drm/i915/display/intel_display_debugfs.c:568: > + return -ENODEV;$ > > -:29: WARNING:LEADING_SPACE: please, no spaces at the start of a line > #29: FILE: drivers/gpu/drm/i915/display/intel_display_debugfs.c:568: > + return -ENODEV;$ > > -:31: ERROR:CODE_INDENT: code indent should use tabs where possible > #31: FILE: drivers/gpu/drm/i915/display/intel_display_debugfs.c:570: > + if (!csr->dmc_payload)$ > > -:31: WARNING:LEADING_SPACE: please, no spaces at the start of a line > #31: FILE: drivers/gpu/drm/i915/display/intel_display_debugfs.c:570: > + if (!csr->dmc_payload)$ > > -:32: ERROR:CODE_INDENT: code indent should use tabs where possible > #32: FILE: drivers/gpu/drm/i915/display/intel_display_debugfs.c:571: > + return 0;$ > > -:32: WARNING:LEADING_SPACE: please, no spaces at the start of a line > #32: FILE: drivers/gpu/drm/i915/display/intel_display_debugfs.c:571: > + return 0;$ > > -:34: ERROR:CODE_INDENT: code indent should use tabs where possible > #34: FILE: drivers/gpu/drm/i915/display/intel_display_debugfs.c:573: > + seq_printf(m, "PM debug request 0 (0x45284) : 0x%x\n",$ > > -:34: WARNING:LEADING_SPACE: please, no spaces at the start of a line > #34: FILE: drivers/gpu/drm/i915/display/intel_display_debugfs.c:573: > + seq_printf(m, "PM debug request 0 (0x45284) : 0x%x\n",$ > > -:35: ERROR:CODE_INDENT: code indent should use tabs where possible > #35: FILE: drivers/gpu/drm/i915/display/intel_display_debugfs.c:574: > + intel_de_read(dev_priv, PM_REQ_DBG_0));$ > > -:35: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis > #35: FILE: drivers/gpu/drm/i915/display/intel_display_debugfs.c:574: > + seq_printf(m, "PM debug request 0 (0x45284) : 0x%x\n", > + intel_de_read(dev_priv, PM_REQ_DBG_0)); > > -:35: WARNING:LEADING_SPACE: please, no spaces at the start of a line > #35: FILE: drivers/gpu/drm/i915/display/intel_display_debugfs.c:574: > + intel_de_read(dev_priv, PM_REQ_DBG_0));$ > > -:36: ERROR:CODE_INDENT: code indent should use tabs where possible > #36: FILE: drivers/gpu/drm/i915/display/intel_display_debugfs.c:575: > + seq_printf(m, "PM debug request 1 (0x45288) : 0x%x\n",$ > > -:36: WARNING:LEADING_SPACE: please, no spaces at the start of a line > #36: FILE: drivers/gpu/drm/i915/display/intel_display_debugfs.c:575: > + seq_printf(m, "PM debug request 1 (0x45288) : 0x%x\n",$ > > -:37: ERROR:CODE_INDENT: code indent should use tabs where possible > #37: FILE: drivers/gpu/drm/i915/display/intel_display_debugfs.c:576: > + intel_de_read(dev_priv, PM_REQ_DBG_1));$ > > -:37: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis > #37: FILE: drivers/gpu/drm/i915/display/intel_display_debugfs.c:576: > + seq_printf(m, "PM debug request 1 (0x45288) : 0x%x\n", > + intel_de_read(dev_priv, PM_REQ_DBG_1)); > > -:37: WARNING:LEADING_SPACE: please, no spaces at the start of a line > #37: FILE: drivers/gpu/drm/i915/display/intel_display_debugfs.c:576: > + intel_de_read(dev_priv, PM_REQ_DBG_1));$ > > -:38: ERROR:CODE_INDENT: code indent should use tabs where possible > #38: FILE: drivers/gpu/drm/i915/display/intel_display_debugfs.c:577: > + seq_printf(m, "PM debug response 0 (0x4528C) : 0x%x\n",$ > > -:38: WARNING:LEADING_SPACE: please, no spaces at the start of a line > #38: FILE: drivers/gpu/drm/i915/display/intel_display_debugfs.c:577: > + seq_printf(m, "PM debug response 0 (0x4528C) : 0x%x\n",$ > > -:39: ERROR:CODE_INDENT: code indent should use tabs where possible > #39: FILE: drivers/gpu/drm/i915/display/intel_display_debugfs.c:578: > + intel_de_read(dev_priv, PM_RSP_DBG_0));$ > > -:39: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis > #39: FILE: drivers/gpu/drm/i915/display/intel_display_debugfs.c:578: > + seq_printf(m, "PM debug response 0 (0x4528C) : 0x%x\n", > + intel_de_read(dev_priv, PM_RSP_DBG_0)); > > -:39: WARNING:LEADING_SPACE: please, no spaces at the start of a line > #39: FILE: drivers/gpu/drm/i915/display/intel_display_debugfs.c:578: > + intel_de_read(dev_priv, PM_RSP_DBG_0));$ > > -:40: ERROR:CODE_INDENT: code indent should use tabs where possible > #40: FILE: drivers/gpu/drm/i915/display/intel_display_debugfs.c:579: > + seq_printf(m, "PM debug response 1 (0x45290) : 0x%x\n",$ > > -:40: WARNING:LEADING_SPACE: please, no spaces at the start of a line > #40: FILE: drivers/gpu/drm/i915/display/intel_display_debugfs.c:579: > + seq_printf(m, "PM debug response 1 (0x45290) : 0x%x\n",$ > > -:41: ERROR:CODE_INDENT: code indent should use tabs where possible > #41: FILE: drivers/gpu/drm/i915/display/intel_display_debugfs.c:580: > + intel_de_read(dev_priv, PM_RSP_DBG_1));$ > > -:41: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis > #41: FILE: drivers/gpu/drm/i915/display/intel_display_debugfs.c:580: > + seq_printf(m, "PM debug response 1 (0x45290) : 0x%x\n", > + intel_de_read(dev_priv, PM_RSP_DBG_1)); > > -:41: WARNING:LEADING_SPACE: please, no spaces at the start of a line > #41: FILE: drivers/gpu/drm/i915/display/intel_display_debugfs.c:580: > + intel_de_read(dev_priv, PM_RSP_DBG_1));$ > > -:43: ERROR:CODE_INDENT: code indent should use tabs where possible > #43: FILE: drivers/gpu/drm/i915/display/intel_display_debugfs.c:582: > + return 0;$ > > -:43: WARNING:LEADING_SPACE: please, no spaces at the start of a line > #43: FILE: drivers/gpu/drm/i915/display/intel_display_debugfs.c:582: > + return 0;$ > > -:66: WARNING:SPACE_BEFORE_TAB: please, no space before tabs > #66: FILE: drivers/gpu/drm/i915/i915_reg.h:375: > +#define PM_REQ_DBG_1 ^I^I_MMIO(0x45288)$ > > -:67: WARNING:SPACE_BEFORE_TAB: please, no space before tabs > #67: FILE: drivers/gpu/drm/i915/i915_reg.h:376: > +#define PM_RSP_DBG_0 ^I^I_MMIO(0x4528C)$ > > -:68: WARNING:SPACE_BEFORE_TAB: please, no space before tabs > #68: FILE: drivers/gpu/drm/i915/i915_reg.h:377: > +#define PM_RSP_DBG_1 ^I^I_MMIO(0x45290)$ > > total: 15 errors, 19 warnings, 4 checks, 47 lines checked > > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/intel-gfx
diff --git a/drivers/gpu/drm/i915/display/intel_display_debugfs.c b/drivers/gpu/drm/i915/display/intel_display_debugfs.c index cd7e5519ee7d..09e734e54032 100644 --- a/drivers/gpu/drm/i915/display/intel_display_debugfs.c +++ b/drivers/gpu/drm/i915/display/intel_display_debugfs.c @@ -559,6 +559,29 @@ static int i915_dmc_info(struct seq_file *m, void *unused) return 0; } +static int i915_pm_req_res_info(struct seq_file *m, void *unused) +{ + struct drm_i915_private *dev_priv = node_to_i915(m->private); + struct intel_csr *csr = &dev_priv->csr; + + if (!HAS_CSR(dev_priv)) + return -ENODEV; + + if (!csr->dmc_payload) + return 0; + + seq_printf(m, "PM debug request 0 (0x45284) : 0x%x\n", + intel_de_read(dev_priv, PM_REQ_DBG_0)); + seq_printf(m, "PM debug request 1 (0x45288) : 0x%x\n", + intel_de_read(dev_priv, PM_REQ_DBG_1)); + seq_printf(m, "PM debug response 0 (0x4528C) : 0x%x\n", + intel_de_read(dev_priv, PM_RSP_DBG_0)); + seq_printf(m, "PM debug response 1 (0x45290) : 0x%x\n", + intel_de_read(dev_priv, PM_RSP_DBG_1)); + + return 0; +} + static void intel_seq_print_mode(struct seq_file *m, int tabs, const struct drm_display_mode *mode) { @@ -2100,6 +2123,7 @@ static const struct drm_info_list intel_display_debugfs_list[] = { {"i915_edp_psr_status", i915_edp_psr_status, 0}, {"i915_power_domain_info", i915_power_domain_info, 0}, {"i915_dmc_info", i915_dmc_info, 0}, + {"i915_pm_req_res_info", i915_pm_req_res_info, 0}, {"i915_display_info", i915_display_info, 0}, {"i915_shared_dplls_info", i915_shared_dplls_info, 0}, {"i915_dp_mst_info", i915_dp_mst_info, 0}, diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h index 0023c023f472..b477a1f7b1bd 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h @@ -371,6 +371,11 @@ static inline bool i915_mmio_reg_valid(i915_reg_t reg) #define VLV_G3DCTL _MMIO(0x9024) #define VLV_GSCKGCTL _MMIO(0x9028) +#define PM_REQ_DBG_0 _MMIO(0x45284) +#define PM_REQ_DBG_1 _MMIO(0x45288) +#define PM_RSP_DBG_0 _MMIO(0x4528C) +#define PM_RSP_DBG_1 _MMIO(0x45290) + #define GEN6_MBCTL _MMIO(0x0907c) #define GEN6_MBCTL_ENABLE_BOOT_FETCH (1 << 4) #define GEN6_MBCTL_CTX_FETCH_NEEDED (1 << 3)