diff mbox series

[v5,2/2] drm/i915/gvt: Add GVT suspend/resume routine to i915

Message ID 20201016081353.376670-1-colin.xu@intel.com (mailing list archive)
State New, archived
Headers show
Series Enable GVT suspend/resume | expand

Commit Message

Colin Xu Oct. 16, 2020, 8:13 a.m. UTC
This patch add gvt suspend/resume wrapper into i915: i915_drm_suspend()
and i915_drm_resume(). GVT relies on i915 so suspend gvt ahead of other
i915 sub-routine and resume gvt at last.

V2:
- Direct call into gvt suspend/resume wrapper in intel_gvt.h/intel_gvt.c.
The wrapper and implementation will check and call gvt routine. (zhenyu)

V3:
Refresh.

V4:
Rebase.

V5:
Fail intel_gvt_suspend() if fail to save GGTT.

Signed-off-by: Hang Yuan <hang.yuan@linux.intel.com>
Signed-off-by: Colin Xu <colin.xu@intel.com>
---
 drivers/gpu/drm/i915/i915_drv.c | 5 +++++
 1 file changed, 5 insertions(+)

Comments

Colin Xu Oct. 16, 2020, 8:17 a.m. UTC | #1
On 2020-10-16 16:13, Colin Xu wrote:
> This patch add gvt suspend/resume wrapper into i915: i915_drm_suspend()
> and i915_drm_resume(). GVT relies on i915 so suspend gvt ahead of other
> i915 sub-routine and resume gvt at last.
>
> V2:
> - Direct call into gvt suspend/resume wrapper in intel_gvt.h/intel_gvt.c.
> The wrapper and implementation will check and call gvt routine. (zhenyu)
>
> V3:
> Refresh.
>
> V4:
> Rebase.
>
> V5:
> Fail intel_gvt_suspend() if fail to save GGTT.
>
> Signed-off-by: Hang Yuan <hang.yuan@linux.intel.com>
> Signed-off-by: Colin Xu <colin.xu@intel.com>
> ---
>   drivers/gpu/drm/i915/i915_drv.c | 5 +++++
>   1 file changed, 5 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
> index 8bb7e2dcfaaa..b3203292b0ee 100644
> --- a/drivers/gpu/drm/i915/i915_drv.c
> +++ b/drivers/gpu/drm/i915/i915_drv.c
> @@ -1104,6 +1104,9 @@ static int i915_drm_suspend(struct drm_device *dev)
>   
>   	drm_kms_helper_poll_disable(dev);
>   
> +	if (intel_gvt_suspend(dev_priv))
> +		drm_err(&dev_priv->drm, "failed to suspend GVT\n");
I'm not quite sure if it's OK to fail i915_drm_suspend() here if 
intel_gvt_suspend() fails. I saw intel_display_suspend() may also return 
failure but i915_drm_suspend() doesn't handle such case so I just follow 
the style for intel_gvt_suspend().
> +
>   	pci_save_state(pdev);
>   
>   	intel_display_suspend(dev);
> @@ -1281,6 +1284,8 @@ static int i915_drm_resume(struct drm_device *dev)
>   
>   	intel_power_domains_enable(dev_priv);
>   
> +	intel_gvt_resume(dev_priv);
> +
>   	enable_rpm_wakeref_asserts(&dev_priv->runtime_pm);
>   
>   	return 0;
diff mbox series

Patch

diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index 8bb7e2dcfaaa..b3203292b0ee 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -1104,6 +1104,9 @@  static int i915_drm_suspend(struct drm_device *dev)
 
 	drm_kms_helper_poll_disable(dev);
 
+	if (intel_gvt_suspend(dev_priv))
+		drm_err(&dev_priv->drm, "failed to suspend GVT\n");
+
 	pci_save_state(pdev);
 
 	intel_display_suspend(dev);
@@ -1281,6 +1284,8 @@  static int i915_drm_resume(struct drm_device *dev)
 
 	intel_power_domains_enable(dev_priv);
 
+	intel_gvt_resume(dev_priv);
+
 	enable_rpm_wakeref_asserts(&dev_priv->runtime_pm);
 
 	return 0;