summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKevin Brace <kevinbrace@gmx.com>2017-04-15 14:40:59 -0700
committerKevin Brace <kevinbrace@gmx.com>2017-04-15 14:40:59 -0700
commitb8d0836d992a49cf5040e24857277d81db928836 (patch)
treef09610d88219f3c18c8a7af813936500e3f1a74d
parentfe1ae610b4e6a720116cab51a7ebbf8d54df4a08 (diff)
Added via_tmds_mode_set
This function was added to via_tmds.c. This function improves the mode setting behavior of CX700 / VX700 and VX800 chipsets’ integrated TMDS transmitter. Signed-off-by: Kevin Brace <kevinbrace@gmx.com>
-rw-r--r--drivers/gpu/drm/via/via_tmds.c21
1 files changed, 20 insertions, 1 deletions
diff --git a/drivers/gpu/drm/via/via_tmds.c b/drivers/gpu/drm/via/via_tmds.c
index 72b82e3f20bc..aff4c6be0543 100644
--- a/drivers/gpu/drm/via/via_tmds.c
+++ b/drivers/gpu/drm/via/via_tmds.c
@@ -145,10 +145,29 @@ via_tmds_mode_fixup(struct drm_encoder *encoder,
return true;
}
+/*
+ * Handle CX700 / VX700 and VX800 integrated TMDS (DVI) mode setting.
+ */
+static void
+via_tmds_mode_set(struct drm_encoder *encoder,
+ struct drm_display_mode *mode,
+ struct drm_display_mode *adjusted_mode)
+{
+ struct via_device *dev_priv = encoder->dev->dev_private;
+ struct via_crtc *iga = container_of(encoder->crtc, struct via_crtc, base);
+
+ DRM_DEBUG_KMS("Entered via_tmds_mode_set.\n");
+
+ viaTMDSSyncPolarity(dev_priv, adjusted_mode->flags);
+ viaTMDSDisplaySource(dev_priv, iga->index);
+
+ DRM_DEBUG_KMS("Exiting via_tmds_mode_set.\n");
+}
+
static const struct drm_encoder_helper_funcs via_tmds_enc_helper_funcs = {
.dpms = via_tmds_dpms,
.mode_fixup = via_tmds_mode_fixup,
- .mode_set = via_set_sync_polarity,
+ .mode_set = via_tmds_mode_set,
.prepare = via_encoder_prepare,
.commit = via_encoder_commit,
.disable = via_encoder_disable,