[Intel-gfx] [PATCH 1/6] drm/i915: Extract ilk_lut_10()

Matt Roper matthew.d.roper at intel.com
Fri Mar 29 00:15:01 UTC 2019


On Thu, Mar 28, 2019 at 11:05:00PM +0200, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala at linux.intel.com>
> 
> Extract a helper to calculate the ILK+ 10it gamma LUT entry.

Missing a 'b' in '10it' but otherwise:

Reviewed-by: Matt Roper <matthew.d.roper at intel.com>

> It's already duplicated twice, and soon we'll have more.
> 
> Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
> ---
>  drivers/gpu/drm/i915/intel_color.c | 27 +++++++++++----------------
>  1 file changed, 11 insertions(+), 16 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_color.c b/drivers/gpu/drm/i915/intel_color.c
> index ff910ed08468..d7c38a2bbd8f 100644
> --- a/drivers/gpu/drm/i915/intel_color.c
> +++ b/drivers/gpu/drm/i915/intel_color.c
> @@ -359,6 +359,13 @@ static void cherryview_load_csc_matrix(const struct intel_crtc_state *crtc_state
>  	I915_WRITE(CGM_PIPE_MODE(pipe), crtc_state->cgm_mode);
>  }
>  
> +static u32 ilk_lut_10(const struct drm_color_lut *color)
> +{
> +	return drm_color_lut_extract(color->red, 10) << 20 |
> +		drm_color_lut_extract(color->green, 10) << 10 |
> +		drm_color_lut_extract(color->blue, 10);
> +}
> +
>  /* Loads the legacy palette/gamma unit for the CRTC. */
>  static void i9xx_load_luts_internal(const struct intel_crtc_state *crtc_state,
>  				    const struct drm_property_blob *blob)
> @@ -473,14 +480,8 @@ static void bdw_load_degamma_lut(const struct intel_crtc_state *crtc_state)
>  	if (degamma_lut) {
>  		const struct drm_color_lut *lut = degamma_lut->data;
>  
> -		for (i = 0; i < lut_size; i++) {
> -			u32 word =
> -			drm_color_lut_extract(lut[i].red, 10) << 20 |
> -			drm_color_lut_extract(lut[i].green, 10) << 10 |
> -			drm_color_lut_extract(lut[i].blue, 10);
> -
> -			I915_WRITE(PREC_PAL_DATA(pipe), word);
> -		}
> +		for (i = 0; i < lut_size; i++)
> +			I915_WRITE(PREC_PAL_DATA(pipe), ilk_lut_10(&lut[i]));
>  	} else {
>  		for (i = 0; i < lut_size; i++) {
>  			u32 v = (i * ((1 << 10) - 1)) / (lut_size - 1);
> @@ -509,14 +510,8 @@ static void bdw_load_gamma_lut(const struct intel_crtc_state *crtc_state, u32 of
>  	if (gamma_lut) {
>  		const struct drm_color_lut *lut = gamma_lut->data;
>  
> -		for (i = 0; i < lut_size; i++) {
> -			u32 word =
> -			(drm_color_lut_extract(lut[i].red, 10) << 20) |
> -			(drm_color_lut_extract(lut[i].green, 10) << 10) |
> -			drm_color_lut_extract(lut[i].blue, 10);
> -
> -			I915_WRITE(PREC_PAL_DATA(pipe), word);
> -		}
> +		for (i = 0; i < lut_size; i++)
> +			I915_WRITE(PREC_PAL_DATA(pipe), ilk_lut_10(&lut[i]));
>  
>  		/* Program the max register to clamp values > 1.0. */
>  		i = lut_size - 1;
> -- 
> 2.19.2
> 

-- 
Matt Roper
Graphics Software Engineer
IoTG Platform Enabling & Development
Intel Corporation
(916) 356-2795


More information about the Intel-gfx mailing list