* [PATCH 1/2] drm/i915/cnl: Reprogram DMC firmware after S3/S4 resume
@ 2017-10-03 9:51 Imre Deak
2017-10-03 9:51 ` [PATCH 2/2] drm/i915/glk: Fix DMC/DC state idleness calculation Imre Deak
` (2 more replies)
0 siblings, 3 replies; 12+ messages in thread
From: Imre Deak @ 2017-10-03 9:51 UTC (permalink / raw)
To: intel-gfx; +Cc: Rodrigo Vivi
The DMC firmware program memory is lost after S3/S4 system suspend, so
we need to reprogram it during resume.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=103070
Fixes: cebfcead63de ("drm/i915/DMC/CNL: Load DMC on CNL")
Cc: Anusha Srivatsa <anusha.srivatsa@intel.com>
Cc: Animesh Manna <animesh.manna@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Imre Deak <imre.deak@intel.com>
---
drivers/gpu/drm/i915/intel_runtime_pm.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/gpu/drm/i915/intel_runtime_pm.c b/drivers/gpu/drm/i915/intel_runtime_pm.c
index 7933d1bc6a1c..3791c3f5f56d 100644
--- a/drivers/gpu/drm/i915/intel_runtime_pm.c
+++ b/drivers/gpu/drm/i915/intel_runtime_pm.c
@@ -2809,6 +2809,9 @@ static void cnl_display_core_init(struct drm_i915_private *dev_priv, bool resume
/* 6. Enable DBUF */
gen9_dbuf_enable(dev_priv);
+
+ if (resume && dev_priv->csr.dmc_payload)
+ intel_csr_load_program(dev_priv);
}
static void cnl_display_core_uninit(struct drm_i915_private *dev_priv)
--
2.13.2
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 2/2] drm/i915/glk: Fix DMC/DC state idleness calculation
2017-10-03 9:51 [PATCH 1/2] drm/i915/cnl: Reprogram DMC firmware after S3/S4 resume Imre Deak
@ 2017-10-03 9:51 ` Imre Deak
2017-10-03 17:47 ` Rodrigo Vivi
2017-10-03 10:18 ` ✗ Fi.CI.BAT: failure for series starting with [1/2] drm/i915/cnl: Reprogram DMC firmware after S3/S4 resume Patchwork
2017-10-03 17:40 ` [PATCH 1/2] " Rodrigo Vivi
2 siblings, 1 reply; 12+ messages in thread
From: Imre Deak @ 2017-10-03 9:51 UTC (permalink / raw)
To: intel-gfx; +Cc: Rodrigo Vivi
According to BSpec GLK like BXT needs to ignore the idle state of cores
before starting the DMC firmware's DC state handler.
Fixes: dbb28b5c3d3c ("drm/i915/DMC/GLK: Load DMC on GLK")
Cc: Anusha Srivatsa <anusha.srivatsa@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Imre Deak <imre.deak@intel.com>
---
drivers/gpu/drm/i915/intel_csr.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/i915/intel_csr.c b/drivers/gpu/drm/i915/intel_csr.c
index cdfb624eb82d..ea5d5c9645a4 100644
--- a/drivers/gpu/drm/i915/intel_csr.c
+++ b/drivers/gpu/drm/i915/intel_csr.c
@@ -216,7 +216,7 @@ static void gen9_set_dc_state_debugmask(struct drm_i915_private *dev_priv)
mask = DC_STATE_DEBUG_MASK_MEMORY_UP;
- if (IS_BROXTON(dev_priv))
+ if (IS_GEN9_LP(dev_priv))
mask |= DC_STATE_DEBUG_MASK_CORES;
/* The below bit doesn't need to be cleared ever afterwards */
--
2.13.2
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 12+ messages in thread
* ✗ Fi.CI.BAT: failure for series starting with [1/2] drm/i915/cnl: Reprogram DMC firmware after S3/S4 resume
2017-10-03 9:51 [PATCH 1/2] drm/i915/cnl: Reprogram DMC firmware after S3/S4 resume Imre Deak
2017-10-03 9:51 ` [PATCH 2/2] drm/i915/glk: Fix DMC/DC state idleness calculation Imre Deak
@ 2017-10-03 10:18 ` Patchwork
2017-10-04 8:52 ` Imre Deak
2017-10-03 17:40 ` [PATCH 1/2] " Rodrigo Vivi
2 siblings, 1 reply; 12+ messages in thread
From: Patchwork @ 2017-10-03 10:18 UTC (permalink / raw)
To: Imre Deak; +Cc: intel-gfx
== Series Details ==
Series: series starting with [1/2] drm/i915/cnl: Reprogram DMC firmware after S3/S4 resume
URL : https://patchwork.freedesktop.org/series/31314/
State : failure
== Summary ==
Series 31314v1 series starting with [1/2] drm/i915/cnl: Reprogram DMC firmware after S3/S4 resume
https://patchwork.freedesktop.org/api/1.0/series/31314/revisions/1/mbox/
Test chamelium:
Subgroup dp-crc-fast:
pass -> DMESG-FAIL (fi-kbl-7500u) fdo#102514
Test gem_exec_suspend:
Subgroup basic-s3:
dmesg-warn -> PASS (fi-cnl-y) fdo#103070
Test kms_busy:
Subgroup basic-flip-a:
pass -> FAIL (fi-bwr-2160)
Test kms_flip:
Subgroup basic-flip-vs-dpms:
incomplete -> PASS (fi-cfl-s)
Test kms_force_connector_basic:
Subgroup force-connector-state:
skip -> PASS (fi-ivb-3520m)
Subgroup force-edid:
skip -> PASS (fi-ivb-3520m)
Subgroup force-load-detect:
skip -> PASS (fi-ivb-3520m)
Subgroup prune-stale-modes:
skip -> PASS (fi-ivb-3520m)
fdo#102514 https://bugs.freedesktop.org/show_bug.cgi?id=102514
fdo#103070 https://bugs.freedesktop.org/show_bug.cgi?id=103070
fi-bdw-5557u total:289 pass:268 dwarn:0 dfail:0 fail:0 skip:21 time:453s
fi-bdw-gvtdvm total:289 pass:265 dwarn:0 dfail:0 fail:0 skip:24 time:478s
fi-blb-e6850 total:289 pass:224 dwarn:1 dfail:0 fail:0 skip:64 time:393s
fi-bsw-n3050 total:289 pass:243 dwarn:0 dfail:0 fail:0 skip:46 time:567s
fi-bwr-2160 total:289 pass:183 dwarn:0 dfail:0 fail:1 skip:105 time:288s
fi-bxt-dsi total:289 pass:259 dwarn:0 dfail:0 fail:0 skip:30 time:525s
fi-bxt-j4205 total:289 pass:260 dwarn:0 dfail:0 fail:0 skip:29 time:528s
fi-byt-j1900 total:289 pass:254 dwarn:1 dfail:0 fail:0 skip:34 time:539s
fi-byt-n2820 total:289 pass:250 dwarn:1 dfail:0 fail:0 skip:38 time:531s
fi-cfl-s total:289 pass:256 dwarn:1 dfail:0 fail:0 skip:32 time:564s
fi-cnl-y total:289 pass:262 dwarn:0 dfail:0 fail:0 skip:27 time:607s
fi-elk-e7500 total:289 pass:230 dwarn:0 dfail:0 fail:0 skip:59 time:435s
fi-glk-1 total:289 pass:261 dwarn:0 dfail:0 fail:0 skip:28 time:600s
fi-hsw-4770 total:289 pass:263 dwarn:0 dfail:0 fail:0 skip:26 time:440s
fi-hsw-4770r total:289 pass:263 dwarn:0 dfail:0 fail:0 skip:26 time:422s
fi-ilk-650 total:289 pass:229 dwarn:0 dfail:0 fail:0 skip:60 time:464s
fi-ivb-3520m total:289 pass:261 dwarn:0 dfail:0 fail:0 skip:28 time:509s
fi-ivb-3770 total:289 pass:261 dwarn:0 dfail:0 fail:0 skip:28 time:473s
fi-kbl-7500u total:289 pass:263 dwarn:1 dfail:1 fail:0 skip:24 time:496s
fi-kbl-7560u total:289 pass:270 dwarn:0 dfail:0 fail:0 skip:19 time:575s
fi-kbl-7567u total:289 pass:265 dwarn:4 dfail:0 fail:0 skip:20 time:487s
fi-kbl-r total:289 pass:262 dwarn:0 dfail:0 fail:0 skip:27 time:583s
fi-pnv-d510 total:289 pass:223 dwarn:1 dfail:0 fail:0 skip:65 time:662s
fi-skl-6260u total:289 pass:269 dwarn:0 dfail:0 fail:0 skip:20 time:470s
fi-skl-6700k total:289 pass:265 dwarn:0 dfail:0 fail:0 skip:24 time:532s
fi-skl-6770hq total:289 pass:269 dwarn:0 dfail:0 fail:0 skip:20 time:514s
fi-skl-gvtdvm total:289 pass:266 dwarn:0 dfail:0 fail:0 skip:23 time:477s
fi-snb-2520m total:289 pass:251 dwarn:0 dfail:0 fail:0 skip:38 time:584s
fi-snb-2600 total:289 pass:250 dwarn:0 dfail:0 fail:0 skip:39 time:431s
2c14f35a0bc1aaff2e36e4535d42919d2cd0b740 drm-tip: 2017y-10m-03d-09h-11m-26s UTC integration manifest
353755c5d9c1 drm/i915/glk: Fix DMC/DC state idleness calculation
f6a884457fc2 drm/i915/cnl: Reprogram DMC firmware after S3/S4 resume
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_5877/
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 1/2] drm/i915/cnl: Reprogram DMC firmware after S3/S4 resume
2017-10-03 9:51 [PATCH 1/2] drm/i915/cnl: Reprogram DMC firmware after S3/S4 resume Imre Deak
2017-10-03 9:51 ` [PATCH 2/2] drm/i915/glk: Fix DMC/DC state idleness calculation Imre Deak
2017-10-03 10:18 ` ✗ Fi.CI.BAT: failure for series starting with [1/2] drm/i915/cnl: Reprogram DMC firmware after S3/S4 resume Patchwork
@ 2017-10-03 17:40 ` Rodrigo Vivi
2017-10-03 17:57 ` Imre Deak
2 siblings, 1 reply; 12+ messages in thread
From: Rodrigo Vivi @ 2017-10-03 17:40 UTC (permalink / raw)
To: Imre Deak; +Cc: intel-gfx
On Tue, Oct 03, 2017 at 09:51:58AM +0000, Imre Deak wrote:
> The DMC firmware program memory is lost after S3/S4 system suspend, so
> we need to reprogram it during resume.
>
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=103070
> Fixes: cebfcead63de ("drm/i915/DMC/CNL: Load DMC on CNL")
> Cc: Anusha Srivatsa <anusha.srivatsa@intel.com>
> Cc: Animesh Manna <animesh.manna@intel.com>
> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
> Signed-off-by: Imre Deak <imre.deak@intel.com>
> ---
> drivers/gpu/drm/i915/intel_runtime_pm.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/intel_runtime_pm.c b/drivers/gpu/drm/i915/intel_runtime_pm.c
> index 7933d1bc6a1c..3791c3f5f56d 100644
> --- a/drivers/gpu/drm/i915/intel_runtime_pm.c
> +++ b/drivers/gpu/drm/i915/intel_runtime_pm.c
> @@ -2809,6 +2809,9 @@ static void cnl_display_core_init(struct drm_i915_private *dev_priv, bool resume
>
> /* 6. Enable DBUF */
> gen9_dbuf_enable(dev_priv);
> +
> + if (resume && dev_priv->csr.dmc_payload)
> + intel_csr_load_program(dev_priv);
If this is needed for all platforms, couldn't we move that to intel_power_domains_init_hw()?
so we don't forget future platforms?
> }
>
> static void cnl_display_core_uninit(struct drm_i915_private *dev_priv)
> --
> 2.13.2
>
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 2/2] drm/i915/glk: Fix DMC/DC state idleness calculation
2017-10-03 9:51 ` [PATCH 2/2] drm/i915/glk: Fix DMC/DC state idleness calculation Imre Deak
@ 2017-10-03 17:47 ` Rodrigo Vivi
2017-10-03 18:03 ` Imre Deak
2017-10-03 18:20 ` Rodrigo Vivi
0 siblings, 2 replies; 12+ messages in thread
From: Rodrigo Vivi @ 2017-10-03 17:47 UTC (permalink / raw)
To: Imre Deak; +Cc: intel-gfx
On Tue, Oct 03, 2017 at 09:51:59AM +0000, Imre Deak wrote:
> According to BSpec GLK like BXT needs to ignore the idle state of cores
> before starting the DMC firmware's DC state handler.
no mention on CNL there?
Btw I just saw that CNL DMC seems much more like BXT than like SKL.
Our code probably needs deeper changes...
>
> Fixes: dbb28b5c3d3c ("drm/i915/DMC/GLK: Load DMC on GLK")
> Cc: Anusha Srivatsa <anusha.srivatsa@intel.com>
> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
> Signed-off-by: Imre Deak <imre.deak@intel.com>
> ---
> drivers/gpu/drm/i915/intel_csr.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_csr.c b/drivers/gpu/drm/i915/intel_csr.c
> index cdfb624eb82d..ea5d5c9645a4 100644
> --- a/drivers/gpu/drm/i915/intel_csr.c
> +++ b/drivers/gpu/drm/i915/intel_csr.c
> @@ -216,7 +216,7 @@ static void gen9_set_dc_state_debugmask(struct drm_i915_private *dev_priv)
>
> mask = DC_STATE_DEBUG_MASK_MEMORY_UP;
>
> - if (IS_BROXTON(dev_priv))
> + if (IS_GEN9_LP(dev_priv))
> mask |= DC_STATE_DEBUG_MASK_CORES;
I saw in spec for SKL+: "This field must be set to Mask prior to enabling DC5 or DC6"
So I believe this should be INTEL_GEN(dev_priv) >= 9... :/
>
> /* The below bit doesn't need to be cleared ever afterwards */
> --
> 2.13.2
>
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 1/2] drm/i915/cnl: Reprogram DMC firmware after S3/S4 resume
2017-10-03 17:40 ` [PATCH 1/2] " Rodrigo Vivi
@ 2017-10-03 17:57 ` Imre Deak
2017-10-03 18:02 ` Rodrigo Vivi
0 siblings, 1 reply; 12+ messages in thread
From: Imre Deak @ 2017-10-03 17:57 UTC (permalink / raw)
To: Rodrigo Vivi; +Cc: intel-gfx
On Tue, Oct 03, 2017 at 10:40:18AM -0700, Rodrigo Vivi wrote:
> On Tue, Oct 03, 2017 at 09:51:58AM +0000, Imre Deak wrote:
> > The DMC firmware program memory is lost after S3/S4 system suspend, so
> > we need to reprogram it during resume.
> >
> > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=103070
> > Fixes: cebfcead63de ("drm/i915/DMC/CNL: Load DMC on CNL")
> > Cc: Anusha Srivatsa <anusha.srivatsa@intel.com>
> > Cc: Animesh Manna <animesh.manna@intel.com>
> > Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
> > Signed-off-by: Imre Deak <imre.deak@intel.com>
> > ---
> > drivers/gpu/drm/i915/intel_runtime_pm.c | 3 +++
> > 1 file changed, 3 insertions(+)
> >
> > diff --git a/drivers/gpu/drm/i915/intel_runtime_pm.c b/drivers/gpu/drm/i915/intel_runtime_pm.c
> > index 7933d1bc6a1c..3791c3f5f56d 100644
> > --- a/drivers/gpu/drm/i915/intel_runtime_pm.c
> > +++ b/drivers/gpu/drm/i915/intel_runtime_pm.c
> > @@ -2809,6 +2809,9 @@ static void cnl_display_core_init(struct drm_i915_private *dev_priv, bool resume
> >
> > /* 6. Enable DBUF */
> > gen9_dbuf_enable(dev_priv);
> > +
> > + if (resume && dev_priv->csr.dmc_payload)
> > + intel_csr_load_program(dev_priv);
>
> If this is needed for all platforms, couldn't we move that to intel_power_domains_init_hw()?
> so we don't forget future platforms?
For GEN9_LP we also need to run the init sequence separately during
runtime resume, so these functions seem to be still the proper place to
call intel_csr_load_program().
>
> > }
> >
> > static void cnl_display_core_uninit(struct drm_i915_private *dev_priv)
> > --
> > 2.13.2
> >
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 1/2] drm/i915/cnl: Reprogram DMC firmware after S3/S4 resume
2017-10-03 17:57 ` Imre Deak
@ 2017-10-03 18:02 ` Rodrigo Vivi
0 siblings, 0 replies; 12+ messages in thread
From: Rodrigo Vivi @ 2017-10-03 18:02 UTC (permalink / raw)
To: Imre Deak; +Cc: intel-gfx
On Tue, Oct 03, 2017 at 05:57:11PM +0000, Imre Deak wrote:
> On Tue, Oct 03, 2017 at 10:40:18AM -0700, Rodrigo Vivi wrote:
> > On Tue, Oct 03, 2017 at 09:51:58AM +0000, Imre Deak wrote:
> > > The DMC firmware program memory is lost after S3/S4 system suspend, so
> > > we need to reprogram it during resume.
> > >
> > > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=103070
> > > Fixes: cebfcead63de ("drm/i915/DMC/CNL: Load DMC on CNL")
> > > Cc: Anusha Srivatsa <anusha.srivatsa@intel.com>
> > > Cc: Animesh Manna <animesh.manna@intel.com>
> > > Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
> > > Signed-off-by: Imre Deak <imre.deak@intel.com>
> > > ---
> > > drivers/gpu/drm/i915/intel_runtime_pm.c | 3 +++
> > > 1 file changed, 3 insertions(+)
> > >
> > > diff --git a/drivers/gpu/drm/i915/intel_runtime_pm.c b/drivers/gpu/drm/i915/intel_runtime_pm.c
> > > index 7933d1bc6a1c..3791c3f5f56d 100644
> > > --- a/drivers/gpu/drm/i915/intel_runtime_pm.c
> > > +++ b/drivers/gpu/drm/i915/intel_runtime_pm.c
> > > @@ -2809,6 +2809,9 @@ static void cnl_display_core_init(struct drm_i915_private *dev_priv, bool resume
> > >
> > > /* 6. Enable DBUF */
> > > gen9_dbuf_enable(dev_priv);
> > > +
> > > + if (resume && dev_priv->csr.dmc_payload)
> > > + intel_csr_load_program(dev_priv);
> >
> > If this is needed for all platforms, couldn't we move that to intel_power_domains_init_hw()?
> > so we don't forget future platforms?
>
> For GEN9_LP we also need to run the init sequence separately during
> runtime resume, so these functions seem to be still the proper place to
> call intel_csr_load_program().
ohh true...
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
>
> >
> > > }
> > >
> > > static void cnl_display_core_uninit(struct drm_i915_private *dev_priv)
> > > --
> > > 2.13.2
> > >
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 2/2] drm/i915/glk: Fix DMC/DC state idleness calculation
2017-10-03 17:47 ` Rodrigo Vivi
@ 2017-10-03 18:03 ` Imre Deak
2017-10-03 18:12 ` Rodrigo Vivi
2017-10-03 18:20 ` Rodrigo Vivi
1 sibling, 1 reply; 12+ messages in thread
From: Imre Deak @ 2017-10-03 18:03 UTC (permalink / raw)
To: Rodrigo Vivi; +Cc: intel-gfx
On Tue, Oct 03, 2017 at 10:47:50AM -0700, Rodrigo Vivi wrote:
> On Tue, Oct 03, 2017 at 09:51:59AM +0000, Imre Deak wrote:
> > According to BSpec GLK like BXT needs to ignore the idle state of cores
> > before starting the DMC firmware's DC state handler.
>
> no mention on CNL there?
No, this is only needed for BXT and GLK.
> Btw I just saw that CNL DMC seems much more like BXT than like SKL.
> Our code probably needs deeper changes...
>
> >
> > Fixes: dbb28b5c3d3c ("drm/i915/DMC/GLK: Load DMC on GLK")
> > Cc: Anusha Srivatsa <anusha.srivatsa@intel.com>
> > Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
> > Signed-off-by: Imre Deak <imre.deak@intel.com>
> > ---
> > drivers/gpu/drm/i915/intel_csr.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/gpu/drm/i915/intel_csr.c b/drivers/gpu/drm/i915/intel_csr.c
> > index cdfb624eb82d..ea5d5c9645a4 100644
> > --- a/drivers/gpu/drm/i915/intel_csr.c
> > +++ b/drivers/gpu/drm/i915/intel_csr.c
> > @@ -216,7 +216,7 @@ static void gen9_set_dc_state_debugmask(struct drm_i915_private *dev_priv)
> >
> > mask = DC_STATE_DEBUG_MASK_MEMORY_UP;
> >
> > - if (IS_BROXTON(dev_priv))
> > + if (IS_GEN9_LP(dev_priv))
> > mask |= DC_STATE_DEBUG_MASK_CORES;
>
> I saw in spec for SKL+: "This field must be set to Mask prior to enabling DC5 or DC6"
> So I believe this should be INTEL_GEN(dev_priv) >= 9... :/
No, only needed for BXT, GLK, see under BSpec "Sequences for Display C5 and C6".
> >
> > /* The below bit doesn't need to be cleared ever afterwards */
> > --
> > 2.13.2
> >
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 2/2] drm/i915/glk: Fix DMC/DC state idleness calculation
2017-10-03 18:03 ` Imre Deak
@ 2017-10-03 18:12 ` Rodrigo Vivi
0 siblings, 0 replies; 12+ messages in thread
From: Rodrigo Vivi @ 2017-10-03 18:12 UTC (permalink / raw)
To: Imre Deak; +Cc: intel-gfx
On Tue, Oct 03, 2017 at 06:03:20PM +0000, Imre Deak wrote:
> On Tue, Oct 03, 2017 at 10:47:50AM -0700, Rodrigo Vivi wrote:
> > On Tue, Oct 03, 2017 at 09:51:59AM +0000, Imre Deak wrote:
> > > According to BSpec GLK like BXT needs to ignore the idle state of cores
> > > before starting the DMC firmware's DC state handler.
> >
> > no mention on CNL there?
>
> No, this is only needed for BXT and GLK.
>
> > Btw I just saw that CNL DMC seems much more like BXT than like SKL.
> > Our code probably needs deeper changes...
> >
> > >
> > > Fixes: dbb28b5c3d3c ("drm/i915/DMC/GLK: Load DMC on GLK")
> > > Cc: Anusha Srivatsa <anusha.srivatsa@intel.com>
> > > Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
> > > Signed-off-by: Imre Deak <imre.deak@intel.com>
> > > ---
> > > drivers/gpu/drm/i915/intel_csr.c | 2 +-
> > > 1 file changed, 1 insertion(+), 1 deletion(-)
> > >
> > > diff --git a/drivers/gpu/drm/i915/intel_csr.c b/drivers/gpu/drm/i915/intel_csr.c
> > > index cdfb624eb82d..ea5d5c9645a4 100644
> > > --- a/drivers/gpu/drm/i915/intel_csr.c
> > > +++ b/drivers/gpu/drm/i915/intel_csr.c
> > > @@ -216,7 +216,7 @@ static void gen9_set_dc_state_debugmask(struct drm_i915_private *dev_priv)
> > >
> > > mask = DC_STATE_DEBUG_MASK_MEMORY_UP;
> > >
> > > - if (IS_BROXTON(dev_priv))
> > > + if (IS_GEN9_LP(dev_priv))
> > > mask |= DC_STATE_DEBUG_MASK_CORES;
> >
> > I saw in spec for SKL+: "This field must be set to Mask prior to enabling DC5 or DC6"
> > So I believe this should be INTEL_GEN(dev_priv) >= 9... :/
>
> No, only needed for BXT, GLK, see under BSpec "Sequences for Display C5 and C6".
Oh yes! It seems we can trust this part better. Really clear and complete.
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
>
> > >
> > > /* The below bit doesn't need to be cleared ever afterwards */
> > > --
> > > 2.13.2
> > >
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 2/2] drm/i915/glk: Fix DMC/DC state idleness calculation
2017-10-03 17:47 ` Rodrigo Vivi
2017-10-03 18:03 ` Imre Deak
@ 2017-10-03 18:20 ` Rodrigo Vivi
2017-10-04 8:13 ` Imre Deak
1 sibling, 1 reply; 12+ messages in thread
From: Rodrigo Vivi @ 2017-10-03 18:20 UTC (permalink / raw)
To: Imre Deak; +Cc: intel-gfx
On Tue, Oct 03, 2017 at 05:47:50PM +0000, Rodrigo Vivi wrote:
> On Tue, Oct 03, 2017 at 09:51:59AM +0000, Imre Deak wrote:
> > According to BSpec GLK like BXT needs to ignore the idle state of cores
> > before starting the DMC firmware's DC state handler.
>
> no mention on CNL there?
>
> Btw I just saw that CNL DMC seems much more like BXT than like SKL.
> Our code probably needs deeper changes...
nevermind. I was wrong about this.
The only difference I see on CNL compared with SKL now
is the bit 31 of DC_STATE_EN...
A bit that we should set during modeset and clear after. But there is
no mention about that bit on the main sequences page and also we
leave dc states disabled during modeset anyways besides that
clock gating wa... So I believe we are safe.
Imre, thoughts?
>
> >
> > Fixes: dbb28b5c3d3c ("drm/i915/DMC/GLK: Load DMC on GLK")
> > Cc: Anusha Srivatsa <anusha.srivatsa@intel.com>
> > Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
> > Signed-off-by: Imre Deak <imre.deak@intel.com>
> > ---
> > drivers/gpu/drm/i915/intel_csr.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/gpu/drm/i915/intel_csr.c b/drivers/gpu/drm/i915/intel_csr.c
> > index cdfb624eb82d..ea5d5c9645a4 100644
> > --- a/drivers/gpu/drm/i915/intel_csr.c
> > +++ b/drivers/gpu/drm/i915/intel_csr.c
> > @@ -216,7 +216,7 @@ static void gen9_set_dc_state_debugmask(struct drm_i915_private *dev_priv)
> >
> > mask = DC_STATE_DEBUG_MASK_MEMORY_UP;
> >
> > - if (IS_BROXTON(dev_priv))
> > + if (IS_GEN9_LP(dev_priv))
> > mask |= DC_STATE_DEBUG_MASK_CORES;
>
> I saw in spec for SKL+: "This field must be set to Mask prior to enabling DC5 or DC6"
> So I believe this should be INTEL_GEN(dev_priv) >= 9... :/
>
>
> >
> > /* The below bit doesn't need to be cleared ever afterwards */
> > --
> > 2.13.2
> >
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 2/2] drm/i915/glk: Fix DMC/DC state idleness calculation
2017-10-03 18:20 ` Rodrigo Vivi
@ 2017-10-04 8:13 ` Imre Deak
0 siblings, 0 replies; 12+ messages in thread
From: Imre Deak @ 2017-10-04 8:13 UTC (permalink / raw)
To: Rodrigo Vivi, Arthur J Runyan; +Cc: intel-gfx
On Tue, Oct 03, 2017 at 11:20:10AM -0700, Rodrigo Vivi wrote:
> On Tue, Oct 03, 2017 at 05:47:50PM +0000, Rodrigo Vivi wrote:
> > On Tue, Oct 03, 2017 at 09:51:59AM +0000, Imre Deak wrote:
> > > According to BSpec GLK like BXT needs to ignore the idle state of cores
> > > before starting the DMC firmware's DC state handler.
> >
> > no mention on CNL there?
> >
> > Btw I just saw that CNL DMC seems much more like BXT than like SKL.
> > Our code probably needs deeper changes...
>
> nevermind. I was wrong about this.
> The only difference I see on CNL compared with SKL now
> is the bit 31 of DC_STATE_EN...
>
> A bit that we should set during modeset and clear after. But there is
> no mention about that bit on the main sequences page and also we
> leave dc states disabled during modeset anyways besides that
> clock gating wa... So I believe we are safe.
>
> Imre, thoughts?
Yes, that bit would gate CSR_START which sounds redundant if we disable
DC states anyway around a mode set.
Art, could this be clarified under "Sequences for Display C5 and C6" or
the definition DC_STATE_EN?
Thanks,
Imre
> > >
> > > Fixes: dbb28b5c3d3c ("drm/i915/DMC/GLK: Load DMC on GLK")
> > > Cc: Anusha Srivatsa <anusha.srivatsa@intel.com>
> > > Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
> > > Signed-off-by: Imre Deak <imre.deak@intel.com>
> > > ---
> > > drivers/gpu/drm/i915/intel_csr.c | 2 +-
> > > 1 file changed, 1 insertion(+), 1 deletion(-)
> > >
> > > diff --git a/drivers/gpu/drm/i915/intel_csr.c b/drivers/gpu/drm/i915/intel_csr.c
> > > index cdfb624eb82d..ea5d5c9645a4 100644
> > > --- a/drivers/gpu/drm/i915/intel_csr.c
> > > +++ b/drivers/gpu/drm/i915/intel_csr.c
> > > @@ -216,7 +216,7 @@ static void gen9_set_dc_state_debugmask(struct drm_i915_private *dev_priv)
> > >
> > > mask = DC_STATE_DEBUG_MASK_MEMORY_UP;
> > >
> > > - if (IS_BROXTON(dev_priv))
> > > + if (IS_GEN9_LP(dev_priv))
> > > mask |= DC_STATE_DEBUG_MASK_CORES;
> >
> > I saw in spec for SKL+: "This field must be set to Mask prior to enabling DC5 or DC6"
> > So I believe this should be INTEL_GEN(dev_priv) >= 9... :/
> >
> >
> > >
> > > /* The below bit doesn't need to be cleared ever afterwards */
> > > --
> > > 2.13.2
> > >
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: ✗ Fi.CI.BAT: failure for series starting with [1/2] drm/i915/cnl: Reprogram DMC firmware after S3/S4 resume
2017-10-03 10:18 ` ✗ Fi.CI.BAT: failure for series starting with [1/2] drm/i915/cnl: Reprogram DMC firmware after S3/S4 resume Patchwork
@ 2017-10-04 8:52 ` Imre Deak
0 siblings, 0 replies; 12+ messages in thread
From: Imre Deak @ 2017-10-04 8:52 UTC (permalink / raw)
To: intel-gfx, Rodrigo Vivi
On Tue, Oct 03, 2017 at 10:18:20AM +0000, Patchwork wrote:
> == Series Details ==
>
> Series: series starting with [1/2] drm/i915/cnl: Reprogram DMC firmware after S3/S4 resume
> URL : https://patchwork.freedesktop.org/series/31314/
> State : failure
>
> == Summary ==
>
> Series 31314v1 series starting with [1/2] drm/i915/cnl: Reprogram DMC firmware after S3/S4 resume
> https://patchwork.freedesktop.org/api/1.0/series/31314/revisions/1/mbox/
>
> Test chamelium:
> Subgroup dp-crc-fast:
> pass -> DMESG-FAIL (fi-kbl-7500u) fdo#102514
> Test gem_exec_suspend:
> Subgroup basic-s3:
> dmesg-warn -> PASS (fi-cnl-y) fdo#103070
This is the only relevant change, the rest match the pre-existing fdo
bug, or are unrelated platforms.
Thanks for the review, I pushed both patches to -dinq.
> Test kms_busy:
> Subgroup basic-flip-a:
> pass -> FAIL (fi-bwr-2160)
> Test kms_flip:
> Subgroup basic-flip-vs-dpms:
> incomplete -> PASS (fi-cfl-s)
> Test kms_force_connector_basic:
> Subgroup force-connector-state:
> skip -> PASS (fi-ivb-3520m)
> Subgroup force-edid:
> skip -> PASS (fi-ivb-3520m)
> Subgroup force-load-detect:
> skip -> PASS (fi-ivb-3520m)
> Subgroup prune-stale-modes:
> skip -> PASS (fi-ivb-3520m)
>
> fdo#102514 https://bugs.freedesktop.org/show_bug.cgi?id=102514
> fdo#103070 https://bugs.freedesktop.org/show_bug.cgi?id=103070
>
> fi-bdw-5557u total:289 pass:268 dwarn:0 dfail:0 fail:0 skip:21 time:453s
> fi-bdw-gvtdvm total:289 pass:265 dwarn:0 dfail:0 fail:0 skip:24 time:478s
> fi-blb-e6850 total:289 pass:224 dwarn:1 dfail:0 fail:0 skip:64 time:393s
> fi-bsw-n3050 total:289 pass:243 dwarn:0 dfail:0 fail:0 skip:46 time:567s
> fi-bwr-2160 total:289 pass:183 dwarn:0 dfail:0 fail:1 skip:105 time:288s
> fi-bxt-dsi total:289 pass:259 dwarn:0 dfail:0 fail:0 skip:30 time:525s
> fi-bxt-j4205 total:289 pass:260 dwarn:0 dfail:0 fail:0 skip:29 time:528s
> fi-byt-j1900 total:289 pass:254 dwarn:1 dfail:0 fail:0 skip:34 time:539s
> fi-byt-n2820 total:289 pass:250 dwarn:1 dfail:0 fail:0 skip:38 time:531s
> fi-cfl-s total:289 pass:256 dwarn:1 dfail:0 fail:0 skip:32 time:564s
> fi-cnl-y total:289 pass:262 dwarn:0 dfail:0 fail:0 skip:27 time:607s
> fi-elk-e7500 total:289 pass:230 dwarn:0 dfail:0 fail:0 skip:59 time:435s
> fi-glk-1 total:289 pass:261 dwarn:0 dfail:0 fail:0 skip:28 time:600s
> fi-hsw-4770 total:289 pass:263 dwarn:0 dfail:0 fail:0 skip:26 time:440s
> fi-hsw-4770r total:289 pass:263 dwarn:0 dfail:0 fail:0 skip:26 time:422s
> fi-ilk-650 total:289 pass:229 dwarn:0 dfail:0 fail:0 skip:60 time:464s
> fi-ivb-3520m total:289 pass:261 dwarn:0 dfail:0 fail:0 skip:28 time:509s
> fi-ivb-3770 total:289 pass:261 dwarn:0 dfail:0 fail:0 skip:28 time:473s
> fi-kbl-7500u total:289 pass:263 dwarn:1 dfail:1 fail:0 skip:24 time:496s
> fi-kbl-7560u total:289 pass:270 dwarn:0 dfail:0 fail:0 skip:19 time:575s
> fi-kbl-7567u total:289 pass:265 dwarn:4 dfail:0 fail:0 skip:20 time:487s
> fi-kbl-r total:289 pass:262 dwarn:0 dfail:0 fail:0 skip:27 time:583s
> fi-pnv-d510 total:289 pass:223 dwarn:1 dfail:0 fail:0 skip:65 time:662s
> fi-skl-6260u total:289 pass:269 dwarn:0 dfail:0 fail:0 skip:20 time:470s
> fi-skl-6700k total:289 pass:265 dwarn:0 dfail:0 fail:0 skip:24 time:532s
> fi-skl-6770hq total:289 pass:269 dwarn:0 dfail:0 fail:0 skip:20 time:514s
> fi-skl-gvtdvm total:289 pass:266 dwarn:0 dfail:0 fail:0 skip:23 time:477s
> fi-snb-2520m total:289 pass:251 dwarn:0 dfail:0 fail:0 skip:38 time:584s
> fi-snb-2600 total:289 pass:250 dwarn:0 dfail:0 fail:0 skip:39 time:431s
>
> 2c14f35a0bc1aaff2e36e4535d42919d2cd0b740 drm-tip: 2017y-10m-03d-09h-11m-26s UTC integration manifest
> 353755c5d9c1 drm/i915/glk: Fix DMC/DC state idleness calculation
> f6a884457fc2 drm/i915/cnl: Reprogram DMC firmware after S3/S4 resume
>
> == Logs ==
>
> For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_5877/
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2017-10-04 8:52 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-10-03 9:51 [PATCH 1/2] drm/i915/cnl: Reprogram DMC firmware after S3/S4 resume Imre Deak
2017-10-03 9:51 ` [PATCH 2/2] drm/i915/glk: Fix DMC/DC state idleness calculation Imre Deak
2017-10-03 17:47 ` Rodrigo Vivi
2017-10-03 18:03 ` Imre Deak
2017-10-03 18:12 ` Rodrigo Vivi
2017-10-03 18:20 ` Rodrigo Vivi
2017-10-04 8:13 ` Imre Deak
2017-10-03 10:18 ` ✗ Fi.CI.BAT: failure for series starting with [1/2] drm/i915/cnl: Reprogram DMC firmware after S3/S4 resume Patchwork
2017-10-04 8:52 ` Imre Deak
2017-10-03 17:40 ` [PATCH 1/2] " Rodrigo Vivi
2017-10-03 17:57 ` Imre Deak
2017-10-03 18:02 ` Rodrigo Vivi
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.