summaryrefslogtreecommitdiff
path: root/arch/powerpc/platforms/iseries/iommu.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/powerpc/platforms/iseries/iommu.c')
-rw-r--r--arch/powerpc/platforms/iseries/iommu.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/arch/powerpc/platforms/iseries/iommu.c b/arch/powerpc/platforms/iseries/iommu.c
index e6f4a4ab57b8..533d9b467402 100644
--- a/arch/powerpc/platforms/iseries/iommu.c
+++ b/arch/powerpc/platforms/iseries/iommu.c
@@ -31,10 +31,9 @@
#include <asm/tce.h>
#include <asm/machdep.h>
#include <asm/abs_addr.h>
+#include <asm/pci-bridge.h>
#include <asm/iSeries/HvCallXm.h>
-#include "pci.h"
-
extern struct list_head iSeries_Global_Device_List;
@@ -114,7 +113,7 @@ static struct iommu_table *iommu_table_find(struct iommu_table * tbl)
* 2. TCE table per Bus.
* 3. TCE Table per IOA.
*/
-static void iommu_table_getparms(struct device_node *dn,
+static void iommu_table_getparms(struct pci_dn *pdn,
struct iommu_table* tbl)
{
struct iommu_table_cb *parms;
@@ -125,8 +124,8 @@ static void iommu_table_getparms(struct device_node *dn,
memset(parms, 0, sizeof(*parms));
- parms->itc_busno = ISERIES_BUS(dn);
- parms->itc_slotno = PCI_DN(dn)->LogicalSlot;
+ parms->itc_busno = pdn->DsaAddr.Dsa.busNumber;
+ parms->itc_slotno = pdn->LogicalSlot;
parms->itc_virtbus = 0;
HvCallXm_getTceTableParms(iseries_hv_addr(parms));
@@ -153,7 +152,7 @@ void iommu_devnode_init_iSeries(struct device_node *dn)
tbl = kmalloc(sizeof(struct iommu_table), GFP_KERNEL);
- iommu_table_getparms(dn, tbl);
+ iommu_table_getparms(pdn, tbl);
/* Look for existing tce table */
pdn->iommu_table = iommu_table_find(tbl);