@@ -1637,6 +1637,7 @@ static int i915_drm_resume(struct drm_device *dev)
static int i915_drm_resume_early(struct drm_device *dev)
{
struct drm_i915_private *dev_priv = to_i915(dev);
+ struct intel_guc_fw *guc_fw = &dev_priv->guc.guc_fw;
struct pci_dev *pdev = dev_priv->drm.pdev;
int ret;
@@ -1694,6 +1695,12 @@ static int i915_drm_resume_early(struct drm_device *dev)
DRM_ERROR("Resume prepare failed: %d, continuing anyway\n",
ret);
+ /*
+ * Mark GuC FW load status as PENDING to avoid any Host to GuC actions
+ * invoked till GuC gets loaded in i915_drm_resume.
+ */
+ guc_fw->guc_fw_load_status = GUC_FIRMWARE_PENDING;
+
intel_uncore_early_sanitize(dev_priv, true);
if (IS_BROXTON(dev_priv)) {
This will help avoid Host to GuC actions being called till GuC gets loaded during i915_drm_resume. v2-v3: Rebase. Signed-off-by: Sagar Arun Kamble <sagar.a.kamble@intel.com> --- drivers/gpu/drm/i915/i915_drv.c | 7 +++++++ 1 file changed, 7 insertions(+)