drm/i915/glk: IPC linetime watermark workaround for GLK
authorKumar, Mahesh <mahesh1.kumar@intel.com>
Thu, 17 Aug 2017 13:45:25 +0000 (19:15 +0530)
committerMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
Thu, 7 Sep 2017 11:34:24 +0000 (13:34 +0200)
IF IPC is enabled LINETIME_WM value should be half of calculated value
 line time = ROUNDDOWN(1/2 * Calculated Line Time)

Earlier code was rounding-up the value, But updated Bspec says we should
take the ROUNDDOWN. This patch corrects that as well.

Signed-off-by: Mahesh Kumar <mahesh1.kumar@intel.com>
Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20170817134529.2839-5-mahesh1.kumar@intel.com
drivers/gpu/drm/i915/intel_pm.c

index 3168a55..629ad54 100644 (file)
@@ -4622,9 +4622,10 @@ skl_compute_linetime_wm(struct intel_crtc_state *cstate)
 
        linetime_wm = fixed16_to_u32_round_up(mul_u32_fixed16(8, linetime_us));
 
-       /* Display WA #1135: bxt. */
-       if (IS_BROXTON(dev_priv) && dev_priv->ipc_enabled)
-               linetime_wm = DIV_ROUND_UP(linetime_wm, 2);
+       /* Display WA #1135: bxt:ALL GLK:ALL */
+       if ((IS_BROXTON(dev_priv) || IS_GEMINILAKE(dev_priv)) &&
+           dev_priv->ipc_enabled)
+               linetime_wm /= 2;
 
        return linetime_wm;
 }