On Wednesday 25 March 2015 12:42 AM, Rodrigo Vivi wrote:
With PSR enabled being pre computed on pipe_config we can now
prevent DRRS to be enabled along with PSR.
Cc: Ramalingam C <ramalingam.c@xxxxxxxxx>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@xxxxxxxxx>
---
drivers/gpu/drm/i915/intel_dp.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index 637dd53..af28833 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -4992,11 +4992,6 @@ static void intel_dp_set_drrs_state(struct drm_device *dev, int refresh_rate)
return;
}
- /*
- * FIXME: This needs proper synchronization with psr state for some
- * platforms that cannot have PSR and DRRS enabled at the same time.
- */
-
dig_port = dp_to_dig_port(intel_dp);
encoder = &dig_port->base;
intel_crtc = encoder->new_crtc;
@@ -5082,6 +5077,11 @@ void intel_edp_drrs_enable(struct intel_dp *intel_dp)
return;
}
+ if (intel_crtc->config->psr_enabled) {
+ DRM_DEBUG_KMS("DRRS: PSR enabled on this crtc\n");
+ return;
+ }
+
But you might want to explicitly disable the DRRS when PSR is supported.
Because incase DRRS is enabled before PSR,
then blocking the enable call wont help us to stop DRRS.
In fact I would have suggested to place this in DRRS init path. But a
feature called media playback DRRS(in RFC stage)
needs DRRS active even when PSR is enabled/supported. So dont want to
block the DRRS init path because PSR is supported.
Disabling alone will be sufficient.
So as soon as PSR support is detected you would like to explicitly
disable the DRRS(if it is supported)
along with blocking further drrs_enable calls.
mutex_lock(&dev_priv->drrs.mutex);
if (WARN_ON(dev_priv->drrs.dp)) {
DRM_ERROR("DRRS already enabled\n");
--
Ram
_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/intel-gfx