return physids_promote(0xFFL);
 }
 
-static inline void setup_portio_remap(void)
+static inline void bigsmp_setup_portio_remap(void)
 {
 }
 
 
 }
 
 
-static inline void setup_portio_remap(void)
-{
-}
-
 extern unsigned int boot_cpu_physical_apicid;
 static inline int check_phys_apicid_present(int cpu_physical_apicid)
 {
 
        return physid_mask_of_physid(phys_apicid);
 }
 
-static inline void setup_portio_remap(void)
-{
-}
-
 static inline int check_phys_apicid_present(int boot_cpu_physical_apicid)
 {
        return physid_isset(boot_cpu_physical_apicid, phys_cpu_present_map);
 
 
 #include <asm/genapic.h>
 
-#define setup_portio_remap (apic->setup_portio_remap)
 #define check_phys_apicid_present (apic->check_phys_apicid_present)
 #define cpu_mask_to_apicid (apic->cpu_mask_to_apicid)
 #define cpu_mask_to_apicid_and (apic->cpu_mask_to_apicid_and)
 
 
 extern void *xquad_portio;
 
-static inline void setup_portio_remap(void)
-{
-       int num_quads = num_online_nodes();
-
-       if (num_quads <= 1)
-                       return;
-
-       printk("Remapping cross-quad port I/O for %d quads\n", num_quads);
-       xquad_portio = ioremap(XQUAD_PORTIO_BASE, num_quads*XQUAD_PORTIO_QUAD);
-       printk("xquad_portio vaddr 0x%08lx, len %08lx\n",
-               (u_long) xquad_portio, (u_long) num_quads*XQUAD_PORTIO_QUAD);
-}
-
 static inline int check_phys_apicid_present(int boot_cpu_physical_apicid)
 {
        return (1);
 
        return physid_mask_of_physid(0);
 }
 
-static inline void setup_portio_remap(void)
+static inline void summit_setup_portio_remap(void)
 {
 }
 
 
 
        map_cpu_to_logical_apicid();
 
-       setup_portio_remap();
+       if (apic->setup_portio_remap)
+               apic->setup_portio_remap();
 
        smpboot_setup_io_apic();
        /*
 
        .cpu_to_logical_apicid          = bigsmp_cpu_to_logical_apicid,
        .cpu_present_to_apicid          = bigsmp_cpu_present_to_apicid,
        .apicid_to_cpu_present          = bigsmp_apicid_to_cpu_present,
-       .setup_portio_remap             = setup_portio_remap,
+       .setup_portio_remap             = NULL,
        .check_phys_apicid_present      = check_phys_apicid_present,
        .enable_apic_mode               = enable_apic_mode,
        .phys_pkg_id                    = phys_pkg_id,
 
        .cpu_to_logical_apicid          = default_cpu_to_logical_apicid,
        .cpu_present_to_apicid          = default_cpu_present_to_apicid,
        .apicid_to_cpu_present          = default_apicid_to_cpu_present,
-       .setup_portio_remap             = setup_portio_remap,
+       .setup_portio_remap             = NULL,
        .check_phys_apicid_present      = check_phys_apicid_present,
        .enable_apic_mode               = enable_apic_mode,
        .phys_pkg_id                    = phys_pkg_id,
 
        .cpu_to_logical_apicid          = es7000_cpu_to_logical_apicid,
        .cpu_present_to_apicid          = es7000_cpu_present_to_apicid,
        .apicid_to_cpu_present          = es7000_apicid_to_cpu_present,
-       .setup_portio_remap             = setup_portio_remap,
+       .setup_portio_remap             = NULL,
        .check_phys_apicid_present      = check_phys_apicid_present,
        .enable_apic_mode               = enable_apic_mode,
        .phys_pkg_id                    = phys_pkg_id,
 
        *retmask = (cpumask_t){ { [0] = APIC_ALL_CPUS, } };
 }
 
+static void numaq_setup_portio_remap(void)
+{
+       int num_quads = num_online_nodes();
+
+       if (num_quads <= 1)
+                       return;
+
+       printk("Remapping cross-quad port I/O for %d quads\n", num_quads);
+       xquad_portio = ioremap(XQUAD_PORTIO_BASE, num_quads*XQUAD_PORTIO_QUAD);
+       printk("xquad_portio vaddr 0x%08lx, len %08lx\n",
+               (u_long) xquad_portio, (u_long) num_quads*XQUAD_PORTIO_QUAD);
+}
+
 struct genapic apic_numaq = {
 
        .name                           = "NUMAQ",
        .cpu_to_logical_apicid          = numaq_cpu_to_logical_apicid,
        .cpu_present_to_apicid          = numaq_cpu_present_to_apicid,
        .apicid_to_cpu_present          = numaq_apicid_to_cpu_present,
-       .setup_portio_remap             = setup_portio_remap,
+       .setup_portio_remap             = numaq_setup_portio_remap,
        .check_phys_apicid_present      = check_phys_apicid_present,
        .enable_apic_mode               = enable_apic_mode,
        .phys_pkg_id                    = phys_pkg_id,
 
        .cpu_to_logical_apicid          = summit_cpu_to_logical_apicid,
        .cpu_present_to_apicid          = summit_cpu_present_to_apicid,
        .apicid_to_cpu_present          = summit_apicid_to_cpu_present,
-       .setup_portio_remap             = setup_portio_remap,
+       .setup_portio_remap             = NULL,
        .check_phys_apicid_present      = check_phys_apicid_present,
        .enable_apic_mode               = enable_apic_mode,
        .phys_pkg_id                    = phys_pkg_id,