1. 29 Jan, 2009 2 commits
    • Juha Yrjola's avatar
      ARM: OMAP: Fix race in OMAP2/3 DMA IRQ handling · 320ce6f6
      Juha Yrjola authored
      CSR must be cleared before invoking the callback.
      
      If the callback function starts a new, fast DMA transfer on the same
      channel, the completion status might lost if CSR is cleared after
      the callback invocation.
      Signed-off-by: default avatarJuha Yrjola <juha.yrjola@solidboot.com>
      Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
      
      
      320ce6f6
    • Stanley.Miao's avatar
      ARM: OMAP: Fix McBSP spin_lock deadlock · 06151158
      Stanley.Miao authored
      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: default avatarStanley.Miao <stanley.miao@windriver.com>
      Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
      
      
      06151158
  2. 28 Jan, 2009 38 commits