1. 17 12月, 2021 1 次提交
  2. 25 10月, 2021 1 次提交
    • A
      dmaengine: remove debugfs #ifdef · b3b180e7
      Arnd Bergmann 提交于
      The ptdma driver has added debugfs support, but this fails to build
      when debugfs is disabled:
      
      drivers/dma/ptdma/ptdma-debugfs.c: In function 'ptdma_debugfs_setup':
      drivers/dma/ptdma/ptdma-debugfs.c:93:54: error: 'struct dma_device' has no member named 'dbg_dev_root'
         93 |         debugfs_create_file("info", 0400, pt->dma_dev.dbg_dev_root, pt,
            |                                                      ^
      drivers/dma/ptdma/ptdma-debugfs.c:96:55: error: 'struct dma_device' has no member named 'dbg_dev_root'
         96 |         debugfs_create_file("stats", 0400, pt->dma_dev.dbg_dev_root, pt,
            |                                                       ^
      drivers/dma/ptdma/ptdma-debugfs.c:102:52: error: 'struct dma_device' has no member named 'dbg_dev_root'
        102 |                 debugfs_create_dir("q", pt->dma_dev.dbg_dev_root);
            |                                                    ^
      
      Remove the #ifdef in the header, as this only saves a few bytes,
      but would require ugly #ifdefs in each driver using it.
      Simplify the other user while we're at it.
      
      Fixes: e2fb2e2a ("dmaengine: ptdma: Add debugfs entries for PTDMA")
      Fixes: 26cf132d ("dmaengine: Create debug directories for DMA devices")
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Reviewed-by: NLaurent Pinchart <laurent.pinchart@ideasonboard.com>
      Link: https://lore.kernel.org/r/20210920122017.205975-1-arnd@kernel.orgSigned-off-by: NVinod Koul <vkoul@kernel.org>
      b3b180e7
  3. 29 8月, 2021 1 次提交
  4. 31 5月, 2021 1 次提交
  5. 14 1月, 2021 1 次提交
  6. 11 12月, 2020 2 次提交
  7. 25 11月, 2020 1 次提交
  8. 03 9月, 2020 1 次提交
  9. 28 8月, 2020 1 次提交
  10. 27 7月, 2020 3 次提交
  11. 18 7月, 2020 1 次提交
  12. 17 7月, 2020 1 次提交
    • L
      dmaengine: Add support for repeating transactions · 9c8ebd8b
      Laurent Pinchart 提交于
      DMA engines used with displays perform 2D interleaved transfers to read
      framebuffers from memory and feed the data to the display engine. As the
      same framebuffer can be displayed for multiple frames, the DMA
      transactions need to be repeated until a new framebuffer replaces the
      current one. This feature is implemented natively by some DMA engines
      that have the ability to repeat transactions and switch to a new
      transaction at the end of a transfer without any race condition or frame
      loss.
      
      This patch implements support for this feature in the DMA engine API. A
      new DMA_PREP_REPEAT transaction flag allows DMA clients to instruct the
      DMA channel to repeat the transaction automatically until one or more
      new transactions are issued on the channel (or until all active DMA
      transfers are explicitly terminated with the dmaengine_terminate_*()
      functions). A new DMA_REPEAT transaction type is also added for DMA
      engine drivers to report their support of the DMA_PREP_REPEAT flag.
      
      A new DMA_PREP_LOAD_EOT transaction flag is also introduced (with a
      corresponding DMA_LOAD_EOT capability bit), as requested during the
      review of v4. The flag instructs the DMA channel that the transaction
      being queued should replace the active repeated transaction when the
      latter terminates (at End Of Transaction). Not setting the flag will
      result in the active repeated transaction to continue being repeated,
      and the new transaction being silently ignored.
      
      The DMA_PREP_REPEAT flag is currently supported for interleaved
      transactions only. Its usage can easily be extended to cover more
      transaction types simply by adding an appropriate check in the
      corresponding dmaengine_prep_*() function.
      Signed-off-by: NLaurent Pinchart <laurent.pinchart@ideasonboard.com>
      Reviewed-by: NPeter Ujfalusi <peter.ujfalusi@ti.com>
      Link: https://lore.kernel.org/r/20200717013337.24122-3-laurent.pinchart@ideasonboard.comSigned-off-by: NVinod Koul <vkoul@kernel.org>
      9c8ebd8b
  13. 17 6月, 2020 1 次提交
  14. 16 6月, 2020 1 次提交
  15. 27 4月, 2020 1 次提交
  16. 16 4月, 2020 1 次提交
  17. 11 3月, 2020 2 次提交
  18. 02 3月, 2020 4 次提交
  19. 24 1月, 2020 2 次提交
  20. 21 1月, 2020 5 次提交
  21. 24 12月, 2019 2 次提交
  22. 11 12月, 2019 1 次提交
    • L
      dmaengine: Fix access to uninitialized dma_slave_caps · 53a256a9
      Lukas Wunner 提交于
      dmaengine_desc_set_reuse() allocates a struct dma_slave_caps on the
      stack, populates it using dma_get_slave_caps() and then accesses one
      of its members.
      
      However dma_get_slave_caps() may fail and this isn't accounted for,
      leading to a legitimate warning of gcc-4.9 (but not newer versions):
      
         In file included from drivers/spi/spi-bcm2835.c:19:0:
         drivers/spi/spi-bcm2835.c: In function 'dmaengine_desc_set_reuse':
      >> include/linux/dmaengine.h:1370:10: warning: 'caps.descriptor_reuse' is used uninitialized in this function [-Wuninitialized]
           if (caps.descriptor_reuse) {
      
      Fix it, thereby also silencing the gcc-4.9 warning.
      
      The issue has been present for 4 years but surfaces only now that
      the first caller of dmaengine_desc_set_reuse() has been added in
      spi-bcm2835.c. Another user of reusable DMA descriptors has existed
      for a while in pxa_camera.c, but it sets the DMA_CTRL_REUSE flag
      directly instead of calling dmaengine_desc_set_reuse(). Nevertheless,
      tag this commit for stable in case there are out-of-tree users.
      
      Fixes: 27242021 ("dmaengine: Add DMA_CTRL_REUSE")
      Reported-by: Nkbuild test robot <lkp@intel.com>
      Signed-off-by: NLukas Wunner <lukas@wunner.de>
      Cc: stable@vger.kernel.org # v4.3+
      Link: https://lore.kernel.org/r/ca92998ccc054b4f2bfd60ef3adbab2913171eac.1575546234.git.lukas@wunner.deSigned-off-by: NVinod Koul <vkoul@kernel.org>
      53a256a9
  23. 10 12月, 2019 1 次提交
  24. 27 5月, 2019 1 次提交
  25. 21 5月, 2019 1 次提交
  26. 30 7月, 2018 1 次提交
  27. 10 7月, 2018 1 次提交
    • M
      dmaengine: add support for reporting pause and resume separately · d8095f94
      Marek Szyprowski 提交于
      'cmd_pause' DMA channel capability means that respective DMA engine
      supports both pausing and resuming given DMA channel. However, in some
      cases it is important to know if DMA channel can be paused without the
      need to resume it. This is a typical requirement for proper residue
      reading on transfer timeout in UART drivers. There are also some DMA
      engines with limited hardware, which doesn't really support resuming.
      
      Reporting pause and resume capabilities separately allows UART drivers to
      properly check for the really required capabilities and operate in DMA
      mode also in systems with limited DMA hardware. On the other hand drivers,
      which rely on full channel suspend/resume support, should now check for
      both 'pause' and 'resume' features.
      
      Existing clients of dma_get_slave_caps() have been checked and the only
      driver which rely on proper channel resuming is soc-generic-dmaengine-pcm
      driver, which has been updated to check the newly added capability.
      Existing 'cmd_pause' now only indicates that DMA engine support pausing
      given DMA channel.
      Signed-off-by: NMarek Szyprowski <m.szyprowski@samsung.com>
      Acked-by: NMark Brown <broonie@kernel.org>
      Signed-off-by: NVinod Koul <vkoul@kernel.org>
      d8095f94