]> git.proxmox.com Git - mirror_ubuntu-zesty-kernel.git/blame - arch/x86/include/asm/amd_nb.h
x86: cache_info: Kill the moronic shadow struct
[mirror_ubuntu-zesty-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
9653a5c7
HR
22struct amd_northbridge {
23 struct pci_dev *misc;
41b2610c 24 struct pci_dev *link;
9653a5c7
HR
25};
26
eec1d4fa 27struct amd_northbridge_info {
900f9ac9 28 u16 num;
9653a5c7
HR
29 u64 flags;
30 struct amd_northbridge *nb;
900f9ac9 31};
eec1d4fa 32extern struct amd_northbridge_info amd_northbridges;
900f9ac9 33
84fd1d35
BP
34#define AMD_NB_GART BIT(0)
35#define AMD_NB_L3_INDEX_DISABLE BIT(1)
36#define AMD_NB_L3_PARTITIONING BIT(2)
9653a5c7 37
23ac4ae8 38#ifdef CONFIG_AMD_NB
ade029e2 39
84fd1d35 40static inline u16 amd_nb_num(void)
b206525a 41{
9653a5c7 42 return amd_northbridges.num;
b206525a 43}
ade029e2 44
84fd1d35 45static inline bool amd_nb_has_feature(unsigned feature)
9653a5c7
HR
46{
47 return ((amd_northbridges.flags & feature) == feature);
48}
ade029e2 49
9653a5c7 50static inline struct amd_northbridge *node_to_amd_nb(int node)
b206525a 51{
9653a5c7 52 return (node < amd_northbridges.num) ? &amd_northbridges.nb[node] : NULL;
b206525a 53}
9653a5c7
HR
54
55#else
56
57#define amd_nb_num(x) 0
58#define amd_nb_has_feature(x) false
59#define node_to_amd_nb(x) NULL
60
afd9fcee
AH
61#endif
62
63
23ac4ae8 64#endif /* _ASM_X86_AMD_NB_H */