summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/msm/mdp/mdp4
diff options
context:
space:
mode:
authorArchit Taneja <architt@codeaurora.org>2015-11-18 17:57:16 +0530
committerRob Clark <robdclark@gmail.com>2015-12-14 10:39:47 -0500
commit9696acbcbf4048cc2462834bb692200f44e50f29 (patch)
treeccbf997ecf9d83725dca140ecbbe1253b2bbe3d0 /drivers/gpu/drm/msm/mdp/mdp4
parent776638e73a195fb266b84ec75a9080c3feb35b68 (diff)
downloadlinux-9696acbcbf4048cc2462834bb692200f44e50f29.tar.bz2
drm/msm/mdp4: Call custom round_pixclk helper only if the encoder type is TMDS
The mdp_kms round_pixclk op creates problems when we have more interfaces in use. It calls the DTV encoder's helper by default. Check on encoder type and call the corresponding encoder's func meant for rounding pixel clock. DSI and LVDS don't require rounding, so just return rate in their case. Signed-off-by: Archit Taneja <architt@codeaurora.org> Signed-off-by: Rob Clark <robdclark@gmail.com>
Diffstat (limited to 'drivers/gpu/drm/msm/mdp/mdp4')
-rw-r--r--drivers/gpu/drm/msm/mdp/mdp4/mdp4_kms.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/gpu/drm/msm/mdp/mdp4/mdp4_kms.c b/drivers/gpu/drm/msm/mdp/mdp4/mdp4_kms.c
index 6c9dd2848e5f..ddfcc516af77 100644
--- a/drivers/gpu/drm/msm/mdp/mdp4/mdp4_kms.c
+++ b/drivers/gpu/drm/msm/mdp/mdp4/mdp4_kms.c
@@ -169,7 +169,14 @@ static long mdp4_round_pixclk(struct msm_kms *kms, unsigned long rate,
struct drm_encoder *encoder)
{
/* if we had >1 encoder, we'd need something more clever: */
- return mdp4_dtv_round_pixclk(encoder, rate);
+ switch (encoder->encoder_type) {
+ case DRM_MODE_ENCODER_TMDS:
+ return mdp4_dtv_round_pixclk(encoder, rate);
+ case DRM_MODE_ENCODER_LVDS:
+ case DRM_MODE_ENCODER_DSI:
+ default:
+ return rate;
+ }
}
static void mdp4_preclose(struct msm_kms *kms, struct drm_file *file)