From: Yury Norov Date: Mon, 27 Apr 2026 21:41:24 +0000 (-0400) Subject: wifi: rtw89: switch to using FIELD_GET_SIGNED() X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=115e1f213c0854cc0223e54dc4d0c887363a26e0;p=thirdparty%2Fkernel%2Flinux.git wifi: rtw89: switch to using FIELD_GET_SIGNED() Switch from sign_extend32(FIELD_GET()) to the dedicated FIELD_GET_SIGNED() and don't calculate the fields length explicitly. Acked-by: Ping-Ke Shih Signed-off-by: Yury Norov --- diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c b/drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c index 4633994133185..8679b21fd3fd7 100644 --- a/drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c +++ b/drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c @@ -334,8 +334,8 @@ static void _check_addc(struct rtw89_dev *rtwdev, enum rtw89_rf_path path) for (i = 0; i < ADDC_T_AVG; i++) { tmp = rtw89_phy_read32_mask(rtwdev, R_DBG32_D, MASKDWORD); - dc_re += sign_extend32(FIELD_GET(0xfff000, tmp), 11); - dc_im += sign_extend32(FIELD_GET(0xfff, tmp), 11); + dc_re += FIELD_GET_SIGNED(0xfff000, tmp); + dc_im += FIELD_GET_SIGNED(0xfff, tmp); } dc_re /= ADDC_T_AVG; diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852b_common.c b/drivers/net/wireless/realtek/rtw89/rtw8852b_common.c index 65b839323e3e3..df5fbae50ff55 100644 --- a/drivers/net/wireless/realtek/rtw89/rtw8852b_common.c +++ b/drivers/net/wireless/realtek/rtw89/rtw8852b_common.c @@ -206,9 +206,9 @@ static void rtw8852bx_efuse_parsing_tssi(struct rtw89_dev *rtwdev, static bool _decode_efuse_gain(u8 data, s8 *high, s8 *low) { if (high) - *high = sign_extend32(FIELD_GET(GENMASK(7, 4), data), 3); + *high = FIELD_GET_SIGNED(GENMASK(7, 4), data); if (low) - *low = sign_extend32(FIELD_GET(GENMASK(3, 0), data), 3); + *low = FIELD_GET_SIGNED(GENMASK(3, 0), data); return data != 0xff; } diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c b/drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c index 70b1515c00fa5..8db6ea4751289 100644 --- a/drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c +++ b/drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c @@ -497,8 +497,8 @@ static void _check_addc(struct rtw89_dev *rtwdev, enum rtw89_rf_path path) for (i = 0; i < ADDC_T_AVG; i++) { tmp = rtw89_phy_read32_mask(rtwdev, R_DBG32_D, MASKDWORD); - dc_re += sign_extend32(FIELD_GET(0xfff000, tmp), 11); - dc_im += sign_extend32(FIELD_GET(0xfff, tmp), 11); + dc_re += FIELD_GET_SIGNED(0xfff000, tmp); + dc_im += FIELD_GET_SIGNED(0xfff, tmp); } dc_re /= ADDC_T_AVG; diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852c.c b/drivers/net/wireless/realtek/rtw89/rtw8852c.c index 40db7e3c0d974..32eecd184b7c7 100644 --- a/drivers/net/wireless/realtek/rtw89/rtw8852c.c +++ b/drivers/net/wireless/realtek/rtw89/rtw8852c.c @@ -517,9 +517,9 @@ static void rtw8852c_efuse_parsing_tssi(struct rtw89_dev *rtwdev, static bool _decode_efuse_gain(u8 data, s8 *high, s8 *low) { if (high) - *high = sign_extend32(FIELD_GET(GENMASK(7, 4), data), 3); + *high = FIELD_GET_SIGNED(GENMASK(7, 4), data); if (low) - *low = sign_extend32(FIELD_GET(GENMASK(3, 0), data), 3); + *low = FIELD_GET_SIGNED(GENMASK(3, 0), data); return data != 0xff; }