diff options
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 | ||
