From: Lyude Paul <cpaul@redhat.com>
To: "Thulasimani, Sivakumar" <sivakumar.thulasimani@intel.com>,
intel-gfx@lists.freedesktop.org
Cc: Daniel Vetter <daniel.vetter@intel.com>,
"open list:INTEL DRM DRIVERS excluding Poulsbo, Moorestow...,
linux-kernel@vger.kernel.org open list"
<dri-devel@lists.freedesktop.org>,
stable@vger.kernel.org
Subject: Re: [Intel-gfx] [PATCH] drm/i915: Resume DP MST before doing any kind of modesetting
Date: Thu, 25 Feb 2016 10:09:14 -0500 [thread overview]
Message-ID: <1456412954.5486.4.camel@redhat.com> (raw)
In-Reply-To: <56CD1660.2030203@intel.com>
Unfortunately MST is a wild beast, and doesn't work at all like other
connectors. This being said, putting it above intel_display_resume() was the
first thing I tried but that didn't work. Originally I had thought putting it
this high up was required because I had assumed drm_mode_config_reset() was
doing modesetting as well but doing some investigation, it doesn't look like
that call actually does anything. It looks like the real culprit here is
intel_runtime_pm_enable_interrupts(), so long as the call to
intel_dp_mst_resume() is above that everything works. So now I'm a little unsure
why this is working like it is, although I can definitely see the patch fixes
the issue. I'm going to edit the patch to reflect this, and see if I can get any
more insight as to why this fixes it.
On Wed, 2016-02-24 at 08:03 +0530, Thulasimani, Sivakumar wrote:
>
> On 2/24/2016 3:41 AM, Lyude wrote:
> > As it turns out, resuming DP MST is racey since we don't make sure MST
> > is ready before we start modesetting, it just usually happens to be
> > ready in time. This isn't the case on all systems, particularly a
> > ThinkPad T560 with displays connected through the dock. On these
> > systems, resuming the laptop while connected to the dock usually results
> > in blank monitors. Making sure MST is ready before doing any kind of
> > modesetting fixes this issue.
> basic question since i haven't worked on MST much. MST should work like any
> other digital panel on resume. i.e detect followed by modeset. in the
> modified
> commit mentioned below is it failing to detect the panel or failing at
> the modeset ?
> if we are depending on the intel_display_resume, how about moving the
> intel_dp_mst_resume just above intel_display_resume?
>
>
> Generic question to others in mail list on i915_drm_resume
> we are doing a modeset and then doing the detect/hpd init.
> shouldn't this be the other way round ? almost all displays
> will pass a modeset even if display is not connected so we
> are spending time on modeset even for displays that were
> removed during the suspend state. if this is to simply
> drm_state being saved and restored,
> > We originally changed the resume order in
> >
> > commit e7d6f7d70829 ("drm/i915: resume MST after reading back hw state")
> >
> > to fix a ton of WARN_ON's after resume, but this doesn't seem to be an
> > issue now anyhow.
> >
> > CC: stable@vger.kernel.org
> > Signed-off-by: Lyude <cpaul@redhat.com>
> > ---
> > drivers/gpu/drm/i915/i915_drv.c | 10 ++++++++--
> > 1 file changed, 8 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/i915_drv.c
> > b/drivers/gpu/drm/i915/i915_drv.c
> > index f357058..4dcf3dd 100644
> > --- a/drivers/gpu/drm/i915/i915_drv.c
> > +++ b/drivers/gpu/drm/i915/i915_drv.c
> > @@ -733,6 +733,14 @@ static int i915_drm_resume(struct drm_device *dev)
> > intel_opregion_setup(dev);
> >
> > intel_init_pch_refclk(dev);
> > +
> > + /*
> > + * We need to make sure that we resume MST before doing anything
> > + * display related, otherwise we risk trying to bring up a display
> > on
> > + * MST before the hub is actually ready
> > + */
> > + intel_dp_mst_resume(dev);
> > +
> This does not look proper. if the CD clock is turned off during suspend
> our dpcd read itself might fail till we enable CD Clock.
>
> regards,
> Sivakumar
> > drm_mode_config_reset(dev);
> >
> > /*
> > @@ -765,8 +773,6 @@ static int i915_drm_resume(struct drm_device *dev)
> > intel_display_resume(dev);
> > drm_modeset_unlock_all(dev);
> >
> > - intel_dp_mst_resume(dev);
> > -
> > /*
> > * ... but also need to make sure that hotplug processing
> > * doesn't cause havoc. Like in the driver load code we don't
>
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
next prev parent reply other threads:[~2016-02-25 15:09 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-02-23 22:11 [PATCH] drm/i915: Resume DP MST before doing any kind of modesetting Lyude
2016-02-24 2:33 ` Thulasimani, Sivakumar
2016-02-25 15:09 ` Lyude Paul [this message]
2016-02-25 21:05 ` [Intel-gfx] " Rob Clark
2016-02-29 16:12 ` Daniel Vetter
2016-02-29 21:33 ` [Intel-gfx] " Dave Airlie
2016-03-02 9:27 ` Daniel Vetter
2016-02-29 23:33 ` Rob Clark
2016-03-01 0:47 ` Thulasimani, Sivakumar
2016-03-01 1:38 ` Rob Clark
2016-03-02 9:31 ` Daniel Vetter
2016-03-02 9:29 ` Daniel Vetter
2016-03-02 15:28 ` Rob Clark
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=1456412954.5486.4.camel@redhat.com \
--to=cpaul@redhat.com \
--cc=daniel.vetter@intel.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=intel-gfx@lists.freedesktop.org \
--cc=sivakumar.thulasimani@intel.com \
--cc=stable@vger.kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox