Re: [PATCH v6 0/6] PCI: endpoint: Expose endpoint DMA resources (part 2/3)
Frank Li <[email protected]>
| Newsgroups | org.kernel.vger.linux-pci,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <anZDfAvWOGZOU_EB@lizhi-Precision-Tower-5810> |
On Tue, Aug 04, 2026 at 12:38:49PM +0900, Koichiro Den wrote: > Hi, > > This is v6, part 2 of three series for PCI endpoint DMA. > > The three series are: > > * part 1: dmaengine: dw-edma: Prepare for PCI EP DMA > * part 2: PCI: endpoint: Expose endpoint DMA resources > * part 3: PCI: endpoint: Add PCI DMA endpoint function This part only 3 patch, You can merge to part2. It will be easy to know overall picture. Frank > > This series defines the endpoint DMA BAR metadata and auxiliary > resources, adds EPC operations for DMA channel delegation, and teaches > the DesignWare endpoint controller to publish and delegate its > integrated DMA resources. > > The metadata lives in a normal endpoint BAR, not in PCI config space. > This keeps discovery independent from controller-specific writable > extended capability storage. > > Part 1 v6 has landed in linux-next via dmaengine/next: > https://lore.kernel.org/all/[email protected]/ > > v6 is rebased on next-20260803. > > Best regards, > Koichiro > --- > Changes in v6: > - Rebase onto next-20260803, which includes part 1 v6. > - Use one DMA resource snapshot for bounds checking and array filling. > (Sashiko) > - Move DMA resource exposure after delegation support so every advertised > channel is immediately usable. (Sashiko) > > Changes in v5: > - Keep reporting a standalone doorbell when linked-list DMA resources > are unavailable. (Sashiko) > - Serialize irq_mode restoration with channel state updates. (Sashiko) > - Clarify the provider-defined sharing-group quiesce contract. > - Use guard()/scoped_guard() for new code. > > Changes in v4: > - Rebased onto the new part 1 series. > - "dmaengine: dw-edma: Add delegated channel request helpers" moved > from part 1 into this series, next to its only users; this also > resolves the undeclared-functions issue reported against v3 5/5. > (Sashiko) > - Lift the v3 PF0-only restriction on DMA resource exposure and > channel delegation: part 1 now programs the per-channel requester > function number. Delegation to PF1+ therefore requires part 1 > applied on the host side. > - Move pci_epc_function_is_valid() up to avoid a potential error > pointer dereference. (Sashiko) > > Changes in v3: > - Decouple logical DMA channel metadata from descriptor memory resources. > Logical channels now refer to descriptor memory by resource ID instead > of embedding descriptor metadata in each channel resource. (Sashiko) > - Replace the v2 DMAengine filter-callback metadata with EPC-level DMA > channel delegation/reclaim operations, keeping DMAengine provider > details out of generic EPC resource metadata. > - Add the DesignWare EPC backend for DMA channel delegation. > - Limit DesignWare endpoint DMA resource exposure to linked-list channels > until non-LL metadata and host-side parsing are added. > - Suppress DesignWare DMA auxiliary resources when the local DW eDMA > provider is not available. > - Reject VF DMA resource and delegation requests because the DWC > eDMA/HDMA register window exposed to the Root Complex is PF-only. > > Changes in v2: > - Follow the part 1/3 v2 channel-claim model: EPC DMA resources now > carry DMAengine filter information instead of raw DMA channel > pointers. (Sashiko) > - Update the DesignWare endpoint resource provider accordingly. (Sashiko) > > v5: https://lore.kernel.org/r/[email protected]/ > v4: https://lore.kernel.org/r/[email protected]/ > v3: https://lore.kernel.org/r/[email protected]/ > v2: https://lore.kernel.org/r/[email protected]/ > v1: https://lore.kernel.org/r/[email protected]/ > > > Koichiro Den (6): > PCI: endpoint: Define endpoint DMA BAR metadata format > PCI: endpoint: Add DMA auxiliary resource metadata > PCI: endpoint: Add API to delegate EPC DMA channels to the host > dmaengine: dw-edma: Add delegated channel request helpers > PCI: dwc: Implement endpoint DMA channel delegation > PCI: dwc: Expose endpoint DMA resources > > MAINTAINERS | 1 + > drivers/dma/dw-edma/dw-edma-core.c | 91 ++++++++ > .../pci/controller/dwc/pcie-designware-ep.c | 205 +++++++++++++++++- > drivers/pci/endpoint/pci-epc-core.c | 105 +++++++++ > include/linux/dma/edma.h | 14 ++ > include/linux/pci-ep-dma.h | 170 +++++++++++++++ > include/linux/pci-epc.h | 62 ++++++ > 7 files changed, 640 insertions(+), 8 deletions(-) > create mode 100644 include/linux/pci-ep-dma.h > > base-commit: 9a4cdc958dd79fc6c3b20b51a10debec6ca09fec > -- > 2.51.0 >