diff --git a/linux-core/i915_drv.c b/linux-core/i915_drv.c index c771ab3..8d46686 100644 --- a/linux-core/i915_drv.c +++ b/linux-core/i915_drv.c @@ -276,6 +276,7 @@ static int i915_suspend(struct drm_device *dev) pci_save_state(dev->pdev); pci_read_config_byte(dev->pdev, LBB, &dev_priv->saveLBB); + pci_read_config_byte(dev->pdev, MGGC, &dev_priv->saveMGGC); /* Pipe & plane A info */ dev_priv->savePIPEACONF = I915_READ(PIPEACONF); @@ -397,6 +398,7 @@ static int i915_resume(struct drm_device *dev) return -1; pci_write_config_byte(dev->pdev, LBB, dev_priv->saveLBB); + pci_write_config_word(dev->pdev, MGGC, dev_priv->saveMGGC); /* Pipe & plane A info */ /* Prime the clock */ diff --git a/shared-core/i915_drv.h b/shared-core/i915_drv.h index d08fdf4..68584b4 100644 --- a/shared-core/i915_drv.h +++ b/shared-core/i915_drv.h @@ -149,6 +149,7 @@ typedef struct drm_i915_private { /* Register state */ u8 saveLBB; + u16 saveMGGC; u32 saveDSPACNTR; u32 saveDSPBCNTR; u32 savePIPEACONF; @@ -361,6 +362,7 @@ extern void intel_fini_chipset_flush_compat(struct drm_device *dev); extern int i915_wait_ring(struct drm_device * dev, int n, const char *caller); /* Extended config space */ +#define MGGC 0x52 #define LBB 0xf4 /* VGA stuff */