#ifndef _ASM_X86_AMD_NB_H #define _ASM_X86_AMD_NB_H #include <linux/ioport.h> #include <linux/pci.h> struct amd_nb_bus_dev_range { u8 bus; u8 dev_base; u8 dev_limit; }; extern const struct pci_device_id amd_nb_misc_ids[]; extern const struct amd_nb_bus_dev_range amd_nb_bus_dev_ranges[]; extern bool early_is_amd_nb(u32 value); extern struct resource *amd_get_mmconfig_range(struct resource *res); extern int amd_cache_northbridges(void); extern void amd_flush_garts(void); extern int amd_numa_init(void); extern int amd_get_subcaches(int); extern int amd_set_subcaches(int, unsigned long); struct amd_l3_cache { unsigned indices; u8 subcaches[4]; }; struct threshold_block { unsigned int block; /* Number within bank */ unsigned int bank; /* MCA bank the block belongs to */ unsigned int cpu; /* CPU which controls MCA bank */ u32 address; /* MSR address for the block */ u16 interrupt_enable; /* Enable/Disable APIC interrupt */ bool interrupt_capable; /* Bank can generate an interrupt. */ u16 threshold_limit; /* * Value upon which threshold * interrupt is generated. */ struct kobject kobj; /* sysfs object */ struct list_head miscj; /* * List of threshold blocks * within a bank. */ }; struct threshold_bank { struct kobject *kobj; struct threshold_block *blocks; /* initialized to the number of CPUs on the node sharing this bank */ atomic_t cpus; }; struct amd_northbridge { struct pci_dev *misc; struct pci_dev *link; struct amd_l3_cache l3_cache; struct threshold_bank *bank4; }; struct amd_northbridge_info { u16 num; u64 flags; struct amd_northbridge *nb; }; extern struct amd_northbridge_info amd_northbridges; #define AMD_NB_GART BIT(0) #define AMD_NB_L3_INDEX_DISABLE BIT(1) #define AMD_NB_L3_PARTITIONING BIT(2) #ifdef CONFIG_AMD_NB
static inline u16 amd_nb_num(void) { return amd_northbridges.num; }Contributors
| Person | Tokens | Prop | Commits | CommitProp | |
| hans rosenfeld | hans rosenfeld | 13 | 92.86% | 1 | 50.00% |
| borislav petkov | borislav petkov | 1 | 7.14% | 1 | 50.00% |
| Total | 14 | 100.00% | 2 | 100.00% |
| Person | Tokens | Prop | Commits | CommitProp | |
| hans rosenfeld | hans rosenfeld | 21 | 91.30% | 1 | 50.00% |
| borislav petkov | borislav petkov | 2 | 8.70% | 1 | 50.00% |
| Total | 23 | 100.00% | 2 | 100.00% |
| Person | Tokens | Prop | Commits | CommitProp | |
| jaswinder singh rajput | jaswinder singh rajput | 19 | 61.29% | 1 | 20.00% |
| andreas herrmann | andreas herrmann | 6 | 19.35% | 2 | 40.00% |
| hans rosenfeld | hans rosenfeld | 6 | 19.35% | 2 | 40.00% |
| Total | 31 | 100.00% | 5 | 100.00% |
| Person | Tokens | Prop | Commits | CommitProp | |
| daniel j blueman | daniel j blueman | 92 | 98.92% | 1 | 50.00% |
| aravind gopalakrishnan | aravind gopalakrishnan | 1 | 1.08% | 1 | 50.00% |
| Total | 93 | 100.00% | 2 | 100.00% |
| Person | Tokens | Prop | Commits | CommitProp | |
| aravind gopalakrishnan | aravind gopalakrishnan | 44 | 100.00% | 1 | 100.00% |
| Total | 44 | 100.00% | 1 | 100.00% |
| Person | Tokens | Prop | Commits | CommitProp | |
| hans rosenfeld | hans rosenfeld | 108 | 22.64% | 5 | 20.83% |
| daniel j blueman | daniel j blueman | 92 | 19.29% | 1 | 4.17% |
| borislav petkov | borislav petkov | 68 | 14.26% | 2 | 8.33% |
| aravind gopalakrishnan | aravind gopalakrishnan | 61 | 12.79% | 3 | 12.50% |
| andreas herrmann | andreas herrmann | 32 | 6.71% | 3 | 12.50% |
| andi kleen | andi kleen | 32 | 6.71% | 1 | 4.17% |
| jan beulich | jan beulich | 22 | 4.61% | 2 | 8.33% |
| thomas gleixner | thomas gleixner | 21 | 4.40% | 2 | 8.33% |
| jaswinder singh rajput | jaswinder singh rajput | 19 | 3.98% | 1 | 4.17% |
| bjorn helgaas | bjorn helgaas | 15 | 3.14% | 1 | 4.17% |
| david rientjes | david rientjes | 4 | 0.84% | 1 | 4.17% |
| dan carpenter | dan carpenter | 2 | 0.42% | 1 | 4.17% |
| tejun heo | tejun heo | 1 | 0.21% | 1 | 4.17% |
| Total | 477 | 100.00% | 24 | 100.00% |