usbatm->flags |= (use_isoc ? UDSL_USE_ISOC : 0);
 
        INIT_WORK(&instance->status_check_work, speedtch_check_status);
-       init_timer(&instance->status_check_timer);
-
-       instance->status_check_timer.function = speedtch_status_poll;
-       instance->status_check_timer.data = (unsigned long)instance;
+       setup_timer(&instance->status_check_timer, speedtch_status_poll,
+                   (unsigned long)instance);
        instance->last_status = 0xff;
        instance->poll_delay = MIN_POLL_DELAY;
 
-       init_timer(&instance->resubmit_timer);
-       instance->resubmit_timer.function = speedtch_resubmit_int;
-       instance->resubmit_timer.data = (unsigned long)instance;
+       setup_timer(&instance->resubmit_timer, speedtch_resubmit_int,
+                   (unsigned long)instance);
 
        instance->int_urb = usb_alloc_urb(0, GFP_KERNEL);