drm/rockchip: dw-mipi-dsi: fix escape clock rate
authorxubilv <xbl@rock-chips.com>
Tue, 18 Jul 2017 03:24:39 +0000 (11:24 +0800)
committerHuang, Tao <huangtao@rock-chips.com>
Thu, 20 Jul 2017 11:19:33 +0000 (19:19 +0800)
Use the same calculation as the vendor kernel to derive the escape clock
speed.

Change-Id: I7aff4dc7fa9598df164148eaf44304caad704f23
Signed-off-by: xubilv <xbl@rock-chips.com>
drivers/gpu/drm/rockchip/dw-mipi-dsi.c

index 890fd83b7a08f91c4327fec7d11279cce62ced2d..642caf1247a2182ba6afab6650bc17f70ff25872 100644 (file)
@@ -749,11 +749,16 @@ static void dw_mipi_dsi_set_mode(struct dw_mipi_dsi *dsi,
 
 static void dw_mipi_dsi_init(struct dw_mipi_dsi *dsi)
 {
+       u32 esc_clk_div;
+
        dsi_write(dsi, DSI_PWR_UP, RESET);
        dsi_write(dsi, DSI_PHY_RSTZ, PHY_DISFORCEPLL | PHY_DISABLECLK
                  | PHY_RSTZ | PHY_SHUTDOWNZ);
+
+       /* The maximum value of the escape clock frequency is 20MHz */
+       esc_clk_div = DIV_ROUND_UP(dsi->lane_mbps >> 3, 20);
        dsi_write(dsi, DSI_CLKMGR_CFG, TO_CLK_DIVIDSION(10) |
-                 TX_ESC_CLK_DIVIDSION(7));
+                 TX_ESC_CLK_DIVIDSION(esc_clk_div));
 }
 
 static void dw_mipi_dsi_dpi_config(struct dw_mipi_dsi *dsi,