drm/i915/icl: avoid unclaimed PLANE_NV12_BUF_CFG register
authorPaulo Zanoni <paulo.r.zanoni@intel.com>
Wed, 1 Aug 2018 00:46:14 +0000 (17:46 -0700)
committerPaulo Zanoni <paulo.r.zanoni@intel.com>
Thu, 2 Aug 2018 17:30:33 +0000 (10:30 -0700)
We don't have proper watermark NV12 support on ICL due to differences
in how it should be implemented. In commit 234059da0f33
("drm/i915/icl: NV12 y-plane ddb is not in same plane") we avoided
writing the non-existent PLANE_NV12_BUF_CFG registers but we forgot to
also avoid them on the hardware state readout. While the code is still
not correct, at least now we can avoid unclaimed register error
messages when dealing with RGB formats, which makes CI happier.

Also add some FIXME comments in order to make it even more clear that
there's still work to do.

References: commit 234059da0f33 ("drm/i915/icl: NV12 y-plane ddb is
 not in same plane")
Cc: Mahesh Kumar <mahesh1.kumar@intel.com>
Reviewed-by: Mahesh Kumar <mahesh1.kumar@intel.com>
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180801004614.22149-1-paulo.r.zanoni@intel.com
drivers/gpu/drm/i915/intel_pm.c

index f90a3c7f1c4058037528f610982d8f7babd14cf4..24f0cab02bbcfd1b12b7bb4541a0d3e92ca7d5bc 100644 (file)
@@ -3909,7 +3909,12 @@ skl_ddb_get_hw_plane_state(struct drm_i915_private *dev_priv,
                                      val & PLANE_CTL_ALPHA_MASK);
 
        val = I915_READ(PLANE_BUF_CFG(pipe, plane_id));
-       val2 = I915_READ(PLANE_NV12_BUF_CFG(pipe, plane_id));
+       /*
+        * FIXME: add proper NV12 support for ICL. Avoid reading unclaimed
+        * registers for now.
+        */
+       if (INTEL_GEN(dev_priv) < 11)
+               val2 = I915_READ(PLANE_NV12_BUF_CFG(pipe, plane_id));
 
        if (fourcc == DRM_FORMAT_NV12) {
                skl_ddb_entry_init_from_hw(dev_priv,
@@ -4977,6 +4982,7 @@ static void skl_write_plane_wm(struct intel_crtc *intel_crtc,
 
        skl_ddb_entry_write(dev_priv, PLANE_BUF_CFG(pipe, plane_id),
                            &ddb->plane[pipe][plane_id]);
+       /* FIXME: add proper NV12 support for ICL. */
        if (INTEL_GEN(dev_priv) >= 11)
                return skl_ddb_entry_write(dev_priv,
                                           PLANE_BUF_CFG(pipe, plane_id),