summaryrefslogtreecommitdiffstats
path: root/drivers/pci
diff options
context:
space:
mode:
authorSrinath Mannam <srinath.mannam@broadcom.com>2019-05-03 19:35:32 +0530
committerBjorn Helgaas <bhelgaas@google.com>2019-05-06 16:02:47 -0500
commite80a91ad302b3b66822756afc61f9f9c1658b9c9 (patch)
tree8bbad2f4880f11f64b83655efd49166c2e405e1a /drivers/pci
parent9e98c678c2d6ae3a17cb2de55d17f69dddaa231b (diff)
downloadlinux-e80a91ad302b3b66822756afc61f9f9c1658b9c9.tar.gz
linux-e80a91ad302b3b66822756afc61f9f9c1658b9c9.tar.bz2
linux-e80a91ad302b3b66822756afc61f9f9c1658b9c9.zip
PCI: Add dma_ranges window list
Add a dma_ranges field in PCI host bridge structure to hold resource entries list of memory regions in sorted order representing memory ranges that can be accessed through DMA transactions. Based-on-a-patch-by: Oza Pawandeep <oza.oza@broadcom.com> Signed-off-by: Srinath Mannam <srinath.mannam@broadcom.com> [lorenzo.pieralisi@arm.com: updated commit log] Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com> Reviewed-by: Oza Pawandeep <poza@codeaurora.org> Acked-by: Bjorn Helgaas <bhelgaas@google.com>
Diffstat (limited to 'drivers/pci')
-rw-r--r--drivers/pci/probe.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
index 2ec0df04e0dc..2a651089a606 100644
--- a/drivers/pci/probe.c
+++ b/drivers/pci/probe.c
@@ -595,6 +595,7 @@ struct pci_host_bridge *pci_alloc_host_bridge(size_t priv)
return NULL;
INIT_LIST_HEAD(&bridge->windows);
+ INIT_LIST_HEAD(&bridge->dma_ranges);
bridge->dev.release = pci_release_host_bridge_dev;
/*
@@ -623,6 +624,7 @@ struct pci_host_bridge *devm_pci_alloc_host_bridge(struct device *dev,
return NULL;
INIT_LIST_HEAD(&bridge->windows);
+ INIT_LIST_HEAD(&bridge->dma_ranges);
bridge->dev.release = devm_pci_release_host_bridge_dev;
return bridge;
@@ -632,6 +634,7 @@ EXPORT_SYMBOL(devm_pci_alloc_host_bridge);
void pci_free_host_bridge(struct pci_host_bridge *bridge)
{
pci_free_resource_list(&bridge->windows);
+ pci_free_resource_list(&bridge->dma_ranges);
kfree(bridge);
}