[Intel-gfx] [PATCH 4/4] drm/i915: Make SDVO deal with HDMI pixel repeat

ville.syrjala at linux.intel.com ville.syrjala at linux.intel.com
Thu Aug 13 07:55:55 PDT 2015


From: Ville Syrjälä <ville.syrjala at linux.intel.com>

With SDVO the pipe config pixel_multiplier only concerns itself with the
data on the SDVO bus. Any HDMI specific pixel repeat must be handled by
the SDVO device itself. To do that simply configure the SDVO pixel
replication factor appropriately. We already set up the infoframe PRB
values correctly via the infoframe helpers.

Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
---
 drivers/gpu/drm/i915/intel_sdvo.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/drivers/gpu/drm/i915/intel_sdvo.c b/drivers/gpu/drm/i915/intel_sdvo.c
index 0d1fed4..f4a5c08 100644
--- a/drivers/gpu/drm/i915/intel_sdvo.c
+++ b/drivers/gpu/drm/i915/intel_sdvo.c
@@ -931,6 +931,12 @@ static bool intel_sdvo_set_colorimetry(struct intel_sdvo *intel_sdvo,
 	return intel_sdvo_set_value(intel_sdvo, SDVO_CMD_SET_COLORIMETRY, &mode, 1);
 }
 
+static bool intel_sdvo_set_pixel_replication(struct intel_sdvo *intel_sdvo,
+					     uint8_t pixel_repeat)
+{
+	return intel_sdvo_set_value(intel_sdvo, SDVO_CMD_SET_PIXEL_REPLI, &pixel_repeat, 1);
+}
+
 #if 0
 static void intel_sdvo_dump_hdmi_buf(struct intel_sdvo *intel_sdvo)
 {
@@ -1243,6 +1249,11 @@ static void intel_sdvo_pre_enable(struct intel_encoder *intel_encoder)
 			intel_sdvo_set_colorimetry(intel_sdvo,
 						   SDVO_COLORIMETRY_RGB256);
 		intel_sdvo_set_avi_infoframe(intel_sdvo, adjusted_mode);
+
+		if (adjusted_mode->flags & DRM_MODE_FLAG_DBLCLK)
+			intel_sdvo_set_pixel_replication(intel_sdvo, 1);
+		else
+			intel_sdvo_set_pixel_replication(intel_sdvo, 0);
 	} else
 		intel_sdvo_set_encode(intel_sdvo, SDVO_ENCODE_DVI);
 
-- 
2.4.6



More information about the Intel-gfx mailing list