summaryrefslogtreecommitdiff
path: root/driver/accelgyro_bmi3xx.c
diff options
context:
space:
mode:
authorBhanu Prakash Maiya <bhanumaiya@google.com>2021-07-15 21:12:53 -0700
committerCommit Bot <commit-bot@chromium.org>2021-07-16 20:36:30 +0000
commit2dd6cd2961af044c1407e32f917c1cdaca45c15b (patch)
tree9c9516fb1ec8c15ba6d9151ff9aeae8d18f24a8b /driver/accelgyro_bmi3xx.c
parent97fdc267e7600d76d2c93bd765336918266c2cab (diff)
downloadchrome-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.c6
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) {