Skip to content

Add Loongson-2K0300 APB DMA mux support

Binbin Zhou dmaengine linux-devicetree loongarch 3 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v3 Latest2 patches 1 replyIn review
  2. v23 patches 7 repliesSuperseded
  3. v13 patches 9 repliesSuperseded

Changes in v3 from the cover letter

Patch(1/2):
- Merged the two commits containing the dt-binding header file and the YAML file; no other changes were made;
- Add Acked-by tag from Conor.

Patches in v3 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/2dt-bindings: dma: Document DMA mux support for Loongson-2K0300Documentation/devicetree/bindings/dma/loongson,ls2k0300-dmamux.yaml MAINTAINERS include/dt-bindings/dma/loongson,ls2k-dmamux.h+127 -01 reply
2/2dmaengine: loongson: Add Loongson-2K0300 APB DMA mux driverMAINTAINERS drivers/dma/loongson/Makefile drivers/dma/loongson/loongson2-apb-dmamux.c+406 -10 replies

Reviews trailers per patch

All 2 patches have a Reviewed-by or Acked-by.

PatchFrank LiConor Dooley
1/2R-b A-b
2/2R-b

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v3 thread

Cover letter [PATCH v3 0/2] Add Loongson-2K0300 APB DMA mux support

Hi all:

Loongson-2K0300 integrates a CMC DMA controller with 8 physical channels. Peripheral DMA requests are not hard-wired to these channels; they are routed through the CHIP_CTRL13/14/15 DMA_MAP fields.

This series adds support for that DMA request router.

Patch 1 adds the DT binding constants for the peripheral request IDs and yaml file for the DMA mux.
Patch 2 adds the driver, Kconfig symbol and Makefile entry.

The driver registers with of_dma_router_register(). In the route allocation callback it validates the <request> <channel> <flags> specifier, programs the SoC-specific route register, and forwards <channel> <flags> to the parent CMC DMA controller.

Thanks.
Binbin.

=========
V3:
Patch(1/2):
- Merged the two commits containing the dt-binding header file and the YAML file; no other changes were made;
- Add Acked-by tag from Conor.

Patch(2/2):
- Append the dmamux object to the existing CMC DMA line;
- Add loongson2_dmamux_assign_bits() helper, no functional change;
- Add Reviewed-by tag from Frank.

Link to V2:
https://lore.kernel.org/all/[email protected]/

V2:
Patch(1/3):
- Drop LS2K0300_DMA_REQ_MAX as it is not part of the ABI;
Patch(2/3):
- A more detailed description of dma-cells;
- Add the dma_requests constraint
Patch(3/3):
- Drop loongson2_dmamux_map->shift;
- Move of_parse_phandle() into loongson2_dmamux_route_allocate() avoid UAF;
- Drop loongson2_dmamux->dma_np;
- Check dma_requests;
- Add devm_add_action_or_reset() instead of .remove();
- Replace metux() with spinlock(), which has lower overhead;
- Add loongson2_dmamux_route_free().

Link to V1:
https://lore.kernel.org/all/[email protected]/

Binbin Zhou (2):
dt-bindings: dma: Document DMA mux support for Loongson-2K0300
dmaengine: loongson: Add Loongson-2K0300 APB DMA mux driver

 .../dma/loongson,ls2k0300-dmamux.yaml         |  72 ++++
 MAINTAINERS                                   |   3 +
 drivers/dma/loongson/Makefile                 |   2 +-
 drivers/dma/loongson/loongson2-apb-dmamux.c   | 404 ++++++++++++++++++
 .../dt-bindings/dma/loongson,ls2k-dmamux.h    |  53 +++
 5 files changed, 533 insertions(+), 1 deletion(-)
 create mode 100644 Documentation/devicetree/bindings/dma/loongson,ls2k0300-dmamux.yaml
 create mode 100644 drivers/dma/loongson/loongson2-apb-dmamux.c
 create mode 100644 include/dt-bindings/dma/loongson,ls2k-dmamux.h

base-commit: aff5e6a77fc69a7c490246465940d18422d7c631

Signature · 1 line
2.52.0