ENGR00306309 ARM:imx:imx6qdl: Fix procedure to switch the parent of LDB_DI_CLK
authorRanjani Vaidyanathan <Ranjani.Vaidyanathan@freescale.com>
Mon, 31 Mar 2014 18:35:45 +0000 (13:35 -0500)
committerNitin Garg <nitin.garg@freescale.com>
Wed, 16 Apr 2014 13:58:12 +0000 (08:58 -0500)
commit252b52411bc919f3fc13d3fb8dd267f57ae7feaf
tree45989ce8e30394a49dfbb5fe3e635e4c00397642
parent10e3862ce3099040ab45249cbceb6fdc3ae23d06
ENGR00306309 ARM:imx:imx6qdl: Fix procedure to switch the parent of LDB_DI_CLK

Due to incorrect placement of the clock gate cell in the ldb_di[x]_clk tree,
the glitchy parent mux of ldb_di[x]_clk can cause a glitch to enter the
ldb_di_ipu_div divider. If the divider gets locked up, no ldb_di[x]_clk is
generated, and the LVDS display will hang when the ipu_di_clk is sourced from
ldb_di_clk.

To fix the problem, both the new and current parent of the ldb_di_clk should
be disabled before the switch. This patch ensures that correct steps are
followed when ldb_di_clk parent is switched in the beginning of boot.

Signed-off-by: Ranjani Vaidyanathan <Ranjani.Vaidyanathan@freescale.com>
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
arch/arm/mach-imx/clk-imx6q.c