[Intel-gfx] [PATCH 08/14] drm/i915: break intel_infoframe_flags into _enable and _frequency

Daniel Vetter daniel at ffwll.ch
Tue May 8 14:10:53 CEST 2012


On Fri, May 04, 2012 at 05:18:20PM -0300, Paulo Zanoni wrote:
> From: Paulo Zanoni <paulo.r.zanoni at intel.com>
> 
> This will allow us to disable an infoframe without changing its
> frequency.
> 
> Signed-off-by: Paulo Zanoni <paulo.r.zanoni at intel.com>
> Reviewed-by: Eugeni Dodonov <eugeni.dodonov at intel.com>

I'm a bit unhappy about intel_infoframe_frequency, a 15 line function to
essentially always return VIDEO_DIP_FREQ_VSYNC (at least for all the
cases). Furthermore the intel_ prefix for both these functions is a bit a
misdenomer because hsw will change all this. Are you ok if I smash a
bikeshed on top of your patches that replaces intel_infoframe_freq with
VIDEO_DIP_FREQ_VSYNC?

-Daniel
> ---
>  drivers/gpu/drm/i915/intel_hdmi.c |   32 ++++++++++++++++++++++++++------
>  1 file changed, 26 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c
> index 4ce5f1f..57ab62f 100644
> --- a/drivers/gpu/drm/i915/intel_hdmi.c
> +++ b/drivers/gpu/drm/i915/intel_hdmi.c
> @@ -94,16 +94,33 @@ static u32 intel_infoframe_index(struct dip_infoframe *frame)
>  	return flags;
>  }
>  
> -static u32 intel_infoframe_flags(struct dip_infoframe *frame)
> +static u32 intel_infoframe_enable(struct dip_infoframe *frame)
>  {
>  	u32 flags = 0;
>  
>  	switch (frame->type) {
>  	case DIP_TYPE_AVI:
> -		flags |= VIDEO_DIP_ENABLE_AVI | VIDEO_DIP_FREQ_VSYNC;
> +		flags |= VIDEO_DIP_ENABLE_AVI;
>  		break;
>  	case DIP_TYPE_SPD:
> -		flags |= VIDEO_DIP_ENABLE_SPD | VIDEO_DIP_FREQ_VSYNC;
> +		flags |= VIDEO_DIP_ENABLE_SPD;
> +		break;
> +	default:
> +		DRM_DEBUG_DRIVER("unknown info frame type %d\n", frame->type);
> +		break;
> +	}
> +
> +	return flags;
> +}
> +
> +static u32 intel_infoframe_frequency(struct dip_infoframe *frame)
> +{
> +	u32 flags = 0;
> +
> +	switch (frame->type) {
> +	case DIP_TYPE_AVI:
> +	case DIP_TYPE_SPD:
> +		flags |= VIDEO_DIP_FREQ_VSYNC;
>  		break;
>  	default:
>  		DRM_DEBUG_DRIVER("unknown info frame type %d\n", frame->type);
> @@ -159,7 +176,8 @@ static void i9xx_write_infoframe(struct drm_encoder *encoder,
>  		data++;
>  	}
>  
> -	val |= intel_infoframe_flags(frame);
> +	val |= intel_infoframe_enable(frame);
> +	val |= intel_infoframe_frequency(frame);
>  
>  	I915_WRITE(VIDEO_DIP_CTL, val);
>  }
> @@ -190,7 +208,8 @@ static void ironlake_write_infoframe(struct drm_encoder *encoder,
>  		data++;
>  	}
>  
> -	val |= intel_infoframe_flags(frame);
> +	val |= intel_infoframe_enable(frame);
> +	val |= intel_infoframe_frequency(frame);
>  
>  	I915_WRITE(reg, val);
>  }
> @@ -221,7 +240,8 @@ static void vlv_write_infoframe(struct drm_encoder *encoder,
>  		data++;
>  	}
>  
> -	val |= intel_infoframe_flags(frame);
> +	val |= intel_infoframe_enable(frame);
> +	val |= intel_infoframe_frequency(frame);
>  
>  	I915_WRITE(reg, val);
>  }
> -- 
> 1.7.10
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Daniel Vetter
Mail: daniel at ffwll.ch
Mobile: +41 (0)79 365 57 48



More information about the Intel-gfx mailing list