diff options
author | Keith Packard <keithp@keithp.com> | 2008-03-27 11:40:04 -0700 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2008-04-11 20:31:07 -0700 |
commit | b986d7d2c9090fc62c1853f62886dd124e8066c1 (patch) | |
tree | 7708fe1972d96c027c0205ad9aecd796ab427257 /linux-core | |
parent | db61f02bd7e4b9d5ac416f1ef98bac1bd4d984bc (diff) |
Save and restore dsparb and d_state regs
Diffstat (limited to 'linux-core')
-rw-r--r-- | linux-core/i915_drv.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/linux-core/i915_drv.c b/linux-core/i915_drv.c index e18bc8d0..5a6f0adc 100644 --- a/linux-core/i915_drv.c +++ b/linux-core/i915_drv.c @@ -281,6 +281,9 @@ static int i915_suspend(struct drm_device *dev, pm_message_t state) pci_save_state(dev->pdev); pci_read_config_byte(dev->pdev, LBB, &dev_priv->saveLBB); + /* Display arbitration control */ + dev_priv->saveDSPARB = I915_READ(DSPARB); + /* Pipe & plane A info */ dev_priv->savePIPEACONF = I915_READ(PIPEACONF); dev_priv->savePIPEASRC = I915_READ(PIPEASRC); @@ -374,6 +377,7 @@ static int i915_suspend(struct drm_device *dev, pm_message_t state) dev_priv->saveVGACNTRL = I915_READ(VGACNTRL); /* Clock gating state */ + dev_priv->saveD_STATE = I915_READ(D_STATE); dev_priv->saveDSPCLK_GATE_D = I915_READ(DSPCLK_GATE_D); /* Cache mode state */ @@ -413,6 +417,8 @@ static int i915_resume(struct drm_device *dev) pci_write_config_byte(dev->pdev, LBB, dev_priv->saveLBB); + I915_WRITE(DSPARB, dev_priv->saveDSPARB); + /* Pipe & plane A info */ /* Prime the clock */ if (dev_priv->saveDPLL_A & DPLL_VCO_ENABLE) { @@ -532,6 +538,7 @@ static int i915_resume(struct drm_device *dev) udelay(150); /* Clock gating state */ + I915_WRITE (D_STATE, dev_priv->saveD_STATE); I915_WRITE (DSPCLK_GATE_D, dev_priv->saveDSPCLK_GATE_D); /* Cache mode state */ |