All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dhinakaran Pandiyan <dhinakaran.pandiyan@gmail.com>
To: intel-gfx@lists.freedesktop.org
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>,
	Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>,
	Rodrigo Vivi <rodrigo.vivi@intel.com>
Subject: Re: [PATCH 3/5] drm/i915: Enable vblanks after verifying power domain states.
Date: Sat, 06 Jan 2018 01:51:06 -0800	[thread overview]
Message-ID: <2035238.FupEIcxxrF@dk> (raw)
In-Reply-To: <788b7b7c-a07a-86da-e4d9-6734e722f9a4@linux.intel.com>

On Thursday, January 4, 2018 12:35:48 PM PST Maarten Lankhorst wrote:
> Op 03-01-18 om 21:39 schreef Dhinakaran Pandiyan:
> > Since we want to allow for a non-blocking power domain for vblanks,
> > the power domain use count and power well use count will not be updated
> > atomically inside the power domain mutex (see next patch). This affects
> > verifying if sum(power_domain_use_count) == power_well_use_count at
> > init time. So do not enable vblanks until this verification is done.
> > 
> > Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
> > Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
> > Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> > Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
> > ---
> > 
> >  drivers/gpu/drm/i915/intel_display.c | 24 ++++++++++++++++++++----
> >  1 file changed, 20 insertions(+), 4 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/intel_display.c
> > b/drivers/gpu/drm/i915/intel_display.c index 0cd355978ab4..7bc874b8dac7
> > 100644
> > --- a/drivers/gpu/drm/i915/intel_display.c
> > +++ b/drivers/gpu/drm/i915/intel_display.c
> > @@ -14739,6 +14739,24 @@ static bool has_pch_trancoder(struct
> > drm_i915_private *dev_priv,> 
> >  		(HAS_PCH_LPT_H(dev_priv) && pch_transcoder == PIPE_A);
> >  
> >  }
> > 
> > +static void modeset_enable_vblanks(struct drm_i915_private *dev_priv)
> > +{
> > +	enum pipe pipe;
> > +
> > +	for_each_pipe(dev_priv, pipe) {
> > +		struct intel_crtc *crtc;
> > +
> > +		crtc = intel_get_crtc_for_pipe(dev_priv, pipe);
> > +
> > +		/* restore vblank interrupts to correct state */
> > +		drm_crtc_vblank_reset(&crtc->base);
> > +
> > +		if (crtc->active)
> > +			drm_crtc_vblank_on(&crtc->base);
> > +	}
> > +}
> > +
> > +
> > 
> >  static void intel_sanitize_crtc(struct intel_crtc *crtc,
> >  
> >  				struct drm_modeset_acquire_ctx *ctx)
> >  
> >  {
> > 
> > @@ -14754,13 +14772,9 @@ static void intel_sanitize_crtc(struct intel_crtc
> > *crtc,> 
> >  			   I915_READ(reg) & ~PIPECONF_FRAME_START_DELAY_MASK);
> >  	
> >  	}
> > 
> > -	/* restore vblank interrupts to correct state */
> > -	drm_crtc_vblank_reset(&crtc->base);
> > 
> >  	if (crtc->active) {
> >  	
> >  		struct intel_plane *plane;
> > 
> > -		drm_crtc_vblank_on(&crtc->base);
> > -
> > 
> >  		/* Disable everything but the primary plane */
> >  		for_each_intel_plane_on_crtc(dev, crtc, plane) {
> >  		
> >  			const struct intel_plane_state *plane_state =
> > 
> > @@ -15147,6 +15161,8 @@ intel_modeset_setup_hw_state(struct drm_device
> > *dev,> 
> >  	intel_power_domains_verify_state(dev_priv);
> > 
> > +	modeset_enable_vblanks(dev_priv);
> > +
> > 
> >  	intel_fbc_init_pipe_state(dev_priv);
> >  
> >  }
> 
> intel_pre_disable_primary_noatomic calls wait_for_vblank, which will fail
> with this patch. Wouldn't it be better to make
> intel_power_domains_verify_state work correctly with the vblank irq?

How about disabling vblanks just before power_domains_verify_state and 
enabling it back again?

Another option is to ignore the check in power_domains_verify_state  for 
DC_OFF. 

-DK

> 
> ~Maarten
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx


_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

  parent reply	other threads:[~2018-01-06  9:51 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-01-03 20:39 [PATCH 1/5] drm/vblank: Do not update vblank counts if vblanks are already disabled Dhinakaran Pandiyan
2018-01-03 20:39 ` [PATCH 2/5] drm/vblank: Restoring vblank counts after device runtime PM events Dhinakaran Pandiyan
2018-01-03 20:55   ` Chris Wilson
2018-01-03 20:39 ` [PATCH 3/5] drm/i915: Enable vblanks after verifying power domain states Dhinakaran Pandiyan
2018-01-03 20:57   ` Chris Wilson
2018-01-04 21:25     ` Pandiyan, Dhinakaran
2018-01-04 11:35   ` Maarten Lankhorst
2018-01-04 21:51     ` Pandiyan, Dhinakaran
2018-01-05 11:23       ` Maarten Lankhorst
2018-01-05 18:09         ` Rodrigo Vivi
2018-01-05 18:45           ` Pandiyan, Dhinakaran
2018-01-06  9:51     ` Dhinakaran Pandiyan [this message]
2018-01-08 14:43       ` Maarten Lankhorst
2018-01-08 19:29         ` Pandiyan, Dhinakaran
2018-01-03 20:40 ` [PATCH 4/5] drm/i915: Introduce a non-blocking power domain for vblank interrupts Dhinakaran Pandiyan
2018-01-05  2:08   ` Rodrigo Vivi
2018-01-08 19:59     ` Pandiyan, Dhinakaran
2018-01-09  9:38       ` Maarten Lankhorst
2018-01-16 19:56         ` Pandiyan, Dhinakaran
2018-01-03 20:40 ` [PATCH 5/5] drm/i915: Use the vblank power domain disallow or disable DC states Dhinakaran Pandiyan
2018-01-03 20:53 ` [PATCH 1/5] drm/vblank: Do not update vblank counts if vblanks are already disabled Chris Wilson
2018-01-03 21:01 ` ✓ Fi.CI.BAT: success for series starting with [1/5] " Patchwork

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2035238.FupEIcxxrF@dk \
    --to=dhinakaran.pandiyan@gmail.com \
    --cc=daniel.vetter@ffwll.ch \
    --cc=dhinakaran.pandiyan@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=rodrigo.vivi@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.