aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/plat-omap/dma.c
diff options
context:
space:
mode:
authorStanley.Miao <stanley.miao@windriver.com>2009-01-29 08:57:12 -0800
committerTony Lindgren <tony@atomide.com>2009-01-29 08:57:12 -0800
commit06151158f2da4764479b4ec01688dc4bade6ce9d (patch)
treeb78b3f2ccde6e3d49e9f35bad3352fbfd9a3eca2 /arch/arm/plat-omap/dma.c
parent18e352e4a73465349711a9324767e1b2453383e2 (diff)
downloadkernel_samsung_smdk4412-06151158f2da4764479b4ec01688dc4bade6ce9d.zip
kernel_samsung_smdk4412-06151158f2da4764479b4ec01688dc4bade6ce9d.tar.gz
kernel_samsung_smdk4412-06151158f2da4764479b4ec01688dc4bade6ce9d.tar.bz2
ARM: OMAP: Fix McBSP spin_lock deadlock
A spin_lock deadlock will occur when omap_mcbsp_request() is invoked. omap_mcbsp_request() \- clk_enable(mcbsp->clk) [takes and holds clockfw_lock] \- omap2_clk_enable() \- _omap2_clk_enable() \- omap_mcbsp_clk_enable() \- clk_enable(child clock) [tries for clockfw_lock again] mcbsp_clk is a virtual clock and it comprises several child clocks. when enable mcbsp_clk in omap_mcbsp_request(), the enable function of mcbsp_clk will enable its child clocks, then the deadlock occurs. The solution is to remove the virtual clock and enable these child clocks in omap_mcbsp_request() directly. Signed-off-by: Stanley.Miao <stanley.miao@windriver.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
Diffstat (limited to 'arch/arm/plat-omap/dma.c')
0 files changed, 0 insertions, 0 deletions