Merge tag 'tag-chrome-platform-for-v5.4' of git://git.kernel.org/pub/scm/linux/kernel...
[linux-2.6-block.git] / drivers / iio / pressure / cros_ec_baro.c
index 956dc01f12956fe39dac45128e8551e6e94f2e93..2354302375dee09627041bb160ecac46a5154f68 100644 (file)
@@ -40,26 +40,29 @@ static int cros_ec_baro_read(struct iio_dev *indio_dev,
 {
        struct cros_ec_baro_state *st = iio_priv(indio_dev);
        u16 data = 0;
-       int ret = IIO_VAL_INT;
+       int ret;
        int idx = chan->scan_index;
 
        mutex_lock(&st->core.cmd_lock);
 
        switch (mask) {
        case IIO_CHAN_INFO_RAW:
-               if (cros_ec_sensors_read_cmd(indio_dev, 1 << idx,
-                                            (s16 *)&data) < 0)
-                       ret = -EIO;
+               ret = cros_ec_sensors_read_cmd(indio_dev, 1 << idx,
+                                            (s16 *)&data);
+               if (ret)
+                       break;
+
                *val = data;
+               ret = IIO_VAL_INT;
                break;
        case IIO_CHAN_INFO_SCALE:
                st->core.param.cmd = MOTIONSENSE_CMD_SENSOR_RANGE;
                st->core.param.sensor_range.data = EC_MOTION_SENSE_NO_VALUE;
 
-               if (cros_ec_motion_send_host_cmd(&st->core, 0)) {
-                       ret = -EIO;
+               ret = cros_ec_motion_send_host_cmd(&st->core, 0);
+               if (ret)
                        break;
-               }
+
                *val = st->core.resp->sensor_range.ret;
 
                /* scale * in_pressure_raw --> kPa */
@@ -153,8 +156,6 @@ static int cros_ec_baro_probe(struct platform_device *pdev)
        channel->ext_info = cros_ec_sensors_ext_info;
        channel->scan_type.sign = 'u';
 
-       state->core.calib[0] = 0;
-
        /* Sensor specific */
        switch (state->core.type) {
        case MOTIONSENSE_TYPE_BARO: