summaryrefslogtreecommitdiff
path: root/drivers/pci/msi.c
diff options
context:
space:
mode:
authorBharat Bhushan <Bharat.Bhushan@freescale.com>2013-04-17 05:19:06 (GMT)
committerFleming Andrew-AFLEMING <AFLEMING@freescale.com>2013-04-19 23:10:10 (GMT)
commitdb6d844077c0ccfab1a1e6daac1b2dce9e08a3be (patch)
treeaa5a150e18973125458508df0faa6f5e5e2fd19c /drivers/pci/msi.c
parent8b554e04001b8704144c69a5831e8061c393baa6 (diff)
downloadlinux-fsl-qoriq-db6d844077c0ccfab1a1e6daac1b2dce9e08a3be.tar.xz
Add interface to get msi region information
This patch adds interface to get following information - Number of MSI regions (which is number of MSI banks for powerpc). - Get the region address range: Physical page which have the address/addresses used for generating MSI interrupt and size of the page. These are required to create IOMMU (Freescale PAMU) mapping for devices which are directly assigned using VFIO. This patch have hardcoded CCSR_BASE and msi pagesize to 4k. I think this will work as of now but will fix shortly. Signed-off-by: Bharat Bhushan <bharat.bhushan@freescale.com> Change-Id: Idcd3364cbffb9d8936bd48e67079a4bfa6584b98 Reviewed-on: http://git.am.freescale.net:8181/1489 Reviewed-by: Yoder Stuart-B08248 <stuart.yoder@freescale.com> Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com> Tested-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
Diffstat (limited to 'drivers/pci/msi.c')
-rw-r--r--drivers/pci/msi.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c
index 5099636..e7da2f3 100644
--- a/drivers/pci/msi.c
+++ b/drivers/pci/msi.c
@@ -28,6 +28,20 @@ static int pci_msi_enable = 1;
/* Arch hooks */
+#ifndef arch_msi_get_region_count
+int arch_msi_get_region_count(void)
+{
+ return 0;
+}
+#endif
+
+#ifndef arch_msi_get_region
+int arch_msi_get_region(int region_num, struct msi_region *region)
+{
+ return 0;
+}
+#endif
+
#ifndef arch_msi_check_device
int arch_msi_check_device(struct pci_dev *dev, int nvec, int type)
{
@@ -885,6 +899,18 @@ void pci_disable_msi(struct pci_dev *dev)
}
EXPORT_SYMBOL(pci_disable_msi);
+int msi_get_region_count(void)
+{
+ return arch_msi_get_region_count();
+}
+EXPORT_SYMBOL(msi_get_region_count);
+
+int msi_get_region(int region_num, struct msi_region *region)
+{
+ return arch_msi_get_region(region_num, region);
+}
+EXPORT_SYMBOL(msi_get_region);
+
/**
* pci_msix_table_size - return the number of device's MSI-X table entries
* @dev: pointer to the pci_dev data structure of MSI-X device function