Skip to content

dmaengine: dw-edma: HDMA support

Gustavo Pimentel dmaengine linux-pci lkml 7 versions – Applied

Status from this message: Applied, thanks

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v7 Latest15 patches 3 repliesApplied
  2. v615 patches 2 repliesSuperseded
  3. v515 patches 7 repliesSuperseded
Earlier versions · 4
VersionPostedPatchesRepliesStatus
v415 patches4 repliesSuperseded
v315 patches0 repliesSuperseded
v215 patches6 repliesSuperseded
v115 patches5 repliesSuperseded

Changes from the cover letter

V2: Applied changes based on Bjorn Helgaas' review
Rebased patches on top of v5.11-rc1 version
V3: Applied changes based on Lukas Wunner' review
V4: Fix a typo detected by kernel test robot
V5: Rework driver accordingly to Bjorn Helgaas's feedback
V6: Rework driver accordingly to Krzysztof Wilczyński's feedback
V7: Rework driver accordingly to Bjorn Helgaas's feedback
Rebased patches on top of Bjorn Helgaas next branch due to the support of PCI_VNDR_* defines

Patches in v7 Applied

#Subject and filesSizeRepliesApplied
1/15dmaengine: dw-edma: Add writeq() and readq() for 64 bits architecturesdrivers/dma/dw-edma/dw-edma-v0-core.c drivers/dma/dw-edma/dw-edma-v0-debugfs.c drivers/dma/dw-edma/dw-edma-v0-regs.h+326 -1250 replies
2/15dmaengine: dw-edma: Fix comments offset characters' alignmentdrivers/dma/dw-edma/dw-edma-v0-regs.h+107 -1070 replies
3/15dmaengine: dw-edma: Add support for the HDMA featuredrivers/dma/dw-edma/dw-edma-core.h drivers/dma/dw-edma/dw-edma-pcie.c drivers/dma/dw-edma/dw-edma-v0-core.c +1 more+60 -240 replies
4/15PCI: Add pci_find_vsec_capability() to find a specific VSECdrivers/pci/pci.c include/linux/pci.h+31 -02 replies
5/15dmaengine: dw-edma: Add PCIe VSEC data retrieval supportdrivers/dma/dw-edma/dw-edma-core.c drivers/dma/dw-edma/dw-edma-pcie.c+101 -350 replies
6/15dmaengine: dw-edma: Add device_prep_interleave_dma() supportdrivers/dma/dw-edma/dw-edma-core.c drivers/dma/dw-edma/dw-edma-core.h+78 -200 replies
7/15dmaengine: dw-edma: Improve number of channels checkdrivers/dma/dw-edma/dw-edma-core.c drivers/dma/dw-edma/dw-edma-core.h+11 -120 replies
8/15dmaengine: dw-edma: Reorder variables to keep consistencydrivers/dma/dw-edma/dw-edma-pcie.c+5 -50 replies
9/15dmaengine: dw-edma: Improve the linked list and data blocks definitiondrivers/dma/dw-edma/dw-edma-core.c drivers/dma/dw-edma/dw-edma-core.h drivers/dma/dw-edma/dw-edma-pcie.c+160 -850 replies
10/15dmaengine: dw-edma: Change linked list and data blocks offset and sizesdrivers/dma/dw-edma/dw-edma-pcie.c+16 -160 replies
11/15dmaengine: dw-edma: Move struct dentry variable from static definition into dw_edma structdrivers/dma/dw-edma/dw-edma-core.c drivers/dma/dw-edma/dw-edma-core.h drivers/dma/dw-edma/dw-edma-v0-core.c +3 more+22 -150 replies
12/15dmaengine: dw-edma: Fix crash on loading/unloading driverdrivers/dma/dw-edma/dw-edma-core.c+5 -60 replies
13/15dmaengine: dw-edma: Change DMA abreviation from lower into upper casedrivers/dma/dw-edma/dw-edma-core.c+3 -30 replies
14/15dmaengine: dw-edma: Revert fix scatter-gather address calculationdrivers/dma/dw-edma/dw-edma-core.c+4 -40 replies
15/15dmaengine: dw-edma: Add pcim_iomap_table return checkdrivers/dma/dw-edma/dw-edma-pcie.c+15 -00 replies

Reviews trailers per patch

1 of 15 patches has a Reviewed-by or Acked-by.

PatchBjorn Helgaas
1/15
2/15
3/15
4/15A-b
5/15
6/15
7/15
8/15
9/15
10/15
11/15
12/15
13/15
14/15
15/15

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

Read the v7 thread

Cover letter [PATCH v7 00/15] dmaengine: dw-edma: HDMA support

This patch series adds the HDMA support, as long the IP design has set the compatible register map parameter, which allows compatibility at some degree for the existing Synopsys DesignWare eDMA driver that is already available on the Kernel.

The HDMA "Hyper-DMA" IP is an enhancement of the eDMA "embedded-DMA" IP.

This new improvement comes with a PCI DVSEC that allows to the driver recognize and switch behavior if it's an eDMA or an HDMA, becoming retrocompatible, in the absence of this DVSEC, the driver will assume that is an eDMA IP.

It also adds the interleaved support, since it will be similar to the current scatter-gather implementation.

As well fixes/improves some abnormal behaviors not detected before, such as:
- crash on loading/unloading driver
- memory space definition for the data area and for the linked list space
- scatter-gather address calculation on 32 bits platforms
- minor comment and variable reordering

Changes:
V2: Applied changes based on Bjorn Helgaas' review
Rebased patches on top of v5.11-rc1 version
V3: Applied changes based on Lukas Wunner' review
V4: Fix a typo detected by kernel test robot
V5: Rework driver accordingly to Bjorn Helgaas's feedback
V6: Rework driver accordingly to Krzysztof Wilczyński's feedback
V7: Rework driver accordingly to Bjorn Helgaas's feedback
Rebased patches on top of Bjorn Helgaas next branch due to the support of PCI_VNDR_* defines

Cc Vinod Koul <[email protected]>
Cc Dan Williams <[email protected]>
Cc Bjorn Helgaas <[email protected]>
Cc Krzysztof Wilczyński <[email protected]>
Cc Lukas Wunner <[email protected]>

Gustavo Pimentel (15):
dmaengine: dw-edma: Add writeq() and readq() for 64 bits architectures
dmaengine: dw-edma: Fix comments offset characters' alignment
dmaengine: dw-edma: Add support for the HDMA feature
PCI: Add pci_find_vsec_capability() to find a specific VSEC
dmaengine: dw-edma: Add PCIe VSEC data retrieval support
dmaengine: dw-edma: Add device_prep_interleave_dma() support
dmaengine: dw-edma: Improve number of channels check
dmaengine: dw-edma: Reorder variables to keep consistency
dmaengine: dw-edma: Improve the linked list and data blocks definition
dmaengine: dw-edma: Change linked list and data blocks offset and
sizes
dmaengine: dw-edma: Move struct dentry variable from static definition
into dw_edma struct
dmaengine: dw-edma: Fix crash on loading/unloading driver
dmaengine: dw-edma: Change DMA abreviation from lower into upper case
dmaengine: dw-edma: Revert fix scatter-gather address calculation
dmaengine: dw-edma: Add pcim_iomap_table return check

 drivers/dma/dw-edma/dw-edma-core.c       | 178 +++++++++++-------
 drivers/dma/dw-edma/dw-edma-core.h       |  37 ++--
 drivers/dma/dw-edma/dw-edma-pcie.c       | 277 +++++++++++++++++++++-------
 drivers/dma/dw-edma/dw-edma-v0-core.c    | 300 ++++++++++++++++++++++++-------
 drivers/dma/dw-edma/dw-edma-v0-core.h    |   2 +-
 drivers/dma/dw-edma/dw-edma-v0-debugfs.c |  77 ++++----
 drivers/dma/dw-edma/dw-edma-v0-debugfs.h |   4 +-
 drivers/dma/dw-edma/dw-edma-v0-regs.h    | 291 +++++++++++++++++++-----------
 drivers/pci/pci.c                        |  30 ++++
 include/linux/pci.h                      |   1 +
 10 files changed, 842 insertions(+), 355 deletions(-)
Signature · 1 line
2.7.4