diff options
| -rw-r--r-- | drivers/video/fbdev/msm/mdss_dp.c | 12 | ||||
| -rw-r--r-- | drivers/video/fbdev/msm/mdss_dp.h | 2 | ||||
| -rw-r--r-- | drivers/video/fbdev/msm/mdss_dp_aux.c | 9 |
3 files changed, 11 insertions, 12 deletions
diff --git a/drivers/video/fbdev/msm/mdss_dp.c b/drivers/video/fbdev/msm/mdss_dp.c index 5735f7566d53..eafe2ed93c34 100644 --- a/drivers/video/fbdev/msm/mdss_dp.c +++ b/drivers/video/fbdev/msm/mdss_dp.c @@ -1399,12 +1399,7 @@ int mdss_dp_on_hpd(struct mdss_dp_drv_pdata *dp_drv) if (dp_drv->new_vic && (dp_drv->new_vic != dp_drv->vic)) dp_init_panel_info(dp_drv, dp_drv->new_vic); - dp_drv->link_rate = - mdss_dp_gen_link_clk(&dp_drv->panel_data.panel_info, - dp_drv->dpcd.max_lane_count); - - pr_debug("link_rate=0x%x, Max rate supported by sink=0x%x\n", - dp_drv->link_rate, dp_drv->dpcd.max_link_rate); + dp_drv->link_rate = mdss_dp_gen_link_clk(dp_drv); if (!dp_drv->link_rate) { pr_err("Unable to configure required link rate\n"); ret = -EINVAL; @@ -1414,8 +1409,6 @@ int mdss_dp_on_hpd(struct mdss_dp_drv_pdata *dp_drv) mdss_dp_phy_share_lane_config(&dp_drv->phy_io, dp_drv->orientation, dp_drv->dpcd.max_lane_count); - pr_debug("link_rate = 0x%x\n", dp_drv->link_rate); - ret = mdss_dp_enable_mainlink_clocks(dp_drv); if (ret) goto exit; @@ -3141,8 +3134,7 @@ static bool mdss_dp_video_pattern_test_lt_needed(struct mdss_dp_drv_pdata *dp) * 2. Lane count changes * For now, assume that lane count is not going to change */ - new_link_rate = mdss_dp_gen_link_clk(&dp->panel_data.panel_info, - dp->dpcd.max_lane_count); + new_link_rate = mdss_dp_gen_link_clk(dp); pr_debug("new link rate = 0x%x, current link rate = 0x%x\n", new_link_rate, dp->link_rate); if (new_link_rate != dp->link_rate) { diff --git a/drivers/video/fbdev/msm/mdss_dp.h b/drivers/video/fbdev/msm/mdss_dp.h index d5e73e264f89..26bf771f8ea5 100644 --- a/drivers/video/fbdev/msm/mdss_dp.h +++ b/drivers/video/fbdev/msm/mdss_dp.h @@ -960,7 +960,7 @@ void mdss_dp_fill_link_cfg(struct mdss_dp_drv_pdata *ep); void mdss_dp_sink_power_down(struct mdss_dp_drv_pdata *ep); void mdss_dp_lane_power_ctrl(struct mdss_dp_drv_pdata *ep, int up); void mdss_dp_config_ctrl(struct mdss_dp_drv_pdata *ep); -char mdss_dp_gen_link_clk(struct mdss_panel_info *pinfo, char lane_cnt); +char mdss_dp_gen_link_clk(struct mdss_dp_drv_pdata *dp); int mdss_dp_aux_set_sink_power_state(struct mdss_dp_drv_pdata *ep, char state); int mdss_dp_aux_send_psm_request(struct mdss_dp_drv_pdata *dp, bool enable); void mdss_dp_aux_send_test_response(struct mdss_dp_drv_pdata *ep); diff --git a/drivers/video/fbdev/msm/mdss_dp_aux.c b/drivers/video/fbdev/msm/mdss_dp_aux.c index 1386adc8cc00..2b2a92a0326e 100644 --- a/drivers/video/fbdev/msm/mdss_dp_aux.c +++ b/drivers/video/fbdev/msm/mdss_dp_aux.c @@ -499,12 +499,14 @@ void dp_extract_edid_feature(struct edp_edid *edid, char *buf) edid->dpm, edid->color_format); }; -char mdss_dp_gen_link_clk(struct mdss_panel_info *pinfo, char lane_cnt) +char mdss_dp_gen_link_clk(struct mdss_dp_drv_pdata *dp) { const u32 encoding_factx10 = 8; const u32 ln_to_link_ratio = 10; u32 min_link_rate, reminder = 0; char calc_link_rate = 0; + struct mdss_panel_info *pinfo = &dp->panel_data.panel_info; + char lane_cnt = dp->dpcd.max_lane_count; pr_debug("clk_rate=%llu, bpp= %d, lane_cnt=%d\n", pinfo->clk_rate, pinfo->bpp, lane_cnt); @@ -543,6 +545,11 @@ char mdss_dp_gen_link_clk(struct mdss_panel_info *pinfo, char lane_cnt) calc_link_rate = DP_LINK_RATE_540; } + pr_debug("calc_link_rate=0x%x, Max rate supported by sink=0x%x\n", + dp->link_rate, dp->dpcd.max_link_rate); + if (calc_link_rate > dp->dpcd.max_link_rate) + calc_link_rate = dp->dpcd.max_link_rate; + pr_debug("calc_link_rate = 0x%x\n", calc_link_rate); return calc_link_rate; } |
