diff options
author | Dave Airlie <airlied@redhat.com> | 2009-12-07 23:03:47 -0500 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2009-12-07 23:03:47 -0500 |
commit | 3ff99164f67aae78a2bd2313f65ad55bddb1ffea (patch) | |
tree | d6bba03616d1be6ab9e6d9e92641a6f4047e1e15 /drivers/gpu/drm/i915/i915_suspend.c | |
parent | 1bd049fa895f9c6743f38b52ce14775f5a31ea63 (diff) | |
parent | f2b115e69d46344ae7afcaad5823496d2a0d8650 (diff) |
Merge remote branch 'anholt/drm-intel-next' into drm-linus
This merges the upstream Intel tree and fixes up numerous conflicts
due to patches merged into Linus tree later in -rc cycle.
Conflicts:
drivers/char/agp/intel-agp.c
drivers/gpu/drm/drm_dp_i2c_helper.c
drivers/gpu/drm/i915/i915_irq.c
drivers/gpu/drm/i915/i915_suspend.c
Diffstat (limited to 'drivers/gpu/drm/i915/i915_suspend.c')
-rw-r--r-- | drivers/gpu/drm/i915/i915_suspend.c | 79 |
1 files changed, 43 insertions, 36 deletions
diff --git a/drivers/gpu/drm/i915/i915_suspend.c b/drivers/gpu/drm/i915/i915_suspend.c index 6eec8171a44e..ab35e81b7cbf 100644 --- a/drivers/gpu/drm/i915/i915_suspend.c +++ b/drivers/gpu/drm/i915/i915_suspend.c | |||
@@ -27,14 +27,14 @@ | |||
27 | #include "drmP.h" | 27 | #include "drmP.h" |
28 | #include "drm.h" | 28 | #include "drm.h" |
29 | #include "i915_drm.h" | 29 | #include "i915_drm.h" |
30 | #include "i915_drv.h" | 30 | #include "intel_drv.h" |
31 | 31 | ||
32 | static bool i915_pipe_enabled(struct drm_device *dev, enum pipe pipe) | 32 | static bool i915_pipe_enabled(struct drm_device *dev, enum pipe pipe) |
33 | { | 33 | { |
34 | struct drm_i915_private *dev_priv = dev->dev_private; | 34 | struct drm_i915_private *dev_priv = dev->dev_private; |
35 | u32 dpll_reg; | 35 | u32 dpll_reg; |
36 | 36 | ||
37 | if (IS_IGDNG(dev)) { | 37 | if (IS_IRONLAKE(dev)) { |
38 | dpll_reg = (pipe == PIPE_A) ? PCH_DPLL_A: PCH_DPLL_B; | 38 | dpll_reg = (pipe == PIPE_A) ? PCH_DPLL_A: PCH_DPLL_B; |
39 | } else { | 39 | } else { |
40 | dpll_reg = (pipe == PIPE_A) ? DPLL_A: DPLL_B; | 40 | dpll_reg = (pipe == PIPE_A) ? DPLL_A: DPLL_B; |
@@ -53,7 +53,7 @@ static void i915_save_palette(struct drm_device *dev, enum pipe pipe) | |||
53 | if (!i915_pipe_enabled(dev, pipe)) | 53 | if (!i915_pipe_enabled(dev, pipe)) |
54 | return; | 54 | return; |
55 | 55 | ||
56 | if (IS_IGDNG(dev)) | 56 | if (IS_IRONLAKE(dev)) |
57 | reg = (pipe == PIPE_A) ? LGC_PALETTE_A : LGC_PALETTE_B; | 57 | reg = (pipe == PIPE_A) ? LGC_PALETTE_A : LGC_PALETTE_B; |
58 | 58 | ||
59 | if (pipe == PIPE_A) | 59 | if (pipe == PIPE_A) |
@@ -75,7 +75,7 @@ static void i915_restore_palette(struct drm_device *dev, enum pipe pipe) | |||
75 | if (!i915_pipe_enabled(dev, pipe)) | 75 | if (!i915_pipe_enabled(dev, pipe)) |
76 | return; | 76 | return; |
77 | 77 | ||
78 | if (IS_IGDNG(dev)) | 78 | if (IS_IRONLAKE(dev)) |
79 | reg = (pipe == PIPE_A) ? LGC_PALETTE_A : LGC_PALETTE_B; | 79 | reg = (pipe == PIPE_A) ? LGC_PALETTE_A : LGC_PALETTE_B; |
80 | 80 | ||
81 | if (pipe == PIPE_A) | 81 | if (pipe == PIPE_A) |
@@ -239,7 +239,7 @@ static void i915_save_modeset_reg(struct drm_device *dev) | |||
239 | if (drm_core_check_feature(dev, DRIVER_MODESET)) | 239 | if (drm_core_check_feature(dev, DRIVER_MODESET)) |
240 | return; | 240 | return; |
241 | 241 | ||
242 | if (IS_IGDNG(dev)) { | 242 | if (IS_IRONLAKE(dev)) { |
243 | dev_priv->savePCH_DREF_CONTROL = I915_READ(PCH_DREF_CONTROL); | 243 | dev_priv->savePCH_DREF_CONTROL = I915_READ(PCH_DREF_CONTROL); |
244 | dev_priv->saveDISP_ARB_CTL = I915_READ(DISP_ARB_CTL); | 244 | dev_priv->saveDISP_ARB_CTL = I915_READ(DISP_ARB_CTL); |
245 | } | 245 | } |
@@ -247,7 +247,7 @@ static void i915_save_modeset_reg(struct drm_device *dev) | |||
247 | /* Pipe & plane A info */ | 247 | /* Pipe & plane A info */ |
248 | dev_priv->savePIPEACONF = I915_READ(PIPEACONF); | 248 | dev_priv->savePIPEACONF = I915_READ(PIPEACONF); |
249 | dev_priv->savePIPEASRC = I915_READ(PIPEASRC); | 249 | dev_priv->savePIPEASRC = I915_READ(PIPEASRC); |
250 | if (IS_IGDNG(dev)) { | 250 | if (IS_IRONLAKE(dev)) { |
251 | dev_priv->saveFPA0 = I915_READ(PCH_FPA0); | 251 | dev_priv->saveFPA0 = I915_READ(PCH_FPA0); |
252 | dev_priv->saveFPA1 = I915_READ(PCH_FPA1); | 252 | dev_priv->saveFPA1 = I915_READ(PCH_FPA1); |
253 | dev_priv->saveDPLL_A = I915_READ(PCH_DPLL_A); | 253 | dev_priv->saveDPLL_A = I915_READ(PCH_DPLL_A); |
@@ -256,7 +256,7 @@ static void i915_save_modeset_reg(struct drm_device *dev) | |||
256 | dev_priv->saveFPA1 = I915_READ(FPA1); | 256 | dev_priv->saveFPA1 = I915_READ(FPA1); |
257 | dev_priv->saveDPLL_A = I915_READ(DPLL_A); | 257 | dev_priv->saveDPLL_A = I915_READ(DPLL_A); |
258 | } | 258 | } |
259 | if (IS_I965G(dev) && !IS_IGDNG(dev)) | 259 | if (IS_I965G(dev) && !IS_IRONLAKE(dev)) |
260 | dev_priv->saveDPLL_A_MD = I915_READ(DPLL_A_MD); | 260 | dev_priv->saveDPLL_A_MD = I915_READ(DPLL_A_MD); |
261 | dev_priv->saveHTOTAL_A = I915_READ(HTOTAL_A); | 261 | dev_priv->saveHTOTAL_A = I915_READ(HTOTAL_A); |
262 | dev_priv->saveHBLANK_A = I915_READ(HBLANK_A); | 262 | dev_priv->saveHBLANK_A = I915_READ(HBLANK_A); |
@@ -264,10 +264,10 @@ static void i915_save_modeset_reg(struct drm_device *dev) | |||
264 | dev_priv->saveVTOTAL_A = I915_READ(VTOTAL_A); | 264 | dev_priv->saveVTOTAL_A = I915_READ(VTOTAL_A); |
265 | dev_priv->saveVBLANK_A = I915_READ(VBLANK_A); | 265 | dev_priv->saveVBLANK_A = I915_READ(VBLANK_A); |
266 | dev_priv->saveVSYNC_A = I915_READ(VSYNC_A); | 266 | dev_priv->saveVSYNC_A = I915_READ(VSYNC_A); |
267 | if (!IS_IGDNG(dev)) | 267 | if (!IS_IRONLAKE(dev)) |
268 | dev_priv->saveBCLRPAT_A = I915_READ(BCLRPAT_A); | 268 | dev_priv->saveBCLRPAT_A = I915_READ(BCLRPAT_A); |
269 | 269 | ||
270 | if (IS_IGDNG(dev)) { | 270 | if (IS_IRONLAKE(dev)) { |
271 | dev_priv->savePIPEA_DATA_M1 = I915_READ(PIPEA_DATA_M1); | 271 | dev_priv->savePIPEA_DATA_M1 = I915_READ(PIPEA_DATA_M1); |
272 | dev_priv->savePIPEA_DATA_N1 = I915_READ(PIPEA_DATA_N1); | 272 | dev_priv->savePIPEA_DATA_N1 = I915_READ(PIPEA_DATA_N1); |
273 | dev_priv->savePIPEA_LINK_M1 = I915_READ(PIPEA_LINK_M1); | 273 | dev_priv->savePIPEA_LINK_M1 = I915_READ(PIPEA_LINK_M1); |
@@ -304,7 +304,7 @@ static void i915_save_modeset_reg(struct drm_device *dev) | |||
304 | /* Pipe & plane B info */ | 304 | /* Pipe & plane B info */ |
305 | dev_priv->savePIPEBCONF = I915_READ(PIPEBCONF); | 305 | dev_priv->savePIPEBCONF = I915_READ(PIPEBCONF); |
306 | dev_priv->savePIPEBSRC = I915_READ(PIPEBSRC); | 306 | dev_priv->savePIPEBSRC = I915_READ(PIPEBSRC); |
307 | if (IS_IGDNG(dev)) { | 307 | if (IS_IRONLAKE(dev)) { |
308 | dev_priv->saveFPB0 = I915_READ(PCH_FPB0); | 308 | dev_priv->saveFPB0 = I915_READ(PCH_FPB0); |
309 | dev_priv->saveFPB1 = I915_READ(PCH_FPB1); | 309 | dev_priv->saveFPB1 = I915_READ(PCH_FPB1); |
310 | dev_priv->saveDPLL_B = I915_READ(PCH_DPLL_B); | 310 | dev_priv->saveDPLL_B = I915_READ(PCH_DPLL_B); |
@@ -313,7 +313,7 @@ static void i915_save_modeset_reg(struct drm_device *dev) | |||
313 | dev_priv->saveFPB1 = I915_READ(FPB1); | 313 | dev_priv->saveFPB1 = I915_READ(FPB1); |
314 | dev_priv->saveDPLL_B = I915_READ(DPLL_B); | 314 | dev_priv->saveDPLL_B = I915_READ(DPLL_B); |
315 | } | 315 | } |
316 | if (IS_I965G(dev) && !IS_IGDNG(dev)) | 316 | if (IS_I965G(dev) && !IS_IRONLAKE(dev)) |
317 | dev_priv->saveDPLL_B_MD = I915_READ(DPLL_B_MD); | 317 | dev_priv->saveDPLL_B_MD = I915_READ(DPLL_B_MD); |
318 | dev_priv->saveHTOTAL_B = I915_READ(HTOTAL_B); | 318 | dev_priv->saveHTOTAL_B = I915_READ(HTOTAL_B); |
319 | dev_priv->saveHBLANK_B = I915_READ(HBLANK_B); | 319 | dev_priv->saveHBLANK_B = I915_READ(HBLANK_B); |
@@ -321,10 +321,10 @@ static void i915_save_modeset_reg(struct drm_device *dev) | |||
321 | dev_priv->saveVTOTAL_B = I915_READ(VTOTAL_B); | 321 | dev_priv->saveVTOTAL_B = I915_READ(VTOTAL_B); |
322 | dev_priv->saveVBLANK_B = I915_READ(VBLANK_B); | 322 | dev_priv->saveVBLANK_B = I915_READ(VBLANK_B); |
323 | dev_priv->saveVSYNC_B = I915_READ(VSYNC_B); | 323 | dev_priv->saveVSYNC_B = I915_READ(VSYNC_B); |
324 | if (!IS_IGDNG(dev)) | 324 | if (!IS_IRONLAKE(dev)) |
325 | dev_priv->saveBCLRPAT_B = I915_READ(BCLRPAT_B); | 325 | dev_priv->saveBCLRPAT_B = I915_READ(BCLRPAT_B); |
326 | 326 | ||
327 | if (IS_IGDNG(dev)) { | 327 | if (IS_IRONLAKE(dev)) { |
328 | dev_priv->savePIPEB_DATA_M1 = I915_READ(PIPEB_DATA_M1); | 328 | dev_priv->savePIPEB_DATA_M1 = I915_READ(PIPEB_DATA_M1); |
329 | dev_priv->savePIPEB_DATA_N1 = I915_READ(PIPEB_DATA_N1); | 329 | dev_priv->savePIPEB_DATA_N1 = I915_READ(PIPEB_DATA_N1); |
330 | dev_priv->savePIPEB_LINK_M1 = I915_READ(PIPEB_LINK_M1); | 330 | dev_priv->savePIPEB_LINK_M1 = I915_READ(PIPEB_LINK_M1); |
@@ -369,7 +369,7 @@ static void i915_restore_modeset_reg(struct drm_device *dev) | |||
369 | if (drm_core_check_feature(dev, DRIVER_MODESET)) | 369 | if (drm_core_check_feature(dev, DRIVER_MODESET)) |
370 | return; | 370 | return; |
371 | 371 | ||
372 | if (IS_IGDNG(dev)) { | 372 | if (IS_IRONLAKE(dev)) { |
373 | dpll_a_reg = PCH_DPLL_A; | 373 | dpll_a_reg = PCH_DPLL_A; |
374 | dpll_b_reg = PCH_DPLL_B; | 374 | dpll_b_reg = PCH_DPLL_B; |
375 | fpa0_reg = PCH_FPA0; | 375 | fpa0_reg = PCH_FPA0; |
@@ -385,7 +385,7 @@ static void i915_restore_modeset_reg(struct drm_device *dev) | |||
385 | fpb1_reg = FPB1; | 385 | fpb1_reg = FPB1; |
386 | } | 386 | } |
387 | 387 | ||
388 | if (IS_IGDNG(dev)) { | 388 | if (IS_IRONLAKE(dev)) { |
389 | I915_WRITE(PCH_DREF_CONTROL, dev_priv->savePCH_DREF_CONTROL); | 389 | I915_WRITE(PCH_DREF_CONTROL, dev_priv->savePCH_DREF_CONTROL); |
390 | I915_WRITE(DISP_ARB_CTL, dev_priv->saveDISP_ARB_CTL); | 390 | I915_WRITE(DISP_ARB_CTL, dev_priv->saveDISP_ARB_CTL); |
391 | } | 391 | } |
@@ -402,7 +402,7 @@ static void i915_restore_modeset_reg(struct drm_device *dev) | |||
402 | /* Actually enable it */ | 402 | /* Actually enable it */ |
403 | I915_WRITE(dpll_a_reg, dev_priv->saveDPLL_A); | 403 | I915_WRITE(dpll_a_reg, dev_priv->saveDPLL_A); |
404 | DRM_UDELAY(150); | 404 | DRM_UDELAY(150); |
405 | if (IS_I965G(dev) && !IS_IGDNG(dev)) | 405 | if (IS_I965G(dev) && !IS_IRONLAKE(dev)) |
406 | I915_WRITE(DPLL_A_MD, dev_priv->saveDPLL_A_MD); | 406 | I915_WRITE(DPLL_A_MD, dev_priv->saveDPLL_A_MD); |
407 | DRM_UDELAY(150); | 407 | DRM_UDELAY(150); |
408 | 408 | ||
@@ -413,10 +413,10 @@ static void i915_restore_modeset_reg(struct drm_device *dev) | |||
413 | I915_WRITE(VTOTAL_A, dev_priv->saveVTOTAL_A); | 413 | I915_WRITE(VTOTAL_A, dev_priv->saveVTOTAL_A); |
414 | I915_WRITE(VBLANK_A, dev_priv->saveVBLANK_A); | 414 | I915_WRITE(VBLANK_A, dev_priv->saveVBLANK_A); |
415 | I915_WRITE(VSYNC_A, dev_priv->saveVSYNC_A); | 415 | I915_WRITE(VSYNC_A, dev_priv->saveVSYNC_A); |
416 | if (!IS_IGDNG(dev)) | 416 | if (!IS_IRONLAKE(dev)) |
417 | I915_WRITE(BCLRPAT_A, dev_priv->saveBCLRPAT_A); | 417 | I915_WRITE(BCLRPAT_A, dev_priv->saveBCLRPAT_A); |
418 | 418 | ||
419 | if (IS_IGDNG(dev)) { | 419 | if (IS_IRONLAKE(dev)) { |
420 | I915_WRITE(PIPEA_DATA_M1, dev_priv->savePIPEA_DATA_M1); | 420 | I915_WRITE(PIPEA_DATA_M1, dev_priv->savePIPEA_DATA_M1); |
421 | I915_WRITE(PIPEA_DATA_N1, dev_priv->savePIPEA_DATA_N1); | 421 | I915_WRITE(PIPEA_DATA_N1, dev_priv->savePIPEA_DATA_N1); |
422 | I915_WRITE(PIPEA_LINK_M1, dev_priv->savePIPEA_LINK_M1); | 422 | I915_WRITE(PIPEA_LINK_M1, dev_priv->savePIPEA_LINK_M1); |
@@ -467,7 +467,7 @@ static void i915_restore_modeset_reg(struct drm_device *dev) | |||
467 | /* Actually enable it */ | 467 | /* Actually enable it */ |
468 | I915_WRITE(dpll_b_reg, dev_priv->saveDPLL_B); | 468 | I915_WRITE(dpll_b_reg, dev_priv->saveDPLL_B); |
469 | DRM_UDELAY(150); | 469 | DRM_UDELAY(150); |
470 | if (IS_I965G(dev) && !IS_IGDNG(dev)) | 470 | if (IS_I965G(dev) && !IS_IRONLAKE(dev)) |
471 | I915_WRITE(DPLL_B_MD, dev_priv->saveDPLL_B_MD); | 471 | I915_WRITE(DPLL_B_MD, dev_priv->saveDPLL_B_MD); |
472 | DRM_UDELAY(150); | 472 | DRM_UDELAY(150); |
473 | 473 | ||
@@ -478,10 +478,10 @@ static void i915_restore_modeset_reg(struct drm_device *dev) | |||
478 | I915_WRITE(VTOTAL_B, dev_priv->saveVTOTAL_B); | 478 | I915_WRITE(VTOTAL_B, dev_priv->saveVTOTAL_B); |
479 | I915_WRITE(VBLANK_B, dev_priv->saveVBLANK_B); | 479 | I915_WRITE(VBLANK_B, dev_priv->saveVBLANK_B); |
480 | I915_WRITE(VSYNC_B, dev_priv->saveVSYNC_B); | 480 | I915_WRITE(VSYNC_B, dev_priv->saveVSYNC_B); |
481 | if (!IS_IGDNG(dev)) | 481 | if (!IS_IRONLAKE(dev)) |
482 | I915_WRITE(BCLRPAT_B, dev_priv->saveBCLRPAT_B); | 482 | I915_WRITE(BCLRPAT_B, dev_priv->saveBCLRPAT_B); |
483 | 483 | ||
484 | if (IS_IGDNG(dev)) { | 484 | if (IS_IRONLAKE(dev)) { |
485 | I915_WRITE(PIPEB_DATA_M1, dev_priv->savePIPEB_DATA_M1); | 485 | I915_WRITE(PIPEB_DATA_M1, dev_priv->savePIPEB_DATA_M1); |
486 | I915_WRITE(PIPEB_DATA_N1, dev_priv->savePIPEB_DATA_N1); | 486 | I915_WRITE(PIPEB_DATA_N1, dev_priv->savePIPEB_DATA_N1); |
487 | I915_WRITE(PIPEB_LINK_M1, dev_priv->savePIPEB_LINK_M1); | 487 | I915_WRITE(PIPEB_LINK_M1, dev_priv->savePIPEB_LINK_M1); |
@@ -546,14 +546,14 @@ void i915_save_display(struct drm_device *dev) | |||
546 | dev_priv->saveCURSIZE = I915_READ(CURSIZE); | 546 | dev_priv->saveCURSIZE = I915_READ(CURSIZE); |
547 | 547 | ||
548 | /* CRT state */ | 548 | /* CRT state */ |
549 | if (IS_IGDNG(dev)) { | 549 | if (IS_IRONLAKE(dev)) { |
550 | dev_priv->saveADPA = I915_READ(PCH_ADPA); | 550 | dev_priv->saveADPA = I915_READ(PCH_ADPA); |
551 | } else { | 551 | } else { |
552 | dev_priv->saveADPA = I915_READ(ADPA); | 552 | dev_priv->saveADPA = I915_READ(ADPA); |
553 | } | 553 | } |
554 | 554 | ||
555 | /* LVDS state */ | 555 | /* LVDS state */ |
556 | if (IS_IGDNG(dev)) { | 556 | if (IS_IRONLAKE(dev)) { |
557 | dev_priv->savePP_CONTROL = I915_READ(PCH_PP_CONTROL); | 557 | dev_priv->savePP_CONTROL = I915_READ(PCH_PP_CONTROL); |
558 | dev_priv->saveBLC_PWM_CTL = I915_READ(BLC_PWM_PCH_CTL1); | 558 | dev_priv->saveBLC_PWM_CTL = I915_READ(BLC_PWM_PCH_CTL1); |
559 | dev_priv->saveBLC_PWM_CTL2 = I915_READ(BLC_PWM_PCH_CTL2); | 559 | dev_priv->saveBLC_PWM_CTL2 = I915_READ(BLC_PWM_PCH_CTL2); |
@@ -571,10 +571,10 @@ void i915_save_display(struct drm_device *dev) | |||
571 | dev_priv->saveLVDS = I915_READ(LVDS); | 571 | dev_priv->saveLVDS = I915_READ(LVDS); |
572 | } | 572 | } |
573 | 573 | ||
574 | if (!IS_I830(dev) && !IS_845G(dev) && !IS_IGDNG(dev)) | 574 | if (!IS_I830(dev) && !IS_845G(dev) && !IS_IRONLAKE(dev)) |
575 | dev_priv->savePFIT_CONTROL = I915_READ(PFIT_CONTROL); | 575 | dev_priv->savePFIT_CONTROL = I915_READ(PFIT_CONTROL); |
576 | 576 | ||
577 | if (IS_IGDNG(dev)) { | 577 | if (IS_IRONLAKE(dev)) { |
578 | dev_priv->savePP_ON_DELAYS = I915_READ(PCH_PP_ON_DELAYS); | 578 | dev_priv->savePP_ON_DELAYS = I915_READ(PCH_PP_ON_DELAYS); |
579 | dev_priv->savePP_OFF_DELAYS = I915_READ(PCH_PP_OFF_DELAYS); | 579 | dev_priv->savePP_OFF_DELAYS = I915_READ(PCH_PP_OFF_DELAYS); |
580 | dev_priv->savePP_DIVISOR = I915_READ(PCH_PP_DIVISOR); | 580 | dev_priv->savePP_DIVISOR = I915_READ(PCH_PP_DIVISOR); |
@@ -614,7 +614,7 @@ void i915_save_display(struct drm_device *dev) | |||
614 | dev_priv->saveVGA0 = I915_READ(VGA0); | 614 | dev_priv->saveVGA0 = I915_READ(VGA0); |
615 | dev_priv->saveVGA1 = I915_READ(VGA1); | 615 | dev_priv->saveVGA1 = I915_READ(VGA1); |
616 | dev_priv->saveVGA_PD = I915_READ(VGA_PD); | 616 | dev_priv->saveVGA_PD = I915_READ(VGA_PD); |
617 | if (IS_IGDNG(dev)) | 617 | if (IS_IRONLAKE(dev)) |
618 | dev_priv->saveVGACNTRL = I915_READ(CPU_VGACNTRL); | 618 | dev_priv->saveVGACNTRL = I915_READ(CPU_VGACNTRL); |
619 | else | 619 | else |
620 | dev_priv->saveVGACNTRL = I915_READ(VGACNTRL); | 620 | dev_priv->saveVGACNTRL = I915_READ(VGACNTRL); |
@@ -656,24 +656,24 @@ void i915_restore_display(struct drm_device *dev) | |||
656 | I915_WRITE(CURSIZE, dev_priv->saveCURSIZE); | 656 | I915_WRITE(CURSIZE, dev_priv->saveCURSIZE); |
657 | 657 | ||
658 | /* CRT state */ | 658 | /* CRT state */ |
659 | if (IS_IGDNG(dev)) | 659 | if (IS_IRONLAKE(dev)) |
660 | I915_WRITE(PCH_ADPA, dev_priv->saveADPA); | 660 | I915_WRITE(PCH_ADPA, dev_priv->saveADPA); |
661 | else | 661 | else |
662 | I915_WRITE(ADPA, dev_priv->saveADPA); | 662 | I915_WRITE(ADPA, dev_priv->saveADPA); |
663 | 663 | ||
664 | /* LVDS state */ | 664 | /* LVDS state */ |
665 | if (IS_I965G(dev) && !IS_IGDNG(dev)) | 665 | if (IS_I965G(dev) && !IS_IRONLAKE(dev)) |
666 | I915_WRITE(BLC_PWM_CTL2, dev_priv->saveBLC_PWM_CTL2); | 666 | I915_WRITE(BLC_PWM_CTL2, dev_priv->saveBLC_PWM_CTL2); |
667 | 667 | ||
668 | if (IS_IGDNG(dev)) { | 668 | if (IS_IRONLAKE(dev)) { |
669 | I915_WRITE(PCH_LVDS, dev_priv->saveLVDS); | 669 | I915_WRITE(PCH_LVDS, dev_priv->saveLVDS); |
670 | } else if (IS_MOBILE(dev) && !IS_I830(dev)) | 670 | } else if (IS_MOBILE(dev) && !IS_I830(dev)) |
671 | I915_WRITE(LVDS, dev_priv->saveLVDS); | 671 | I915_WRITE(LVDS, dev_priv->saveLVDS); |
672 | 672 | ||
673 | if (!IS_I830(dev) && !IS_845G(dev) && !IS_IGDNG(dev)) | 673 | if (!IS_I830(dev) && !IS_845G(dev) && !IS_IRONLAKE(dev)) |
674 | I915_WRITE(PFIT_CONTROL, dev_priv->savePFIT_CONTROL); | 674 | I915_WRITE(PFIT_CONTROL, dev_priv->savePFIT_CONTROL); |
675 | 675 | ||
676 | if (IS_IGDNG(dev)) { | 676 | if (IS_IRONLAKE(dev)) { |
677 | I915_WRITE(BLC_PWM_PCH_CTL1, dev_priv->saveBLC_PWM_CTL); | 677 | I915_WRITE(BLC_PWM_PCH_CTL1, dev_priv->saveBLC_PWM_CTL); |
678 | I915_WRITE(BLC_PWM_PCH_CTL2, dev_priv->saveBLC_PWM_CTL2); | 678 | I915_WRITE(BLC_PWM_PCH_CTL2, dev_priv->saveBLC_PWM_CTL2); |
679 | I915_WRITE(BLC_PWM_CPU_CTL, dev_priv->saveBLC_CPU_PWM_CTL); | 679 | I915_WRITE(BLC_PWM_CPU_CTL, dev_priv->saveBLC_CPU_PWM_CTL); |
@@ -713,7 +713,7 @@ void i915_restore_display(struct drm_device *dev) | |||
713 | } | 713 | } |
714 | 714 | ||
715 | /* VGA state */ | 715 | /* VGA state */ |
716 | if (IS_IGDNG(dev)) | 716 | if (IS_IRONLAKE(dev)) |
717 | I915_WRITE(CPU_VGACNTRL, dev_priv->saveVGACNTRL); | 717 | I915_WRITE(CPU_VGACNTRL, dev_priv->saveVGACNTRL); |
718 | else | 718 | else |
719 | I915_WRITE(VGACNTRL, dev_priv->saveVGACNTRL); | 719 | I915_WRITE(VGACNTRL, dev_priv->saveVGACNTRL); |
@@ -733,8 +733,10 @@ int i915_save_state(struct drm_device *dev) | |||
733 | pci_read_config_byte(dev->pdev, LBB, &dev_priv->saveLBB); | 733 | pci_read_config_byte(dev->pdev, LBB, &dev_priv->saveLBB); |
734 | 734 | ||
735 | /* Render Standby */ | 735 | /* Render Standby */ |
736 | if (IS_I965G(dev) && IS_MOBILE(dev)) | 736 | if (I915_HAS_RC6(dev)) { |
737 | dev_priv->saveRENDERSTANDBY = I915_READ(MCHBAR_RENDER_STANDBY); | 737 | dev_priv->saveRENDERSTANDBY = I915_READ(MCHBAR_RENDER_STANDBY); |
738 | dev_priv->savePWRCTXA = I915_READ(PWRCTXA); | ||
739 | } | ||
738 | 740 | ||
739 | /* Hardware status page */ | 741 | /* Hardware status page */ |
740 | dev_priv->saveHWS = I915_READ(HWS_PGA); | 742 | dev_priv->saveHWS = I915_READ(HWS_PGA); |
@@ -742,7 +744,7 @@ int i915_save_state(struct drm_device *dev) | |||
742 | i915_save_display(dev); | 744 | i915_save_display(dev); |
743 | 745 | ||
744 | /* Interrupt state */ | 746 | /* Interrupt state */ |
745 | if (IS_IGDNG(dev)) { | 747 | if (IS_IRONLAKE(dev)) { |
746 | dev_priv->saveDEIER = I915_READ(DEIER); | 748 | dev_priv->saveDEIER = I915_READ(DEIER); |
747 | dev_priv->saveDEIMR = I915_READ(DEIMR); | 749 | dev_priv->saveDEIMR = I915_READ(DEIMR); |
748 | dev_priv->saveGTIER = I915_READ(GTIER); | 750 | dev_priv->saveGTIER = I915_READ(GTIER); |
@@ -796,8 +798,10 @@ int i915_restore_state(struct drm_device *dev) | |||
796 | pci_write_config_byte(dev->pdev, LBB, dev_priv->saveLBB); | 798 | pci_write_config_byte(dev->pdev, LBB, dev_priv->saveLBB); |
797 | 799 | ||
798 | /* Render Standby */ | 800 | /* Render Standby */ |
799 | if (IS_I965G(dev) && IS_MOBILE(dev)) | 801 | if (I915_HAS_RC6(dev)) { |
800 | I915_WRITE(MCHBAR_RENDER_STANDBY, dev_priv->saveRENDERSTANDBY); | 802 | I915_WRITE(MCHBAR_RENDER_STANDBY, dev_priv->saveRENDERSTANDBY); |
803 | I915_WRITE(PWRCTXA, dev_priv->savePWRCTXA); | ||
804 | } | ||
801 | 805 | ||
802 | /* Hardware status page */ | 806 | /* Hardware status page */ |
803 | I915_WRITE(HWS_PGA, dev_priv->saveHWS); | 807 | I915_WRITE(HWS_PGA, dev_priv->saveHWS); |
@@ -817,7 +821,7 @@ int i915_restore_state(struct drm_device *dev) | |||
817 | i915_restore_display(dev); | 821 | i915_restore_display(dev); |
818 | 822 | ||
819 | /* Interrupt state */ | 823 | /* Interrupt state */ |
820 | if (IS_IGDNG(dev)) { | 824 | if (IS_IRONLAKE(dev)) { |
821 | I915_WRITE(DEIER, dev_priv->saveDEIER); | 825 | I915_WRITE(DEIER, dev_priv->saveDEIER); |
822 | I915_WRITE(DEIMR, dev_priv->saveDEIMR); | 826 | I915_WRITE(DEIMR, dev_priv->saveDEIMR); |
823 | I915_WRITE(GTIER, dev_priv->saveGTIER); | 827 | I915_WRITE(GTIER, dev_priv->saveGTIER); |
@@ -846,6 +850,9 @@ int i915_restore_state(struct drm_device *dev) | |||
846 | for (i = 0; i < 3; i++) | 850 | for (i = 0; i < 3; i++) |
847 | I915_WRITE(SWF30 + (i << 2), dev_priv->saveSWF2[i]); | 851 | I915_WRITE(SWF30 + (i << 2), dev_priv->saveSWF2[i]); |
848 | 852 | ||
853 | /* I2C state */ | ||
854 | intel_i2c_reset_gmbus(dev); | ||
855 | |||
849 | return 0; | 856 | return 0; |
850 | } | 857 | } |
851 | 858 | ||