diff options
Diffstat (limited to 'arch/x86/pci/numa.c')
-rw-r--r-- | arch/x86/pci/numa.c | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/arch/x86/pci/numa.c b/arch/x86/pci/numa.c index 55270c26237c..d9afbae5092b 100644 --- a/arch/x86/pci/numa.c +++ b/arch/x86/pci/numa.c | |||
@@ -11,11 +11,41 @@ | |||
11 | #define XQUAD_PORTIO_BASE 0xfe400000 | 11 | #define XQUAD_PORTIO_BASE 0xfe400000 |
12 | #define XQUAD_PORTIO_QUAD 0x40000 /* 256k per quad. */ | 12 | #define XQUAD_PORTIO_QUAD 0x40000 /* 256k per quad. */ |
13 | 13 | ||
14 | int mp_bus_id_to_node[MAX_MP_BUSSES]; | ||
14 | #define BUS2QUAD(global) (mp_bus_id_to_node[global]) | 15 | #define BUS2QUAD(global) (mp_bus_id_to_node[global]) |
16 | |||
17 | int mp_bus_id_to_local[MAX_MP_BUSSES]; | ||
15 | #define BUS2LOCAL(global) (mp_bus_id_to_local[global]) | 18 | #define BUS2LOCAL(global) (mp_bus_id_to_local[global]) |
19 | |||
20 | void mpc_oem_bus_info(struct mpc_config_bus *m, char *name, | ||
21 | struct mpc_config_translation *translation) | ||
22 | { | ||
23 | int quad = translation->trans_quad; | ||
24 | int local = translation->trans_local; | ||
25 | |||
26 | mp_bus_id_to_node[m->mpc_busid] = quad; | ||
27 | mp_bus_id_to_local[m->mpc_busid] = local; | ||
28 | printk(KERN_INFO "Bus #%d is %s (node %d)\n", | ||
29 | m->mpc_busid, name, quad); | ||
30 | } | ||
31 | |||
32 | int quad_local_to_mp_bus_id [NR_CPUS/4][4]; | ||
16 | #define QUADLOCAL2BUS(quad,local) (quad_local_to_mp_bus_id[quad][local]) | 33 | #define QUADLOCAL2BUS(quad,local) (quad_local_to_mp_bus_id[quad][local]) |
34 | void mpc_oem_pci_bus(struct mpc_config_bus *m, | ||
35 | struct mpc_config_translation *translation) | ||
36 | { | ||
37 | int quad = translation->trans_quad; | ||
38 | int local = translation->trans_local; | ||
39 | |||
40 | quad_local_to_mp_bus_id[quad][local] = m->mpc_busid; | ||
41 | } | ||
42 | |||
43 | /* Where the IO area was mapped on multiquad, always 0 otherwise */ | ||
44 | void *xquad_portio; | ||
45 | #ifdef CONFIG_X86_NUMAQ | ||
46 | EXPORT_SYMBOL(xquad_portio); | ||
47 | #endif | ||
17 | 48 | ||
18 | extern void *xquad_portio; /* Where the IO area was mapped */ | ||
19 | #define XQUAD_PORT_ADDR(port, quad) (xquad_portio + (XQUAD_PORTIO_QUAD*quad) + port) | 49 | #define XQUAD_PORT_ADDR(port, quad) (xquad_portio + (XQUAD_PORTIO_QUAD*quad) + port) |
20 | 50 | ||
21 | #define PCI_CONF1_MQ_ADDRESS(bus, devfn, reg) \ | 51 | #define PCI_CONF1_MQ_ADDRESS(bus, devfn, reg) \ |