|
@@ -340,6 +340,18 @@ static resource_size_t __init gen3_stolen_base(int num, int slot, int func,
|
|
|
return bsm & INTEL_BSM_MASK;
|
|
|
}
|
|
|
|
|
|
+static resource_size_t __init gen11_stolen_base(int num, int slot, int func,
|
|
|
+ resource_size_t stolen_size)
|
|
|
+{
|
|
|
+ u64 bsm;
|
|
|
+
|
|
|
+ bsm = read_pci_config(num, slot, func, INTEL_GEN11_BSM_DW0);
|
|
|
+ bsm &= INTEL_BSM_MASK;
|
|
|
+ bsm |= (u64)read_pci_config(num, slot, func, INTEL_GEN11_BSM_DW1) << 32;
|
|
|
+
|
|
|
+ return bsm;
|
|
|
+}
|
|
|
+
|
|
|
static resource_size_t __init i830_stolen_size(int num, int slot, int func)
|
|
|
{
|
|
|
u16 gmch_ctrl;
|
|
@@ -500,6 +512,11 @@ static const struct intel_early_ops chv_early_ops __initconst = {
|
|
|
.stolen_size = chv_stolen_size,
|
|
|
};
|
|
|
|
|
|
+static const struct intel_early_ops gen11_early_ops __initconst = {
|
|
|
+ .stolen_base = gen11_stolen_base,
|
|
|
+ .stolen_size = gen9_stolen_size,
|
|
|
+};
|
|
|
+
|
|
|
static const struct pci_device_id intel_early_ids[] __initconst = {
|
|
|
INTEL_I830_IDS(&i830_early_ops),
|
|
|
INTEL_I845G_IDS(&i845_early_ops),
|
|
@@ -531,6 +548,7 @@ static const struct pci_device_id intel_early_ids[] __initconst = {
|
|
|
INTEL_CFL_IDS(&gen9_early_ops),
|
|
|
INTEL_GLK_IDS(&gen9_early_ops),
|
|
|
INTEL_CNL_IDS(&gen9_early_ops),
|
|
|
+ INTEL_ICL_11_IDS(&gen11_early_ops),
|
|
|
};
|
|
|
|
|
|
struct resource intel_graphics_stolen_res __ro_after_init = DEFINE_RES_MEM(0, 0);
|