drm/i915: Hook up csc into state checker
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Wed, 29 Mar 2023 13:50:01 +0000 (16:50 +0300)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Tue, 11 Apr 2023 06:33:47 +0000 (09:33 +0300)
Have the state checker validate that the csc matrices
look correct when read back from the hardware.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230329135002.3096-12-ville.syrjala@linux.intel.com
Reviewed-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
drivers/gpu/drm/i915/display/intel_display.c

index 270658e..e6f8f2d 100644 (file)
@@ -5573,6 +5573,24 @@ intel_pipe_config_compare(const struct intel_crtc_state *current_config,
        } \
 } while (0)
 
+#define PIPE_CONF_CHECK_CSC(name) do { \
+       PIPE_CONF_CHECK_X(name.preoff[0]); \
+       PIPE_CONF_CHECK_X(name.preoff[1]); \
+       PIPE_CONF_CHECK_X(name.preoff[2]); \
+       PIPE_CONF_CHECK_X(name.coeff[0]); \
+       PIPE_CONF_CHECK_X(name.coeff[1]); \
+       PIPE_CONF_CHECK_X(name.coeff[2]); \
+       PIPE_CONF_CHECK_X(name.coeff[3]); \
+       PIPE_CONF_CHECK_X(name.coeff[4]); \
+       PIPE_CONF_CHECK_X(name.coeff[5]); \
+       PIPE_CONF_CHECK_X(name.coeff[6]); \
+       PIPE_CONF_CHECK_X(name.coeff[7]); \
+       PIPE_CONF_CHECK_X(name.coeff[8]); \
+       PIPE_CONF_CHECK_X(name.postoff[0]); \
+       PIPE_CONF_CHECK_X(name.postoff[1]); \
+       PIPE_CONF_CHECK_X(name.postoff[2]); \
+} while (0)
+
 #define PIPE_CONF_QUIRK(quirk) \
        ((current_config->quirks | pipe_config->quirks) & (quirk))
 
@@ -5670,6 +5688,9 @@ intel_pipe_config_compare(const struct intel_crtc_state *current_config,
                PIPE_CONF_CHECK_COLOR_LUT(pre_csc_lut, true);
                PIPE_CONF_CHECK_COLOR_LUT(post_csc_lut, false);
 
+               PIPE_CONF_CHECK_CSC(csc);
+               PIPE_CONF_CHECK_CSC(output_csc);
+
                if (current_config->active_planes) {
                        PIPE_CONF_CHECK_BOOL(has_psr);
                        PIPE_CONF_CHECK_BOOL(has_psr2);