diff options
Diffstat (limited to 'drivers/gpu/drm/i915/i915_suspend.c')
-rw-r--r-- | drivers/gpu/drm/i915/i915_suspend.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/i915_suspend.c b/drivers/gpu/drm/i915/i915_suspend.c index a088f1f46bdb..98790c7cccb1 100644 --- a/drivers/gpu/drm/i915/i915_suspend.c +++ b/drivers/gpu/drm/i915/i915_suspend.c | |||
@@ -214,6 +214,22 @@ static void i915_save_display(struct drm_device *dev) | |||
214 | dev_priv->regfile.saveBLC_CPU_PWM_CTL2 = I915_READ(BLC_PWM_CPU_CTL2); | 214 | dev_priv->regfile.saveBLC_CPU_PWM_CTL2 = I915_READ(BLC_PWM_CPU_CTL2); |
215 | if (HAS_PCH_IBX(dev) || HAS_PCH_CPT(dev)) | 215 | if (HAS_PCH_IBX(dev) || HAS_PCH_CPT(dev)) |
216 | dev_priv->regfile.saveLVDS = I915_READ(PCH_LVDS); | 216 | dev_priv->regfile.saveLVDS = I915_READ(PCH_LVDS); |
217 | } else if (IS_VALLEYVIEW(dev)) { | ||
218 | dev_priv->regfile.savePP_CONTROL = I915_READ(PP_CONTROL); | ||
219 | dev_priv->regfile.savePFIT_PGM_RATIOS = I915_READ(PFIT_PGM_RATIOS); | ||
220 | |||
221 | dev_priv->regfile.saveBLC_PWM_CTL = | ||
222 | I915_READ(VLV_BLC_PWM_CTL(PIPE_A)); | ||
223 | dev_priv->regfile.saveBLC_HIST_CTL = | ||
224 | I915_READ(VLV_BLC_HIST_CTL(PIPE_A)); | ||
225 | dev_priv->regfile.saveBLC_PWM_CTL2 = | ||
226 | I915_READ(VLV_BLC_PWM_CTL2(PIPE_A)); | ||
227 | dev_priv->regfile.saveBLC_PWM_CTL_B = | ||
228 | I915_READ(VLV_BLC_PWM_CTL(PIPE_B)); | ||
229 | dev_priv->regfile.saveBLC_HIST_CTL_B = | ||
230 | I915_READ(VLV_BLC_HIST_CTL(PIPE_B)); | ||
231 | dev_priv->regfile.saveBLC_PWM_CTL2_B = | ||
232 | I915_READ(VLV_BLC_PWM_CTL2(PIPE_B)); | ||
217 | } else { | 233 | } else { |
218 | dev_priv->regfile.savePP_CONTROL = I915_READ(PP_CONTROL); | 234 | dev_priv->regfile.savePP_CONTROL = I915_READ(PP_CONTROL); |
219 | dev_priv->regfile.savePFIT_PGM_RATIOS = I915_READ(PFIT_PGM_RATIOS); | 235 | dev_priv->regfile.savePFIT_PGM_RATIOS = I915_READ(PFIT_PGM_RATIOS); |
@@ -302,6 +318,19 @@ static void i915_restore_display(struct drm_device *dev) | |||
302 | I915_WRITE(PCH_PP_CONTROL, dev_priv->regfile.savePP_CONTROL); | 318 | I915_WRITE(PCH_PP_CONTROL, dev_priv->regfile.savePP_CONTROL); |
303 | I915_WRITE(RSTDBYCTL, | 319 | I915_WRITE(RSTDBYCTL, |
304 | dev_priv->regfile.saveMCHBAR_RENDER_STANDBY); | 320 | dev_priv->regfile.saveMCHBAR_RENDER_STANDBY); |
321 | } else if (IS_VALLEYVIEW(dev)) { | ||
322 | I915_WRITE(VLV_BLC_PWM_CTL(PIPE_A), | ||
323 | dev_priv->regfile.saveBLC_PWM_CTL); | ||
324 | I915_WRITE(VLV_BLC_HIST_CTL(PIPE_A), | ||
325 | dev_priv->regfile.saveBLC_HIST_CTL); | ||
326 | I915_WRITE(VLV_BLC_PWM_CTL2(PIPE_A), | ||
327 | dev_priv->regfile.saveBLC_PWM_CTL2); | ||
328 | I915_WRITE(VLV_BLC_PWM_CTL(PIPE_B), | ||
329 | dev_priv->regfile.saveBLC_PWM_CTL); | ||
330 | I915_WRITE(VLV_BLC_HIST_CTL(PIPE_B), | ||
331 | dev_priv->regfile.saveBLC_HIST_CTL); | ||
332 | I915_WRITE(VLV_BLC_PWM_CTL2(PIPE_B), | ||
333 | dev_priv->regfile.saveBLC_PWM_CTL2); | ||
305 | } else { | 334 | } else { |
306 | I915_WRITE(PFIT_PGM_RATIOS, dev_priv->regfile.savePFIT_PGM_RATIOS); | 335 | I915_WRITE(PFIT_PGM_RATIOS, dev_priv->regfile.savePFIT_PGM_RATIOS); |
307 | I915_WRITE(BLC_PWM_CTL, dev_priv->regfile.saveBLC_PWM_CTL); | 336 | I915_WRITE(BLC_PWM_CTL, dev_priv->regfile.saveBLC_PWM_CTL); |