]> git.ipfire.org Git - thirdparty/linux.git/blobdiff - drivers/gpu/drm/drm_vblank.c
treewide: setup_timer() -> timer_setup()
[thirdparty/linux.git] / drivers / gpu / drm / drm_vblank.c
index 09c1c4ff93ca4c00948b3104970a628b81a06893..3717b3df34a41fdc2170af50802490d4ee63ad20 100644 (file)
@@ -367,9 +367,9 @@ void drm_vblank_disable_and_save(struct drm_device *dev, unsigned int pipe)
        spin_unlock_irqrestore(&dev->vblank_time_lock, irqflags);
 }
 
-static void vblank_disable_fn(unsigned long arg)
+static void vblank_disable_fn(struct timer_list *t)
 {
-       struct drm_vblank_crtc *vblank = (void *)arg;
+       struct drm_vblank_crtc *vblank = from_timer(vblank, t, disable_timer);
        struct drm_device *dev = vblank->dev;
        unsigned int pipe = vblank->pipe;
        unsigned long irqflags;
@@ -436,8 +436,7 @@ int drm_vblank_init(struct drm_device *dev, unsigned int num_crtcs)
                vblank->dev = dev;
                vblank->pipe = i;
                init_waitqueue_head(&vblank->queue);
-               setup_timer(&vblank->disable_timer, vblank_disable_fn,
-                           (unsigned long)vblank);
+               timer_setup(&vblank->disable_timer, vblank_disable_fn, 0);
                seqlock_init(&vblank->seqlock);
        }
 
@@ -1019,7 +1018,7 @@ static void drm_vblank_put(struct drm_device *dev, unsigned int pipe)
                if (drm_vblank_offdelay == 0)
                        return;
                else if (drm_vblank_offdelay < 0)
-                       vblank_disable_fn((unsigned long)vblank);
+                       vblank_disable_fn(&vblank->disable_timer);
                else if (!dev->vblank_disable_immediate)
                        mod_timer(&vblank->disable_timer,
                                  jiffies + ((drm_vblank_offdelay * HZ)/1000));
@@ -1650,7 +1649,7 @@ bool drm_handle_vblank(struct drm_device *dev, unsigned int pipe)
        spin_unlock_irqrestore(&dev->event_lock, irqflags);
 
        if (disable_irq)
-               vblank_disable_fn((unsigned long)vblank);
+               vblank_disable_fn(&vblank->disable_timer);
 
        return true;
 }