diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h index 2506592..6b0ae60 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h @@ -199,6 +199,8 @@ typedef struct drm_i915_private { u32 saveDSPACNTR; u32 saveDSPBCNTR; u32 saveDSPARB; + u32 saveFW_BLC; + u32 saveFW_BLC_SELF; u32 saveRENDERSTANDBY; u32 saveHWS; u32 savePIPEACONF; diff --git a/drivers/gpu/drm/i915/i915_suspend.c b/drivers/gpu/drm/i915/i915_suspend.c index d669cc2..0705dc9 100644 --- a/drivers/gpu/drm/i915/i915_suspend.c +++ b/drivers/gpu/drm/i915/i915_suspend.c @@ -239,6 +239,10 @@ int i915_save_state(struct drm_device *dev) /* Display arbitration control */ dev_priv->saveDSPARB = I915_READ(DSPARB); + /* FIFO watermarks */ + dev_priv->saveFW_BLC = I915_READ(FW_BLC); + dev_priv->saveFW_BLC_SELF = I915_READ(FW_BLC_SELF); + /* Pipe & plane A info */ dev_priv->savePIPEACONF = I915_READ(PIPEACONF); dev_priv->savePIPEASRC = I915_READ(PIPEASRC); @@ -371,6 +375,10 @@ int i915_restore_state(struct drm_device *dev) /* Display arbitration */ I915_WRITE(DSPARB, dev_priv->saveDSPARB); + /* FIFO watermarks */ + I915_WRITE(FW_BLC, dev_priv->saveFW_BLC); + I915_WRITE(FW_BLC_SELF, dev_priv->saveFW_BLC_SELF); + /* Pipe & plane A info */ /* Prime the clock */ if (dev_priv->saveDPLL_A & DPLL_VCO_ENABLE) {