All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: Imre Deak <imre.deak@intel.com>
Cc: intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH v2] drm/i915/lspcon: Enable AUX interrupts for resume time initialization
Date: Tue, 29 Nov 2016 22:27:16 +0200	[thread overview]
Message-ID: <20161129202716.GZ31595@intel.com> (raw)
In-Reply-To: <1480450463.16375.12.camel@intel.com>

On Tue, Nov 29, 2016 at 10:14:23PM +0200, Imre Deak wrote:
> On Tue, 2016-11-29 at 21:55 +0200, Ville Syrjälä wrote:
> > On Tue, Nov 29, 2016 at 09:40:29PM +0200, Imre Deak wrote:
> > > For LSPCON initialization during system resume we need AUX
> > > functionality, but we call the corresponding encoder reset hook with all
> > > interrupts disabled. Without interrupts we'll do a poll-wait for AUX
> > > transfer completions, which adds a significant delay if the transfers
> > > timeout/need to be retried for some reason.
> > > 
> > > Fix this by enabling interrupts before calling the reset hooks. Note
> > > that while this will enable AUX interrupts it will keep HPD interrupts
> > > disabled, in a similar way to the init time output setup code.
> > > 
> > > This issue existed since LSPCON support was added.
> > > 
> > > v2:
> > > - Rebased on drm-tip.
> > > 
> > > Cc: Shashank Sharma <shashank.sharma@intel.com>
> > > Signed-off-by: Imre Deak <imre.deak@intel.com>
> > > ---
> > >  drivers/gpu/drm/i915/i915_drv.c | 5 ++++-
> > >  1 file changed, 4 insertions(+), 1 deletion(-)
> > > 
> > > diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
> > > index 8dac298..2cea2ef 100644
> > > --- a/drivers/gpu/drm/i915/i915_drv.c
> > > +++ b/drivers/gpu/drm/i915/i915_drv.c
> > > @@ -1582,18 +1582,21 @@ static int i915_drm_resume(struct drm_device *dev)
> > >  	intel_opregion_setup(dev_priv);
> > >  
> > >  	intel_init_pch_refclk(dev_priv);
> > > -	drm_mode_config_reset(dev);
> > >  
> > >  	/*
> > >  	 * Interrupts have to be enabled before any batches are run. If not the
> > >  	 * GPU will hang. i915_gem_init_hw() will initiate batches to
> > >  	 * update/restore the context.
> > >  	 *
> > > +	 * drm_mode_config_reset() needs AUX interrupts.
> > > +	 *
> > >  	 * Modeset enabling in intel_modeset_init_hw() also needs working
> > >  	 * interrupts.
> > >  	 */
> > >  	intel_runtime_pm_enable_interrupts(dev_priv);
> > >  
> > > +	drm_mode_config_reset(dev);
> > > +
> > 
> > Didn't look like anything should seriously explode.
> > 
> > Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > 
> > There is a slight concern on g4x/vlv/chv that an AUX interrupts would
> > trigger the hpd irq handler, which doesn't realize it's supposed to
> > ignore the actual hpd bits in PORT_HOTPLUG_STAT. So any aux before we
> > enable hpd processing for real could do something bad. So I guess we
> > should add some kind of software tracking for that stuff like we have
> > for PIPESTAT.
> 
> Didn't think about that, but BSpec tells me those are masked by the HPD
> IRQ enable bits in PORT_HOTPLUG_EN and those we enable only later.
> Otherwise this would be also a problem during output setup time.

Hmm. Are they really masked? I though it's just an IER effectively.

> 
> --Imre
> 
> > 
> > >  	mutex_lock(&dev->struct_mutex);
> > >  	if (i915_gem_init_hw(dev)) {
> > >  		DRM_ERROR("failed to re-initialize GPU, declaring wedged!\n");
> > > -- 
> > > 2.5.0
> > > 
> > > _______________________________________________
> > > Intel-gfx mailing list
> > > Intel-gfx@lists.freedesktop.org
> > > https://lists.freedesktop.org/mailman/listinfo/intel-gfx
> > 

-- 
Ville Syrjälä
Intel OTC
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

  reply	other threads:[~2016-11-29 20:27 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-11-29 14:52 [PATCH] drm/i915/lspcon: Enable AUX interrupts for resume time initialization Imre Deak
2016-11-29 19:40 ` [PATCH v2] " Imre Deak
2016-11-29 19:55   ` Ville Syrjälä
2016-11-29 20:14     ` Imre Deak
2016-11-29 20:27       ` Ville Syrjälä [this message]
2016-11-29 20:41         ` Imre Deak
2016-11-29 21:00           ` Ville Syrjälä
2016-11-30 12:27             ` Imre Deak
2016-12-01 13:18   ` David Weinehall
2016-11-29 21:53 ` ✓ Fi.CI.BAT: success for drm/i915/lspcon: Enable AUX interrupts for resume time initialization (rev2) Patchwork
2016-12-01 13:33   ` Imre Deak

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=20161129202716.GZ31595@intel.com \
    --to=ville.syrjala@linux.intel.com \
    --cc=imre.deak@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    /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.