[PATCH 2/2] drm/i915/gvt: Add GVT suspend/resume routine to i915.
Colin Xu
Colin.Xu at intel.com
Thu May 21 00:50:32 UTC 2020
On 2020-05-21 08:37, Colin Xu wrote:
>
> On 2020-05-18 18:45, Zhenyu Wang wrote:
>> On 2020.05.18 14:28:52 +0800, Colin Xu wrote:
>>> Add GVT suspend/resume routine to i915.
>>> GVT relies on i915 so suspend ahead of other i915 routine, and resume
>>> at last vice versa.
>>>
>>> Signed-off-by: Hang Yuan <hang.yuan at linux.intel.com>
>>> Signed-off-by: Colin Xu <colin.xu at intel.com>
>>> ---
>>> drivers/gpu/drm/i915/i915_drv.c | 15 +++++++++++++++
>>> 1 file changed, 15 insertions(+)
>>>
>>> diff --git a/drivers/gpu/drm/i915/i915_drv.c
>>> b/drivers/gpu/drm/i915/i915_drv.c
>>> index 34ee12f3f02d..c5d7d58df67e 100644
>>> --- a/drivers/gpu/drm/i915/i915_drv.c
>>> +++ b/drivers/gpu/drm/i915/i915_drv.c
>>> @@ -87,6 +87,10 @@
>>> #include "intel_pm.h"
>>> #include "vlv_suspend.h"
>>> +#if IS_ENABLED(CONFIG_DRM_I915_GVT)
>>> +#include "gvt.h"
>>> +#endif
>>> +
>>> static struct drm_driver driver;
>>> static int i915_get_bridge_dev(struct drm_i915_private *dev_priv)
>>> @@ -1177,6 +1181,11 @@ static int i915_drm_suspend(struct drm_device
>>> *dev)
>>> drm_kms_helper_poll_disable(dev);
>>> +#if IS_ENABLED(CONFIG_DRM_I915_GVT)
>>> + if (dev_priv->gvt)
>>> + intel_gvt_pm_suspend(dev_priv->gvt);
>>> +#endif
>>> +
>>> pci_save_state(pdev);
>>> intel_display_suspend(dev);
>>> @@ -1354,6 +1363,12 @@ static int i915_drm_resume(struct drm_device
>>> *dev)
>>> intel_power_domains_enable(dev_priv);
>>> +#if IS_ENABLED(CONFIG_DRM_I915_GVT)
>>> + if (dev_priv->gvt) {
>> intel_gvt_active()
> Almost forgot we have this function can use. Thanks.
>>> + return intel_gvt_pm_resume(dev_priv->gvt);
>>> + }
>>> +#endif
>>> +
>>> enable_rpm_wakeref_asserts(&dev_priv->runtime_pm);
>>>
>> Just wrap this in intel_gvt.c/.h which is i915 gvt host side caller,
>> then
>> i915 code just call intel_gvt_pm_suspend/resume().
>
> It makes the integration more clean.
>
> I'll move the code and update in V2 and include intel-gfx. Thanks.
BTW. Is it necessary to implement pm suspend/resume body in gvt.c
instead of intel_gvt?
i915_drv.c -> intel_gvt.c -> gvt.c
or
i915_drv.c ->intel_gvt.c
Which is better?
Current intel_gvt.c looks only a wrapper code while all implementation
actually in gvt.c.
>
>>> return 0;
>>> --
>>> 2.26.2
>>>
>>> _______________________________________________
>>> intel-gvt-dev mailing list
>>> intel-gvt-dev at lists.freedesktop.org
>>> https://lists.freedesktop.org/mailman/listinfo/intel-gvt-dev
>
--
Best Regards,
Colin Xu
More information about the intel-gvt-dev
mailing list