diff options
author | Gwendal Grignou <gwendal@chromium.org> | 2015-11-20 10:25:19 -0800 |
---|---|---|
committer | ChromeOS Commit Bot <chromeos-commit-bot@chromium.org> | 2016-08-25 20:59:41 +0000 |
commit | ec81ff7a6c09eba1b40a53df4b6f10acaf756a8e (patch) | |
tree | 5303df785efe24ab354e00ff4ff6872927c856fe | |
parent | a3a46cf2b0a8d8811d9e28d8f0f64a9ca8784639 (diff) | |
download | chrome-ec-ec81ff7a6c09eba1b40a53df4b6f10acaf756a8e.tar.gz |
UPSTREAM: motion: fix ec_rate to be more accurate
In case the actual ODR rate is way higher that the AP asked for,
we don't have to settle to a slower EC rate if
EC rate == AP requested ODR rate.
BRANCH=smaug, samus
BUG=b:27849483
TEST=Run android.hardware.cts.SingleSensorTests
Change-Id: I437f47bd942a16694c7efcdbc00201352f0480a6
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/313641
Reviewed-by: Alec Berg <alecaberg@chromium.org>
(cherry picked from commit 68502864c7db47b0dae250600dec5531c5f35619)
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/370563
-rw-r--r-- | common/motion_sense.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/common/motion_sense.c b/common/motion_sense.c index d493a5bd1d..5a6588bedb 100644 --- a/common/motion_sense.c +++ b/common/motion_sense.c @@ -249,7 +249,7 @@ static int motion_sense_set_ec_rate_from_ap( const struct motion_sensor_t *sensor, unsigned int new_rate_us) { - int ap_odr_mhz = BASE_ODR(sensor->config[SENSOR_CONFIG_AP].odr); + int odr_mhz = sensor->drv->get_data_rate(sensor); if (new_rate_us == 0) return 0; @@ -257,7 +257,7 @@ static int motion_sense_set_ec_rate_from_ap( if (CONFIG_ACCEL_FORCE_MODE_MASK & (1 << (sensor - motion_sensors))) goto end_set_ec_rate_from_ap; #endif - if (ap_odr_mhz == 0) + if (odr_mhz == 0) goto end_set_ec_rate_from_ap; /* @@ -271,7 +271,7 @@ static int motion_sense_set_ec_rate_from_ap( * We wll apply that correction only if the ec rate is within 10% of * the data rate. */ - if (SECOND * 1100 / ap_odr_mhz > new_rate_us) + if (SECOND * 1100 / odr_mhz > new_rate_us) new_rate_us = new_rate_us / 100 * 105; end_set_ec_rate_from_ap: |