aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_drv.h
diff options
context:
space:
mode:
authorVille Syrjälä <ville.syrjala@linux.intel.com>2013-10-09 12:17:55 -0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2013-10-15 03:37:46 -0400
commit0b2ae6d72e445b58ae39cfa6ec0b8d3f53ff7a6f (patch)
treed34613b44f39a174cd900157630162205567297c /drivers/gpu/drm/i915/intel_drv.h
parent0301b3ac38708003a46f5b8ece1103ba6dc23f7c (diff)
drm/i915: Add intel_pipe_wm and prepare for watermark pre-compute
Introduce a new struct intel_pipe_wm which contains all the watermarks for a single pipe. Use it to unify the LP0 and LP1+ watermark computations so that we can just iterate through the watermark levels neatly and call ilk_compute_wm_level() for each. Also add another tool ilk_wm_merge() that merges the LP1+ watermarks from all pipes. For that, embed one intel_pipe_wm inside intel_crtc that contains the currently valid watermarks for each pipe. This is mainly preparatory work for pre-computing the watermarks for each pipe and merging them at a later time. For now the merging still happens immediately. v2: Add some comments about level 0 DDB split and intel_wm_config Add WARN_ON for level 0 being disabled s/lp_wm/merged Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_drv.h')
-rw-r--r--drivers/gpu/drm/i915/intel_drv.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
index 189257df7a0f..5d5d34911a7e 100644
--- a/drivers/gpu/drm/i915/intel_drv.h
+++ b/drivers/gpu/drm/i915/intel_drv.h
@@ -309,6 +309,12 @@ struct intel_crtc_config {
309 bool double_wide; 309 bool double_wide;
310}; 310};
311 311
312struct intel_pipe_wm {
313 struct intel_wm_level wm[5];
314 uint32_t linetime;
315 bool fbc_wm_enabled;
316};
317
312struct intel_crtc { 318struct intel_crtc {
313 struct drm_crtc base; 319 struct drm_crtc base;
314 enum pipe pipe; 320 enum pipe pipe;
@@ -349,6 +355,12 @@ struct intel_crtc {
349 /* Access to these should be protected by dev_priv->irq_lock. */ 355 /* Access to these should be protected by dev_priv->irq_lock. */
350 bool cpu_fifo_underrun_disabled; 356 bool cpu_fifo_underrun_disabled;
351 bool pch_fifo_underrun_disabled; 357 bool pch_fifo_underrun_disabled;
358
359 /* per-pipe watermark state */
360 struct {
361 /* watermarks currently being used */
362 struct intel_pipe_wm active;
363 } wm;
352}; 364};
353 365
354struct intel_plane_wm_parameters { 366struct intel_plane_wm_parameters {