|
@@ -196,6 +196,7 @@ static void walkera0701_close(struct input_dev *dev)
|
|
|
struct walkera_dev *w = input_get_drvdata(dev);
|
|
|
|
|
|
parport_disable_irq(w->parport);
|
|
|
+ hrtimer_cancel(&w->timer);
|
|
|
}
|
|
|
|
|
|
static int walkera0701_connect(struct walkera_dev *w, int parport)
|
|
@@ -224,6 +225,9 @@ static int walkera0701_connect(struct walkera_dev *w, int parport)
|
|
|
if (parport_claim(w->pardevice))
|
|
|
goto init_err1;
|
|
|
|
|
|
+ hrtimer_init(&w->timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
|
|
|
+ w->timer.function = timer_handler;
|
|
|
+
|
|
|
w->input_dev = input_allocate_device();
|
|
|
if (!w->input_dev)
|
|
|
goto init_err2;
|
|
@@ -254,8 +258,6 @@ static int walkera0701_connect(struct walkera_dev *w, int parport)
|
|
|
if (err)
|
|
|
goto init_err3;
|
|
|
|
|
|
- hrtimer_init(&w->timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
|
|
|
- w->timer.function = timer_handler;
|
|
|
return 0;
|
|
|
|
|
|
init_err3:
|
|
@@ -271,7 +273,6 @@ static int walkera0701_connect(struct walkera_dev *w, int parport)
|
|
|
|
|
|
static void walkera0701_disconnect(struct walkera_dev *w)
|
|
|
{
|
|
|
- hrtimer_cancel(&w->timer);
|
|
|
input_unregister_device(w->input_dev);
|
|
|
parport_release(w->pardevice);
|
|
|
parport_unregister_device(w->pardevice);
|