drm/i915: fix the watermark result selection on glk/gen10+
On these platforms we're supposed to unconditonally pick the method 2 result instead of the minimum. Reviewed-by: Matt Roper <matthew.d.roper@intel.com> Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20181004231600.14101-4-paulo.r.zanoni@intel.com
This commit is contained in:
parent
91961a850d
commit
077b5820af
|
@ -4672,15 +4672,24 @@ static int skl_compute_plane_wm(const struct drm_i915_private *dev_priv,
|
||||||
} else {
|
} else {
|
||||||
if ((wp->cpp * cstate->base.adjusted_mode.crtc_htotal /
|
if ((wp->cpp * cstate->base.adjusted_mode.crtc_htotal /
|
||||||
wp->dbuf_block_size < 1) &&
|
wp->dbuf_block_size < 1) &&
|
||||||
(wp->plane_bytes_per_line / wp->dbuf_block_size < 1))
|
(wp->plane_bytes_per_line / wp->dbuf_block_size < 1)) {
|
||||||
selected_result = method2;
|
selected_result = method2;
|
||||||
else if (ddb_allocation >=
|
} else if (ddb_allocation >=
|
||||||
fixed16_to_u32_round_up(wp->plane_blocks_per_line))
|
fixed16_to_u32_round_up(wp->plane_blocks_per_line)) {
|
||||||
selected_result = min_fixed16(method1, method2);
|
if (INTEL_GEN(dev_priv) == 9 &&
|
||||||
else if (latency >= wp->linetime_us)
|
!IS_GEMINILAKE(dev_priv))
|
||||||
selected_result = min_fixed16(method1, method2);
|
selected_result = min_fixed16(method1, method2);
|
||||||
else
|
else
|
||||||
|
selected_result = method2;
|
||||||
|
} else if (latency >= wp->linetime_us) {
|
||||||
|
if (INTEL_GEN(dev_priv) == 9 &&
|
||||||
|
!IS_GEMINILAKE(dev_priv))
|
||||||
|
selected_result = min_fixed16(method1, method2);
|
||||||
|
else
|
||||||
|
selected_result = method2;
|
||||||
|
} else {
|
||||||
selected_result = method1;
|
selected_result = method1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
res_blocks = fixed16_to_u32_round_up(selected_result) + 1;
|
res_blocks = fixed16_to_u32_round_up(selected_result) + 1;
|
||||||
|
|
Loading…
Reference in New Issue