diff options
author | Bhanu Prakash Maiya <bhanumaiya@google.com> | 2021-07-15 21:12:53 -0700 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2021-07-16 20:36:30 +0000 |
commit | 2dd6cd2961af044c1407e32f917c1cdaca45c15b (patch) | |
tree | 9c9516fb1ec8c15ba6d9151ff9aeae8d18f24a8b /driver/accelgyro_bmi3xx.c | |
parent | 97fdc267e7600d76d2c93bd765336918266c2cab (diff) | |
download | chrome-ec-2dd6cd2961af044c1407e32f917c1cdaca45c15b.tar.gz |
driver: bmi3xx: Retain accel conf in register if new write fails
We should retain the saved conf value of BMI3_REG_ACC_CONF in case
new write fails and changes the register unintentionally.
BRANCH=none
BUG=b:178398789
TEST=Accel implementation tested on Guybrush
$ ectool motionsense calibrate 0
Signed-off-by: Bhanu Prakash Maiya <bhanumaiya@chromium.org>
Signed-off-by: Latchiamaran Senram <latchiamaran.senram@bosch.corp-partner.google.com>
Change-Id: Ie4d7ddcae1ab5fa804d4e2de7a1c35f4b9a16d41
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3033779
Commit-Queue: Bhanu Prakash Maiya <bhanumaiya@google.com>
Tested-by: Bhanu Prakash Maiya <bhanumaiya@google.com>
Auto-Submit: Bhanu Prakash Maiya <bhanumaiya@google.com>
Reviewed-by: Diana Z <dzigterman@chromium.org>
Diffstat (limited to 'driver/accelgyro_bmi3xx.c')
-rw-r--r-- | driver/accelgyro_bmi3xx.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/driver/accelgyro_bmi3xx.c b/driver/accelgyro_bmi3xx.c index c9415a3f56..9a525943b2 100644 --- a/driver/accelgyro_bmi3xx.c +++ b/driver/accelgyro_bmi3xx.c @@ -759,8 +759,10 @@ static int perform_calib(struct motion_sensor_t *s, int enable) RETURN_ERROR(bmi3_read_n(s, BMI3_REG_ACC_CONF + s->type, saved_conf, 4)); - /* Set the FOC configuration and add a delay */ - RETURN_ERROR(bmi3_write_n(s, BMI3_REG_ACC_CONF, acc_conf_data, 2)); + ret = bmi3_write_n(s, BMI3_REG_ACC_CONF, acc_conf_data, 2); + if (ret) + goto end_calib; + msleep(FOC_DELAY); switch (s->type) { |