Skip to content

Commit

Permalink
drm/i915: Fix RC6 suspend/resume
Browse files Browse the repository at this point in the history
We restored RC6 twice on resume, even with modesetting off.  Instead,
only restore it once and skip RC6 initialization entirely in non-KMS mode.

Signed-off-by: Andy Lutomirski <luto@mit.edu>
Tested-by: Jeff Chua <jeff.chua.linux@gmail.com>
Signed-off-by: Eric Anholt <eric@anholt.net>
  • Loading branch information
Andrew Lutomirski authored and Eric Anholt committed Jan 6, 2010
1 parent 76446ca commit 1d3c36a
Show file tree
Hide file tree
Showing 3 changed files with 1 addition and 15 deletions.
2 changes: 0 additions & 2 deletions drivers/gpu/drm/i915/i915_drv.h
Original file line number Diff line number Diff line change
Expand Up @@ -307,8 +307,6 @@ typedef struct drm_i915_private {
u32 saveDSPACNTR;
u32 saveDSPBCNTR;
u32 saveDSPARB;
u32 saveRENDERSTANDBY;
u32 savePWRCTXA;
u32 saveHWS;
u32 savePIPEACONF;
u32 savePIPEBCONF;
Expand Down
12 changes: 0 additions & 12 deletions drivers/gpu/drm/i915/i915_suspend.c
Original file line number Diff line number Diff line change
Expand Up @@ -732,12 +732,6 @@ int i915_save_state(struct drm_device *dev)

pci_read_config_byte(dev->pdev, LBB, &dev_priv->saveLBB);

/* Render Standby */
if (I915_HAS_RC6(dev)) {
dev_priv->saveRENDERSTANDBY = I915_READ(MCHBAR_RENDER_STANDBY);
dev_priv->savePWRCTXA = I915_READ(PWRCTXA);
}

/* Hardware status page */
dev_priv->saveHWS = I915_READ(HWS_PGA);

Expand Down Expand Up @@ -793,12 +787,6 @@ int i915_restore_state(struct drm_device *dev)

pci_write_config_byte(dev->pdev, LBB, dev_priv->saveLBB);

/* Render Standby */
if (I915_HAS_RC6(dev)) {
I915_WRITE(MCHBAR_RENDER_STANDBY, dev_priv->saveRENDERSTANDBY);
I915_WRITE(PWRCTXA, dev_priv->savePWRCTXA);
}

/* Hardware status page */
I915_WRITE(HWS_PGA, dev_priv->saveHWS);

Expand Down
2 changes: 1 addition & 1 deletion drivers/gpu/drm/i915/intel_display.c
Original file line number Diff line number Diff line change
Expand Up @@ -4593,7 +4593,7 @@ void intel_init_clock_gating(struct drm_device *dev)
* GPU can automatically power down the render unit if given a page
* to save state.
*/
if (I915_HAS_RC6(dev)) {
if (I915_HAS_RC6(dev) && drm_core_check_feature(dev, DRIVER_MODESET)) {
struct drm_gem_object *pwrctx;
struct drm_i915_gem_object *obj_priv;
int ret;
Expand Down

0 comments on commit 1d3c36a

Please sign in to comment.