Switch from sign_extend32(FIELD_GET()) to the dedicated FIELD_GET_SIGNED() and don't calculate the fields length explicitly. Signed-off-by: Yury Norov --- drivers/rtc/rtc-rv3032.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/rtc/rtc-rv3032.c b/drivers/rtc/rtc-rv3032.c index 6c09da7738e1..6bafdec637ae 100644 --- a/drivers/rtc/rtc-rv3032.c +++ b/drivers/rtc/rtc-rv3032.c @@ -376,7 +376,7 @@ static int rv3032_read_offset(struct device *dev, long *offset) if (ret < 0) return ret; - steps = sign_extend32(FIELD_GET(RV3032_OFFSET_MSK, value), 5); + steps = FIELD_GET_SIGNED(RV3032_OFFSET_MSK, value); *offset = DIV_ROUND_CLOSEST(steps * OFFSET_STEP_PPT, 1000); -- 2.51.0