Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8c875fca authored by Ville Syrjälä's avatar Ville Syrjälä Committed by Jani Nikula
Browse files

drm/i915: Add limited color range readout for HDMI/DP ports on g4x/vlv/chv



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.

Cc: Chris Clayton <chris2553@googlemail.com>
Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
Tested-by: default avatarChris Clayton <chris2553@googlemail.com>
Reviewed-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
parent 611a7a4f
Loading
Loading
Loading
Loading
+4 −0
Original line number Original line Diff line number Diff line
@@ -1631,6 +1631,10 @@ static void intel_dp_get_config(struct intel_encoder *encoder,


	pipe_config->adjusted_mode.flags |= flags;
	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;
	pipe_config->has_dp_encoder = true;


	intel_dp_get_m_n(crtc, pipe_config);
	intel_dp_get_m_n(crtc, pipe_config);
+6 −1
Original line number Original line Diff line number Diff line
@@ -712,7 +712,8 @@ static void intel_hdmi_get_config(struct intel_encoder *encoder,
				  struct intel_crtc_config *pipe_config)
				  struct intel_crtc_config *pipe_config)
{
{
	struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(&encoder->base);
	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;
	u32 tmp, flags = 0;
	int dotclock;
	int dotclock;


@@ -734,6 +735,10 @@ static void intel_hdmi_get_config(struct intel_encoder *encoder,
	if (tmp & HDMI_MODE_SELECT_HDMI)
	if (tmp & HDMI_MODE_SELECT_HDMI)
		pipe_config->has_audio = true;
		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;
	pipe_config->adjusted_mode.flags |= flags;


	if ((tmp & SDVO_COLOR_FORMAT_MASK) == HDMI_COLOR_FORMAT_12bpc)
	if ((tmp & SDVO_COLOR_FORMAT_MASK) == HDMI_COLOR_FORMAT_12bpc)