瀏覽代碼

drm/i915: Fix the level 0 max_wm hack on VLV/CHV

The watermark should never exceed the FIFO size, so we need to
check against the current FIFO size instead of the theoretical
maximum when we clamp the level 0 watermark.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1480354637-14209-4-git-send-email-ville.syrjala@linux.intel.com
Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Ville Syrjälä 8 年之前
父節點
當前提交
1be4d3793d
共有 1 個文件被更改,包括 2 次插入2 次删除
  1. 2 2
      drivers/gpu/drm/i915/intel_pm.c

+ 2 - 2
drivers/gpu/drm/i915/intel_pm.c

@@ -1132,13 +1132,13 @@ static void vlv_compute_wm(struct intel_crtc *crtc)
 		/* normal watermarks */
 		/* normal watermarks */
 		for (level = 0; level < wm_state->num_levels; level++) {
 		for (level = 0; level < wm_state->num_levels; level++) {
 			int wm = vlv_compute_wm_level(plane, crtc, state, level);
 			int wm = vlv_compute_wm_level(plane, crtc, state, level);
-			int max_wm = plane->base.type == DRM_PLANE_TYPE_CURSOR ? 63 : 511;
+			int max_wm = plane->wm.fifo_size;
 
 
 			/* hack */
 			/* hack */
 			if (WARN_ON(level == 0 && wm > max_wm))
 			if (WARN_ON(level == 0 && wm > max_wm))
 				wm = max_wm;
 				wm = max_wm;
 
 
-			if (wm > plane->wm.fifo_size)
+			if (wm > max_wm)
 				break;
 				break;
 
 
 			switch (plane->base.type) {
 			switch (plane->base.type) {