All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v5 00/18] dmaengine: ti: Add support for BCDMA v2 and PKTDMA v2
@ 2026-02-18  9:52 Sai Sree Kartheek Adivi
  2026-02-18  9:52 ` [PATCH v5 01/18] dmaengine: ti: k3-udma: move macros to header file Sai Sree Kartheek Adivi
                   ` (17 more replies)
  0 siblings, 18 replies; 28+ messages in thread
From: Sai Sree Kartheek Adivi @ 2026-02-18  9:52 UTC (permalink / raw)
  To: peter.ujfalusi, vkoul, robh, krzk+dt, conor+dt, nm, ssantosh,
	dmaengine, devicetree, linux-kernel, linux-arm-kernel, vigneshr,
	Frank.li, s-adivi
  Cc: r-sharma3, gehariprasath

This series adds support for the BCDMA_V2 and PKTDMA_V2 which is
introduced in AM62L.

The key differences between the existing DMA and DMA V2 are:
- Absence of TISCI: Instead of configuring via TISCI calls, direct
  register writes are required.
- Autopair: There is no longer a need for PSIL pair and instead AUTOPAIR
  bit needs to set in the RT_CTL register.
- Static channel mapping: Each channel is mapped to a single peripheral.
- Direct IRQs: There is no INT-A and interrupt lines from DMA are
  directly connected to GIC.
- Remote side configuration handled by DMA. So no need to write to PEER
  registers to START / STOP / PAUSE / TEARDOWN.
- Unified Channel Space: Tx and Rx channels share a single register
  space. Each channel index is specifically fixed in hardware as either
  Tx or Rx in an interleaved manner.

Changes from v4 to v5:
- Introduce a new version variable in udma_match_data to differentiate
  between K3 UDMA V1 and K3 UDMA V2. This simplifies the approach for
  adding any future possible variants avoiding complex if conditions.
- Fix both K3 BCDMA V2 and PKTDMA V2 dt bindings as per the comments
  from previous versions.
- Fix minor nitpicks like following the reverse christmas tree order for
  variable declarations.
- Remove the patch [v4 19/19] that switches to synchronous descriptor
  freeing. With this patch, dma_free_coherent gets called in irq
  context and hence a WARN().
link to v4:
https://lore.kernel.org/all/20260130110159.359501-1-s-adivi@ti.com/

Changes from v3 to v4:
- Rename the dt-binding files to add "ti," prefix.
- Update cell description in dt-bindings and add client examples.
- Update k3_ring_intr_regs reg names
- Rename soc specific data to bcdma_v2_data and pktdma_v2_data to
  bcdma_v2_am62l_data and pktdma_v2_am62l_data.
- Add a new patch [18/19] to fix a null pointer dereference issue when
  trying to reserve a channel id that is out of bounds in
  udma_reserve_##res macro. Also fix logging issues in this macro.
- Add a new patch [19/19] to switch to synchronous descriptor freeing to
  avoid running out of memory during stress tests.
- Fix checkpatch warnings.
link to v3:
https://lore.kernel.org/linux-arm-kernel/20250623053716.1493974-1-s-adivi@ti.com

Changes from v2 to v3:
- Fix checkpatch errors & spellings.
link to v2:
https://lore.kernel.org/linux-arm-kernel/20250612071521.3116831-1-s-adivi@ti.com

Changes from v1 to v2:
- Split refactoring of k3-udma driver into multiple commits
- Fix bcdma v2 and pktdma v2 dt-binding examples
- Fix compatibles in k3-udma-v2.c
- move udma_is_desc_really_done to k3-udma-common.c as the difference
  between k3-udma and k3-udma-v2 implementation is minor.
- remove udma_ prefix to function pointers in udma_dev
- reorder the commits to first refactor the existing code completely and
  then introduce k3-udma-v2 related commits.
- remove redundant includes in k3-udma-common.c
- remove ti_sci_ dependency for k3_ringacc in Kconfig
- refactor setup_resources functions to remove ti_sci_ code from common
  logic.
link to v1:
https://lore.kernel.org/linux-arm-kernel/20250428072032.946008-1-s-adivi@ti.com

Sai Sree Kartheek Adivi (18):
  dmaengine: ti: k3-udma: move macros to header file
  dmaengine: ti: k3-udma: move structs and enums to header file
  dmaengine: ti: k3-udma: move static inline helper functions to header
    file
  dmaengine: ti: k3-udma: move descriptor management to k3-udma-common.c
  dmaengine: ti: k3-udma: move ring management functions to
    k3-udma-common.c
  dmaengine: ti: k3-udma: Add variant-specific function pointers to
    udma_dev
  dmaengine: ti: k3-udma: move udma utility functions to
    k3-udma-common.c
  dmaengine: ti: k3-udma: move resource management functions to
    k3-udma-common.c
  dmaengine: ti: k3-udma: refactor resource setup functions
  dmaengine: ti: k3-udma: move inclusion of k3-udma-private.c to
    k3-udma-common.c
  drivers: soc: ti: k3-ringacc: handle absence of tisci
  dt-bindings: dma: ti: Add K3 BCDMA V2
  dt-bindings: dma: ti: Add K3 PKTDMA V2
  dmaengine: ti: k3-psil-am62l: Add AM62Lx PSIL and PDMA data
  dmaengine: ti: k3-udma-v2: New driver for K3 BCDMA_V2
  dmaengine: ti: k3-udma-v2: Add support for PKTDMA V2
  dmaengine: ti: k3-udma-v2: Update glue layer to support PKTDMA V2
  dmaengine: ti: k3-udma: Validate resource ID and fix logging in
    reservation

 .../bindings/dma/ti/ti,am62l-dmss-bcdma.yaml  |  120 +
 .../bindings/dma/ti/ti,am62l-dmss-pktdma.yaml |  100 +
 drivers/dma/ti/Kconfig                        |   21 +-
 drivers/dma/ti/Makefile                       |    5 +-
 drivers/dma/ti/k3-psil-am62l.c                |  132 +
 drivers/dma/ti/k3-psil-priv.h                 |    1 +
 drivers/dma/ti/k3-psil.c                      |    1 +
 drivers/dma/ti/k3-udma-common.c               | 2610 ++++++++++++++
 drivers/dma/ti/k3-udma-glue.c                 |   91 +-
 drivers/dma/ti/k3-udma-private.c              |   45 +-
 drivers/dma/ti/k3-udma-v2.c                   | 1475 ++++++++
 drivers/dma/ti/k3-udma.c                      | 3102 +----------------
 drivers/dma/ti/k3-udma.h                      |  590 ++++
 drivers/soc/ti/k3-ringacc.c                   |  188 +-
 include/linux/soc/ti/k3-ringacc.h             |   20 +
 15 files changed, 5466 insertions(+), 3035 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/dma/ti/ti,am62l-dmss-bcdma.yaml
 create mode 100644 Documentation/devicetree/bindings/dma/ti/ti,am62l-dmss-pktdma.yaml
 create mode 100644 drivers/dma/ti/k3-psil-am62l.c
 create mode 100644 drivers/dma/ti/k3-udma-common.c
 create mode 100644 drivers/dma/ti/k3-udma-v2.c


base-commit: 635c467cc14ebdffab3f77610217c1dacaf88e8c
-- 
2.34.1


^ permalink raw reply	[flat|nested] 28+ messages in thread

end of thread, other threads:[~2026-03-04 10:53 UTC | newest]

Thread overview: 28+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-18  9:52 [PATCH v5 00/18] dmaengine: ti: Add support for BCDMA v2 and PKTDMA v2 Sai Sree Kartheek Adivi
2026-02-18  9:52 ` [PATCH v5 01/18] dmaengine: ti: k3-udma: move macros to header file Sai Sree Kartheek Adivi
2026-02-18  9:52 ` [PATCH v5 02/18] dmaengine: ti: k3-udma: move structs and enums " Sai Sree Kartheek Adivi
2026-02-18  9:52 ` [PATCH v5 03/18] dmaengine: ti: k3-udma: move static inline helper functions " Sai Sree Kartheek Adivi
2026-02-18  9:52 ` [PATCH v5 04/18] dmaengine: ti: k3-udma: move descriptor management to k3-udma-common.c Sai Sree Kartheek Adivi
2026-02-18 16:05   ` Frank Li
2026-02-18 16:14   ` Frank Li
2026-02-19  8:16     ` Sai Sree Kartheek Adivi
2026-02-18  9:52 ` [PATCH v5 05/18] dmaengine: ti: k3-udma: move ring management functions " Sai Sree Kartheek Adivi
2026-02-18  9:52 ` [PATCH v5 06/18] dmaengine: ti: k3-udma: Add variant-specific function pointers to udma_dev Sai Sree Kartheek Adivi
2026-02-18  9:52 ` [PATCH v5 07/18] dmaengine: ti: k3-udma: move udma utility functions to k3-udma-common.c Sai Sree Kartheek Adivi
2026-02-18  9:52 ` [PATCH v5 08/18] dmaengine: ti: k3-udma: move resource management " Sai Sree Kartheek Adivi
2026-02-18  9:52 ` [PATCH v5 09/18] dmaengine: ti: k3-udma: refactor resource setup functions Sai Sree Kartheek Adivi
2026-02-18  9:52 ` [PATCH v5 10/18] dmaengine: ti: k3-udma: move inclusion of k3-udma-private.c to k3-udma-common.c Sai Sree Kartheek Adivi
2026-02-18  9:52 ` [PATCH v5 11/18] drivers: soc: ti: k3-ringacc: handle absence of tisci Sai Sree Kartheek Adivi
2026-02-18  9:52 ` [PATCH v5 12/18] dt-bindings: dma: ti: Add K3 BCDMA V2 Sai Sree Kartheek Adivi
2026-02-19  7:43   ` Krzysztof Kozlowski
2026-02-19 12:15     ` Sai Sree Kartheek Adivi
2026-02-20  8:21       ` Krzysztof Kozlowski
2026-02-23 18:20       ` Rob Herring
2026-03-04 10:52         ` Sai Sree Kartheek Adivi
2026-02-18  9:52 ` [PATCH v5 13/18] dt-bindings: dma: ti: Add K3 PKTDMA V2 Sai Sree Kartheek Adivi
2026-02-18  9:52 ` [PATCH v5 14/18] dmaengine: ti: k3-psil-am62l: Add AM62Lx PSIL and PDMA data Sai Sree Kartheek Adivi
2026-02-18  9:52 ` [PATCH v5 15/18] dmaengine: ti: k3-udma-v2: New driver for K3 BCDMA_V2 Sai Sree Kartheek Adivi
2026-02-26 19:39   ` Péter Ujfalusi
2026-02-18  9:52 ` [PATCH v5 16/18] dmaengine: ti: k3-udma-v2: Add support for PKTDMA V2 Sai Sree Kartheek Adivi
2026-02-18  9:52 ` [PATCH v5 17/18] dmaengine: ti: k3-udma-v2: Update glue layer to support " Sai Sree Kartheek Adivi
2026-02-18  9:52 ` [PATCH v5 18/18] dmaengine: ti: k3-udma: Validate resource ID and fix logging in reservation Sai Sree Kartheek Adivi

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.