diff options
author | Ville Syrjälä <ville.syrjala@linux.intel.com> | 2019-04-25 15:24:19 -0400 |
---|---|---|
committer | Joonas Lahtinen <joonas.lahtinen@linux.intel.com> | 2019-04-29 02:49:21 -0400 |
commit | 879a4e70f96a26a9368a3caed2f552aa67105852 (patch) | |
tree | 6f04ab4d1c90a47d89ae1073e2b0cc60dd74dff0 | |
parent | 447811a686e8da7325516a78069ccfbd139ef1a7 (diff) |
drm/i915: Fix ICL output CSC programming
When I refactored the code into its own function I accidentally
misplaced the <<16 shifts for some of the registers causing us
to lose the blue channel entirely.
We should really find a way to test this...
Cc: Uma Shankar <uma.shankar@intel.com>
Fixes: d2c19b06d6ea ("drm/i915: Clean up ilk/icl pipe/output CSC programming")
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190425192419.24931-1-ville.syrjala@linux.intel.com
Reviewed-by: Swati Sharma <swati2.sharma@intel.com>
(cherry picked from commit d428ca17ea3d307c5a7f77cf24586584bf1c2d74)
Signed-off-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
-rw-r--r-- | drivers/gpu/drm/i915/intel_color.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/gpu/drm/i915/intel_color.c b/drivers/gpu/drm/i915/intel_color.c index ca341a9e47e6..9093daabc290 100644 --- a/drivers/gpu/drm/i915/intel_color.c +++ b/drivers/gpu/drm/i915/intel_color.c | |||
@@ -173,13 +173,13 @@ static void icl_update_output_csc(struct intel_crtc *crtc, | |||
173 | I915_WRITE(PIPE_CSC_OUTPUT_PREOFF_LO(pipe), preoff[2]); | 173 | I915_WRITE(PIPE_CSC_OUTPUT_PREOFF_LO(pipe), preoff[2]); |
174 | 174 | ||
175 | I915_WRITE(PIPE_CSC_OUTPUT_COEFF_RY_GY(pipe), coeff[0] << 16 | coeff[1]); | 175 | I915_WRITE(PIPE_CSC_OUTPUT_COEFF_RY_GY(pipe), coeff[0] << 16 | coeff[1]); |
176 | I915_WRITE(PIPE_CSC_OUTPUT_COEFF_BY(pipe), coeff[2]); | 176 | I915_WRITE(PIPE_CSC_OUTPUT_COEFF_BY(pipe), coeff[2] << 16); |
177 | 177 | ||
178 | I915_WRITE(PIPE_CSC_OUTPUT_COEFF_RU_GU(pipe), coeff[3] << 16 | coeff[4]); | 178 | I915_WRITE(PIPE_CSC_OUTPUT_COEFF_RU_GU(pipe), coeff[3] << 16 | coeff[4]); |
179 | I915_WRITE(PIPE_CSC_OUTPUT_COEFF_BU(pipe), coeff[5]); | 179 | I915_WRITE(PIPE_CSC_OUTPUT_COEFF_BU(pipe), coeff[5] << 16); |
180 | 180 | ||
181 | I915_WRITE(PIPE_CSC_OUTPUT_COEFF_RV_GV(pipe), coeff[6] << 16 | coeff[7]); | 181 | I915_WRITE(PIPE_CSC_OUTPUT_COEFF_RV_GV(pipe), coeff[6] << 16 | coeff[7]); |
182 | I915_WRITE(PIPE_CSC_OUTPUT_COEFF_BV(pipe), coeff[8]); | 182 | I915_WRITE(PIPE_CSC_OUTPUT_COEFF_BV(pipe), coeff[8] << 16); |
183 | 183 | ||
184 | I915_WRITE(PIPE_CSC_OUTPUT_POSTOFF_HI(pipe), postoff[0]); | 184 | I915_WRITE(PIPE_CSC_OUTPUT_POSTOFF_HI(pipe), postoff[0]); |
185 | I915_WRITE(PIPE_CSC_OUTPUT_POSTOFF_ME(pipe), postoff[1]); | 185 | I915_WRITE(PIPE_CSC_OUTPUT_POSTOFF_ME(pipe), postoff[1]); |