diff mbox

[v3,12/13] drm/i915/gen9: flush DMC fw loading work during system suspend

Message ID 1446069547-24760-13-git-send-email-imre.deak@intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Imre Deak Oct. 28, 2015, 9:59 p.m. UTC
Currently during system s/r we enable/disable DC6, so before we do so
make sure that the firmware loading is complete.

Note that whether we need to enable DC6 for S3/S4 is still open.  At
least the firmware program is lost during S3 and we need to reprogram it
after resuming. Until this is clarified we keep the current behavior and
enable/disable DC6.

Signed-off-by: Imre Deak <imre.deak@intel.com>
---
 drivers/gpu/drm/i915/i915_drv.c | 3 +++
 1 file changed, 3 insertions(+)

Comments

Animesh Manna Oct. 29, 2015, 9:05 a.m. UTC | #1
On 10/29/2015 3:29 AM, Imre Deak wrote:
> Currently during system s/r we enable/disable DC6, so before we do so
> make sure that the firmware loading is complete.
>
> Note that whether we need to enable DC6 for S3/S4 is still open.  At
> least the firmware program is lost during S3 and we need to reprogram it
> after resuming. Until this is clarified we keep the current behavior and
> enable/disable DC6.
>
> Signed-off-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: Animesh Manna <animesh.manna@intel.com>
> ---
>   drivers/gpu/drm/i915/i915_drv.c | 3 +++
>   1 file changed, 3 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
> index 96650ed..6de2287 100644
> --- a/drivers/gpu/drm/i915/i915_drv.c
> +++ b/drivers/gpu/drm/i915/i915_drv.c
> @@ -656,6 +656,9 @@ static int i915_drm_suspend(struct drm_device *dev)
>   
>   	intel_display_set_init_power(dev_priv, false);
>   
> +	if (HAS_CSR(dev_priv))
> +		flush_work(&dev_priv->csr.work);
> +
>   	return 0;
>   }
>
diff mbox

Patch

diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index 96650ed..6de2287 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -656,6 +656,9 @@  static int i915_drm_suspend(struct drm_device *dev)
 
 	intel_display_set_init_power(dev_priv, false);
 
+	if (HAS_CSR(dev_priv))
+		flush_work(&dev_priv->csr.work);
+
 	return 0;
 }