summaryrefslogtreecommitdiff
path: root/drivers/misc/mpu3050/mpuirq.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/misc/mpu3050/mpuirq.c')
-rw-r--r--drivers/misc/mpu3050/mpuirq.c27
1 files changed, 12 insertions, 15 deletions
diff --git a/drivers/misc/mpu3050/mpuirq.c b/drivers/misc/mpu3050/mpuirq.c
index b6f21856cf32..691e5bc5b052 100644
--- a/drivers/misc/mpu3050/mpuirq.c
+++ b/drivers/misc/mpu3050/mpuirq.c
@@ -61,7 +61,7 @@ struct mpuirq_dev_data {
};
static struct mpuirq_dev_data mpuirq_dev_data;
-static struct irq_data mpuirq_data;
+static struct mpuirq_data mpuirq_data;
static char *interface = MPUIRQ_NAME;
static void mpu_accel_data_work_fcn(struct work_struct *work);
@@ -206,23 +206,20 @@ static irqreturn_t mpuirq_handler(int irq, void *dev_id)
/* wake up (unblock) for reading data from userspace */
/* and ignore first interrupt generated in module init */
- if (mpuirq_data.interruptcount > 1) {
- mpuirq_dev_data.data_ready = 1;
-
- do_gettimeofday(&irqtime);
- mpuirq_data.irqtime = (((long long) irqtime.tv_sec) << 32);
- mpuirq_data.irqtime += irqtime.tv_usec;
-
- if ((mpuirq_dev_data.accel_divider >= 0) &&
- (0 ==
- (mycount % (mpuirq_dev_data.accel_divider + 1)))) {
- schedule_work((struct work_struct
- *) (&mpuirq_dev_data));
- }
+ mpuirq_dev_data.data_ready = 1;
+
+ do_gettimeofday(&irqtime);
+ mpuirq_data.irqtime = (((long long) irqtime.tv_sec) << 32);
+ mpuirq_data.irqtime += irqtime.tv_usec;
- wake_up_interruptible(&mpuirq_wait);
+ if ((mpuirq_dev_data.accel_divider >= 0) &&
+ (0 == (mycount % (mpuirq_dev_data.accel_divider + 1)))) {
+ schedule_work((struct work_struct
+ *) (&mpuirq_dev_data));
}
+ wake_up_interruptible(&mpuirq_wait);
+
return IRQ_HANDLED;
}