diff options
author | Dave Airlie <airlied@redhat.com> | 2014-10-01 05:27:01 -0400 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2014-10-01 05:27:01 -0400 |
commit | c5939a7360a69fc415bcfff6b10ced5227495a48 (patch) | |
tree | 1b9c7796fbeeba17e0e184a755354482de976af7 /drivers/gpu/drm/drm_irq.c | |
parent | 1dadba87cba20989c5a5a56f2a86fe6672e37c30 (diff) | |
parent | 1b11629737ca5414b0310d35e01a125cfde1ba4d (diff) |
Merge tag 'topic/core-stuff-2014-09-29' of git://anongit.freedesktop.org/drm-intel into drm-next
Ok, here's the update core-stuff pull request with the locking fixup patch
fixed up with another patch.
* tag 'topic/core-stuff-2014-09-29' of git://anongit.freedesktop.org/drm-intel:
drm: Drop grab fpriv->fbs_lock in drm_fb_release
drm/udl: use container_of to resolve udl_fbdev from drm_fb_helper
drm/ast: use container_of to resolve ast_fbdev from drm_fb_helper
drm/gma500: use container_of to resolve psb_fbdev from drm_fb_helper
drm/qxl: use container_of to resolve qxl_fbdev from drm_fb_helper
drm/nouveau: use container_of to resolve nouveau_plane from drm_plane
drm/nouveau: use container_of to resolve nouveau_fbdev from drm_fb_helper
drm/radeon: use container_of to resolve radeon_fbdev from drm_fb_helper
drm/mgag200: use container_of to resolve mga_fbdev from drm_fb_helper
drm/cirrus: use container_of to resolve cirrus_fbdev from drm_fb_helper
drm: Improve debug output for drm_wait_one_vblank
drm: Fixup locking for universal cursor planes
drm: Don't update vblank timestamp when the counter didn't change
Diffstat (limited to 'drivers/gpu/drm/drm_irq.c')
-rw-r--r-- | drivers/gpu/drm/drm_irq.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/gpu/drm/drm_irq.c b/drivers/gpu/drm/drm_irq.c index 80ff94ada75e..5ef03c216a27 100644 --- a/drivers/gpu/drm/drm_irq.c +++ b/drivers/gpu/drm/drm_irq.c | |||
@@ -126,6 +126,9 @@ static void drm_update_vblank_count(struct drm_device *dev, int crtc) | |||
126 | DRM_DEBUG("updating vblank count on crtc %d, missed %d\n", | 126 | DRM_DEBUG("updating vblank count on crtc %d, missed %d\n", |
127 | crtc, diff); | 127 | crtc, diff); |
128 | 128 | ||
129 | if (diff == 0) | ||
130 | return; | ||
131 | |||
129 | /* Reinitialize corresponding vblank timestamp if high-precision query | 132 | /* Reinitialize corresponding vblank timestamp if high-precision query |
130 | * available. Skip this step if query unsupported or failed. Will | 133 | * available. Skip this step if query unsupported or failed. Will |
131 | * reinitialize delayed at next vblank interrupt in that case. | 134 | * reinitialize delayed at next vblank interrupt in that case. |
@@ -1074,7 +1077,7 @@ void drm_wait_one_vblank(struct drm_device *dev, int crtc) | |||
1074 | u32 last; | 1077 | u32 last; |
1075 | 1078 | ||
1076 | ret = drm_vblank_get(dev, crtc); | 1079 | ret = drm_vblank_get(dev, crtc); |
1077 | if (WARN_ON(ret)) | 1080 | if (WARN(ret, "vblank not available on crtc %i, ret=%i\n", crtc, ret)) |
1078 | return; | 1081 | return; |
1079 | 1082 | ||
1080 | last = drm_vblank_count(dev, crtc); | 1083 | last = drm_vblank_count(dev, crtc); |
@@ -1083,7 +1086,7 @@ void drm_wait_one_vblank(struct drm_device *dev, int crtc) | |||
1083 | last != drm_vblank_count(dev, crtc), | 1086 | last != drm_vblank_count(dev, crtc), |
1084 | msecs_to_jiffies(100)); | 1087 | msecs_to_jiffies(100)); |
1085 | 1088 | ||
1086 | WARN_ON(ret == 0); | 1089 | WARN(ret == 0, "vblank wait timed out on crtc %i\n", crtc); |
1087 | 1090 | ||
1088 | drm_vblank_put(dev, crtc); | 1091 | drm_vblank_put(dev, crtc); |
1089 | } | 1092 | } |