Switch from sign_extend32(FIELD_GET()) to the dedicated FIELD_GET_SIGNED() and don't calculate the fields length explicitly. Acked-by: Jonathan Cameron Signed-off-by: Yury Norov --- drivers/iio/pressure/bmp280-core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/iio/pressure/bmp280-core.c b/drivers/iio/pressure/bmp280-core.c index d983ce9c0b99..f722aea16e0e 100644 --- a/drivers/iio/pressure/bmp280-core.c +++ b/drivers/iio/pressure/bmp280-core.c @@ -392,7 +392,7 @@ static int bme280_read_calib(struct bmp280_data *data) h4_lower = FIELD_GET(BME280_COMP_H4_MASK_LOW, tmp_1); calib->H4 = sign_extend32(h4_upper | h4_lower, 11); tmp_3 = get_unaligned_le16(&data->bme280_humid_cal_buf[H5]); - calib->H5 = sign_extend32(FIELD_GET(BME280_COMP_H5_MASK, tmp_3), 11); + calib->H5 = FIELD_GET_SIGNED(BME280_COMP_H5_MASK, tmp_3); calib->H6 = data->bme280_humid_cal_buf[H6]; return 0; -- 2.51.0