>-----Original Message-----
>From: Ville Syrjala [mailto:ville.syrj...@linux.intel.com]
>Sent: Friday, February 23, 2018 3:13 AM
>To: intel-gfx@lists.freedesktop.org
>Cc: Lin, Johnson <johnson....@intel.com>; Shankar, Uma
><uma.shan...@intel.com>; Sharma, Shashank <shashank.sha...@intel.com>
>Subject: [PATCH 2/4] drm/i915: Remove the pointless 1:1 matrix copy
>
>From: Ville Syrjälä <ville.syrj...@linux.intel.com>
>
>If we don't have to frob with the user provided ctm matrix there's no point in
>copying it over. Just point at the user ctm directly.
>
>Also the matrix gets fully populated by ctm_mult_by_limited() so no need to 
>zero
>initialize it.
>

Looks ok to me.
Reviewed-by: Uma Shankar <uma.shan...@intel.com>

>Cc: Johnson Lin <johnson....@intel.com>
>Cc: Uma Shankar <uma.shan...@intel.com>
>Cc: Shashank Sharma <shashank.sha...@intel.com>
>Signed-off-by: Ville Syrjälä <ville.syrj...@linux.intel.com>
>---
> drivers/gpu/drm/i915/intel_color.c | 17 +++++++++--------
> 1 file changed, 9 insertions(+), 8 deletions(-)
>
>diff --git a/drivers/gpu/drm/i915/intel_color.c
>b/drivers/gpu/drm/i915/intel_color.c
>index a383d993b844..c9af260be113 100644
>--- a/drivers/gpu/drm/i915/intel_color.c
>+++ b/drivers/gpu/drm/i915/intel_color.c
>@@ -86,7 +86,7 @@ static bool crtc_state_is_legacy_gamma(struct
>drm_crtc_state *state)
>  * When using limited range, multiply the matrix given by userspace by
>  * the matrix that we would use for the limited range.
>  */
>-static void ctm_mult_by_limited(u64 *result, const u64 *input)
>+static u64 *ctm_mult_by_limited(u64 *result, const u64 *input)
> {
>       int i;
>
>@@ -104,6 +104,8 @@ static void ctm_mult_by_limited(u64 *result, const u64
>*input)
>               result[i] = mul_u32_u32(limited_coeff, abs_coeff) >> 30;
>               result[i] |= user_coeff & CTM_COEFF_SIGN;
>       }
>+
>+      return result;
> }
>
> static void i9xx_load_ycbcr_conversion_matrix(struct intel_crtc *intel_crtc) 
> @@
>-146,14 +148,13 @@ static void i9xx_load_csc_matrix(struct drm_crtc_state
>*crtc_state)
>       } else if (crtc_state->ctm) {
>               struct drm_color_ctm *ctm =
>                       (struct drm_color_ctm *)crtc_state->ctm->data;
>-              uint64_t input[9] = { 0, };
>+              const u64 *input;
>+              u64 temp[9];
>
>-              if (intel_crtc_state->limited_color_range) {
>-                      ctm_mult_by_limited(input, ctm->matrix);
>-              } else {
>-                      for (i = 0; i < ARRAY_SIZE(input); i++)
>-                              input[i] = ctm->matrix[i];
>-              }
>+              if (intel_crtc_state->limited_color_range)
>+                      input = ctm_mult_by_limited(temp, ctm->matrix);
>+              else
>+                      input = ctm->matrix;
>
>               /*
>                * Convert fixed point S31.32 input to format supported by the
>--
>2.16.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to