This patch extend the interface to arch specific code for setting
msi iova address for a msi page. Machine specific code is not yet
implemented.

Signed-off-by: Bharat Bhushan <bharat.bhus...@freescale.com>
---
v2
 - new patch

 arch/powerpc/include/asm/machdep.h |    2 ++
 arch/powerpc/kernel/msi.c          |   10 ++++++++++
 2 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/arch/powerpc/include/asm/machdep.h 
b/arch/powerpc/include/asm/machdep.h
index 8d1b787..e87b806 100644
--- a/arch/powerpc/include/asm/machdep.h
+++ b/arch/powerpc/include/asm/machdep.h
@@ -132,6 +132,8 @@ struct machdep_calls {
        /* Returns the requested region's address and size */
        int             (*msi_get_region)(int region_num,
                                          struct msi_region *region);
+       int             (*msi_set_iova)(struct pci_dev *pdev, int region_num,
+                                       dma_addr_t iova, bool set);
 #endif
 
        void            (*restart)(char *cmd);
diff --git a/arch/powerpc/kernel/msi.c b/arch/powerpc/kernel/msi.c
index 1a67787..e2bd555 100644
--- a/arch/powerpc/kernel/msi.c
+++ b/arch/powerpc/kernel/msi.c
@@ -13,6 +13,16 @@
 
 #include <asm/machdep.h>
 
+int arch_msi_set_iova(struct pci_dev *pdev, int region_num,
+                     dma_addr_t iova, bool set)
+{
+       if (ppc_md.msi_set_iova) {
+               pr_debug("msi: Using platform get_region_count routine.\n");
+               return ppc_md.msi_set_iova(pdev, region_num, iova, set);
+       }
+       return 0;
+}
+
 int arch_msi_get_region_count(void)
 {
        if (ppc_md.msi_get_region_count) {
-- 
1.7.0.4


_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Reply via email to