[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