diff options
author | tim.sk.lee <tim.sk.lee@samsung.com> | 2011-03-16 15:41:09 +0900 |
---|---|---|
committer | Arve Hjønnevåg <arve@android.com> | 2011-11-17 17:54:09 -0800 |
commit | c5bf4292f2cbcb3e865ad515dd0ab7c20ac133ff (patch) | |
tree | 59a79f6afa41241a76c38698aa4b1f2b8c69eb56 | |
parent | a1d294802f6dd350a02136ed43cef5bb1f150a2d (diff) | |
download | kernel_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.c | 19 |
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) { |