[Intel-gfx] [PATCH v3] drm/i915/skl: Deinit/init the display at suspend/resume

Ville Syrjälä ville.syrjala at linux.intel.com
Thu May 21 08:58:48 PDT 2015


On Thu, May 21, 2015 at 04:49:40PM +0100, Damien Lespiau wrote:
> On Thu, May 21, 2015 at 06:44:53PM +0300, Ville Syrjälä wrote:
> > > diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c
> > > index d602db2..cacb07b 100644
> > > --- a/drivers/gpu/drm/i915/intel_ddi.c
> > > +++ b/drivers/gpu/drm/i915/intel_ddi.c
> > > @@ -2510,6 +2510,7 @@ void intel_ddi_pll_init(struct drm_device *dev)
> > >  {
> > >  	struct drm_i915_private *dev_priv = dev->dev_private;
> > >  	uint32_t val = I915_READ(LCPLL_CTL);
> > > +	int cdclk_freq;
> > >  
> > >  	if (IS_SKYLAKE(dev))
> > >  		skl_shared_dplls_init(dev_priv);
> > > @@ -2518,12 +2519,15 @@ void intel_ddi_pll_init(struct drm_device *dev)
> > >  	else
> > >  		hsw_shared_dplls_init(dev_priv);
> > >  
> > > -	DRM_DEBUG_KMS("CDCLK running at %dKHz\n",
> > > -		      dev_priv->display.get_display_clock_speed(dev));
> > > +	cdclk_freq = dev_priv->display.get_display_clock_speed(dev);
> > > +	DRM_DEBUG_KMS("CDCLK running at %dKHz\n", cdclk_freq);
> > >  
> > >  	if (IS_SKYLAKE(dev)) {
> > > +		dev_priv->skl_boot_cdclk = cdclk_freq;
> > >  		if (!(I915_READ(LCPLL1_CTL) & LCPLL_PLL_ENABLE))
> > >  			DRM_ERROR("LCPLL1 is disabled\n");
> > > +		else
> > > +			intel_display_power_get(dev_priv, POWER_DOMAIN_PLLS);
> > 
> > Hmm, actually are we not calling the skl_init_cdclk() on boot at all? I see
> > it only in the resume path.
> 
> Yes that's correct, we always have display intialized by the firmware on
> big core as far as I know (which may not be true for BXT).

What about module reload?

-- 
Ville Syrjälä
Intel OTC


More information about the Intel-gfx mailing list