Re: [RFC PATCH 0/5] PCIe EPF support for internal DMAC handling and driver update for R-Car PCIe EP to support DMAC

From: Manivannan Sadhasivam
Date: Thu Feb 10 2022 - 05:50:34 EST


On Thu, Feb 10, 2022 at 09:24:19AM +0000, Lad, Prabhakar wrote:
> Hi,
>
> On Thu, Feb 10, 2022 at 8:40 AM Manivannan Sadhasivam
> <manivannan.sadhasivam@xxxxxxxxxx> wrote:
> >
> > Hi,
> >
> > On Wed, Jan 26, 2022 at 07:50:38PM +0000, Lad Prabhakar wrote:
> > > Hi All,
> > >
> > > The current PCIe EPF framework supports DMA data transfers using external
> > > DMA only, this patch series aims to add support for platforms supporting
> > > internal DMAC on PCIe for data transfers.
> > >
> > > R-Car PCIe supports internal DMAC to transfer data between Internal Bus to
> > > PCI Express and vice versa. Last patch fills up the required flags and ops
> > > to support internal DMAC.
> > >
> > > Patches 1-3 are for PCIe EPF core to support internal DMAC handling, patch
> > > 4/5 is to fix test cases based on the conversation [1].
> > >
> >
> > This looks similar to the Synopsys eDMA IP [1] that goes with the Synopsys PCIe
> > endpoint IP. Why can't you represent it as a dmaengine driver and use the
> > existing DMA support?
> >
> Let me have a look. Could you please share a link to the Synopsys PCIe
> endpoint HW manual (the driver doesn't have a binding doc).
>

I don't think the PCIe reference manual is available publicly. And you are right
that the driver is not tied to devicetree. The reason is, it gets probed using
the PCI ID of the EP and all the resources are defined statically in the driver
itself.

Thanks,
Mani

> Cheers,
> Prabhakar
>
> > [1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/dma/dw-edma
> >
> > > Patches are based on top of [1] next branch.
> > >
> > > [0] https://www.spinics.net/lists/linux-pci/msg92385.html
> > > [1] https://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci.git
> > >
> > > Cheers,
> > > Prabhakar
> > >
> > > Lad Prabhakar (5):
> > > PCI: endpoint: Add ops and flag to support internal DMAC
> > > PCI: endpoint: Add support to data transfer using internal dmac
> > > misc: pci_endpoint_test: Add driver data for Renesas RZ/G2{EHMN}
> > > misc: pci_endpoint_test: Add support to pass flags for buffer
> > > allocation
> > > PCI: rcar-ep: Add support for DMAC
> > >
> > > drivers/misc/pci_endpoint_test.c | 56 ++++-
> > > drivers/pci/controller/pcie-rcar-ep.c | 227 ++++++++++++++++++
> > > drivers/pci/controller/pcie-rcar.h | 23 ++
> > > drivers/pci/endpoint/functions/pci-epf-test.c | 184 ++++++++++----
> > > drivers/pci/endpoint/pci-epf-core.c | 32 +++
> > > include/linux/pci-epc.h | 8 +
> > > include/linux/pci-epf.h | 7 +
> > > 7 files changed, 483 insertions(+), 54 deletions(-)
> > >
> > > --
> > > 2.25.1
> > >