Revert "iio: magnetometer: ak8975: Fix reading for ak099xx sensors"

This reverts commit 8485a728a1.
This commit is contained in:
Ksawlii 2024-11-24 00:23:01 +01:00
parent 3177c82a6a
commit 37faa268b4

View file

@ -661,8 +661,22 @@ static int ak8975_start_read_axis(struct ak8975_data *data,
if (ret < 0)
return ret;
/* Return with zero if the data is ready. */
return !data->def->ctrl_regs[ST1_DRDY];
/* This will be executed only for non-interrupt based waiting case */
if (ret & data->def->ctrl_masks[ST1_DRDY]) {
ret = i2c_smbus_read_byte_data(client,
data->def->ctrl_regs[ST2]);
if (ret < 0) {
dev_err(&client->dev, "Error in reading ST2\n");
return ret;
}
if (ret & (data->def->ctrl_masks[ST2_DERR] |
data->def->ctrl_masks[ST2_HOFL])) {
dev_err(&client->dev, "ST2 status error 0x%x\n", ret);
return -EINVAL;
}
}
return 0;
}
/* Retrieve raw flux value for one of the x, y, or z axis. */
@ -689,20 +703,6 @@ static int ak8975_read_axis(struct iio_dev *indio_dev, int index, int *val)
if (ret < 0)
goto exit;
/* Read out ST2 for release lock on measurment data. */
ret = i2c_smbus_read_byte_data(client, data->def->ctrl_regs[ST2]);
if (ret < 0) {
dev_err(&client->dev, "Error in reading ST2\n");
goto exit;
}
if (ret & (data->def->ctrl_masks[ST2_DERR] |
data->def->ctrl_masks[ST2_HOFL])) {
dev_err(&client->dev, "ST2 status error 0x%x\n", ret);
ret = -EINVAL;
goto exit;
}
mutex_unlock(&data->lock);
pm_runtime_mark_last_busy(&data->client->dev);