]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blame - arch/x86/include/asm/amd_nb.h
Merge branch 'slab/urgent' into slab/for-linus
[mirror_ubuntu-artful-kernel.git] / arch / x86 / include / asm / amd_nb.h
CommitLineData
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
6struct amd_nb_bus_dev_range {
7 u8 bus;
8 u8 dev_base;
9 u8 dev_limit;
10};
11
691269f0 12extern const struct pci_device_id amd_nb_misc_ids[];
24d9b70b 13extern const struct amd_nb_bus_dev_range amd_nb_bus_dev_ranges[];
a32073bf 14
84fd1d35 15extern bool early_is_amd_nb(u32 value);
9653a5c7 16extern int amd_cache_northbridges(void);
eec1d4fa 17extern void amd_flush_garts(void);
940fed2e 18extern int amd_numa_init(void);
cabb5bd7
HR
19extern int amd_get_subcaches(int);
20extern int amd_set_subcaches(int, int);
a32073bf 21
d2946041
TG
22struct amd_l3_cache {
23 unsigned indices;
24 u8 subcaches[4];
25};
26
9653a5c7
HR
27struct 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 33struct amd_northbridge_info {
900f9ac9 34 u16 num;
9653a5c7
HR
35 u64 flags;
36 struct amd_northbridge *nb;
900f9ac9 37};
eec1d4fa 38extern 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 46static inline u16 amd_nb_num(void)
b206525a 47{
9653a5c7 48 return amd_northbridges.num;
b206525a 49}
ade029e2 50
84fd1d35 51static inline bool amd_nb_has_feature(unsigned feature)
9653a5c7
HR
52{
53 return ((amd_northbridges.flags & feature) == feature);
54}
ade029e2 55
9653a5c7 56static 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 */