UPSTREAM: drm/rockchip: return a true clock rate to adjusted_mode
authorChris Zhong <zyw@rock-chips.com>
Wed, 6 Jan 2016 04:03:53 +0000 (12:03 +0800)
committerMark Yao <mark.yao@rock-chips.com>
Thu, 17 Mar 2016 01:42:04 +0000 (09:42 +0800)
Since the mipi dsi driver need to use the clock of vop to make the
calculation of Blanking. But sometimes the clock driver can not set a
accurate clock_rate for vop, get it by clk_round_rate before mode_set,
so we can get the true value.

Change-Id: I04e6a499763258c2e16a09e3a59cf3a1e4593706
Signed-off-by: Chris Zhong <zyw@rock-chips.com>
Acked-by: Mark Yao <mark.yao@rock-chips.com>
(cherry picked from commit b59b8de3149736e5094cb786978a1ba8d6d55b34)

drivers/gpu/drm/rockchip/rockchip_drm_vop.c

index f5b3da2f92d7fb593143d5774e6bb67ba6982d0f..056cac3f0fb1ac5f7aa9f230162bbab0927f6403 100644 (file)
@@ -878,9 +878,14 @@ static bool vop_crtc_mode_fixup(struct drm_crtc *crtc,
                                const struct drm_display_mode *mode,
                                struct drm_display_mode *adjusted_mode)
 {
+       struct vop *vop = to_vop(crtc);
+
        if (adjusted_mode->htotal == 0 || adjusted_mode->vtotal == 0)
                return false;
 
+       adjusted_mode->clock =
+               clk_round_rate(vop->dclk, mode->clock * 1000) / 1000;
+
        return true;
 }