Merge ../linus
[linux-drm-fsl-dcu.git] / arch / ia64 / sn / pci / tioce_provider.c
index af7171adcd2c1e83a912871e9114cf9bdc5c216c..35f854fb6120ff3f2d45709a2562d1a1a518e05d 100644 (file)
@@ -15,7 +15,6 @@
 #include <asm/sn/pcidev.h>
 #include <asm/sn/pcibus_provider_defs.h>
 #include <asm/sn/tioce_provider.h>
-#include <asm/sn/sn2/sn_hwperf.h>
 
 /*
  * 1/26/2006
@@ -53,7 +52,7 @@
  */
 
 static void inline
-tioce_mmr_war_pre(struct tioce_kernel *kern, void *mmr_addr)
+tioce_mmr_war_pre(struct tioce_kernel *kern, void __iomem *mmr_addr)
 {
        u64 mmr_base;
        u64 mmr_offset;
@@ -62,7 +61,7 @@ tioce_mmr_war_pre(struct tioce_kernel *kern, void *mmr_addr)
                return;
 
        mmr_base = kern->ce_common->ce_pcibus.bs_base;
-       mmr_offset = (u64)mmr_addr - mmr_base;
+       mmr_offset = (unsigned long)mmr_addr - mmr_base;
 
        if (mmr_offset < 0x45000) {
                u64 mmr_war_offset;
@@ -79,7 +78,7 @@ tioce_mmr_war_pre(struct tioce_kernel *kern, void *mmr_addr)
 }
 
 static void inline
-tioce_mmr_war_post(struct tioce_kernel *kern, void *mmr_addr)
+tioce_mmr_war_post(struct tioce_kernel *kern, void __iomem *mmr_addr)
 {
        u64 mmr_base;
        u64 mmr_offset;
@@ -88,7 +87,7 @@ tioce_mmr_war_post(struct tioce_kernel *kern, void *mmr_addr)
                return;
 
        mmr_base = kern->ce_common->ce_pcibus.bs_base;
-       mmr_offset = (u64)mmr_addr - mmr_base;
+       mmr_offset = (unsigned long)mmr_addr - mmr_base;
 
        if (mmr_offset < 0x45000) {
                if (mmr_offset == 0x100)
@@ -223,7 +222,7 @@ tioce_dma_d64(unsigned long ct_addr, int dma_flags)
  * @pci_dev.
  */
 static inline void
-pcidev_to_tioce(struct pci_dev *pdev, struct tioce **base,
+pcidev_to_tioce(struct pci_dev *pdev, struct tioce __iomem **base,
                struct tioce_kernel **kernel, int *port)
 {
        struct pcidev_info *pcidev_info;
@@ -235,7 +234,7 @@ pcidev_to_tioce(struct pci_dev *pdev, struct tioce **base,
        ce_kernel = (struct tioce_kernel *)ce_common->ce_kernel_private;
 
        if (base)
-               *base = (struct tioce *)ce_common->ce_pcibus.bs_base;
+               *base = (struct tioce __iomem *)ce_common->ce_pcibus.bs_base;
        if (kernel)
                *kernel = ce_kernel;
 
@@ -275,13 +274,13 @@ tioce_alloc_map(struct tioce_kernel *ce_kern, int type, int port,
        u64 pagesize;
        int msi_capable, msi_wanted;
        u64 *ate_shadow;
-       u64 *ate_reg;
+       u64 __iomem *ate_reg;
        u64 addr;
-       struct tioce *ce_mmr;
+       struct tioce __iomem *ce_mmr;
        u64 bus_base;
        struct tioce_dmamap *map;
 
-       ce_mmr = (struct tioce *)ce_kern->ce_common->ce_pcibus.bs_base;
+       ce_mmr = (struct tioce __iomem *)ce_kern->ce_common->ce_pcibus.bs_base;
 
        switch (type) {
        case TIOCE_ATE_M32:
@@ -386,7 +385,7 @@ tioce_dma_d32(struct pci_dev *pdev, u64 ct_addr, int dma_flags)
 {
        int dma_ok;
        int port;
-       struct tioce *ce_mmr;
+       struct tioce __iomem *ce_mmr;
        struct tioce_kernel *ce_kern;
        u64 ct_upper;
        u64 ct_lower;
@@ -461,7 +460,7 @@ tioce_dma_unmap(struct pci_dev *pdev, dma_addr_t bus_addr, int dir)
        int i;
        int port;
        struct tioce_kernel *ce_kern;
-       struct tioce *ce_mmr;
+       struct tioce __iomem *ce_mmr;
        unsigned long flags;
 
        bus_addr = tioce_dma_barrier(bus_addr, 0);
@@ -666,12 +665,11 @@ tioce_dma_consistent(struct pci_dev *pdev, u64 paddr, size_t byte_count, int dma
  * tioce_error_intr_handler - SGI TIO CE error interrupt handler
  * @irq: unused
  * @arg: pointer to tioce_common struct for the given CE
- * @pt: unused
  *
  * Handle a CE error interrupt.  Simply a wrapper around a SAL call which
  * defers processing to the SGI prom.
  */ static irqreturn_t
-tioce_error_intr_handler(int irq, void *arg, struct pt_regs *pt)
+tioce_error_intr_handler(int irq, void *arg)
 {
        struct tioce_common *soft = arg;
        struct ia64_sal_retval ret_stuff;
@@ -701,9 +699,9 @@ static void
 tioce_reserve_m32(struct tioce_kernel *ce_kern, u64 base, u64 limit)
 {
        int ate_index, last_ate, ps;
-       struct tioce *ce_mmr;
+       struct tioce __iomem *ce_mmr;
 
-       ce_mmr = (struct tioce *)ce_kern->ce_common->ce_pcibus.bs_base;
+       ce_mmr = (struct tioce __iomem *)ce_kern->ce_common->ce_pcibus.bs_base;
        ps = ce_kern->ce_ate3240_pagesize;
        ate_index = ATE_PAGE(base, ps);
        last_ate = ate_index + ATE_NPAGES(base, limit-base+1, ps) - 1;
@@ -737,7 +735,7 @@ tioce_kern_init(struct tioce_common *tioce_common)
        int dev;
        u32 tmp;
        unsigned int seg, bus;
-       struct tioce *tioce_mmr;
+       struct tioce __iomem *tioce_mmr;
        struct tioce_kernel *tioce_kern;
 
        tioce_kern = kzalloc(sizeof(struct tioce_kernel), GFP_KERNEL);
@@ -768,7 +766,7 @@ tioce_kern_init(struct tioce_common *tioce_common)
         * the ate's.
         */
 
-       tioce_mmr = (struct tioce *)tioce_common->ce_pcibus.bs_base;
+       tioce_mmr = (struct tioce __iomem *)tioce_common->ce_pcibus.bs_base;
        tioce_mmr_clri(tioce_kern, &tioce_mmr->ce_ure_page_map,
                       CE_URE_PAGESIZE_MASK);
        tioce_mmr_seti(tioce_kern, &tioce_mmr->ce_ure_page_map,
@@ -859,7 +857,7 @@ tioce_force_interrupt(struct sn_irq_info *sn_irq_info)
        struct pcidev_info *pcidev_info;
        struct tioce_common *ce_common;
        struct tioce_kernel *ce_kern;
-       struct tioce *ce_mmr;
+       struct tioce __iomem *ce_mmr;
        u64 force_int_val;
 
        if (!sn_irq_info->irq_bridge)
@@ -873,7 +871,7 @@ tioce_force_interrupt(struct sn_irq_info *sn_irq_info)
                return;
 
        ce_common = (struct tioce_common *)pcidev_info->pdi_pcibus_info;
-       ce_mmr = (struct tioce *)ce_common->ce_pcibus.bs_base;
+       ce_mmr = (struct tioce __iomem *)ce_common->ce_pcibus.bs_base;
        ce_kern = (struct tioce_kernel *)ce_common->ce_kernel_private;
 
        /*
@@ -954,7 +952,7 @@ tioce_target_interrupt(struct sn_irq_info *sn_irq_info)
        struct pcidev_info *pcidev_info;
        struct tioce_common *ce_common;
        struct tioce_kernel *ce_kern;
-       struct tioce *ce_mmr;
+       struct tioce __iomem *ce_mmr;
        int bit;
        u64 vector;
 
@@ -963,7 +961,7 @@ tioce_target_interrupt(struct sn_irq_info *sn_irq_info)
                return;
 
        ce_common = (struct tioce_common *)pcidev_info->pdi_pcibus_info;
-       ce_mmr = (struct tioce *)ce_common->ce_pcibus.bs_base;
+       ce_mmr = (struct tioce __iomem *)ce_common->ce_pcibus.bs_base;
        ce_kern = (struct tioce_kernel *)ce_common->ce_kernel_private;
 
        bit = sn_irq_info->irq_int_bit;
@@ -991,11 +989,9 @@ tioce_target_interrupt(struct sn_irq_info *sn_irq_info)
 static void *
 tioce_bus_fixup(struct pcibus_bussoft *prom_bussoft, struct pci_controller *controller)
 {
-       int my_nasid;
-       cnodeid_t my_cnode, mem_cnode;
        struct tioce_common *tioce_common;
        struct tioce_kernel *tioce_kern;
-       struct tioce *tioce_mmr;
+       struct tioce __iomem *tioce_mmr;
 
        /*
         * Allocate kernel bus soft and copy from prom.
@@ -1019,7 +1015,7 @@ tioce_bus_fixup(struct pcibus_bussoft *prom_bussoft, struct pci_controller *cont
         * interrupt handler.
         */
 
-       tioce_mmr = (struct tioce *)tioce_common->ce_pcibus.bs_base;
+       tioce_mmr = (struct tioce __iomem *)tioce_common->ce_pcibus.bs_base;
        tioce_mmr_seti(tioce_kern, &tioce_mmr->ce_adm_int_status_alias, ~0ULL);
        tioce_mmr_seti(tioce_kern, &tioce_mmr->ce_adm_error_summary_alias,
                       ~0ULL);
@@ -1036,21 +1032,6 @@ tioce_bus_fixup(struct pcibus_bussoft *prom_bussoft, struct pci_controller *cont
                       tioce_common->ce_pcibus.bs_persist_segment,
                       tioce_common->ce_pcibus.bs_persist_busnum);
 
-       /*
-        * identify closest nasid for memory allocations
-        */
-
-       my_nasid = NASID_GET(tioce_common->ce_pcibus.bs_base);
-       my_cnode = nasid_to_cnodeid(my_nasid);
-
-       if (sn_hwperf_get_nearest_node(my_cnode, &mem_cnode, NULL) < 0) {
-               printk(KERN_WARNING "tioce_bus_fixup: failed to find "
-                      "closest node with MEM to TIO node %d\n", my_cnode);
-               mem_cnode = (cnodeid_t)-1; /* use any node */
-       }
-
-       controller->node = mem_cnode;
-
        return tioce_common;
 }