static int st_press_buffer_predisable(struct iio_dev *indio_dev) { int err; struct st_sensor_data *pdata = iio_priv(indio_dev); err = iio_triggered_buffer_predisable(indio_dev); if (err < 0) goto st_press_buffer_predisable_error; err = st_sensors_set_enable(indio_dev, false); st_press_buffer_predisable_error: kfree(pdata->buffer_data); return err; }
static int vf610_adc_buffer_predisable(struct iio_dev *indio_dev) { struct vf610_adc *info = iio_priv(indio_dev); unsigned int hc_cfg = 0; int val; val = readl(info->regs + VF610_REG_ADC_GC); val &= ~VF610_ADC_ADCON; writel(val, info->regs + VF610_REG_ADC_GC); hc_cfg |= VF610_ADC_CONV_DISABLE; hc_cfg &= ~VF610_ADC_AIEN; writel(hc_cfg, info->regs + VF610_REG_ADC_HC0); return iio_triggered_buffer_predisable(indio_dev); }
static int st_gyro_buffer_predisable(struct iio_dev *indio_dev) { int err; struct st_sensor_data *gdata = iio_priv(indio_dev); err = iio_triggered_buffer_predisable(indio_dev); if (err < 0) goto st_gyro_buffer_predisable_error; err = st_sensors_set_axis_enable(indio_dev, ST_SENSORS_ENABLE_ALL_AXIS); if (err < 0) goto st_gyro_buffer_predisable_error; err = st_sensors_set_enable(indio_dev, false); st_gyro_buffer_predisable_error: kfree(gdata->buffer_data); return err; }