aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/drm/i915/i915_suspend.c29
-rw-r--r--drivers/gpu/drm/i915/i915_ums.c24
2 files changed, 25 insertions, 28 deletions
diff --git a/drivers/gpu/drm/i915/i915_suspend.c b/drivers/gpu/drm/i915/i915_suspend.c
index 3b9baea9a4c2..3911e0450bbe 100644
--- a/drivers/gpu/drm/i915/i915_suspend.c
+++ b/drivers/gpu/drm/i915/i915_suspend.c
@@ -240,24 +240,6 @@ static void i915_save_display(struct drm_device *dev)
240 dev_priv->regfile.savePP_DIVISOR = I915_READ(PP_DIVISOR); 240 dev_priv->regfile.savePP_DIVISOR = I915_READ(PP_DIVISOR);
241 } 241 }
242 242
243 if (!drm_core_check_feature(dev, DRIVER_MODESET)) {
244 /* Display Port state */
245 if (SUPPORTS_INTEGRATED_DP(dev)) {
246 dev_priv->regfile.saveDP_B = I915_READ(DP_B);
247 dev_priv->regfile.saveDP_C = I915_READ(DP_C);
248 dev_priv->regfile.saveDP_D = I915_READ(DP_D);
249 dev_priv->regfile.savePIPEA_GMCH_DATA_M = I915_READ(_PIPEA_GMCH_DATA_M);
250 dev_priv->regfile.savePIPEB_GMCH_DATA_M = I915_READ(_PIPEB_GMCH_DATA_M);
251 dev_priv->regfile.savePIPEA_GMCH_DATA_N = I915_READ(_PIPEA_GMCH_DATA_N);
252 dev_priv->regfile.savePIPEB_GMCH_DATA_N = I915_READ(_PIPEB_GMCH_DATA_N);
253 dev_priv->regfile.savePIPEA_DP_LINK_M = I915_READ(_PIPEA_DP_LINK_M);
254 dev_priv->regfile.savePIPEB_DP_LINK_M = I915_READ(_PIPEB_DP_LINK_M);
255 dev_priv->regfile.savePIPEA_DP_LINK_N = I915_READ(_PIPEA_DP_LINK_N);
256 dev_priv->regfile.savePIPEB_DP_LINK_N = I915_READ(_PIPEB_DP_LINK_N);
257 }
258 /* FIXME: regfile.save TV & SDVO state */
259 }
260
261 /* Only regfile.save FBC state on the platform that supports FBC */ 243 /* Only regfile.save FBC state on the platform that supports FBC */
262 if (I915_HAS_FBC(dev)) { 244 if (I915_HAS_FBC(dev)) {
263 if (HAS_PCH_SPLIT(dev)) { 245 if (HAS_PCH_SPLIT(dev)) {
@@ -323,16 +305,6 @@ static void i915_restore_display(struct drm_device *dev)
323 I915_WRITE(PP_CONTROL, dev_priv->regfile.savePP_CONTROL); 305 I915_WRITE(PP_CONTROL, dev_priv->regfile.savePP_CONTROL);
324 } 306 }
325 307
326 if (!drm_core_check_feature(dev, DRIVER_MODESET)) {
327 /* Display Port state */
328 if (SUPPORTS_INTEGRATED_DP(dev)) {
329 I915_WRITE(DP_B, dev_priv->regfile.saveDP_B);
330 I915_WRITE(DP_C, dev_priv->regfile.saveDP_C);
331 I915_WRITE(DP_D, dev_priv->regfile.saveDP_D);
332 }
333 /* FIXME: restore TV & SDVO state */
334 }
335
336 /* only restore FBC info on the platform that supports FBC*/ 308 /* only restore FBC info on the platform that supports FBC*/
337 intel_disable_fbc(dev); 309 intel_disable_fbc(dev);
338 if (I915_HAS_FBC(dev)) { 310 if (I915_HAS_FBC(dev)) {
@@ -347,6 +319,7 @@ static void i915_restore_display(struct drm_device *dev)
347 I915_WRITE(FBC_CONTROL, dev_priv->regfile.saveFBC_CONTROL); 319 I915_WRITE(FBC_CONTROL, dev_priv->regfile.saveFBC_CONTROL);
348 } 320 }
349 } 321 }
322
350 if (!drm_core_check_feature(dev, DRIVER_MODESET)) 323 if (!drm_core_check_feature(dev, DRIVER_MODESET))
351 i915_restore_vga(dev); 324 i915_restore_vga(dev);
352 else 325 else
diff --git a/drivers/gpu/drm/i915/i915_ums.c b/drivers/gpu/drm/i915/i915_ums.c
index 359c77b7b1b2..985a09716237 100644
--- a/drivers/gpu/drm/i915/i915_ums.c
+++ b/drivers/gpu/drm/i915/i915_ums.c
@@ -254,6 +254,22 @@ void i915_save_display_reg(struct drm_device *dev)
254 else 254 else
255 dev_priv->regfile.saveADPA = I915_READ(ADPA); 255 dev_priv->regfile.saveADPA = I915_READ(ADPA);
256 256
257 /* Display Port state */
258 if (SUPPORTS_INTEGRATED_DP(dev)) {
259 dev_priv->regfile.saveDP_B = I915_READ(DP_B);
260 dev_priv->regfile.saveDP_C = I915_READ(DP_C);
261 dev_priv->regfile.saveDP_D = I915_READ(DP_D);
262 dev_priv->regfile.savePIPEA_GMCH_DATA_M = I915_READ(_PIPEA_GMCH_DATA_M);
263 dev_priv->regfile.savePIPEB_GMCH_DATA_M = I915_READ(_PIPEB_GMCH_DATA_M);
264 dev_priv->regfile.savePIPEA_GMCH_DATA_N = I915_READ(_PIPEA_GMCH_DATA_N);
265 dev_priv->regfile.savePIPEB_GMCH_DATA_N = I915_READ(_PIPEB_GMCH_DATA_N);
266 dev_priv->regfile.savePIPEA_DP_LINK_M = I915_READ(_PIPEA_DP_LINK_M);
267 dev_priv->regfile.savePIPEB_DP_LINK_M = I915_READ(_PIPEB_DP_LINK_M);
268 dev_priv->regfile.savePIPEA_DP_LINK_N = I915_READ(_PIPEA_DP_LINK_N);
269 dev_priv->regfile.savePIPEB_DP_LINK_N = I915_READ(_PIPEB_DP_LINK_N);
270 }
271 /* FIXME: regfile.save TV & SDVO state */
272
257 return; 273 return;
258} 274}
259 275
@@ -475,5 +491,13 @@ void i915_restore_display_reg(struct drm_device *dev)
475 else 491 else
476 I915_WRITE(ADPA, dev_priv->regfile.saveADPA); 492 I915_WRITE(ADPA, dev_priv->regfile.saveADPA);
477 493
494 /* Display Port state */
495 if (SUPPORTS_INTEGRATED_DP(dev)) {
496 I915_WRITE(DP_B, dev_priv->regfile.saveDP_B);
497 I915_WRITE(DP_C, dev_priv->regfile.saveDP_C);
498 I915_WRITE(DP_D, dev_priv->regfile.saveDP_D);
499 }
500 /* FIXME: restore TV & SDVO state */
501
478 return; 502 return;
479} 503}