Input: mpu3050 - ensure we enable interrupts
authorHeikki Krogerus <heikki.krogerus@linux.intel.com>
Sat, 24 Dec 2011 07:57:09 +0000 (23:57 -0800)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Sat, 24 Dec 2011 09:06:13 +0000 (01:06 -0800)
This also changes the devname parameter delivered to
request_threaded_irq() from "mpu_int" to "mpu3050".

Signed-off-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
drivers/input/misc/mpu3050.c

index e9a57e3dba086c178e1e0bb80c689a06576c4e68..ebec0baa1e361b0416bc11ad7a140614a5f1b442 100644 (file)
@@ -148,9 +148,20 @@ static void mpu3050_set_power_mode(struct i2c_client *client, u8 val)
 static int mpu3050_input_open(struct input_dev *input)
 {
        struct mpu3050_sensor *sensor = input_get_drvdata(input);
+       int error;
 
        pm_runtime_get(sensor->dev);
 
+       /* Enable interrupts */
+       error = i2c_smbus_write_byte_data(sensor->client, MPU3050_INT_CFG,
+                                         MPU3050_LATCH_INT_EN |
+                                         MPU3050_RAW_RDY_EN |
+                                         MPU3050_MPU_RDY_EN);
+       if (error < 0) {
+               pm_runtime_put(sensor->dev);
+               return error;
+       }
+
        return 0;
 }
 
@@ -259,7 +270,7 @@ static int __devinit mpu3050_probe(struct i2c_client *client,
        error = request_threaded_irq(client->irq,
                                     NULL, mpu3050_interrupt_thread,
                                     IRQF_TRIGGER_RISING,
-                                    "mpu_int", sensor);
+                                    "mpu3050", sensor);
        if (error) {
                dev_err(&client->dev,
                        "can't get IRQ %d, error %d\n", client->irq, error);