summaryrefslogtreecommitdiff
path: root/drivers/misc/mpu3050/slaveirq.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/misc/mpu3050/slaveirq.c')
-rw-r--r--drivers/misc/mpu3050/slaveirq.c26
1 files changed, 12 insertions, 14 deletions
diff --git a/drivers/misc/mpu3050/slaveirq.c b/drivers/misc/mpu3050/slaveirq.c
index 3791868505ee..2ee53851e125 100644
--- a/drivers/misc/mpu3050/slaveirq.c
+++ b/drivers/misc/mpu3050/slaveirq.c
@@ -34,22 +34,22 @@
#include <linux/mm.h>
#include <linux/sched.h>
#include <linux/wait.h>
-#include <asm/uaccess.h>
-#include <asm/io.h>
+#include <linux/uaccess.h>
+#include <linux/io.h>
+#include <linux/wait.h>
+#include <linux/slab.h>
#include "mpu.h"
#include "slaveirq.h"
#include "mldl_cfg.h"
#include "mpu-i2c.h"
-#include <linux/wait.h>
-#include <linux/slab.h>
/* function which gets slave data and sends it to SLAVE */
struct slaveirq_dev_data {
struct miscdevice dev;
struct i2c_client *slave_client;
- struct irq_data data;
+ struct mpuirq_data data;
wait_queue_head_t slaveirq_wait;
int irq;
int pid;
@@ -83,7 +83,7 @@ static int slaveirq_release(struct inode *inode, struct file *file)
/* read function called when from /dev/slaveirq is read */
static ssize_t slaveirq_read(struct file *file,
- char *buf, size_t count, loff_t * ppos)
+ char *buf, size_t count, loff_t *ppos)
{
int len, err;
struct slaveirq_dev_data *data =
@@ -169,16 +169,14 @@ static irqreturn_t slaveirq_handler(int irq, void *dev_id)
/* wake up (unblock) for reading data from userspace */
/* and ignore first interrupt generated in module init */
- if (data->data.interruptcount > 1) {
- data->data_ready = 1;
+ data->data_ready = 1;
- do_gettimeofday(&irqtime);
- data->data.irqtime = (((long long) irqtime.tv_sec) << 32);
- data->data.irqtime += irqtime.tv_usec;
- data->data.data_type |= 1;
+ do_gettimeofday(&irqtime);
+ data->data.irqtime = (((long long) irqtime.tv_sec) << 32);
+ data->data.irqtime += irqtime.tv_usec;
+ data->data.data_type |= 1;
- wake_up_interruptible(&data->slaveirq_wait);
- }
+ wake_up_interruptible(&data->slaveirq_wait);
return IRQ_HANDLED;