aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortim.sk.lee <tim.sk.lee@samsung.com>2011-03-16 15:41:09 +0900
committerArve Hjønnevåg <arve@android.com>2011-11-17 17:54:09 -0800
commitc5bf4292f2cbcb3e865ad515dd0ab7c20ac133ff (patch)
tree59a79f6afa41241a76c38698aa4b1f2b8c69eb56
parenta1d294802f6dd350a02136ed43cef5bb1f150a2d (diff)
downloadkernel_samsung_aries-c5bf4292f2cbcb3e865ad515dd0ab7c20ac133ff.zip
kernel_samsung_aries-c5bf4292f2cbcb3e865ad515dd0ab7c20ac133ff.tar.gz
kernel_samsung_aries-c5bf4292f2cbcb3e865ad515dd0ab7c20ac133ff.tar.bz2
S5PC110: SENSOR: Select gyro data rate properly
The gyro data rate should always be above or equal to the requested value. 0 to 105 : 105 106 to 210 : 210 211 to 420 : 420 421 and above : 840 Change-Id: I6185d2cf8c6fef72145229bd51f9bfbdfb5df28c Signed-off-by: tim.sk.lee <tim.sk.lee@samsung.com>
-rw-r--r--drivers/input/misc/k3g.c19
1 files changed, 11 insertions, 8 deletions
diff --git a/drivers/input/misc/k3g.c b/drivers/input/misc/k3g.c
index ace4c4a..5540628 100644
--- a/drivers/input/misc/k3g.c
+++ b/drivers/input/misc/k3g.c
@@ -391,17 +391,20 @@ static ssize_t k3g_set_delay(struct device *dev,
else
disable_irq(k3g_data->client->irq);
- /* round to the nearest supported ODR that is less than
+ /* round to the nearest supported ODR that is equal or above than
* the requested value
*/
- for (i = 0; i < ARRAY_SIZE(odr_delay_table); i++)
- if (delay_ns <= odr_delay_table[i].delay_ns) {
- odr_value = odr_delay_table[i].odr;
- delay_ns = odr_delay_table[i].delay_ns;
- k3g_data->time_to_read = delay_ns;
- k3g_data->entries = 1;
+ for (i = 0; i < ARRAY_SIZE(odr_delay_table); i++) {
+ if (delay_ns < odr_delay_table[i].delay_ns)
break;
- }
+ }
+ if (i > 0)
+ i--;
+
+ odr_value = odr_delay_table[i].odr;
+ delay_ns = odr_delay_table[i].delay_ns;
+ k3g_data->time_to_read = delay_ns;
+ k3g_data->entries = 1;
if (delay_ns >= odr_delay_table[3].delay_ns) {
if (delay_ns >= MAX_DELAY) {