diff options
author | Kevin Huang <kevinh@nvidia.com> | 2012-01-17 16:28:55 -0800 |
---|---|---|
committer | Varun Colbert <vcolbert@nvidia.com> | 2012-01-30 11:47:29 -0800 |
commit | 36d271bed03255ec821d7c2ffef405e61289ea0e (patch) | |
tree | a4fe1d6e3f6540f9289a1a2771e11fd753770649 /drivers/video/tegra/dc/dsi.c | |
parent | 13485d291aed28875f935afe89b70cd5056b861a (diff) |
video: tegra: dsi: Refine the DSI clock calculation.
Reviewed-on: http://git-master/r/76406
Change-Id: I6e5b37a88d6be4ba2cc81417fe3eadfd129bc899
Signed-off-by: Kevin Huang <kevinh@nvidia.com>
Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
Reviewed-on: http://git-master/r/77306
Reviewed-by: Automatic_Commit_Validation_User
Diffstat (limited to 'drivers/video/tegra/dc/dsi.c')
-rw-r--r-- | drivers/video/tegra/dc/dsi.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/drivers/video/tegra/dc/dsi.c b/drivers/video/tegra/dc/dsi.c index 82902756cc23..2c511efc4156 100644 --- a/drivers/video/tegra/dc/dsi.c +++ b/drivers/video/tegra/dc/dsi.c @@ -946,21 +946,23 @@ static void tegra_dsi_set_dsi_clk(struct tegra_dc *dc, { u32 rm; + /* Round up to MHz */ rm = clk % 1000; if (rm != 0) clk -= rm; - dc->mode.pclk = clk*1000; + /* Set up pixel clock */ + dc->shift_clk_div = dsi->shift_clk_div; + dc->mode.pclk = (clk * 1000) / dsi->shift_clk_div; + + /* Enable DSI clock */ tegra_dc_setup_clk(dc, dsi->dsi_clk); - if (dsi->clk_ref == true) - clk_disable(dsi->dsi_clk); - else + if (!dsi->clk_ref) { dsi->clk_ref = true; - clk_enable(dsi->dsi_clk); - tegra_periph_reset_deassert(dsi->dsi_clk); - + clk_enable(dsi->dsi_clk); + tegra_periph_reset_deassert(dsi->dsi_clk); + } dsi->current_dsi_clk_khz = clk_get_rate(dsi->dsi_clk) / 1000; - dsi->current_bit_clk_ns = 1000*1000 / (dsi->current_dsi_clk_khz * 2); } |