Re: [PATCH v10 3/9] drm/i915: Create uC runtime and system suspend/resume helpers

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On 9/28/2017 5:15 PM, Chris Wilson wrote:
Quoting Sagar Arun Kamble (2017-09-27 10:30:33)
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index 174a7c5..f79646b 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -1698,6 +1698,16 @@ static int i915_drm_resume(struct drm_device *dev)
        }
        mutex_unlock(&dev->struct_mutex);
 
+       /*
+        * NB: Currently we know that at the end of suspend we have done Full
+        * GPU reset, Hence GuC is loaded again during i915_gem_init_hw.
+        * Now, send action to GuC to resume back again as earlier call to
+        * intel_uc_resume from i915_gem_resume would have done nothing.
+        */
When you say "GuC is loaded again during i915_gem_init_hw" are you
thinking of the i915_reset call or i915_drm_resume call? We are using
intel_gpu_reset() to do the full device reset at suspend/resume, so
bypassing the i915_gem_init_hw from i915_reset. Could you clarify what
you mean by "hence"?
-Chris

Hi Chris,
 
I've updated the comments in the latest revision.
Please review v12 patches from https://patchwork.freedesktop.org/series/30802/.
Sorry I have pushed few more revisions in past few days as one of the igt fail due to patch change was not caught by trybot.
 
From Latest patch:
@@ -1698,6 +1698,18 @@  static int i915_drm_resume(struct drm_device *dev)
               }
               mutex_unlock(&dev->struct_mutex);
 
+             /*
+             * FIXME: Currently we know that at the end of suspend we have done Full
+             * GPU reset and GuC is loaded again during i915_gem_init_hw.
+             * Now, send action to GuC to resume back again as earlier call to
+             * intel_uc_resume from i915_gem_resume would have done nothing.
+             * This needs to be skipped if GuC was not loaded during resume as
+             * intel_uc_resume would have been already called from i915_gem_resume.
+             */
+             ret = intel_uc_resume(dev_priv);
+             if (ret)
+                            i915_gem_set_wedged(dev_priv);
+
             

I referred to intel_gpu_reset from i915_gem_suspend here.

Thanks
Sagar

    

_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux