aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRob Herring <robh@kernel.org>2015-08-29 17:22:40 -0500
committerRob Herring <robh@kernel.org>2015-09-18 15:44:19 -0500
commit02f9d94726ff06d8937b87d39591ad2c5bacaf2e (patch)
treed19f9a41e0270405e8aff2069387d3529debabdd
parent2a349cb48738503f90caf7e3da1def791dc5358f (diff)
mmp-drm clock fixespxa1928-drm-v2
-rw-r--r--drivers/gpu/drm/mmp/mmp_drm_disp.c8
-rw-r--r--drivers/gpu/drm/mmp/mmp_drm_dsi.c1
2 files changed, 5 insertions, 4 deletions
diff --git a/drivers/gpu/drm/mmp/mmp_drm_disp.c b/drivers/gpu/drm/mmp/mmp_drm_disp.c
index 5a33e2551853..4e83e915ff24 100644
--- a/drivers/gpu/drm/mmp/mmp_drm_disp.c
+++ b/drivers/gpu/drm/mmp/mmp_drm_disp.c
@@ -803,21 +803,21 @@ static int mmp_disp_clk_init(struct device *dev, struct mmp_disp *disp)
clk_data->clks[0] = clk_register_divider(dev, "disp0_dsi_div",
"disp0_dsi_mux", 0, disp->regs + LCD_SCLK_DIV, 8, 4,
- CLK_DIVIDER_ONE_BASED | CLK_DIVIDER_ALLOW_ZERO,
+ CLK_DIVIDER_ONE_BASED | CLK_DIVIDER_ALLOW_ZERO | CLK_DIVIDER_ROUND_CLOSEST,
&disp->reg_lock);
disp->crtc[0].pix_clk = clk_data->clks[1] = clk_register_divider(dev,
"disp0_pixclk_div",
"disp0_pixclk_mux", 0, disp->regs + LCD_SCLK_DIV, 0, 8,
- CLK_DIVIDER_ONE_BASED | CLK_DIVIDER_ALLOW_ZERO,
+ CLK_DIVIDER_ONE_BASED | CLK_DIVIDER_ALLOW_ZERO | CLK_DIVIDER_ROUND_CLOSEST,
&disp->reg_lock);
clk_data->clks[2] = clk_register_divider(dev, "disp1_dsi_div",
"disp1_dsi_mux", 0, disp->regs + LCD_TCLK_DIV, 8, 4,
- CLK_DIVIDER_ONE_BASED | CLK_DIVIDER_ALLOW_ZERO,
+ CLK_DIVIDER_ONE_BASED | CLK_DIVIDER_ALLOW_ZERO | CLK_DIVIDER_ROUND_CLOSEST,
&disp->reg_lock);
disp->crtc[1].pix_clk = clk_data->clks[3] = clk_register_divider(dev, "disp1_pixclk_div",
"disp1_pixclk_mux", 0, disp->regs + LCD_TCLK_DIV, 0, 8,
- CLK_DIVIDER_ONE_BASED | CLK_DIVIDER_ALLOW_ZERO,
+ CLK_DIVIDER_ONE_BASED | CLK_DIVIDER_ALLOW_ZERO | CLK_DIVIDER_ROUND_CLOSEST,
&disp->reg_lock);
of_clk_add_provider(dev->of_node, of_clk_src_onecell_get, clk_data);
diff --git a/drivers/gpu/drm/mmp/mmp_drm_dsi.c b/drivers/gpu/drm/mmp/mmp_drm_dsi.c
index 1bbd3af101f5..6c2176acae3a 100644
--- a/drivers/gpu/drm/mmp/mmp_drm_dsi.c
+++ b/drivers/gpu/drm/mmp/mmp_drm_dsi.c
@@ -352,6 +352,7 @@ static void mmp_dsi_configure(struct mmp_dsi *dsi, struct drm_display_mode *mode
bitclk_div = 150000000 / bitclk + 1;
clk_set_min_rate(dsi->bit_clk, bitclk * bitclk_div);
+ clk_set_rate(dsi->bit_clk, bitclk * bitclk_div);
printk("actual bit clk is %d Hz, requested %d Hz\n",
clk_get_rate(dsi->bit_clk), bitclk * bitclk_div);