[Intel-gfx] [PATCH] drm/i915: Add limited color range readout for HDMI/DP ports on g4x/vlv/chv

Chris Clayton chris2553 at googlemail.com
Fri Sep 12 17:08:50 CEST 2014



On 09/12/14 13:46, ville.syrjala at linux.intel.com wrote:
> From: Ville Syrjälä <ville.syrjala at linux.intel.com>
> 
> The limited color range knob is in the port registers on
> g4x and vlv/chv for HDMI, and on g4x for DP. Add the relevant code
> to read out the hardware state into pipe config. On vlv/chv the
> DP port limited color range knob is in PIPECONF for which we
> already have readout code.
> 
With the patch below applied, the warning has gone away. My thanks to Daniel and Ville.

Tested-by: Chris Clayton <chris2553 at googlemail.com>

> Cc: Chris Clayton <chris2553 at googlemail.com>
> Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
> ---
>  drivers/gpu/drm/i915/intel_dp.c   | 4 ++++
>  drivers/gpu/drm/i915/intel_hdmi.c | 7 ++++++-
>  2 files changed, 10 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
> index d8e868a..d73b4b7 100644
> --- a/drivers/gpu/drm/i915/intel_dp.c
> +++ b/drivers/gpu/drm/i915/intel_dp.c
> @@ -1910,6 +1910,10 @@ static void intel_dp_get_config(struct intel_encoder *encoder,
>  
>  	pipe_config->adjusted_mode.flags |= flags;
>  
> +	if (!HAS_PCH_SPLIT(dev) && !IS_VALLEYVIEW(dev) &&
> +	    tmp & DP_COLOR_RANGE_16_235)
> +		pipe_config->limited_color_range = true;
> +
>  	pipe_config->has_dp_encoder = true;
>  
>  	intel_dp_get_m_n(crtc, pipe_config);
> diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c
> index c586173..8199371 100644
> --- a/drivers/gpu/drm/i915/intel_hdmi.c
> +++ b/drivers/gpu/drm/i915/intel_hdmi.c
> @@ -712,7 +712,8 @@ static void intel_hdmi_get_config(struct intel_encoder *encoder,
>  				  struct intel_crtc_config *pipe_config)
>  {
>  	struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(&encoder->base);
> -	struct drm_i915_private *dev_priv = encoder->base.dev->dev_private;
> +	struct drm_device *dev = encoder->base.dev;
> +	struct drm_i915_private *dev_priv = dev->dev_private;
>  	u32 tmp, flags = 0;
>  	int dotclock;
>  
> @@ -734,6 +735,10 @@ static void intel_hdmi_get_config(struct intel_encoder *encoder,
>  	if (tmp & HDMI_MODE_SELECT_HDMI)
>  		pipe_config->has_audio = true;
>  
> +	if (!HAS_PCH_SPLIT(dev) &&
> +	    tmp & HDMI_COLOR_RANGE_16_235)
> +		pipe_config->limited_color_range = true;
> +
>  	pipe_config->adjusted_mode.flags |= flags;
>  
>  	if ((tmp & SDVO_COLOR_FORMAT_MASK) == HDMI_COLOR_FORMAT_12bpc)
> 



More information about the Intel-gfx mailing list