diff mbox

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

Message ID 1402593406-17869-6-git-send-email-rodrigo.vivi@intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Rodrigo Vivi June 12, 2014, 5:16 p.m. UTC
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(+)

Comments

Daniel Vetter June 13, 2014, 8:11 a.m. UTC | #1
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
diff mbox

Patch

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) {
 		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;
 }