From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: Daniel Vetter <daniel@ffwll.ch>
Cc: intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH 1/3] drm/i915: Suppress spurious CPU FIFO underruns on ILK-IVB
Date: Tue, 24 Nov 2015 16:52:13 +0200 [thread overview]
Message-ID: <20151124145213.GI4437@intel.com> (raw)
In-Reply-To: <20151124141624.GG17050@phenom.ffwll.local>
On Tue, Nov 24, 2015 at 03:16:24PM +0100, Daniel Vetter wrote:
> On Fri, Nov 20, 2015 at 10:09:18PM +0200, ville.syrjala@linux.intel.com wrote:
> > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> >
> > We still get spurious pipe underruns on ILK/SNB/IVB under two
> > circumstances when dealing with PCH ports:
> > * When the pipe has been disabled, but FDI RX/TX is still enabled
> > * During FDI link training
> >
> > Both cases seem to happen at least when we do VGA+HDMI cloning
> > from the same pipe. I don't think I've seen them when not cloning,
> > but can't be 100% sure.
> >
> > Disable underrun reporting around those places to eliminate the
> > dmesg errors.
> >
> > Testcase: igt/kms_setmode/basic-clone-single-crtc
> > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> hsw seems to have a similar problem when both vga and hdmi are used, even
> when not cloned. Bad thing is that somehow the underrun reporting gets
> into a non-recoverable state and stuck there, so that no underrun and also
> nothing else (specifically crc irqs, that's why bat notices) work any
> more.
>
> Might be worth a shot to try the same trick there. Of course we still need
> to figure out why it can't recover from this, too.
I don't have a HSW/BDW with VGA on me. I suppose I might need to go
find one and see what's what.
Series pushed to dinq. Thanks for the acks and reviews.
>
> Anyway just an aside, ack on the entire series.
> -Daniel
>
> > ---
> > drivers/gpu/drm/i915/intel_display.c | 20 +++++++++++++++++++-
> > 1 file changed, 19 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> > index 68fb449ded77..8a8104b7947d 100644
> > --- a/drivers/gpu/drm/i915/intel_display.c
> > +++ b/drivers/gpu/drm/i915/intel_display.c
> > @@ -4137,6 +4137,12 @@ static void ironlake_pch_enable(struct drm_crtc *crtc)
> > I915_WRITE(FDI_RX_TUSIZE1(pipe),
> > I915_READ(PIPE_DATA_M1(pipe)) & TU_SIZE_MASK);
> >
> > + /*
> > + * Sometimes spurious CPU pipe underruns happen during FDI
> > + * training, at least with VGA+HDMI cloning. Suppress them.
> > + */
> > + intel_set_cpu_fifo_underrun_reporting(dev_priv, pipe, false);
> > +
> > /* For PCH output, training FDI link */
> > dev_priv->display.fdi_link_train(crtc);
> >
> > @@ -4170,6 +4176,8 @@ static void ironlake_pch_enable(struct drm_crtc *crtc)
> >
> > intel_fdi_normal_train(crtc);
> >
> > + intel_set_cpu_fifo_underrun_reporting(dev_priv, pipe, true);
> > +
> > /* For PCH DP, enable TRANS_DP_CTL */
> > if (HAS_PCH_CPT(dev) && intel_crtc->config->has_dp_encoder) {
> > const struct drm_display_mode *adjusted_mode =
> > @@ -5062,12 +5070,22 @@ static void ironlake_crtc_disable(struct drm_crtc *crtc)
> > drm_crtc_vblank_off(crtc);
> > assert_vblank_disabled(crtc);
> >
> > + /*
> > + * Sometimes spurious CPU pipe underruns happen when the
> > + * pipe is already disabled, but FDI RX/TX is still enabled.
> > + * Happens at least with VGA+HDMI cloning. Suppress them.
> > + */
> > + if (intel_crtc->config->has_pch_encoder)
> > + intel_set_cpu_fifo_underrun_reporting(dev_priv, pipe, false);
> > +
> > intel_disable_pipe(intel_crtc);
> >
> > ironlake_pfit_disable(intel_crtc, false);
> >
> > - if (intel_crtc->config->has_pch_encoder)
> > + if (intel_crtc->config->has_pch_encoder) {
> > ironlake_fdi_disable(crtc);
> > + intel_set_cpu_fifo_underrun_reporting(dev_priv, pipe, true);
> > + }
> >
> > for_each_encoder_on_crtc(dev, crtc, encoder)
> > if (encoder->post_disable)
> > --
> > 2.4.10
> >
> > _______________________________________________
> > Intel-gfx mailing list
> > Intel-gfx@lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/intel-gfx
>
> --
> Daniel Vetter
> Software Engineer, Intel Corporation
> http://blog.ffwll.ch
--
Ville Syrjälä
Intel OTC
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
prev parent reply other threads:[~2015-11-24 14:52 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-20 20:09 [PATCH 1/3] drm/i915: Suppress spurious CPU FIFO underruns on ILK-IVB ville.syrjala
2015-11-20 20:09 ` [PATCH 2/3] drm/i915: Disable CPU underruns around eDP port and vdd enable " ville.syrjala
2015-11-21 10:52 ` Chris Wilson
2015-11-20 20:09 ` [PATCH 3/3] drm/i915: Check for underruns after crtc disable ville.syrjala
2015-11-21 10:49 ` Chris Wilson
2015-11-23 14:10 ` Ville Syrjälä
2015-11-23 14:42 ` Chris Wilson
2015-11-24 14:14 ` Daniel Vetter
2015-11-24 14:21 ` Ville Syrjälä
2015-11-21 10:51 ` [PATCH 1/3] drm/i915: Suppress spurious CPU FIFO underruns on ILK-IVB Chris Wilson
2015-11-23 14:22 ` Ville Syrjälä
2015-11-23 14:28 ` Chris Wilson
2015-11-23 14:55 ` Ville Syrjälä
2015-11-24 14:09 ` Daniel Vetter
2015-11-24 14:16 ` Daniel Vetter
2015-11-24 14:52 ` Ville Syrjälä [this message]
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=20151124145213.GI4437@intel.com \
--to=ville.syrjala@linux.intel.com \
--cc=daniel@ffwll.ch \
--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.