mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-16 16:01:44 -04:00
PCI: endpoint: pci-epf-vntb: Implement .get_dma_dev()
When vNTB is used as a PCI endpoint function, the NTB device is backed by a virtual PCI function. For DMA API allocations and mappings, NTB clients must use the device that is associated with the IOMMU domain. Implement ntb_dev_ops->get_dma_dev() for pci-epf-vntb and return the EPC parent device. Suggested-by: Frank Li <Frank.Li@nxp.com> Signed-off-by: Koichiro Den <den@valinux.co.jp> Signed-off-by: Manivannan Sadhasivam <mani@kernel.org> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com> Reviewed-by: Dave Jiang <dave.jiang@intel.com> Link: https://patch.msgid.link/20260306031443.1911860-4-den@valinux.co.jp
This commit is contained in:
committed by
Bjorn Helgaas
parent
852b94ff92
commit
70becc1a9b
@@ -1428,6 +1428,14 @@ static int vntb_epf_link_disable(struct ntb_dev *ntb)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct device *vntb_epf_get_dma_dev(struct ntb_dev *ndev)
|
||||
{
|
||||
struct epf_ntb *ntb = ntb_ndev(ndev);
|
||||
struct pci_epc *epc = ntb->epf->epc;
|
||||
|
||||
return epc->dev.parent;
|
||||
}
|
||||
|
||||
static const struct ntb_dev_ops vntb_epf_ops = {
|
||||
.mw_count = vntb_epf_mw_count,
|
||||
.spad_count = vntb_epf_spad_count,
|
||||
@@ -1449,6 +1457,7 @@ static const struct ntb_dev_ops vntb_epf_ops = {
|
||||
.db_clear_mask = vntb_epf_db_clear_mask,
|
||||
.db_clear = vntb_epf_db_clear,
|
||||
.link_disable = vntb_epf_link_disable,
|
||||
.get_dma_dev = vntb_epf_get_dma_dev,
|
||||
};
|
||||
|
||||
static int pci_vntb_probe(struct pci_dev *pdev, const struct pci_device_id *id)
|
||||
|
||||
Reference in New Issue
Block a user