summaryrefslogtreecommitdiff
path: root/drivers/video/fbdev/msm
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2016-11-14 21:53:59 -0800
committerGerrit - the friendly Code Review server <code-review@localhost>2016-11-14 21:53:58 -0800
commita4bd3599a0a161ff0711ec6bd850d316438b6464 (patch)
tree485a6fe1a55be9a35f01aecfddfb4d3a8e3cc31e /drivers/video/fbdev/msm
parent1f3e1e09867c04f330894f7358a3dbbd2aaa0b78 (diff)
parent720d736d5beea1cae7b0eac77366079e419309f0 (diff)
Merge "mdss: display-port: fix link rate calculation"
Diffstat (limited to 'drivers/video/fbdev/msm')
-rw-r--r--drivers/video/fbdev/msm/mdss_dp_aux.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/drivers/video/fbdev/msm/mdss_dp_aux.c b/drivers/video/fbdev/msm/mdss_dp_aux.c
index e396dfff60ef..b64518194926 100644
--- a/drivers/video/fbdev/msm/mdss_dp_aux.c
+++ b/drivers/video/fbdev/msm/mdss_dp_aux.c
@@ -514,7 +514,7 @@ char mdss_dp_gen_link_clk(struct mdss_panel_info *pinfo, char lane_cnt)
{
const u32 encoding_factx10 = 8;
const u32 ln_to_link_ratio = 10;
- u32 min_link_rate;
+ u32 min_link_rate, reminder = 0;
char calc_link_rate = 0;
pr_debug("clk_rate=%llu, bpp= %d, lane_cnt=%d\n",
@@ -531,9 +531,15 @@ char mdss_dp_gen_link_clk(struct mdss_panel_info *pinfo, char lane_cnt)
(lane_cnt * encoding_factx10));
min_link_rate /= ln_to_link_ratio;
min_link_rate = (min_link_rate * pinfo->bpp);
- min_link_rate = (u32)div_u64(min_link_rate * 10,
- DP_LINK_RATE_MULTIPLIER);
+ min_link_rate = (u32)div_u64_rem(min_link_rate * 10,
+ DP_LINK_RATE_MULTIPLIER, &reminder);
+ /*
+ * To avoid any fractional values,
+ * increment the min_link_rate
+ */
+ if (reminder)
+ min_link_rate += 1;
pr_debug("min_link_rate = %d\n", min_link_rate);
if (min_link_rate <= DP_LINK_RATE_162)