diff options
author | Thierry Reding <treding@nvidia.com> | 2014-12-15 08:47:18 -0500 |
---|---|---|
committer | Thierry Reding <treding@nvidia.com> | 2014-12-17 08:27:33 -0500 |
commit | a4d7b30df5d10bca92f8f359fc56fb8db0410f89 (patch) | |
tree | d3f2ad6c26670ddb586b76f0654a8b49ff6d2a1d /drivers/gpu | |
parent | 4e0cd68115620bc3236ff4e58e4c073948629b41 (diff) |
drm/irq: Add drm_crtc_send_vblank_event()
This function is the KMS native variant of drm_send_vblank_event(). It
takes a struct drm_crtc * instead of a struct drm_device * and an index
of the CRTC.
Eventually the goal is to access vblank data through the CRTC only so
that the per-CRTC data can be moved to struct drm_crtc.
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Thierry Reding <treding@nvidia.com>
Diffstat (limited to 'drivers/gpu')
-rw-r--r-- | drivers/gpu/drm/drm_irq.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/drivers/gpu/drm/drm_irq.c b/drivers/gpu/drm/drm_irq.c index f5a5f18efa5b..276301081aa5 100644 --- a/drivers/gpu/drm/drm_irq.c +++ b/drivers/gpu/drm/drm_irq.c | |||
@@ -904,6 +904,8 @@ static void send_vblank_event(struct drm_device *dev, | |||
904 | * | 904 | * |
905 | * Updates sequence # and timestamp on event, and sends it to userspace. | 905 | * Updates sequence # and timestamp on event, and sends it to userspace. |
906 | * Caller must hold event lock. | 906 | * Caller must hold event lock. |
907 | * | ||
908 | * This is the legacy version of drm_crtc_send_vblank_event(). | ||
907 | */ | 909 | */ |
908 | void drm_send_vblank_event(struct drm_device *dev, int crtc, | 910 | void drm_send_vblank_event(struct drm_device *dev, int crtc, |
909 | struct drm_pending_vblank_event *e) | 911 | struct drm_pending_vblank_event *e) |
@@ -923,6 +925,23 @@ void drm_send_vblank_event(struct drm_device *dev, int crtc, | |||
923 | EXPORT_SYMBOL(drm_send_vblank_event); | 925 | EXPORT_SYMBOL(drm_send_vblank_event); |
924 | 926 | ||
925 | /** | 927 | /** |
928 | * drm_crtc_send_vblank_event - helper to send vblank event after pageflip | ||
929 | * @crtc: the source CRTC of the vblank event | ||
930 | * @e: the event to send | ||
931 | * | ||
932 | * Updates sequence # and timestamp on event, and sends it to userspace. | ||
933 | * Caller must hold event lock. | ||
934 | * | ||
935 | * This is the native KMS version of drm_send_vblank_event(). | ||
936 | */ | ||
937 | void drm_crtc_send_vblank_event(struct drm_crtc *crtc, | ||
938 | struct drm_pending_vblank_event *e) | ||
939 | { | ||
940 | drm_send_vblank_event(crtc->dev, drm_crtc_index(crtc), e); | ||
941 | } | ||
942 | EXPORT_SYMBOL(drm_crtc_send_vblank_event); | ||
943 | |||
944 | /** | ||
926 | * drm_vblank_enable - enable the vblank interrupt on a CRTC | 945 | * drm_vblank_enable - enable the vblank interrupt on a CRTC |
927 | * @dev: DRM device | 946 | * @dev: DRM device |
928 | * @crtc: CRTC in question | 947 | * @crtc: CRTC in question |