On Sat, 2009-05-30 at 20:42 -0700, Keith Packard wrote: > Suspend/resume of display port links really wants to just run through the > mode set code so that link training happens.
The commmit doesn't seem to match the commit message here. > Signed-off-by: Keith Packard <kei...@keithp.com> > --- > drivers/gpu/drm/i915/i915_suspend.c | 56 +++++++++++++++++++++++++--------- > 1 files changed, 41 insertions(+), 15 deletions(-) > > diff --git a/drivers/gpu/drm/i915/i915_suspend.c > b/drivers/gpu/drm/i915/i915_suspend.c > index c502913..54516b4 100644 > --- a/drivers/gpu/drm/i915/i915_suspend.c > +++ b/drivers/gpu/drm/i915/i915_suspend.c > @@ -409,6 +409,42 @@ int i915_restore_state(struct drm_device *dev) > I915_WRITE(FENCE_REG_945_8 + (i * 4), > dev_priv->saveFENCE[i+8]); > } > > + /* Turn off all outputs */ > + if (IS_MOBILE(dev) && !IS_I830(dev)) > + I915_WRITE(LVDS, dev_priv->saveLVDS & ~LVDS_ON); > + I915_WRITE(ADPA, (dev_priv->saveADPA & ~ADPA_DAC_ENABLE) | > ADPA_HSYNC_CNTL_DISABLE | ADPA_VSYNC_CNTL_DISABLE); > + > + if (IS_G4X(dev)) { > + I915_WRITE(DP_B, dev_priv->saveDP_B & ~DP_PORT_EN); > + I915_WRITE(DP_C, dev_priv->saveDP_C & ~DP_PORT_EN); > + I915_WRITE(DP_D, dev_priv->saveDP_D & ~DP_PORT_EN); > + } > + > + if (IS_I9XX(dev)) { > +// I915_WRITE(SDVOB, dev_priv->saveSDVOB & ~SDVO_ENABLE); > +// I915_WRITE(SDVOC, dev_priv->saveSDVOB & ~SDVO_ENABLE); > + } else { > + I915_WRITE(DVOA, dev_priv->saveDVOA & ~DVO_ENABLE); > + I915_WRITE(DVOB, dev_priv->saveDVOB & ~DVO_ENABLE); > + I915_WRITE(DVOC, dev_priv->saveDVOC & ~DVO_ENABLE); > + } > + > +// if (IS_I9XX(dev) && IS_MOBILE(dev)) > +// I915_WRITE(TV_CTL, dev_priv->saveTV_CTL & ~TV_ENC_ENABLE); > + > + I915_WRITE(VGACNTRL, VGA_DISP_DISABLE); > + > + /* Turn off all planes, pipes and plls */ > + I915_WRITE(DSPACNTR, dev_priv->saveDSPACNTR & ~DISPLAY_PLANE_ENABLE); > + I915_WRITE(DSPBCNTR, dev_priv->saveDSPBCNTR & ~DISPLAY_PLANE_ENABLE); > + msleep(30); > + I915_WRITE(PIPEACONF, dev_priv->savePIPEACONF & ~PIPEACONF_ENABLE); > + I915_WRITE(PIPEBCONF, dev_priv->savePIPEACONF & ~PIPEACONF_ENABLE); > + msleep(30); > + I915_WRITE(DPLL_A, dev_priv->saveDPLL_A & ~DPLL_VCO_ENABLE); > + I915_WRITE(DPLL_B, dev_priv->saveDPLL_B & ~DPLL_VCO_ENABLE); > + msleep(30); > + > /* Display port ratios (must be done before clock is set) */ > if (IS_G4X(dev)) { > I915_WRITE(PIPEA_GMCH_DATA_M, dev_priv->savePIPEA_GMCH_DATA_M); > @@ -423,11 +459,6 @@ int i915_restore_state(struct drm_device *dev) > > /* Pipe & plane A info */ > /* Prime the clock */ > - if (dev_priv->saveDPLL_A & DPLL_VCO_ENABLE) { > - I915_WRITE(DPLL_A, dev_priv->saveDPLL_A & > - ~DPLL_VCO_ENABLE); > - DRM_UDELAY(150); > - } > I915_WRITE(FPA0, dev_priv->saveFPA0); > I915_WRITE(FPA1, dev_priv->saveFPA1); > /* Actually enable it */ > @@ -465,11 +496,6 @@ int i915_restore_state(struct drm_device *dev) > I915_WRITE(DSPAADDR, I915_READ(DSPAADDR)); > > /* Pipe & plane B info */ > - if (dev_priv->saveDPLL_B & DPLL_VCO_ENABLE) { > - I915_WRITE(DPLL_B, dev_priv->saveDPLL_B & > - ~DPLL_VCO_ENABLE); > - DRM_UDELAY(150); > - } > I915_WRITE(FPB0, dev_priv->saveFPB0); > I915_WRITE(FPB1, dev_priv->saveFPB1); > /* Actually enable it */ > @@ -525,11 +551,11 @@ int i915_restore_state(struct drm_device *dev) > I915_WRITE(PP_CONTROL, dev_priv->savePP_CONTROL); > > /* Display Port state */ > - if (IS_G4X(dev)) { > - I915_WRITE(DP_B, dev_priv->saveDP_B); > - I915_WRITE(DP_C, dev_priv->saveDP_C); > - I915_WRITE(DP_D, dev_priv->saveDP_D); > - } > +// if (IS_G4X(dev)) { > +// I915_WRITE(DP_B, dev_priv->saveDP_B); > +// I915_WRITE(DP_C, dev_priv->saveDP_C); > +// I915_WRITE(DP_D, dev_priv->saveDP_D); > +// } > /* FIXME: restore TV & SDVO state */ > > /* FBC info */ -- Eric Anholt e...@anholt.net eric.anh...@intel.com
signature.asc
Description: This is a digitally signed message part
------------------------------------------------------------------------------ OpenSolaris 2009.06 is a cutting edge operating system for enterprises looking to deploy the next generation of Solaris that includes the latest innovations from Sun and the OpenSource community. Download a copy and enjoy capabilities such as Networking, Storage and Virtualization. Go to: http://p.sf.net/sfu/opensolaris-get
-- _______________________________________________ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel