diff options
author | Larry Li <b20787@freescale.com> | 2012-04-10 17:12:51 +0800 |
---|---|---|
committer | Larry Li <b20787@freescale.com> | 2012-04-11 10:18:14 +0800 |
commit | 6e2a5cabfe7b265720109d6110d063c4a6e94f34 (patch) | |
tree | c16db8d1c439582494e42ac7b24243d5c9142389 /arch/arm/mach-mx6/clock.c | |
parent | 391b36430cc79a2d87987279ed0065079fe79b2a (diff) |
ENGR00178597 [MX6DL/S] Multi-instance test in GC880 cause system hang
In our code 3d sharder clock uses 3d core clock CCGR field as its
enable bit. That works for MX6Q. But MX6DL uses 3d sharder clock
as 2d core clock, while disable 2d core clock, it will disable 3d
core by mistake.
To fix it, remove the enable bit setting of 3d shader clock in
clock.c file.
Signed-off-by: Larry Li <b20787@freescale.com>
Diffstat (limited to 'arch/arm/mach-mx6/clock.c')
-rw-r--r-- | arch/arm/mach-mx6/clock.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/arch/arm/mach-mx6/clock.c b/arch/arm/mach-mx6/clock.c index 2c49585bee4e..5372dace4d44 100644 --- a/arch/arm/mach-mx6/clock.c +++ b/arch/arm/mach-mx6/clock.c @@ -4491,10 +4491,6 @@ static struct clk gpu3d_shader_clk = { __INIT_CLK_DEBUG(gpu3d_shader_clk) .parent = &pll3_pfd_720M, .secondary = &mmdc_ch0_axi_clk[0], - .enable = _clk_enable, - .enable_reg = MXC_CCM_CCGR1, - .enable_shift = MXC_CCM_CCGRx_CG13_OFFSET, - .disable = _clk_disable, .set_parent = _clk_gpu3d_shader_set_parent, .set_rate = _clk_gpu3d_shader_set_rate, .get_rate = _clk_gpu3d_shader_get_rate, @@ -5204,6 +5200,12 @@ int __init mx6_clocks_init(unsigned long ckil, unsigned long osc, clk_set_parent(&emi_clk, &pll2_pfd_400M); clk_set_rate(&emi_clk, 200000000); + /* + * on mx6dl, 2d core clock sources from 3d shader core clock, + * but 3d shader clock multiplexer of mx6dl is different from + * mx6q. For instance the equivalent of pll2_pfd_594M on mc6q + * is pll2_pfd_528M on mx6dl. Make a note here. + */ clk_set_parent(&gpu3d_shader_clk, &pll2_pfd_594M); clk_set_rate(&gpu3d_shader_clk, 594000000); clk_set_parent(&gpu3d_core_clk[0], &mmdc_ch0_axi_clk[0]); |