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

Jani Nikula jani.nikula at linux.intel.com
Mon Sep 15 11:21:56 CEST 2014


On Fri, 12 Sep 2014, Chris Clayton <chris2553 at googlemail.com> wrote:
> 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>

Pushed to drm-intel-fixes with Daniel's IRC reviewed-by. Thanks for the
patch and testing.

BR,
Jani.

>
>> 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)
>> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Jani Nikula, Intel Open Source Technology Center



More information about the Intel-gfx mailing list