diff options
author | Tony Liao <tliao@marvell.com> | 2013-03-21 15:51:14 -0700 |
---|---|---|
committer | Lubomir Rintel <lkundrak@v3.sk> | 2019-07-22 19:40:05 +0200 |
commit | 1144de49fbf354501e71be8b44381d7717bc7094 (patch) | |
tree | c183b3c89ef6578c1baf87e71946fbfdf54ebd13 | |
parent | b60b7cf31417d07ad8cf2ea87168fc31068fccaf (diff) | |
download | linux-mmp3-dell-ariel-1144de49fbf354501e71be8b44381d7717bc7094.tar.gz |
linux: fix duplicate clk_enable() call by dipen for pll3. Add debug prints. Signed-off-by: Tony Liao <tliao@marvell.com>
(cherry picked from commit deb77d12d24eb8e286613b049b2653aeb9ac855e)
Signed-off-by: Wen-chien Jesse Sung <jesse.sung@canonical.com>
-rw-r--r-- | arch/arm/mach-mmp/clock-mmp3.c | 3 | ||||
-rw-r--r-- | drivers/video/pxa168fb.c | 14 |
2 files changed, 14 insertions, 3 deletions
diff --git a/arch/arm/mach-mmp/clock-mmp3.c b/arch/arm/mach-mmp/clock-mmp3.c index 7d405cc1bffb17..59b4ab82760604 100644 --- a/arch/arm/mach-mmp/clock-mmp3.c +++ b/arch/arm/mach-mmp/clock-mmp3.c @@ -1543,6 +1543,7 @@ static struct clk *disp_depend_clk[] = { static int lcd_pn1_clk_enable(struct clk *clk) { u32 val = __raw_readl(clk->reg_data[SOURCE][CONTROL].reg); + printk(KERN_INFO"***Frank %s/%d clk=%p clk->name=%s\n", __func__, __LINE__, clk, clk->name); if (clk->parent == &mmp3_clk_vctcxo) { #ifndef CONFIG_MACH_QSEVEN @@ -1607,6 +1608,7 @@ static int lcd_pn1_clk_enable(struct clk *clk) static void lcd_pn1_clk_disable(struct clk *clk) { u32 val = __raw_readl(clk->reg_data[SOURCE][CONTROL].reg); + printk(KERN_INFO"***Frank %s/%d clk=%p clk->name=%s\n", __func__, __LINE__, clk, clk->name); if (clk->parent == &mmp3_clk_vctcxo) { /* lcd clock source is fixed as DSI PLL(PLL3), so disable pll3 clk */ @@ -1648,6 +1650,7 @@ static long lcd_clk_round_rate(struct clk *clk, unsigned long rate) static int lcd_clk_setrate(struct clk *clk, unsigned long rate) { int ret = 0; + printk(KERN_INFO"***Frank %s/%d clk=%p clk->name=%s\n", __func__, __LINE__, clk, clk->name); switch (rate) { case 800000000: diff --git a/drivers/video/pxa168fb.c b/drivers/video/pxa168fb.c index cbcdc1148d40bb..7f911b16fe8309 100644 --- a/drivers/video/pxa168fb.c +++ b/drivers/video/pxa168fb.c @@ -38,6 +38,7 @@ #include <mach/irqs.h> #include <mach/gpio.h> #include <plat/pm.h> +#include <plat/clock.h> #include "pxa168fb_common.h" #include <asm/cacheflush.h> @@ -634,9 +635,13 @@ static void set_clock_divider(struct pxa168fb_info *fbi) struct dsi_info *di = (struct dsi_info *)mi->phy_info; u32 divider_int, needed_pixclk, val, x = 0; u64 div_result; + struct clk *fclk = (struct clk *)fbi->clk; if (!fbi->id) { calculate_lcd_sclk(fbi); + printk(KERN_INFO"***Frank %s/%d fbi->clk=%p fclk->name=%s\n", __func__, __LINE__, fbi->clk, fclk->name); + clk_disable(fbi->clk); + clk_set_rate(fbi->clk, fbi->sclk_src); clk_enable(fbi->clk); if ((mi->phy_type & (DSI | DSI2DPI)) || (mi->phy_type & LVDS)) { @@ -2239,9 +2244,12 @@ static int __devinit pxa168fb_probe(struct platform_device *pdev) pxa168fb_init_mode(info, mi); /* enable controller clock */ - if (mi->sclk_src) - clk_set_rate(fbi->clk, mi->sclk_src); - clk_enable(fbi->clk); + +// /* fix duplicate clk_enable() call by dipen */ +// if (mi->sclk_src) +// clk_set_rate(fbi->clk, mi->sclk_src); +// clk_enable(fbi->clk); + pr_info("fb%d: sclk_src %d clk_get_rate = %d\n", fbi->id, mi->sclk_src, (int)clk_get_rate(fbi->clk)); |