diff options
author | Kevin Brace <kevinbrace@gmx.com> | 2017-04-15 14:40:59 -0700 |
---|---|---|
committer | Kevin Brace <kevinbrace@gmx.com> | 2017-04-15 14:40:59 -0700 |
commit | b8d0836d992a49cf5040e24857277d81db928836 (patch) | |
tree | f09610d88219f3c18c8a7af813936500e3f1a74d | |
parent | fe1ae610b4e6a720116cab51a7ebbf8d54df4a08 (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.c | 21 |
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, |