diff options
Diffstat (limited to 'arch')
-rw-r--r-- | arch/x86/kernel/early-quirks.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/arch/x86/kernel/early-quirks.c b/arch/x86/kernel/early-quirks.c index b3cd3ebae077..96f958d8cd45 100644 --- a/arch/x86/kernel/early-quirks.c +++ b/arch/x86/kernel/early-quirks.c | |||
@@ -313,6 +313,16 @@ static size_t __init gen6_stolen_size(int num, int slot, int func) | |||
313 | return gmch_ctrl << 25; /* 32 MB units */ | 313 | return gmch_ctrl << 25; /* 32 MB units */ |
314 | } | 314 | } |
315 | 315 | ||
316 | static inline size_t gen8_stolen_size(int num, int slot, int func) | ||
317 | { | ||
318 | u16 gmch_ctrl; | ||
319 | |||
320 | gmch_ctrl = read_pci_config_16(num, slot, func, SNB_GMCH_CTRL); | ||
321 | gmch_ctrl >>= BDW_GMCH_GMS_SHIFT; | ||
322 | gmch_ctrl &= BDW_GMCH_GMS_MASK; | ||
323 | return gmch_ctrl << 25; /* 32 MB units */ | ||
324 | } | ||
325 | |||
316 | typedef size_t (*stolen_size_fn)(int num, int slot, int func); | 326 | typedef size_t (*stolen_size_fn)(int num, int slot, int func); |
317 | 327 | ||
318 | static struct pci_device_id intel_stolen_ids[] __initdata = { | 328 | static struct pci_device_id intel_stolen_ids[] __initdata = { |
@@ -336,6 +346,8 @@ static struct pci_device_id intel_stolen_ids[] __initdata = { | |||
336 | INTEL_IVB_D_IDS(gen6_stolen_size), | 346 | INTEL_IVB_D_IDS(gen6_stolen_size), |
337 | INTEL_HSW_D_IDS(gen6_stolen_size), | 347 | INTEL_HSW_D_IDS(gen6_stolen_size), |
338 | INTEL_HSW_M_IDS(gen6_stolen_size), | 348 | INTEL_HSW_M_IDS(gen6_stolen_size), |
349 | INTEL_BDW_M_IDS(gen8_stolen_size), | ||
350 | INTEL_BDW_D_IDS(gen8_stolen_size) | ||
339 | }; | 351 | }; |
340 | 352 | ||
341 | static void __init intel_graphics_stolen(int num, int slot, int func) | 353 | static void __init intel_graphics_stolen(int num, int slot, int func) |