diff options
author | Wyon Bi <bivvy.bi@rock-chips.com> | 2018-01-09 16:30:27 +0800 |
---|---|---|
committer | Tao Huang <huangtao@rock-chips.com> | 2018-01-11 10:16:24 +0800 |
commit | 51a7171dd2f9626514e3096427b57cad118b297e (patch) | |
tree | 8e31b11213b38fd2f5916374c3c44d8b58f8c4ec | |
parent | 5c64b1b7ca65f839501cb97e1fa55748363c33cf (diff) |
drm/rockchip: dsi: Fix pclk hanndling
Change-Id: I31f6bc3991a03b79209c846a9c051acb0b2e8270
Signed-off-by: Wyon Bi <bivvy.bi@rock-chips.com>
-rw-r--r-- | drivers/gpu/drm/rockchip/dw-mipi-dsi.c | 25 |
1 files changed, 8 insertions, 17 deletions
diff --git a/drivers/gpu/drm/rockchip/dw-mipi-dsi.c b/drivers/gpu/drm/rockchip/dw-mipi-dsi.c index c09af2977e37..624c7ee8ecd2 100644 --- a/drivers/gpu/drm/rockchip/dw-mipi-dsi.c +++ b/drivers/gpu/drm/rockchip/dw-mipi-dsi.c @@ -1045,11 +1045,6 @@ static void dw_mipi_dsi_encoder_mode_set(struct drm_encoder *encoder, static void rockchip_dsi_pre_disable(struct dw_mipi_dsi *dsi) { - if (clk_prepare_enable(dsi->pclk)) { - dev_err(dsi->dev, "%s: Failed to enable pclk\n", __func__); - return; - } - dw_mipi_dsi_set_mode(dsi, DSI_COMMAND_MODE); if (dsi->slave) @@ -1152,17 +1147,6 @@ static void rockchip_dsi_grf_config(struct dw_mipi_dsi *dsi, int vop_id) static void rockchip_dsi_pre_init(struct dw_mipi_dsi *dsi) { - if (clk_prepare_enable(dsi->pclk)) { - dev_err(dsi->dev, "%s: Failed to enable pclk\n", __func__); - return; - } - - /* MIPI DSI APB software reset request. */ - reset_control_assert(dsi->rst); - udelay(10); - reset_control_deassert(dsi->rst); - udelay(10); - if (clk_prepare_enable(dsi->dphy.ref_clk)) { dev_err(dsi->dev, "Failed to enable pllref_clk\n"); return; @@ -1200,6 +1184,14 @@ static void rockchip_dsi_host_init(struct dw_mipi_dsi *dsi) static void rockchip_dsi_init(struct dw_mipi_dsi *dsi) { clk_prepare_enable(dsi->h2p_clk); + clk_prepare_enable(dsi->pclk); + + /* MIPI DSI APB software reset request. */ + reset_control_assert(dsi->rst); + udelay(10); + reset_control_deassert(dsi->rst); + udelay(10); + rockchip_dsi_pre_init(dsi); rockchip_dsi_host_init(dsi); dw_mipi_dsi_phy_init(dsi); @@ -1212,7 +1204,6 @@ static void rockchip_dsi_enable(struct dw_mipi_dsi *dsi) { dw_mipi_dsi_set_mode(dsi, DSI_VIDEO_MODE); clk_disable_unprepare(dsi->dphy.ref_clk); - clk_disable_unprepare(dsi->pclk); if (dsi->slave) rockchip_dsi_enable(dsi->slave); |