mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-20 05:31:15 +00:00
drm/i915/drrs: Restrict buffer tracking to the DRRS pipe
The current code tracks business across all pipes, but we're only really interested in the one pipe DRRS is enabled on. Fairly tiny optimization, but something I noticed while reading the code. But it might matter a bit when e.g. showing a video or something only on the external screen, while the panel is kept static. Also regroup the code slightly: First compute new bitmasks, then take appropriate actions. Cc: Ramalingam C <ramalingam.c@intel.com> Cc: Sivakumar Thulasimani <sivakumar.thulasimani@intel.com> Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
This commit is contained in:
parent
251ac86219
commit
c1d038c6e2
1 changed files with 7 additions and 6 deletions
|
@ -5534,16 +5534,15 @@ void intel_edp_drrs_invalidate(struct drm_device *dev,
|
|||
crtc = dp_to_dig_port(dev_priv->drrs.dp)->base.base.crtc;
|
||||
pipe = to_intel_crtc(crtc)->pipe;
|
||||
|
||||
frontbuffer_bits &= INTEL_FRONTBUFFER_ALL_MASK(pipe);
|
||||
dev_priv->drrs.busy_frontbuffer_bits |= frontbuffer_bits;
|
||||
|
||||
/* invalidate means busy screen hence upclock */
|
||||
if (dev_priv->drrs.refresh_rate_type == DRRS_LOW_RR) {
|
||||
if (frontbuffer_bits && dev_priv->drrs.refresh_rate_type == DRRS_LOW_RR)
|
||||
intel_dp_set_drrs_state(dev_priv->dev,
|
||||
dev_priv->drrs.dp->attached_connector->panel.
|
||||
fixed_mode->vrefresh);
|
||||
}
|
||||
|
||||
frontbuffer_bits &= INTEL_FRONTBUFFER_ALL_MASK(pipe);
|
||||
|
||||
dev_priv->drrs.busy_frontbuffer_bits |= frontbuffer_bits;
|
||||
mutex_unlock(&dev_priv->drrs.mutex);
|
||||
}
|
||||
|
||||
|
@ -5579,10 +5578,12 @@ void intel_edp_drrs_flush(struct drm_device *dev,
|
|||
|
||||
crtc = dp_to_dig_port(dev_priv->drrs.dp)->base.base.crtc;
|
||||
pipe = to_intel_crtc(crtc)->pipe;
|
||||
|
||||
frontbuffer_bits &= INTEL_FRONTBUFFER_ALL_MASK(pipe);
|
||||
dev_priv->drrs.busy_frontbuffer_bits &= ~frontbuffer_bits;
|
||||
|
||||
/* flush means busy screen hence upclock */
|
||||
if (dev_priv->drrs.refresh_rate_type == DRRS_LOW_RR)
|
||||
if (frontbuffer_bits && dev_priv->drrs.refresh_rate_type == DRRS_LOW_RR)
|
||||
intel_dp_set_drrs_state(dev_priv->dev,
|
||||
dev_priv->drrs.dp->attached_connector->panel.
|
||||
fixed_mode->vrefresh);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue