]>
Commit | Line | Data |
---|---|---|
23ac4ae8 AH |
1 | #ifndef _ASM_X86_AMD_NB_H |
2 | #define _ASM_X86_AMD_NB_H | |
a32073bf AK |
3 | |
4 | #include <linux/pci.h> | |
5 | ||
24d9b70b JB |
6 | struct amd_nb_bus_dev_range { |
7 | u8 bus; | |
8 | u8 dev_base; | |
9 | u8 dev_limit; | |
10 | }; | |
11 | ||
691269f0 | 12 | extern const struct pci_device_id amd_nb_misc_ids[]; |
24d9b70b | 13 | extern const struct amd_nb_bus_dev_range amd_nb_bus_dev_ranges[]; |
a32073bf | 14 | |
84fd1d35 | 15 | extern bool early_is_amd_nb(u32 value); |
9653a5c7 | 16 | extern int amd_cache_northbridges(void); |
eec1d4fa | 17 | extern void amd_flush_garts(void); |
940fed2e | 18 | extern int amd_numa_init(void); |
cabb5bd7 HR |
19 | extern int amd_get_subcaches(int); |
20 | extern int amd_set_subcaches(int, int); | |
a32073bf | 21 | |
d2946041 TG |
22 | struct amd_l3_cache { |
23 | unsigned indices; | |
24 | u8 subcaches[4]; | |
25 | }; | |
26 | ||
9653a5c7 HR |
27 | struct amd_northbridge { |
28 | struct pci_dev *misc; | |
41b2610c | 29 | struct pci_dev *link; |
d2946041 | 30 | struct amd_l3_cache l3_cache; |
9653a5c7 HR |
31 | }; |
32 | ||
eec1d4fa | 33 | struct amd_northbridge_info { |
900f9ac9 | 34 | u16 num; |
9653a5c7 HR |
35 | u64 flags; |
36 | struct amd_northbridge *nb; | |
900f9ac9 | 37 | }; |
eec1d4fa | 38 | extern struct amd_northbridge_info amd_northbridges; |
900f9ac9 | 39 | |
84fd1d35 BP |
40 | #define AMD_NB_GART BIT(0) |
41 | #define AMD_NB_L3_INDEX_DISABLE BIT(1) | |
42 | #define AMD_NB_L3_PARTITIONING BIT(2) | |
9653a5c7 | 43 | |
23ac4ae8 | 44 | #ifdef CONFIG_AMD_NB |
ade029e2 | 45 | |
84fd1d35 | 46 | static inline u16 amd_nb_num(void) |
b206525a | 47 | { |
9653a5c7 | 48 | return amd_northbridges.num; |
b206525a | 49 | } |
ade029e2 | 50 | |
84fd1d35 | 51 | static inline bool amd_nb_has_feature(unsigned feature) |
9653a5c7 HR |
52 | { |
53 | return ((amd_northbridges.flags & feature) == feature); | |
54 | } | |
ade029e2 | 55 | |
9653a5c7 | 56 | static inline struct amd_northbridge *node_to_amd_nb(int node) |
b206525a | 57 | { |
9653a5c7 | 58 | return (node < amd_northbridges.num) ? &amd_northbridges.nb[node] : NULL; |
b206525a | 59 | } |
9653a5c7 HR |
60 | |
61 | #else | |
62 | ||
63 | #define amd_nb_num(x) 0 | |
64 | #define amd_nb_has_feature(x) false | |
65 | #define node_to_amd_nb(x) NULL | |
66 | ||
afd9fcee AH |
67 | #endif |
68 | ||
69 | ||
23ac4ae8 | 70 | #endif /* _ASM_X86_AMD_NB_H */ |