From: Mario Kleiner <mario.kleiner.de@gmail.com>
To: dri-devel@lists.freedesktop.org
Cc: airlied@redhat.com, stable@vger.kernel.org
Subject: [PATCH 2/3] drm: Fix emitted vblank timestamps in drm_vblank_off()
Date: Wed, 6 Aug 2014 03:22:45 +0200 [thread overview]
Message-ID: <1407288166-19881-3-git-send-email-mario.kleiner.de@gmail.com> (raw)
In-Reply-To: <1407288166-19881-1-git-send-email-mario.kleiner.de@gmail.com>
Move the query for vblank count and time before the
vblank_disable_and_save(), because the disable fn
will invalidate the vblank timestamps, so all emitted
events would carry an invalid zero timestamp instead of
the timestamp of the vblank of vblank disable. This could
confuse clients.
Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
Cc: stable@vger.kernel.org
---
drivers/gpu/drm/drm_irq.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/drm_irq.c b/drivers/gpu/drm/drm_irq.c
index 553a58c..89e91e3 100644
--- a/drivers/gpu/drm/drm_irq.c
+++ b/drivers/gpu/drm/drm_irq.c
@@ -1019,13 +1019,14 @@ void drm_vblank_off(struct drm_device *dev, int crtc)
unsigned long irqflags;
unsigned int seq;
+ /* Get 'now' vblank ts before it gets cleared by vblank disable */
+ seq = drm_vblank_count_and_time(dev, crtc, &now);
+
spin_lock_irqsave(&dev->vbl_lock, irqflags);
vblank_disable_and_save(dev, crtc);
wake_up(&dev->vblank[crtc].queue);
/* Send any queued vblank events, lest the natives grow disquiet */
- seq = drm_vblank_count_and_time(dev, crtc, &now);
-
spin_lock(&dev->event_lock);
list_for_each_entry_safe(e, t, &dev->vblank_event_list, base.link) {
if (e->pipe != crtc)
--
1.9.1
next prev parent reply other threads:[~2014-08-06 1:23 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-08-06 1:22 drm vblank fixes Mario Kleiner
2014-08-06 1:22 ` [PATCH 1/3] drm: Remove drm_vblank_cleanup from drm_vblank_init error path Mario Kleiner
2014-08-06 10:51 ` Ville Syrjälä
2014-08-06 1:22 ` Mario Kleiner [this message]
2014-08-06 10:53 ` [PATCH 2/3] drm: Fix emitted vblank timestamps in drm_vblank_off() Ville Syrjälä
2014-08-06 1:22 ` [PATCH 3/3] drm: Use vblank_disable_and_save in drm_vblank_cleanup() Mario Kleiner
2014-08-06 10:51 ` Ville Syrjälä
2014-08-06 13:57 ` Daniel Vetter
2014-08-07 0:50 ` Mario Kleiner
2014-08-07 6:50 ` Daniel Vetter
2014-08-07 15:13 ` Mario Kleiner
2014-08-07 6:57 ` Daniel Vetter
2014-08-06 6:37 ` drm vblank fixes Daniel Vetter
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=1407288166-19881-3-git-send-email-mario.kleiner.de@gmail.com \
--to=mario.kleiner.de@gmail.com \
--cc=airlied@redhat.com \
--cc=dri-devel@lists.freedesktop.org \
--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