ppc64 iSeries: use device_node instead of iSeries_Device_node
[linux-2.6.git] / arch / powerpc / platforms / iseries / iommu.c
index 65c76dd1d3de950a1989705e89d96bae49945cc9..9ac735d5b817d5533ac45de1506854d2f53acfeb 100644 (file)
@@ -89,15 +89,17 @@ static void tce_free_iSeries(struct iommu_table *tbl, long index, long npages)
  */
 static struct iommu_table *iommu_table_find(struct iommu_table * tbl)
 {
-       struct iSeries_Device_Node *dp;
+       struct device_node *dp;
 
        list_for_each_entry(dp, &iSeries_Global_Device_List, Device_List) {
-               if ((dp->iommu_table != NULL) &&
-                   (dp->iommu_table->it_type == TCE_PCI) &&
-                   (dp->iommu_table->it_offset == tbl->it_offset) &&
-                   (dp->iommu_table->it_index == tbl->it_index) &&
-                   (dp->iommu_table->it_size == tbl->it_size))
-                       return dp->iommu_table;
+               struct iommu_table *it = PCI_DN(dp)->iommu_table;
+
+               if ((it != NULL) &&
+                   (it->it_type == TCE_PCI) &&
+                   (it->it_offset == tbl->it_offset) &&
+                   (it->it_index == tbl->it_index) &&
+                   (it->it_size == tbl->it_size))
+                       return it;
        }
        return NULL;
 }
@@ -111,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 iSeries_Device_Node* dn,
+static void iommu_table_getparms(struct device_node *dn,
                                 struct iommu_table* tbl)
 {
        struct iommu_table_cb *parms;
@@ -123,7 +125,7 @@ static void iommu_table_getparms(struct iSeries_Device_Node* dn,
        memset(parms, 0, sizeof(*parms));
 
        parms->itc_busno = ISERIES_BUS(dn);
-       parms->itc_slotno = dn->LogicalSlot;
+       parms->itc_slotno = PCI_DN(dn)->LogicalSlot;
        parms->itc_virtbus = 0;
 
        HvCallXm_getTceTableParms(ISERIES_HV_ADDR(parms));
@@ -143,18 +145,19 @@ static void iommu_table_getparms(struct iSeries_Device_Node* dn,
 }
 
 
-void iommu_devnode_init_iSeries(struct iSeries_Device_Node *dn)
+void iommu_devnode_init_iSeries(struct device_node *dn)
 {
        struct iommu_table *tbl;
+       struct pci_dn *pdn = PCI_DN(dn);
 
        tbl = kmalloc(sizeof(struct iommu_table), GFP_KERNEL);
 
        iommu_table_getparms(dn, tbl);
 
        /* Look for existing tce table */
-       dn->iommu_table = iommu_table_find(tbl);
-       if (dn->iommu_table == NULL)
-               dn->iommu_table = iommu_init_table(tbl);
+       pdn->iommu_table = iommu_table_find(tbl);
+       if (pdn->iommu_table == NULL)
+               pdn->iommu_table = iommu_init_table(tbl);
        else
                kfree(tbl);
 }