Re: [Intel-gfx] [PATCH 21/22] drm/i915/tgl: Add and use new DC5 and DC6 residency counter registers
On Mon, Jul 22, 2019 at 01:11:40PM +0530, Anshuman Gupta wrote: On 2019-07-19 at 11:39:54 -0700, Lucas De Marchi wrote: On Thu, Jul 18, 2019 at 11:17:03AM +0530, Anshuman Gupta wrote: >On 2019-07-12 at 18:09:39 -0700, Lucas De Marchi wrote: >>From: José Roberto de Souza >> >>Tiger Lask has a new register offset for DC5 and DC6 residency counters. >> >>Signed-off-by: José Roberto de Souza >>Signed-off-by: Lucas De Marchi >>--- >> drivers/gpu/drm/i915/i915_debugfs.c | 21 + >> drivers/gpu/drm/i915/i915_reg.h | 2 ++ >> 2 files changed, 15 insertions(+), 8 deletions(-) >> >>diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c >>index a1843e3de6d7..4b12b5588dd6 100644 >>--- a/drivers/gpu/drm/i915/i915_debugfs.c >>+++ b/drivers/gpu/drm/i915/i915_debugfs.c >>@@ -2465,6 +2465,7 @@ static int i915_dmc_info(struct seq_file *m, void *unused) >>struct drm_i915_private *dev_priv = node_to_i915(m->private); >>intel_wakeref_t wakeref; >>struct intel_csr *csr; >>+ i915_reg_t dc5_reg, dc6_reg = {}; >> >>if (!HAS_CSR(dev_priv)) >>return -ENODEV; >>@@ -2482,15 +2483,19 @@ static int i915_dmc_info(struct seq_file *m, void *unused) >>seq_printf(m, "version: %d.%d\n", CSR_VERSION_MAJOR(csr->version), >> CSR_VERSION_MINOR(csr->version)); >> >>- if (WARN_ON(INTEL_GEN(dev_priv) > 11)) >>- goto out; >>+ if (INTEL_GEN(dev_priv) >= 12) { Below DMC debug registers offsets are specific to TGL, So it would make sense to add IS_TIGERLAKE condition? I think we can leave it with gen >= 12 and change it when/if the next platform change that. >>+ dc5_reg = TGL_CSR_DC5_RES_COUNT; >>+ dc6_reg = TGL_CSR_DC6_RES_COUNT; >>+ } else { >>+ dc5_reg = IS_BROXTON(dev_priv) ? BXT_CSR_DC3_DC5_COUNT : >>+SKL_CSR_DC3_DC5_COUNT; >>+ if (!IS_GEN9_LP(dev_priv)) >>+ dc6_reg = SKL_CSR_DC5_DC6_COUNT; >>+ } >> >>- seq_printf(m, "DC3 -> DC5 count: %d\n", >>- I915_READ(IS_BROXTON(dev_priv) ? BXT_CSR_DC3_DC5_COUNT : >>- SKL_CSR_DC3_DC5_COUNT)); >>- if (!IS_GEN9_LP(dev_priv)) >>- seq_printf(m, "DC5 -> DC6 count: %d\n", >>- I915_READ(SKL_CSR_DC5_DC6_COUNT)); >>+ seq_printf(m, "DC3 -> DC5 count: %d\n", I915_READ(dc5_reg)); >>+ if (dc6_reg.reg) >>+ seq_printf(m, "DC5 -> DC6 count: %d\n", I915_READ(dc6_reg)); >> >> out: >>seq_printf(m, "program base: 0x%08x\n", I915_READ(CSR_PROGRAM(0))); >>diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h >>index 6cfcdf6bb1bb..5e3434cdd1e8 100644 >>--- a/drivers/gpu/drm/i915/i915_reg.h >>+++ b/drivers/gpu/drm/i915/i915_reg.h >>@@ -7269,6 +7269,8 @@ enum { >> #define SKL_CSR_DC3_DC5_COUNT _MMIO(0x80030) >> #define SKL_CSR_DC5_DC6_COUNT _MMIO(0x8002C) >> #define BXT_CSR_DC3_DC5_COUNT _MMIO(0x80038) >>+#define TGL_CSR_DC5_RES_COUNT _MMIO(0x101084) >>+#define TGL_CSR_DC6_RES_COUNT _MMIO(0x101088) >CSR memory ranges from 0x8 till 0x8 >These DMC_DEBUG regisers are not are not CSR register. >It would make sense to rename the macro. True. TGL_DMC_DEBUG_DC5_COUNT and TGL_DMC_DEBUG_DC6_COUNT sounds good? yes! thanks, I'll send an updated version. Lucas De Marchi Lucas De Marchi >> >> /* interrupts */ >> #define DE_MASTER_IRQ_CONTROL (1 << 31) >>-- >>2.21.0 >> >>___ >>Intel-gfx mailing list >>Intel-gfx@lists.freedesktop.org >>https://lists.freedesktop.org/mailman/listinfo/intel-gfx ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH 21/22] drm/i915/tgl: Add and use new DC5 and DC6 residency counter registers
On 2019-07-19 at 11:39:54 -0700, Lucas De Marchi wrote: > On Thu, Jul 18, 2019 at 11:17:03AM +0530, Anshuman Gupta wrote: > >On 2019-07-12 at 18:09:39 -0700, Lucas De Marchi wrote: > >>From: José Roberto de Souza > >> > >>Tiger Lask has a new register offset for DC5 and DC6 residency counters. > >> > >>Signed-off-by: José Roberto de Souza > >>Signed-off-by: Lucas De Marchi > >>--- > >> drivers/gpu/drm/i915/i915_debugfs.c | 21 + > >> drivers/gpu/drm/i915/i915_reg.h | 2 ++ > >> 2 files changed, 15 insertions(+), 8 deletions(-) > >> > >>diff --git a/drivers/gpu/drm/i915/i915_debugfs.c > >>b/drivers/gpu/drm/i915/i915_debugfs.c > >>index a1843e3de6d7..4b12b5588dd6 100644 > >>--- a/drivers/gpu/drm/i915/i915_debugfs.c > >>+++ b/drivers/gpu/drm/i915/i915_debugfs.c > >>@@ -2465,6 +2465,7 @@ static int i915_dmc_info(struct seq_file *m, void > >>*unused) > >>struct drm_i915_private *dev_priv = node_to_i915(m->private); > >>intel_wakeref_t wakeref; > >>struct intel_csr *csr; > >>+ i915_reg_t dc5_reg, dc6_reg = {}; > >> > >>if (!HAS_CSR(dev_priv)) > >>return -ENODEV; > >>@@ -2482,15 +2483,19 @@ static int i915_dmc_info(struct seq_file *m, void > >>*unused) > >>seq_printf(m, "version: %d.%d\n", CSR_VERSION_MAJOR(csr->version), > >> CSR_VERSION_MINOR(csr->version)); > >> > >>- if (WARN_ON(INTEL_GEN(dev_priv) > 11)) > >>- goto out; > >>+ if (INTEL_GEN(dev_priv) >= 12) { Below DMC debug registers offsets are specific to TGL, So it would make sense to add IS_TIGERLAKE condition? > >>+ dc5_reg = TGL_CSR_DC5_RES_COUNT; > >>+ dc6_reg = TGL_CSR_DC6_RES_COUNT; > >>+ } else { > >>+ dc5_reg = IS_BROXTON(dev_priv) ? BXT_CSR_DC3_DC5_COUNT : > >>+SKL_CSR_DC3_DC5_COUNT; > >>+ if (!IS_GEN9_LP(dev_priv)) > >>+ dc6_reg = SKL_CSR_DC5_DC6_COUNT; > >>+ } > >> > >>- seq_printf(m, "DC3 -> DC5 count: %d\n", > >>- I915_READ(IS_BROXTON(dev_priv) ? BXT_CSR_DC3_DC5_COUNT : > >>- SKL_CSR_DC3_DC5_COUNT)); > >>- if (!IS_GEN9_LP(dev_priv)) > >>- seq_printf(m, "DC5 -> DC6 count: %d\n", > >>- I915_READ(SKL_CSR_DC5_DC6_COUNT)); > >>+ seq_printf(m, "DC3 -> DC5 count: %d\n", I915_READ(dc5_reg)); > >>+ if (dc6_reg.reg) > >>+ seq_printf(m, "DC5 -> DC6 count: %d\n", I915_READ(dc6_reg)); > >> > >> out: > >>seq_printf(m, "program base: 0x%08x\n", I915_READ(CSR_PROGRAM(0))); > >>diff --git a/drivers/gpu/drm/i915/i915_reg.h > >>b/drivers/gpu/drm/i915/i915_reg.h > >>index 6cfcdf6bb1bb..5e3434cdd1e8 100644 > >>--- a/drivers/gpu/drm/i915/i915_reg.h > >>+++ b/drivers/gpu/drm/i915/i915_reg.h > >>@@ -7269,6 +7269,8 @@ enum { > >> #define SKL_CSR_DC3_DC5_COUNT _MMIO(0x80030) > >> #define SKL_CSR_DC5_DC6_COUNT _MMIO(0x8002C) > >> #define BXT_CSR_DC3_DC5_COUNT _MMIO(0x80038) > >>+#define TGL_CSR_DC5_RES_COUNT _MMIO(0x101084) > >>+#define TGL_CSR_DC6_RES_COUNT _MMIO(0x101088) > >CSR memory ranges from 0x8 till 0x8 > >These DMC_DEBUG regisers are not are not CSR register. > >It would make sense to rename the macro. > > True. > > TGL_DMC_DEBUG_DC5_COUNT and TGL_DMC_DEBUG_DC6_COUNT sounds good? yes! > > Lucas De Marchi > > >> > >> /* interrupts */ > >> #define DE_MASTER_IRQ_CONTROL (1 << 31) > >>-- > >>2.21.0 > >> > >>___ > >>Intel-gfx mailing list > >>Intel-gfx@lists.freedesktop.org > >>https://lists.freedesktop.org/mailman/listinfo/intel-gfx ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH 21/22] drm/i915/tgl: Add and use new DC5 and DC6 residency counter registers
On Thu, Jul 18, 2019 at 11:17:03AM +0530, Anshuman Gupta wrote: On 2019-07-12 at 18:09:39 -0700, Lucas De Marchi wrote: From: José Roberto de Souza Tiger Lask has a new register offset for DC5 and DC6 residency counters. Signed-off-by: José Roberto de Souza Signed-off-by: Lucas De Marchi --- drivers/gpu/drm/i915/i915_debugfs.c | 21 + drivers/gpu/drm/i915/i915_reg.h | 2 ++ 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c index a1843e3de6d7..4b12b5588dd6 100644 --- a/drivers/gpu/drm/i915/i915_debugfs.c +++ b/drivers/gpu/drm/i915/i915_debugfs.c @@ -2465,6 +2465,7 @@ static int i915_dmc_info(struct seq_file *m, void *unused) struct drm_i915_private *dev_priv = node_to_i915(m->private); intel_wakeref_t wakeref; struct intel_csr *csr; + i915_reg_t dc5_reg, dc6_reg = {}; if (!HAS_CSR(dev_priv)) return -ENODEV; @@ -2482,15 +2483,19 @@ static int i915_dmc_info(struct seq_file *m, void *unused) seq_printf(m, "version: %d.%d\n", CSR_VERSION_MAJOR(csr->version), CSR_VERSION_MINOR(csr->version)); - if (WARN_ON(INTEL_GEN(dev_priv) > 11)) - goto out; + if (INTEL_GEN(dev_priv) >= 12) { + dc5_reg = TGL_CSR_DC5_RES_COUNT; + dc6_reg = TGL_CSR_DC6_RES_COUNT; + } else { + dc5_reg = IS_BROXTON(dev_priv) ? BXT_CSR_DC3_DC5_COUNT : +SKL_CSR_DC3_DC5_COUNT; + if (!IS_GEN9_LP(dev_priv)) + dc6_reg = SKL_CSR_DC5_DC6_COUNT; + } - seq_printf(m, "DC3 -> DC5 count: %d\n", - I915_READ(IS_BROXTON(dev_priv) ? BXT_CSR_DC3_DC5_COUNT : - SKL_CSR_DC3_DC5_COUNT)); - if (!IS_GEN9_LP(dev_priv)) - seq_printf(m, "DC5 -> DC6 count: %d\n", - I915_READ(SKL_CSR_DC5_DC6_COUNT)); + seq_printf(m, "DC3 -> DC5 count: %d\n", I915_READ(dc5_reg)); + if (dc6_reg.reg) + seq_printf(m, "DC5 -> DC6 count: %d\n", I915_READ(dc6_reg)); out: seq_printf(m, "program base: 0x%08x\n", I915_READ(CSR_PROGRAM(0))); diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h index 6cfcdf6bb1bb..5e3434cdd1e8 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h @@ -7269,6 +7269,8 @@ enum { #define SKL_CSR_DC3_DC5_COUNT _MMIO(0x80030) #define SKL_CSR_DC5_DC6_COUNT _MMIO(0x8002C) #define BXT_CSR_DC3_DC5_COUNT _MMIO(0x80038) +#define TGL_CSR_DC5_RES_COUNT _MMIO(0x101084) +#define TGL_CSR_DC6_RES_COUNT _MMIO(0x101088) CSR memory ranges from 0x8 till 0x8 These DMC_DEBUG regisers are not are not CSR register. It would make sense to rename the macro. True. TGL_DMC_DEBUG_DC5_COUNT and TGL_DMC_DEBUG_DC6_COUNT sounds good? Lucas De Marchi /* interrupts */ #define DE_MASTER_IRQ_CONTROL (1 << 31) -- 2.21.0 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH 21/22] drm/i915/tgl: Add and use new DC5 and DC6 residency counter registers
On Thu, 2019-07-18 at 11:17 +0530, Anshuman Gupta wrote: > On 2019-07-12 at 18:09:39 -0700, Lucas De Marchi wrote: > > From: José Roberto de Souza > > > > Tiger Lask has a new register offset for DC5 and DC6 residency > > counters. nit: Tiger Lake > > > > Signed-off-by: José Roberto de Souza > > Signed-off-by: Lucas De Marchi > > --- > > drivers/gpu/drm/i915/i915_debugfs.c | 21 + > > drivers/gpu/drm/i915/i915_reg.h | 2 ++ > > 2 files changed, 15 insertions(+), 8 deletions(-) > > > > diff --git a/drivers/gpu/drm/i915/i915_debugfs.c > > b/drivers/gpu/drm/i915/i915_debugfs.c > > index a1843e3de6d7..4b12b5588dd6 100644 > > --- a/drivers/gpu/drm/i915/i915_debugfs.c > > +++ b/drivers/gpu/drm/i915/i915_debugfs.c > > @@ -2465,6 +2465,7 @@ static int i915_dmc_info(struct seq_file *m, > > void *unused) > > struct drm_i915_private *dev_priv = node_to_i915(m->private); > > intel_wakeref_t wakeref; > > struct intel_csr *csr; > > + i915_reg_t dc5_reg, dc6_reg = {}; > > > > if (!HAS_CSR(dev_priv)) > > return -ENODEV; > > @@ -2482,15 +2483,19 @@ static int i915_dmc_info(struct seq_file > > *m, void *unused) > > seq_printf(m, "version: %d.%d\n", CSR_VERSION_MAJOR(csr- > > >version), > >CSR_VERSION_MINOR(csr->version)); > > > > - if (WARN_ON(INTEL_GEN(dev_priv) > 11)) > > - goto out; > > + if (INTEL_GEN(dev_priv) >= 12) { > > + dc5_reg = TGL_CSR_DC5_RES_COUNT; > > + dc6_reg = TGL_CSR_DC6_RES_COUNT; > > + } else { > > + dc5_reg = IS_BROXTON(dev_priv) ? BXT_CSR_DC3_DC5_COUNT > > : > > +SKL_CSR_DC3_DC5_COUNT; > > + if (!IS_GEN9_LP(dev_priv)) > > + dc6_reg = SKL_CSR_DC5_DC6_COUNT; > > + } > > > > - seq_printf(m, "DC3 -> DC5 count: %d\n", > > - I915_READ(IS_BROXTON(dev_priv) ? > > BXT_CSR_DC3_DC5_COUNT : > > - SKL_CSR_DC3_DC5_COU > > NT)); > > - if (!IS_GEN9_LP(dev_priv)) > > - seq_printf(m, "DC5 -> DC6 count: %d\n", > > - I915_READ(SKL_CSR_DC5_DC6_COUNT)); > > + seq_printf(m, "DC3 -> DC5 count: %d\n", I915_READ(dc5_reg)); > > + if (dc6_reg.reg) > > + seq_printf(m, "DC5 -> DC6 count: %d\n", > > I915_READ(dc6_reg)); > > > > out: > > seq_printf(m, "program base: 0x%08x\n", > > I915_READ(CSR_PROGRAM(0))); > > diff --git a/drivers/gpu/drm/i915/i915_reg.h > > b/drivers/gpu/drm/i915/i915_reg.h > > index 6cfcdf6bb1bb..5e3434cdd1e8 100644 > > --- a/drivers/gpu/drm/i915/i915_reg.h > > +++ b/drivers/gpu/drm/i915/i915_reg.h > > @@ -7269,6 +7269,8 @@ enum { > > #define SKL_CSR_DC3_DC5_COUNT _MMIO(0x80030) > > #define SKL_CSR_DC5_DC6_COUNT _MMIO(0x8002C) > > #define BXT_CSR_DC3_DC5_COUNT _MMIO(0x80038) > > +#define TGL_CSR_DC5_RES_COUNT _MMIO(0x101084) > > +#define TGL_CSR_DC6_RES_COUNT _MMIO(0x101088) > > CSR memory ranges from 0x8 till 0x8 > These DMC_DEBUG regisers are not are not CSR register. > It would make sense to rename the macro. > > > > /* interrupts */ > > #define DE_MASTER_IRQ_CONTROL (1 << 31) > > -- > > 2.21.0 > > > > ___ > > Intel-gfx mailing list > > Intel-gfx@lists.freedesktop.org > > https://lists.freedesktop.org/mailman/listinfo/intel-gfx > > ___ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/intel-gfx ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH 21/22] drm/i915/tgl: Add and use new DC5 and DC6 residency counter registers
On 2019-07-12 at 18:09:39 -0700, Lucas De Marchi wrote: > From: José Roberto de Souza > > Tiger Lask has a new register offset for DC5 and DC6 residency counters. > > Signed-off-by: José Roberto de Souza > Signed-off-by: Lucas De Marchi > --- > drivers/gpu/drm/i915/i915_debugfs.c | 21 + > drivers/gpu/drm/i915/i915_reg.h | 2 ++ > 2 files changed, 15 insertions(+), 8 deletions(-) > > diff --git a/drivers/gpu/drm/i915/i915_debugfs.c > b/drivers/gpu/drm/i915/i915_debugfs.c > index a1843e3de6d7..4b12b5588dd6 100644 > --- a/drivers/gpu/drm/i915/i915_debugfs.c > +++ b/drivers/gpu/drm/i915/i915_debugfs.c > @@ -2465,6 +2465,7 @@ static int i915_dmc_info(struct seq_file *m, void > *unused) > struct drm_i915_private *dev_priv = node_to_i915(m->private); > intel_wakeref_t wakeref; > struct intel_csr *csr; > + i915_reg_t dc5_reg, dc6_reg = {}; > > if (!HAS_CSR(dev_priv)) > return -ENODEV; > @@ -2482,15 +2483,19 @@ static int i915_dmc_info(struct seq_file *m, void > *unused) > seq_printf(m, "version: %d.%d\n", CSR_VERSION_MAJOR(csr->version), > CSR_VERSION_MINOR(csr->version)); > > - if (WARN_ON(INTEL_GEN(dev_priv) > 11)) > - goto out; > + if (INTEL_GEN(dev_priv) >= 12) { > + dc5_reg = TGL_CSR_DC5_RES_COUNT; > + dc6_reg = TGL_CSR_DC6_RES_COUNT; > + } else { > + dc5_reg = IS_BROXTON(dev_priv) ? BXT_CSR_DC3_DC5_COUNT : > + SKL_CSR_DC3_DC5_COUNT; > + if (!IS_GEN9_LP(dev_priv)) > + dc6_reg = SKL_CSR_DC5_DC6_COUNT; > + } > > - seq_printf(m, "DC3 -> DC5 count: %d\n", > -I915_READ(IS_BROXTON(dev_priv) ? BXT_CSR_DC3_DC5_COUNT : > - SKL_CSR_DC3_DC5_COUNT)); > - if (!IS_GEN9_LP(dev_priv)) > - seq_printf(m, "DC5 -> DC6 count: %d\n", > -I915_READ(SKL_CSR_DC5_DC6_COUNT)); > + seq_printf(m, "DC3 -> DC5 count: %d\n", I915_READ(dc5_reg)); > + if (dc6_reg.reg) > + seq_printf(m, "DC5 -> DC6 count: %d\n", I915_READ(dc6_reg)); > > out: > seq_printf(m, "program base: 0x%08x\n", I915_READ(CSR_PROGRAM(0))); > diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h > index 6cfcdf6bb1bb..5e3434cdd1e8 100644 > --- a/drivers/gpu/drm/i915/i915_reg.h > +++ b/drivers/gpu/drm/i915/i915_reg.h > @@ -7269,6 +7269,8 @@ enum { > #define SKL_CSR_DC3_DC5_COUNT_MMIO(0x80030) > #define SKL_CSR_DC5_DC6_COUNT_MMIO(0x8002C) > #define BXT_CSR_DC3_DC5_COUNT_MMIO(0x80038) > +#define TGL_CSR_DC5_RES_COUNT_MMIO(0x101084) > +#define TGL_CSR_DC6_RES_COUNT_MMIO(0x101088) CSR memory ranges from 0x8 till 0x8 These DMC_DEBUG regisers are not are not CSR register. It would make sense to rename the macro. > > /* interrupts */ > #define DE_MASTER_IRQ_CONTROL (1 << 31) > -- > 2.21.0 > > ___ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/intel-gfx ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PATCH 21/22] drm/i915/tgl: Add and use new DC5 and DC6 residency counter registers
From: José Roberto de Souza Tiger Lask has a new register offset for DC5 and DC6 residency counters. Signed-off-by: José Roberto de Souza Signed-off-by: Lucas De Marchi --- drivers/gpu/drm/i915/i915_debugfs.c | 21 + drivers/gpu/drm/i915/i915_reg.h | 2 ++ 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c index a1843e3de6d7..4b12b5588dd6 100644 --- a/drivers/gpu/drm/i915/i915_debugfs.c +++ b/drivers/gpu/drm/i915/i915_debugfs.c @@ -2465,6 +2465,7 @@ static int i915_dmc_info(struct seq_file *m, void *unused) struct drm_i915_private *dev_priv = node_to_i915(m->private); intel_wakeref_t wakeref; struct intel_csr *csr; + i915_reg_t dc5_reg, dc6_reg = {}; if (!HAS_CSR(dev_priv)) return -ENODEV; @@ -2482,15 +2483,19 @@ static int i915_dmc_info(struct seq_file *m, void *unused) seq_printf(m, "version: %d.%d\n", CSR_VERSION_MAJOR(csr->version), CSR_VERSION_MINOR(csr->version)); - if (WARN_ON(INTEL_GEN(dev_priv) > 11)) - goto out; + if (INTEL_GEN(dev_priv) >= 12) { + dc5_reg = TGL_CSR_DC5_RES_COUNT; + dc6_reg = TGL_CSR_DC6_RES_COUNT; + } else { + dc5_reg = IS_BROXTON(dev_priv) ? BXT_CSR_DC3_DC5_COUNT : +SKL_CSR_DC3_DC5_COUNT; + if (!IS_GEN9_LP(dev_priv)) + dc6_reg = SKL_CSR_DC5_DC6_COUNT; + } - seq_printf(m, "DC3 -> DC5 count: %d\n", - I915_READ(IS_BROXTON(dev_priv) ? BXT_CSR_DC3_DC5_COUNT : - SKL_CSR_DC3_DC5_COUNT)); - if (!IS_GEN9_LP(dev_priv)) - seq_printf(m, "DC5 -> DC6 count: %d\n", - I915_READ(SKL_CSR_DC5_DC6_COUNT)); + seq_printf(m, "DC3 -> DC5 count: %d\n", I915_READ(dc5_reg)); + if (dc6_reg.reg) + seq_printf(m, "DC5 -> DC6 count: %d\n", I915_READ(dc6_reg)); out: seq_printf(m, "program base: 0x%08x\n", I915_READ(CSR_PROGRAM(0))); diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h index 6cfcdf6bb1bb..5e3434cdd1e8 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h @@ -7269,6 +7269,8 @@ enum { #define SKL_CSR_DC3_DC5_COUNT _MMIO(0x80030) #define SKL_CSR_DC5_DC6_COUNT _MMIO(0x8002C) #define BXT_CSR_DC3_DC5_COUNT _MMIO(0x80038) +#define TGL_CSR_DC5_RES_COUNT _MMIO(0x101084) +#define TGL_CSR_DC6_RES_COUNT _MMIO(0x101088) /* interrupts */ #define DE_MASTER_IRQ_CONTROL (1 << 31) -- 2.21.0 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx