diff options
author | Gwendal Grignou <gwendal@chromium.org> | 2015-08-07 22:44:57 -0700 |
---|---|---|
committer | ChromeOS Commit Bot <chromeos-commit-bot@chromium.org> | 2015-08-24 19:08:10 +0000 |
commit | 5faadc6748d556375c1effd56dac226f2a773ad1 (patch) | |
tree | e057409fb1d4016bc76d7644a1c2256cb2048428 /driver | |
parent | 179d5d3c833433b07530b136a55085a6d22cbeee (diff) | |
download | chrome-ec-5faadc6748d556375c1effd56dac226f2a773ad1.tar.gz |
motion_sense: Force flush when sensor disabled.
When sensor is disabled, HAL will not send flush request to EC.
However, when sensor is reenabled, only new events are expected.
When we have a change in frequency, we have to request the host to
query all the current events.
Flush the FIFO when events are not needed because all sensors are
disabled.
BRANCH=smaug
TEST=Pass more tests: tests like ..._fastest_batching after _50hz_flush
have more change to pass.
BUG=chrome-os-partner:39900
Change-Id: I1a8fc3784e3e6be260b23103b28e336e242f14cd
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/291991
Reviewed-by: Sheng-liang Song <ssl@chromium.org>
Diffstat (limited to 'driver')
-rw-r--r-- | driver/accelgyro_bmi160.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/driver/accelgyro_bmi160.c b/driver/accelgyro_bmi160.c index 3afa3e6bd7..e2b6daddeb 100644 --- a/driver/accelgyro_bmi160.c +++ b/driver/accelgyro_bmi160.c @@ -797,8 +797,16 @@ static int load_fifo(struct motion_sensor_t *s) if (s->type != MOTIONSENSE_TYPE_ACCEL) return EC_SUCCESS; - if (!(data->flags & (BMI160_FIFO_ALL_MASK << BMI160_FIFO_FLAG_OFFSET))) + if (!(data->flags & + (BMI160_FIFO_ALL_MASK << BMI160_FIFO_FLAG_OFFSET))) { + /* + * Flush potiential left over: + * + * When sensor is resumed, we don't want to read old data. + */ + raw_write8(s->addr, BMI160_CMD_REG, BMI160_CMD_FIFO_FLUSH); return EC_SUCCESS; + } do { enum fifo_state state = FIFO_HEADER; |