drm/i915/icl: Implement Display WA_1405510057
authorRadhakrishna Sripada <radhakrishna.sripada@intel.com>
Tue, 30 Oct 2018 08:45:02 +0000 (01:45 -0700)
committerRodrigo Vivi <rodrigo.vivi@intel.com>
Thu, 1 Nov 2018 19:28:53 +0000 (12:28 -0700)
Display WA_1405510057 asks to not enable YUV 420 HDMI
10bpc when horizontal blank size mod 8 reminder is 2.

V2: Rebase(r-b: Anusha)
V3: crtc_state->s/ycbcr420/output_format/

Cc: Anusha Srivatsa <anusha.srivatsa@intel.com>
Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Radhakrishna Sripada <radhakrishna.sripada@intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20181030084504.21537-2-radhakrishna.sripada@intel.com
drivers/gpu/drm/i915/intel_hdmi.c

index d3e6536..654a49b 100644 (file)
@@ -1594,6 +1594,8 @@ static bool hdmi_deep_color_possible(const struct intel_crtc_state *crtc_state,
        struct drm_atomic_state *state = crtc_state->base.state;
        struct drm_connector_state *connector_state;
        struct drm_connector *connector;
+       const struct drm_display_mode *adjusted_mode =
+               &crtc_state->base.adjusted_mode;
        int i;
 
        if (HAS_GMCH_DISPLAY(dev_priv))
@@ -1642,7 +1644,14 @@ static bool hdmi_deep_color_possible(const struct intel_crtc_state *crtc_state,
 
        /* Display WA #1139: glk */
        if (bpc == 12 && IS_GLK_REVID(dev_priv, 0, GLK_REVID_A1) &&
-           crtc_state->base.adjusted_mode.htotal > 5460)
+           adjusted_mode->htotal > 5460)
+               return false;
+
+       /* Display Wa_1405510057:icl */
+       if (crtc_state->output_format == INTEL_OUTPUT_FORMAT_YCBCR420 &&
+           bpc == 10 && IS_ICELAKE(dev_priv) &&
+           (adjusted_mode->crtc_hblank_end -
+            adjusted_mode->crtc_hblank_start) % 8 == 2)
                return false;
 
        return true;