In preparation for unconditionally passing the
struct tasklet_struct pointer to all tasklet
callbacks, switch to using the new tasklet_setup()
and from_tasklet() to pass the tasklet pointer explicitly.
Signed-off-by: Romain Perier <romain.perier@gmail.com>
Signed-off-by: Allen Pais <allen.lkml@gmail.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
        }
 }
 
-static void ttusb_dec_process_urb_frame_list(unsigned long data)
+static void ttusb_dec_process_urb_frame_list(struct tasklet_struct *t)
 {
-       struct ttusb_dec *dec = (struct ttusb_dec *)data;
+       struct ttusb_dec *dec = from_tasklet(dec, t, urb_tasklet);
        struct list_head *item;
        struct urb_frame *frame;
        unsigned long flags;
 {
        spin_lock_init(&dec->urb_frame_list_lock);
        INIT_LIST_HEAD(&dec->urb_frame_list);
-       tasklet_init(&dec->urb_tasklet, ttusb_dec_process_urb_frame_list,
-                    (unsigned long)dec);
+       tasklet_setup(&dec->urb_tasklet, ttusb_dec_process_urb_frame_list);
 }
 
 static int ttusb_init_rc( struct ttusb_dec *dec)