Skip to content
  1. Nov 20, 2015
  2. Nov 19, 2015
  3. Nov 13, 2015
    • Hiroyuki Yokoyama's avatar
      ASoC: rsnd: Fix illegal control of audio sequence · 15e0cc1a
      Hiroyuki Yokoyama authored
      
      
      Change order to follows.
      
        Base sequence at play:
         1. start Audio DMAC-pp
         2. start Audio DMAC
         3. start SSI
         4. start SSIU
         5. start SCU(CMD)
         6. start SCU(SRC)
      
         7. stop  SSI
         8. stop  Audio DMAC-pp
         9. stop  SSIU
        10. stop  SCU(CMD)
        11. stop  SCU(SRC)
        12. stop  Audio DMAC
      
        Base sequence at capture:
         1. start Audio DMAC-pp
         2. start Audio DMAC
         3. start SCU(CMD)
         4. start SCU(SRC)
         5. start SSIU
         6. start SSI
      
         7. stop SCU(CMD)
         8. stop Audio DMAC-pp
         9. stop SCU(SRC)
        10. stop SSIU
        11. stop SSI
        12. stop Audio DMAC
      
      Signed-off-by: default avatarHiroyuki Yokoyama <hiroyuki.yokoyama.vx@renesas.com>
      15e0cc1a
  4. Nov 12, 2015
  5. Nov 11, 2015
  6. Nov 09, 2015
    • Mitsuru Ezo's avatar
      serial: sh-sci: Fix deadlock caused by the double spinlock · 03a20479
      Mitsuru Ezo authored
      
      
      There is a case sci_dma_rx_complete() is called in the work_fn_rx() as follows.
      
      work_fn_rx()
       -> dma_async_is_tx_complete()
       -> device_tx_status() == shdma_tx_status()
       -> shdma_chan_ld_cleanup()
       -> __ld_cleanup()
       -> callback() == sci_dma_rx_complete()
      
      In this case, dma_rx_complete() tries to lock spinlock that is already locked from work_fn_rx().
      In the result, deadlock occurs.
      
      Fix deadlock as follows.
       - Divide WorkQueue method into two:
           one is work_fn_rx(), for reception timeout.
           the other is a new method, work_fn_rx_complete(), for DMA transfer completion.
       - In reception timeout, work_fn_rx() keeps own process id until end of spinlock.
       - In DMA transfer completion, sci_dma_rx_complete() does not lock
         if kept process id is same as own process id.
      
      Signed-off-by: default avatarMitsuru Ezo <mitsuru.ezo.pz@ps.hitachi-solutions.com>
      Signed-off-by: default avatarKazuya Mizuguchi <kazuya.mizuguchi.ks@renesas.com>
      03a20479
  7. Oct 23, 2015
  8. Oct 22, 2015