|
@@ -184,9 +184,8 @@ static unsigned int telclk_interrupt;
|
|
|
static int int_events; /* Event that generate a interrupt */
|
|
|
static int got_event; /* if events processing have been done */
|
|
|
|
|
|
-static void switchover_timeout(unsigned long data);
|
|
|
-static struct timer_list switchover_timer =
|
|
|
- TIMER_INITIALIZER(switchover_timeout , 0, 0);
|
|
|
+static void switchover_timeout(struct timer_list *t);
|
|
|
+static struct timer_list switchover_timer;
|
|
|
static unsigned long tlclk_timer_data;
|
|
|
|
|
|
static struct tlclk_alarms *alarm_events;
|
|
@@ -805,7 +804,7 @@ static int __init tlclk_init(void)
|
|
|
goto out3;
|
|
|
}
|
|
|
|
|
|
- init_timer(&switchover_timer);
|
|
|
+ timer_setup(&switchover_timer, switchover_timeout, 0);
|
|
|
|
|
|
ret = misc_register(&tlclk_miscdev);
|
|
|
if (ret < 0) {
|
|
@@ -855,9 +854,9 @@ static void __exit tlclk_cleanup(void)
|
|
|
|
|
|
}
|
|
|
|
|
|
-static void switchover_timeout(unsigned long data)
|
|
|
+static void switchover_timeout(struct timer_list *unused)
|
|
|
{
|
|
|
- unsigned long flags = *(unsigned long *) data;
|
|
|
+ unsigned long flags = tlclk_timer_data;
|
|
|
|
|
|
if ((flags & 1)) {
|
|
|
if ((inb(TLCLK_REG1) & 0x08) != (flags & 0x08))
|
|
@@ -922,7 +921,6 @@ static irqreturn_t tlclk_interrupt(int irq, void *dev_id)
|
|
|
/* TIMEOUT in ~10ms */
|
|
|
switchover_timer.expires = jiffies + msecs_to_jiffies(10);
|
|
|
tlclk_timer_data = inb(TLCLK_REG1);
|
|
|
- switchover_timer.data = (unsigned long) &tlclk_timer_data;
|
|
|
mod_timer(&switchover_timer, switchover_timer.expires);
|
|
|
} else {
|
|
|
got_event = 1;
|