@@ -903,6 +903,7 @@ int intel_opregion_setup(struct drm_i915_private *dev_priv)
return -ENOTSUPP;
}
+ opregion->asls = asls;
INIT_WORK(&opregion->asle_work, asle_work);
base = memremap(asls, OPREGION_SIZE, MEMREMAP_WB);
@@ -987,7 +988,7 @@ int intel_opregion_setup(struct drm_i915_private *dev_priv)
opregion->header->over.minor >= 1) {
drm_WARN_ON(&dev_priv->drm, rvda < OPREGION_SIZE);
- rvda += asls;
+ rvda += opregion->asls;
}
opregion->rvda = memremap(rvda, opregion->asle->rvds,
@@ -1262,6 +1263,7 @@ void intel_opregion_cleanup(struct drm_i915_private *i915)
opregion->swsci = NULL;
opregion->asle = NULL;
opregion->asle_ext = NULL;
+ opregion->asls = 0;
vbt->vbt = NULL;
opregion->lid_state = NULL;
}
@@ -48,6 +48,7 @@ struct intel_opregion {
struct opregion_asle_ext *asle_ext;
void *rvda;
u32 *lid_state;
+ u32 asls;
struct work_struct asle_work;
struct notifier_block acpi_notifier;
};
Asls offset is used to calculate the relative offset of vbt in ASLE mailbox. Cache the address read from PCI config space to use later during vbt extraction. Signed-off-by: Radhakrishna Sripada <radhakrishna.sripada@intel.com> --- drivers/gpu/drm/i915/display/intel_opregion.c | 4 +++- drivers/gpu/drm/i915/display/intel_opregion.h | 1 + 2 files changed, 4 insertions(+), 1 deletion(-)