iio:st_sensors: fix power regulator usage
Ensure failure to enable power regulators is properly handled. Signed-off-by: Gregor Boirie <gregor.boirie@parrot.com> Signed-off-by: Jonathan Cameron <jic23@kernel.org>
This commit is contained in:

committed by
Jonathan Cameron

parent
169a88c1ee
commit
14f295c846
@@ -588,13 +588,15 @@ int st_magn_common_probe(struct iio_dev *indio_dev)
|
||||
indio_dev->info = &magn_info;
|
||||
mutex_init(&mdata->tb.buf_lock);
|
||||
|
||||
st_sensors_power_enable(indio_dev);
|
||||
err = st_sensors_power_enable(indio_dev);
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
err = st_sensors_check_device_support(indio_dev,
|
||||
ARRAY_SIZE(st_magn_sensors_settings),
|
||||
st_magn_sensors_settings);
|
||||
if (err < 0)
|
||||
return err;
|
||||
goto st_magn_power_off;
|
||||
|
||||
mdata->num_data_channels = ST_MAGN_NUMBER_DATA_CHANNELS;
|
||||
mdata->multiread_bit = mdata->sensor_settings->multi_read_bit;
|
||||
@@ -607,11 +609,11 @@ int st_magn_common_probe(struct iio_dev *indio_dev)
|
||||
|
||||
err = st_sensors_init_sensor(indio_dev, NULL);
|
||||
if (err < 0)
|
||||
return err;
|
||||
goto st_magn_power_off;
|
||||
|
||||
err = st_magn_allocate_ring(indio_dev);
|
||||
if (err < 0)
|
||||
return err;
|
||||
goto st_magn_power_off;
|
||||
|
||||
if (irq > 0) {
|
||||
err = st_sensors_allocate_trigger(indio_dev,
|
||||
@@ -634,6 +636,8 @@ st_magn_device_register_error:
|
||||
st_sensors_deallocate_trigger(indio_dev);
|
||||
st_magn_probe_trigger_error:
|
||||
st_magn_deallocate_ring(indio_dev);
|
||||
st_magn_power_off:
|
||||
st_sensors_power_disable(indio_dev);
|
||||
|
||||
return err;
|
||||
}
|
||||
|
Reference in New Issue
Block a user