1. 01 10月, 2015 1 次提交
  2. 14 1月, 2015 2 次提交
    • K
      dmaengine: fsldma: remove the unused variable · 0fdd244f
      Kevin Hao 提交于
      Fix the following build warning:
        drivers/dma/fsldma.c: In function 'fsl_dma_device_terminate_all':
        drivers/dma/fsldma.c:947:6: warning: unused variable 'size' [-Wunused-variable]
      Signed-off-by: NKevin Hao <haokexin@gmail.com>
      Signed-off-by: NVinod Koul <vinod.koul@intel.com>
      0fdd244f
    • K
      dmaengine: fsldma: declare slave capabilities for the generic code · 75dc1775
      Kevin Hao 提交于
      Since commit ecc19d17 ("dmaengine: Add a warning for drivers not
      using the generic slave caps retrieval"), the dma drivers are required
      to fill the caps infos in order to support generic slaves caps
      retrieval. Otherwise we will get a warning like this:
        WARNING: at drivers/dma/dmaengine.c:830
        Modules linked in:
        CPU: 0 PID: 1 Comm: swapper/0 Tainted: G        W       3.19.0-rc2-next-20150106-dirty #271
        task: c0000001f70a0000 ti: c0000001f7044000 task.ti: c0000001f7044000
        NIP: c00000000032b238 LR: c00000000032b234 CTR: c00000000001d258
        REGS: c0000001f7047330 TRAP: 0700   Tainted: G        W        (3.19.0-rc2-next-20150106-dirty)
        MSR: 0000000080029000 <CE,EE,ME>  CR: 24adbe22  XER: 20000000
        SOFTE: 1
        GPR00: c00000000032b234 c0000001f70475b0 c0000000009b4848 0000000000000040
        GPR04: 0000000000000001 0000000000000001 0000000000000000 000000000000000f
        GPR08: 0000000000000000 c000000000902988 c000000000902988 00000000000052c8
        GPR12: 0000000024adbe22 c00000000fff4000 c000000000002038 0000000000000000
        GPR16: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
        GPR20: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
        GPR24: 0000000000000000 0000000000000000 c000000000972dc8 c0000000007e6fd0
        GPR28: c0000001f76d1d30 c0000001f76d1c10 c0000001f76d1c00 0000000000000000
        NIP [c00000000032b238] .dma_async_device_register+0x3f8/0x5b8
        LR [c00000000032b234] .dma_async_device_register+0x3f4/0x5b8
        Call Trace:
        [c0000001f70475b0] [c00000000032b234] .dma_async_device_register+0x3f4/0x5b8 (unreliable)
        [c0000001f70476a0] [c00000000032ca78] .fsldma_of_probe+0x298/0x438
        [c0000001f7047750] [c00000000037080c] .platform_drv_probe+0x50/0x9c
        [c0000001f70477d0] [c00000000036e74c] .really_probe+0xa4/0x29c
        [c0000001f7047870] [c00000000036eae4] .__driver_attach+0x100/0x104
        [c0000001f7047900] [c00000000036c1f0] .bus_for_each_dev+0x84/0xe4
        [c0000001f70479a0] [c00000000036e164] .driver_attach+0x24/0x38
        [c0000001f7047a10] [c00000000036dcc8] .bus_add_driver+0x1c8/0x2ac
        [c0000001f7047ab0] [c00000000036f14c] .driver_register+0x8c/0x158
        [c0000001f7047b30] [c0000000003707a8] .__platform_driver_register+0x6c/0x80
        [c0000001f7047ba0] [c000000000898a3c] .fsldma_init+0x2c/0x40
        [c0000001f7047c10] [c000000000001818] .do_one_initcall+0xb8/0x234
        [c0000001f7047d00] [c000000000878e2c] .kernel_init_freeable+0x188/0x268
        [c0000001f7047db0] [c000000000002054] .kernel_init+0x1c/0xfc8
        [c0000001f7047e30] [c000000000000884] .ret_from_kernel_thread+0x58/0xd4
        Instruction dump:
        7fb9f840 3bffffe0 409effac 7f54d378 48000060 813d0050 2f890000 40befdd0
        3c62ffe3 38632450 482f0aa9 60000000 <0fe00000> 4bfffdb8 7f03c378 482ed465
      Signed-off-by: NKevin Hao <haokexin@gmail.com>
      Signed-off-by: NVinod Koul <vinod.koul@intel.com>
      75dc1775
  3. 22 12月, 2014 1 次提交
  4. 06 11月, 2014 1 次提交
  5. 20 10月, 2014 1 次提交
  6. 16 10月, 2014 2 次提交
  7. 15 7月, 2014 3 次提交
    • H
      dmaengine: Freescale: change descriptor release process for supporting async_tx · 43452fad
      Hongbo Zhang 提交于
      Fix the potential risk when enable config NET_DMA and ASYNC_TX. Async_tx is
      lack of support in current release process of dma descriptor, all descriptors
      will be released whatever is acked or no-acked by async_tx, so there is a
      potential race condition when dma engine is uesd by others clients (e.g. when
      enable NET_DMA to offload TCP).
      
      In our case, a race condition which is raised when use both of talitos and
      dmaengine to offload xor is because napi scheduler will sync all pending
      requests in dma channels, it affects the process of raid operations due to
      ack_tx is not checked in fsl dma. The no-acked descriptor is freed which is
      submitted just now, as a dependent tx, this freed descriptor trigger
      BUG_ON(async_tx_test_ack(depend_tx)) in async_tx_submit().
      
      TASK = ee1a94a0[1390] 'md0_raid5' THREAD: ecf40000 CPU: 0
      GPR00: 00000001 ecf41ca0 ee44/921a94a0 0000003f 00000001 c00593e4 00000000 00000001
      GPR08: 00000000 a7a7a7a7 00000001 045/920000002 42028042 100a38d4 ed576d98 00000000
      GPR16: ed5a11b0 00000000 2b162000 00000200 046/920000000 2d555000 ed3015e8 c15a7aa0
      GPR24: 00000000 c155fc40 00000000 ecb63220 ecf41d28 e47/92f640bb0 ef640c30 ecf41ca0
      NIP [c02b048c] async_tx_submit+0x6c/0x2b4
      LR [c02b068c] async_tx_submit+0x26c/0x2b4
      Call Trace:
      [ecf41ca0] [c02b068c] async_tx_submit+0x26c/0x2b448/92 (unreliable)
      [ecf41cd0] [c02b0a4c] async_memcpy+0x240/0x25c
      [ecf41d20] [c0421064] async_copy_data+0xa0/0x17c
      [ecf41d70] [c0421cf4] __raid_run_ops+0x874/0xe10
      [ecf41df0] [c0426ee4] handle_stripe+0x820/0x25e8
      [ecf41e90] [c0429080] raid5d+0x3d4/0x5b4
      [ecf41f40] [c04329b8] md_thread+0x138/0x16c
      [ecf41f90] [c008277c] kthread+0x8c/0x90
      [ecf41ff0] [c0011630] kernel_thread+0x4c/0x68
      
      Another modification in this patch is the change of completed descriptors,
      there is a potential risk which caused by exception interrupt, all descriptors
      in ld_running list are seemed completed when an interrupt raised, it works fine
      under normal condition, but if there is an exception occured, it cannot work as
      our excepted. Hardware should not be depend on s/w list, the right way is to
      read current descriptor address register to find the last completed descriptor.
      If an interrupt is raised by an error, all descriptors in ld_running should not
      be seemed finished, or these unfinished descriptors in ld_running will be
      released wrongly.
      
      A simple way to reproduce:
      Enable dmatest first, then insert some bad descriptors which can trigger
      Programming Error interrupts before the good descriptors. Last, the good
      descriptors will be freed before they are processsed because of the exception
      intrerrupt.
      
      Note: the bad descriptors are only for simulating an exception interrupt.  This
      case can illustrate the potential risk in current fsl-dma very well.
      Signed-off-by: NHongbo Zhang <hongbo.zhang@freescale.com>
      Signed-off-by: NQiang Liu <qiang.liu@freescale.com>
      Signed-off-by: NIra W. Snyder <iws@ovro.caltech.edu>
      Signed-off-by: NVinod Koul <vinod.koul@intel.com>
      43452fad
    • H
      dmaengine: Freescale: add suspend resume functions for DMA driver · 14c6a333
      Hongbo Zhang 提交于
      This patch adds suspend and resume functions for Freescale DMA driver.
      Signed-off-by: NHongbo Zhang <hongbo.zhang@freescale.com>
      Signed-off-by: NVinod Koul <vinod.koul@intel.com>
      14c6a333
    • H
      dmaengine: Freescale: use spin_lock_bh instead of spin_lock_irqsave · 2baff570
      Hongbo Zhang 提交于
      The usage of spin_lock_irqsave() is a stronger locking mechanism than is
      required throughout the driver. The minimum locking required should be used
      instead. Interrupts will be turned off and context will be saved, it is
      unnecessary to use irqsave.
      
      This patch changes all instances of spin_lock_irqsave() to spin_lock_bh(). All
      manipulation of protected fields is done using tasklet context or weaker, which
      makes spin_lock_bh() the correct choice.
      Signed-off-by: NHongbo Zhang <hongbo.zhang@freescale.com>
      Signed-off-by: NQiang Liu <qiang.liu@freescale.com>
      Signed-off-by: NVinod Koul <vinod.koul@intel.com>
      2baff570
  8. 03 5月, 2014 5 次提交
  9. 13 12月, 2013 1 次提交
    • D
      dma: fix fsldma build warnings · bbc76560
      Dan Williams 提交于
      
      drivers/dma/fsldma.c: In function 'fsldma_cleanup_descriptor':
      drivers/dma/fsldma.c:860:6: warning: unused variable 'len' [-Wunused-variable]
      drivers/dma/fsldma.c:859:13: warning: unused variable 'dst' [-Wunused-variable]
      drivers/dma/fsldma.c:858:13: warning: unused variable 'src' [-Wunused-variable]
      drivers/dma/fsldma.c:857:17: warning: unused variable 'dev' [-Wunused-variable]
      - due to unmap changes
      
      drivers/dma/fsldma.c: In function 'fsl_dma_tx_submit':
      drivers/dma/fsldma.c:428:2: warning: 'cookie' may be used uninitialized in this function [-Wuninitialized]
      - long standing warning
      
      Cc: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
      Cc: Li Yang <leoli@freescale.com>
      Cc: Zhang Wei <zw@zh-kernel.org>
      Signed-off-by: NDan Williams <dan.j.williams@intel.com>
      bbc76560
  10. 15 11月, 2013 1 次提交
  11. 14 11月, 2013 1 次提交
  12. 13 11月, 2013 1 次提交
  13. 10 10月, 2013 1 次提交
  14. 05 8月, 2013 1 次提交
  15. 05 7月, 2013 1 次提交
  16. 29 11月, 2012 1 次提交
  17. 01 9月, 2012 1 次提交
  18. 21 3月, 2012 1 次提交
  19. 13 3月, 2012 6 次提交
  20. 27 10月, 2011 1 次提交
  21. 11 4月, 2011 1 次提交
  22. 12 3月, 2011 6 次提交