OSDN Git Service

drm/vkms: Convert to CRTC VBLANK callbacks
authorThomas Zimmermann <tzimmermann@suse.de>
Thu, 23 Jan 2020 13:59:40 +0000 (14:59 +0100)
committerThomas Zimmermann <tzimmermann@suse.de>
Thu, 13 Feb 2020 12:10:10 +0000 (13:10 +0100)
VBLANK callbacks in struct drm_driver are deprecated in favor of
their equivalents in struct drm_crtc_funcs. Convert vkms over.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Rodrigo Siqueira <rodrigosiqueira@gmail.com>
Tested-by: Rodrigo Siqueira <rodrigosiqueira@gmail.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200123135943.24140-20-tzimmermann@suse.de
drivers/gpu/drm/vkms/vkms_crtc.c
drivers/gpu/drm/vkms/vkms_drv.c
drivers/gpu/drm/vkms/vkms_drv.h

index 74f703b..ac85e17 100644 (file)
@@ -76,10 +76,12 @@ static void vkms_disable_vblank(struct drm_crtc *crtc)
        hrtimer_cancel(&out->vblank_hrtimer);
 }
 
-bool vkms_get_vblank_timestamp(struct drm_device *dev, unsigned int pipe,
-                              int *max_error, ktime_t *vblank_time,
-                              bool in_vblank_irq)
+static bool vkms_get_vblank_timestamp(struct drm_crtc *crtc,
+                                     int *max_error, ktime_t *vblank_time,
+                                     bool in_vblank_irq)
 {
+       struct drm_device *dev = crtc->dev;
+       unsigned int pipe = crtc->index;
        struct vkms_device *vkmsdev = drm_device_to_vkms_device(dev);
        struct vkms_output *output = &vkmsdev->output;
        struct drm_vblank_crtc *vblank = &dev->vblank[pipe];
@@ -154,6 +156,7 @@ static const struct drm_crtc_funcs vkms_crtc_funcs = {
        .atomic_destroy_state   = vkms_atomic_crtc_destroy_state,
        .enable_vblank          = vkms_enable_vblank,
        .disable_vblank         = vkms_disable_vblank,
+       .get_vblank_timestamp   = vkms_get_vblank_timestamp,
        .get_crc_sources        = vkms_get_crc_sources,
        .set_crc_source         = vkms_set_crc_source,
        .verify_crc_source      = vkms_verify_crc_source,
index 25bd751..860de05 100644 (file)
@@ -103,7 +103,6 @@ static struct drm_driver vkms_driver = {
        .dumb_create            = vkms_dumb_create,
        .gem_vm_ops             = &vkms_gem_vm_ops,
        .gem_free_object_unlocked = vkms_gem_free_object,
-       .get_vblank_timestamp   = vkms_get_vblank_timestamp,
        .prime_fd_to_handle     = drm_gem_prime_fd_to_handle,
        .gem_prime_import_sg_table = vkms_prime_import_sg_table,
 
index 7d52e24..eda04ff 100644 (file)
@@ -111,10 +111,6 @@ struct vkms_gem_object {
 int vkms_crtc_init(struct drm_device *dev, struct drm_crtc *crtc,
                   struct drm_plane *primary, struct drm_plane *cursor);
 
-bool vkms_get_vblank_timestamp(struct drm_device *dev, unsigned int pipe,
-                              int *max_error, ktime_t *vblank_time,
-                              bool in_vblank_irq);
-
 int vkms_output_init(struct vkms_device *vkmsdev, int index);
 
 struct drm_plane *vkms_plane_init(struct vkms_device *vkmsdev,