Merge tag 'modules-for-v4.15' of git://git.kernel.org/pub/scm/linux/kernel/git/jeyu...
[sfrench/cifs-2.6.git] / drivers / isdn / hardware / mISDN / w6692.c
index 209036a4af3a28c23498c9fdbc6c333bac0e33a8..5acf6ab67cd35d51585f25c4e4d20fad1fe2ea2f 100644 (file)
@@ -311,7 +311,6 @@ W6692_fill_Dfifo(struct w6692_hw *card)
                pr_debug("%s: fill_Dfifo dbusytimer running\n", card->name);
                del_timer(&dch->timer);
        }
-       init_timer(&dch->timer);
        dch->timer.expires = jiffies + ((DBUSY_TIMER_VALUE * HZ) / 1000);
        add_timer(&dch->timer);
        if (debug & DEBUG_HW_DFIFO) {
@@ -819,8 +818,9 @@ w6692_irq(int intno, void *dev_id)
 }
 
 static void
-dbusy_timer_handler(struct dchannel *dch)
+dbusy_timer_handler(struct timer_list *t)
 {
+       struct dchannel *dch = from_timer(dch, t, timer);
        struct w6692_hw *card = dch->hw;
        int             rbch, star;
        u_long          flags;
@@ -852,8 +852,7 @@ static void initW6692(struct w6692_hw *card)
 {
        u8      val;
 
-       setup_timer(&card->dch.timer, (void *)dbusy_timer_handler,
-                   (u_long)&card->dch);
+       timer_setup(&card->dch.timer, dbusy_timer_handler, 0);
        w6692_mode(&card->bc[0], ISDN_P_NONE);
        w6692_mode(&card->bc[1], ISDN_P_NONE);
        WriteW6692(card, W_D_CTL, 0x00);