diff options
author | Paulo Zanoni | 2016-09-22 23:00:34 +0200 |
---|---|---|
committer | Paulo Zanoni | 2016-09-26 21:54:52 +0200 |
commit | f1db3eafe5a2ad39caa8315f9b5403759e0c5520 (patch) | |
tree | 1696f635c0cfdf279bbe75450694d57f6d9eff2f /drivers/gpu/drm/i915/intel_pm.c | |
parent | drm/i915/gen9: fix the watermark res_blocks value (diff) | |
download | kernel-qcow2-linux-f1db3eafe5a2ad39caa8315f9b5403759e0c5520.tar.gz kernel-qcow2-linux-f1db3eafe5a2ad39caa8315f9b5403759e0c5520.tar.xz kernel-qcow2-linux-f1db3eafe5a2ad39caa8315f9b5403759e0c5520.zip |
drm/i915/gen9: implement missing case for SKL watermarks calculation
This should affect linear and X tiled planes on really small htotal
cases. It doesn't seem to be a very feasible case, but let's implement
it since it's on the specification and it's better to have it and
never need than not have it and realize we needed it.
Reviewed-by: Lyude <cpaul@redhat.com>
Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1474578035-424-9-git-send-email-paulo.r.zanoni@intel.com
Diffstat (limited to 'drivers/gpu/drm/i915/intel_pm.c')
-rw-r--r-- | drivers/gpu/drm/i915/intel_pm.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c index fd7465cd9b21..d5e77382697f 100644 --- a/drivers/gpu/drm/i915/intel_pm.c +++ b/drivers/gpu/drm/i915/intel_pm.c @@ -3615,7 +3615,10 @@ static int skl_compute_plane_wm(const struct drm_i915_private *dev_priv, fb->modifier[0] == I915_FORMAT_MOD_Yf_TILED) { selected_result = max(method2, y_tile_minimum); } else { - if ((ddb_allocation / plane_blocks_per_line) >= 1) + if ((cpp * cstate->base.adjusted_mode.crtc_htotal / 512 < 1) && + (plane_bytes_per_line / 512 < 1)) + selected_result = method2; + else if ((ddb_allocation / plane_blocks_per_line) >= 1) selected_result = min(method1, method2); else selected_result = method1; |