diff options
Diffstat (limited to 'drivers/misc/m4sensorhub_als.c')
| -rw-r--r-- | drivers/misc/m4sensorhub_als.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/misc/m4sensorhub_als.c b/drivers/misc/m4sensorhub_als.c index 02e7ec8b31b..b5f90fd72a3 100644 --- a/drivers/misc/m4sensorhub_als.c +++ b/drivers/misc/m4sensorhub_als.c @@ -277,13 +277,15 @@ static void m4als_panic_restore(struct m4sensorhub_data *m4sensorhub, { int size, err; struct m4als_driver_data *dd = (struct m4als_driver_data *)data; - + if (dd == NULL) { m4als_err("%s: Driver data is null, unable to restore\n", __func__); return; } + mutex_lock(&(dd->mutex)); + size = m4sensorhub_reg_getsize(dd->m4, M4SH_REG_LIGHTSENSOR_SAMPLERATE); err = m4sensorhub_reg_write(dd->m4, M4SH_REG_LIGHTSENSOR_SAMPLERATE, @@ -294,6 +296,8 @@ static void m4als_panic_restore(struct m4sensorhub_data *m4sensorhub, m4als_err("%s: Wrote %d bytes instead of %d.\n", __func__, err, size); } + + mutex_unlock(&(dd->mutex)); } static int m4als_driver_init(struct init_calldata *p_arg) |