Re: [PATCH 6/9] drm/i915: BDW PSR: Remove limitations that aren't valid for BDW.

Daniel Vetter
2014-06-13T08:11:21Z

On Thu, Jun 12, 2014 at 10:16:43AM -0700, Rodrigo Vivi wrote:
> Reviewed-by: Vijay Purushothaman <vijay.a.purushothaman@intel.com>
> Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
> ---
> drivers/gpu/drm/i915/intel_dp.c | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
> index 0d9c7b6..ba020fd 100644
> --- a/drivers/gpu/drm/i915/intel_dp.c
> +++ b/drivers/gpu/drm/i915/intel_dp.c
> @@ -1776,6 +1776,10 @@ static bool intel_edp_psr_match_conditions(struct intel_dp *intel_dp)
> return false;
> }
>
> + /* Below limitations aren't valid for Broadwell */
> + if (IS_BROADWELL(dev))
> + goto out;
> +
> if (I915_READ(SPRCTL(intel_crtc->pipe)) & SPRITE_ENABLE) {

The removal of the sprite checks is tricky, since currently our psr test
coverage is a bit spotty. Same for cursor (and you can blame Chris a bit
for that). So we need similar nasty tests like with primary plane:
1. setplane/setcursor, wait for psr entry, change with gtt mmap write
2. setplane/setcursor, wait for psr entry, change with pwrite upload
3. setplane/setcursor, wait for psr entry, change with blt/rendercpy

Use-case 3. is currently not used, but Chris has code that does both 1&2.
So we need to update the testcase a bit. Might be worth to refactor it
into a list of buffer object upload methods and a list of tests, but not
sure.

Essentially this means we need the frontbuffer tracking you have for byt
(since it doesn't work well there) also on hsw/bdw for the cursor/sprite
stuff. Upside is that we can enable psr also with sprites on hsw.
-Daniel

> DRM_DEBUG_KMS("PSR condition failed: Sprite is Enabled\n");
> return false;
> @@ -1792,6 +1796,7 @@ static bool intel_edp_psr_match_conditions(struct intel_dp *intel_dp)
> return false;
> }
>
> + out:
> dev_priv->psr.source_ok = true;
> return true;
> }
> --
> 1.9.3
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

--
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch