Add runtime pm autosuspend to improve the performance of reading data.

Signed-off-by: Joseph Lai <[email protected]>
---
diff -urN a/drivers/input/misc/bma023.c b/drivers/input/misc/bma023.c
--- a/drivers/input/misc/bma023.c       2011-05-17 16:20:10.000000000
+0800
+++ b/drivers/input/misc/bma023.c       2011-05-17 17:15:12.000000000
+0800
@@ -44,7 +44,7 @@
 #include <linux/slab.h>
 #include <linux/pm_runtime.h>
 
-#define BMA023_DEFAULT_AUTO_DELAY      250     /* mS */
+#define BMA023_DEFAULT_AUTO_DELAY      500     /* mS */
 
 #define BMA023_CHIP_ID_REG     0x00
 #define BMA023_X_LSB_REG       0x02
@@ -616,12 +616,13 @@
        struct bma023_sensor *sensor = dev_get_drvdata(dev);
 
        pm_runtime_get_sync(dev);
+       pm_runtime_mark_last_busy(dev);
 
        mutex_lock(&sensor->lock);
        bma023_read_xyz(sensor->client, &sensor->data);
        mutex_unlock(&sensor->lock);
 
-       pm_runtime_put(dev);
+       pm_runtime_put_sync_autosuspend(dev);
 
        return sprintf(buf, "(%d,%d,%d)\n",
                sensor->data.x, sensor->data.y, sensor->data.z);
@@ -1004,7 +1005,7 @@
 static int bma023_input_open(struct input_dev *input)
 {
        struct bma023_sensor *sensor = input_get_drvdata(input);
-       pm_runtime_get(sensor->dev);
+       pm_runtime_get_sync(sensor->dev);
        return 0;
 }
 
@@ -1018,7 +1019,7 @@
 static void bma023_input_close(struct input_dev *input)
 {
        struct bma023_sensor *sensor = input_get_drvdata(input);
-       pm_runtime_put(sensor->dev);
+       pm_runtime_put_sync(sensor->dev);
 }
 
 /**
@@ -1180,6 +1181,7 @@
 
        pm_runtime_enable(&client->dev);
        pm_runtime_set_autosuspend_delay(&client->dev,
sensor->auto_delay);
+       pm_runtime_use_autosuspend(&client->dev);
 
        dev_info(&client->dev, "%s registered\n", id->name);
        return 0;

Attachment: linux-2.6.37-bma023-add-autosuspend.patch
Description: linux-2.6.37-bma023-add-autosuspend.patch

_______________________________________________
MeeGo-kernel mailing list
[email protected]
http://lists.meego.com/listinfo/meego-kernel

Reply via email to