inv_mpu: only setup timer once.
author郭毅 <gy@rock-chips.com>
Mon, 4 Aug 2014 01:06:22 +0000 (09:06 +0800)
committer郭毅 <gy@rock-chips.com>
Mon, 4 Aug 2014 01:06:22 +0000 (09:06 +0800)
drivers/misc/inv_mpu/timerirq.c

index 5aeb7602c5cc7d3edd7622959dce1f79d43e8a37..a26620f92c4b0c6dc245a8c11af9b2f7d83c7784 100755 (executable)
@@ -102,7 +102,6 @@ static int start_timerirq(struct timerirq_data *data)
        data->data_ready = false;
 
        init_completion(&data->timer_done);
-       setup_timer(&data->timer, timerirq_handler, (unsigned long)data);
 
        return mod_timer(&data->timer,
                         jiffies + msecs_to_jiffies(data->period));
@@ -138,6 +137,7 @@ static int timerirq_open(struct inode *inode, struct file *file)
        data->pid = current->pid;
        init_waitqueue_head(&data->timerirq_wait);
 
+       setup_timer(&data->timer, timerirq_handler, (unsigned long)data);
        dev_dbg(data->dev->this_device,
                "%s current->pid %d\n", __func__, current->pid);
        return 0;