From: "Vivi, Rodrigo" <rodrigo.vivi@intel.com>
To: "intel-gfx@lists.freedesktop.org"
<intel-gfx@lists.freedesktop.org>,
"Zanoni, Paulo R" <paulo.r.zanoni@intel.com>
Subject: Re: [PATCH 5/7] drm/i915: Delay first PSR activation.
Date: Mon, 24 Aug 2015 22:35:31 +0000 [thread overview]
Message-ID: <1440455799.3879.109.camel@intel.com> (raw)
In-Reply-To: <1440435812.2526.26.camel@intel.com>
On Mon, 2015-08-24 at 17:03 +0000, Zanoni, Paulo R wrote:
> Em Qui, 2015-08-20 às 17:55 -0700, Rodrigo Vivi escreveu:
> > This affects PSR on VLV, CHV, HSW and BDW.
> >
> > When debuging the frozen screen caused by HW tracking with low
> > power state I noticed that if we keep moving the mouse non stop
> > you will miss the screen updates for a while. At least
> > until we stop moving the mouse for a small time and move again.
> >
> > The actual enabling should happen immediately after
> > Display Port enabling sequence finished with links trained and
> > everything enabled. However we face many issues when enabling PSR
> > right after a modeset.
> >
> > On VLV/CHV we face blank screens on this scenario and on HSW+
> > we face a recoverable frozen screen, at least until next
> > exit-activate sequence.
> >
> > Another workaround for the same issue here would be to increase
> > re-enable idle time from 100 to 500 as we did for VLV/CHV.
> > However this patch workaround this issue in a better
> > way since it doesn't reduce PSR residency and also
> > allow us to reduce the delay time between re-enables at least
> > on VLV/CHV.
>
> It sounds like this could use a little more debugging. Have we tried
> moving the psr enable to after intel_post_plane_update()?
I'm not sure if it is a good idea to enable psr to late directly, on
some attempts to enable psr late I was having trouble with fbdev
cases... but I could try... but also here we would need to be carefull
to avoid multiple unecessary calls to psr_enable...
>
> The "move the cursor to reproduce bug" sounds very weird.
yes, it is weird indeed. And hard to explain unless you are seeing it,
so if you want I could upload a video somewhere to show you...
>
> >
> > Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
> > ---
> > drivers/gpu/drm/i915/intel_psr.c | 18 ++++++++++++++++--
> > 1 file changed, 16 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/intel_psr.c
> > b/drivers/gpu/drm/i915/intel_psr.c
> > index d02d4e2..2be4a62 100644
> > --- a/drivers/gpu/drm/i915/intel_psr.c
> > +++ b/drivers/gpu/drm/i915/intel_psr.c
> > @@ -427,6 +427,19 @@ void intel_psr_enable(struct intel_dp
> > *intel_dp)
> > vlv_psr_enable_source(intel_dp);
> > }
> >
> > + /*
> > + * FIXME: Activation should happen immediately since this
> > function
> > + * is just called after pipe is fully trained and enabled.
> > + * However on previous platforms we face issues when first
> > activation
> > + * follows a modeset so quickly.
> > + * - On VLV/CHV we get bank screen on first activation
> > + * - On HSW/BDW we get a recoverable frozen screen
> > until
> > next
> > + * exit-activate sequence.
> > + */
> > + if (INTEL_INFO(dev)->gen < 9)
> > + schedule_delayed_work(&dev_priv->psr.work,
> > + msecs_to_jiffies(500));
> > +
> > dev_priv->psr.enabled = intel_dp;
> > unlock:
> > mutex_unlock(&dev_priv->psr.lock);
> > @@ -729,8 +742,9 @@ void intel_psr_flush(struct drm_device *dev,
> > intel_psr_exit(dev);
> >
> > if (!dev_priv->psr.active && !dev_priv
> > ->psr.busy_frontbuffer_bits)
> > - schedule_delayed_work(&dev_priv->psr.work,
> > - msecs_to_jiffies(delay_ms));
> > + if (!work_busy(&dev_priv->psr.work.work))
> > + schedule_delayed_work(&dev_priv->psr.work,
> > +
> > msecs_to_jiffies(delay_ms));
> > mutex_unlock(&dev_priv->psr.lock);
> > }
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2015-08-24 22:35 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-21 0:55 [PATCH 1/7] drm/i915: Remove duplicated dpcd write on hsw_psr_enable_sink Rodrigo Vivi
2015-08-21 0:55 ` [PATCH 2/7] drm/i915: Fix PSR disable sequence on core platforms Rodrigo Vivi
2015-08-24 14:14 ` Zanoni, Paulo R
2015-08-24 22:18 ` Vivi, Rodrigo
2015-08-21 0:55 ` [PATCH 3/7] drm/i915: PSR: Let's rely more on frontbuffer tracking Rodrigo Vivi
2015-08-24 14:29 ` Zanoni, Paulo R
2015-08-24 22:28 ` Vivi, Rodrigo
2015-08-21 0:55 ` [PATCH 4/7] drm/i915: PSR: Mask LPSP hw tracking back again Rodrigo Vivi
2015-08-26 9:11 ` Daniel Vetter
2015-09-26 1:56 ` [4/7] " Brian Norris
2015-08-21 0:55 ` [PATCH 5/7] drm/i915: Delay first PSR activation Rodrigo Vivi
2015-08-24 17:03 ` Zanoni, Paulo R
2015-08-24 22:35 ` Vivi, Rodrigo [this message]
2015-08-21 0:55 ` [PATCH 6/7] drm/i915: Remove psr re-activation delay on HSW+ Rodrigo Vivi
2015-08-21 0:55 ` [PATCH 7/7] drm/i915: Reduce PSR re-activation time for VLV/CHV Rodrigo Vivi
2015-08-28 23:38 ` shuang.he
2015-08-24 14:04 ` [PATCH 1/7] drm/i915: Remove duplicated dpcd write on hsw_psr_enable_sink Zanoni, Paulo R
2015-08-24 22:16 ` Vivi, Rodrigo
2015-09-26 1:40 ` [1/7] " Brian Norris
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=1440455799.3879.109.camel@intel.com \
--to=rodrigo.vivi@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=paulo.r.zanoni@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.