summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrank Li <Frank.Li@freescale.com>2009-12-18 15:34:12 +0800
committerFrank Li <Frank.Li@freescale.com>2009-12-18 16:05:22 +0800
commit683b152b669ce83990ee02141f81826171463a81 (patch)
tree97f3d89b76c9980896249f8ca3f09d8071e23249
parent118180b56814d13cca9da7d3fd7152ef61a6e858 (diff)
ENGR00119296 Fix iMX23 display abnormal when change frequency
Miss clear BYPASS_CPU bit for CLKSEQ. CPU and HClk frequency will low than 24Mhz, so there are not enough bandwidth to support LCD refresh Signed-off-by: Frank Li <Frank.Li@freescale.com>
-rw-r--r--arch/arm/plat-stmp3xxx/clock.c3
-rw-r--r--drivers/video/stmp37xxfb.c4
2 files changed, 5 insertions, 2 deletions
diff --git a/arch/arm/plat-stmp3xxx/clock.c b/arch/arm/plat-stmp3xxx/clock.c
index ec286741d185..62823d08f3f1 100644
--- a/arch/arm/plat-stmp3xxx/clock.c
+++ b/arch/arm/plat-stmp3xxx/clock.c
@@ -578,6 +578,9 @@ static int clkseq_set_parent(struct clk *clk, struct clk *parent)
REGS_CLKCTRL_BASE + HW_CLKCTRL_CPU);
hclk.rate = 0;
}
+
+ __raw_writel(1 << clk->bypass_shift,
+ clk->bypass_reg + shift);
} else
__raw_writel(1 << clk->bypass_shift,
clk->bypass_reg + shift);
diff --git a/drivers/video/stmp37xxfb.c b/drivers/video/stmp37xxfb.c
index 07cbb27352e8..ff9e2d03722d 100644
--- a/drivers/video/stmp37xxfb.c
+++ b/drivers/video/stmp37xxfb.c
@@ -654,13 +654,13 @@ static int stmp3xxxfb_notifier(struct notifier_block *self,
/* REVISIT */
switch (phase) {
case CPUFREQ_PRECHANGE:
- if (old_state == F_ENABLE)
+ if (old_state == F_ENABLE || old_state == F_STARTUP)
if (pentry->blank_panel)
pentry->blank_panel(FB_BLANK_POWERDOWN);
break;
case CPUFREQ_POSTCHANGE:
- if (old_state == F_ENABLE)
+ if (old_state == F_ENABLE || old_state == F_STARTUP)
if (pentry->blank_panel)
pentry->blank_panel(FB_BLANK_UNBLANK);
break;