mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-05 10:04:12 +08:00
hwmon: (aht10) Refactor aht10_read_values function
Exit from the function immediately if the poll time hasn't yet expired. Therefore the code after the check can be moved one tab to the left which improves readability. Signed-off-by: Kirill Yatsenko <kiriyatsenko@gmail.com> Link: https://lore.kernel.org/r/20230511202633.299174-2-kiriyatsenko@gmail.com [groeck: Dropped else after return] Signed-off-by: Guenter Roeck <linux@roeck-us.net>
This commit is contained in:
parent
0cb01ec315
commit
014714b8a6
@ -135,40 +135,42 @@ static int aht10_read_values(struct aht10_data *data)
|
||||
struct i2c_client *client = data->client;
|
||||
|
||||
mutex_lock(&data->lock);
|
||||
if (aht10_polltime_expired(data)) {
|
||||
res = i2c_master_send(client, cmd_meas, sizeof(cmd_meas));
|
||||
if (res < 0) {
|
||||
mutex_unlock(&data->lock);
|
||||
return res;
|
||||
}
|
||||
|
||||
usleep_range(AHT10_MEAS_DELAY,
|
||||
AHT10_MEAS_DELAY + AHT10_DELAY_EXTRA);
|
||||
|
||||
res = i2c_master_recv(client, raw_data, AHT10_MEAS_SIZE);
|
||||
if (res != AHT10_MEAS_SIZE) {
|
||||
mutex_unlock(&data->lock);
|
||||
if (res >= 0)
|
||||
return -ENODATA;
|
||||
else
|
||||
return res;
|
||||
}
|
||||
|
||||
hum = ((u32)raw_data[1] << 12u) |
|
||||
((u32)raw_data[2] << 4u) |
|
||||
((raw_data[3] & 0xF0u) >> 4u);
|
||||
|
||||
temp = ((u32)(raw_data[3] & 0x0Fu) << 16u) |
|
||||
((u32)raw_data[4] << 8u) |
|
||||
raw_data[5];
|
||||
|
||||
temp = ((temp * 625) >> 15u) * 10;
|
||||
hum = ((hum * 625) >> 16u) * 10;
|
||||
|
||||
data->temperature = (int)temp - 50000;
|
||||
data->humidity = hum;
|
||||
data->previous_poll_time = ktime_get_boottime();
|
||||
if (!aht10_polltime_expired(data)) {
|
||||
mutex_unlock(&data->lock);
|
||||
return 0;
|
||||
}
|
||||
|
||||
res = i2c_master_send(client, cmd_meas, sizeof(cmd_meas));
|
||||
if (res < 0) {
|
||||
mutex_unlock(&data->lock);
|
||||
return res;
|
||||
}
|
||||
|
||||
usleep_range(AHT10_MEAS_DELAY, AHT10_MEAS_DELAY + AHT10_DELAY_EXTRA);
|
||||
|
||||
res = i2c_master_recv(client, raw_data, AHT10_MEAS_SIZE);
|
||||
if (res != AHT10_MEAS_SIZE) {
|
||||
mutex_unlock(&data->lock);
|
||||
if (res >= 0)
|
||||
return -ENODATA;
|
||||
return res;
|
||||
}
|
||||
|
||||
hum = ((u32)raw_data[1] << 12u) |
|
||||
((u32)raw_data[2] << 4u) |
|
||||
((raw_data[3] & 0xF0u) >> 4u);
|
||||
|
||||
temp = ((u32)(raw_data[3] & 0x0Fu) << 16u) |
|
||||
((u32)raw_data[4] << 8u) |
|
||||
raw_data[5];
|
||||
|
||||
temp = ((temp * 625) >> 15u) * 10;
|
||||
hum = ((hum * 625) >> 16u) * 10;
|
||||
|
||||
data->temperature = (int)temp - 50000;
|
||||
data->humidity = hum;
|
||||
data->previous_poll_time = ktime_get_boottime();
|
||||
|
||||
mutex_unlock(&data->lock);
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user