Message ID | 4FB160D3.6020807@boundarydevices.com |
---|---|
State | Not Applicable |
Headers | show |
Hi Troy,
On Mon, May 14, 2012 at 4:45 PM, Troy Kisky
<troy.kisky@boundarydevices.com> wrote:
> This patch (though you can't apply it directly) may give you a clue.
Thanks a lot for sharing your patch. I manually applied it on my
kernel and now it does not hang anymore.
I only used the turn_off_display() of your patch.
I will see if it is possible to place the contents of this function
into U-boot and see if it fixes the problem without needing to change
the kernel.
Thanks a lot!
Fabio Estevam
diff --git a/arch/arm/mach-mx5/clock.c b/arch/arm/mach-mx5/clock.c index faecc34..efe324c 100644 --- a/arch/arm/mach-mx5/clock.c +++ b/arch/arm/mach-mx5/clock.c @@ -4581,6 +4581,19 @@ static void clk_tree_init(void) } } +#define IPU_CONF 0x000 +#define IPU_DISP_GEN 0x0C4 + +void turn_off_display(int physical_base) { + void __iomem *ipuc = ioremap(physical_base, SZ_4K); + if (ipuc) { + /* clear DI0/DI1 counter release */ + unsigned reg = __raw_readl(ipuc + IPU_DISP_GEN); + __raw_writel(reg & ~(3 << 24), ipuc + IPU_DISP_GEN); + __raw_writel(0, ipuc + IPU_CONF); + iounmap(ipuc); + } +} int __init mx51_clocks_init(unsigned long ckil, unsigned long osc, unsigned long ckih1, unsigned long ckih2)