[PATCH rtw-next v6 1/3] wifi: rtw88: rtw8822c: Use bitfield macros for DAC IQ sampling
Arsenii Pashchenko <[email protected]>
| Newsgroups | org.kernel.vger.linux-wireless,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <b23c1d0c33b79728f5717b0f15d0cb7541bd9493.1786784750.git.ulijg308@gmail.com> |
Define proper GENMASK constants for the In-phase (I) and Quadrature (Q) components of the DAC IQ data register in the header file. Replace manual bit shifting, masking, and rtw_read32_mask() with standard rtw_read32() and the FIELD_GET() macro to improve code readability. Signed-off-by: Arsenii Pashchenko <[email protected]> --- drivers/net/wireless/realtek/rtw88/rtw8822c.c | 18 +++++++++--------- drivers/net/wireless/realtek/rtw88/rtw8822c.h | 3 +++ 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/drivers/net/wireless/realtek/rtw88/rtw8822c.c b/drivers/net/wireless/realtek/rtw88/rtw8822c.c index 244c80264..137544649 100644 --- a/drivers/net/wireless/realtek/rtw88/rtw8822c.c +++ b/drivers/net/wireless/realtek/rtw88/rtw8822c.c @@ -291,9 +291,9 @@ static void rtw8822c_dac_cal_iq_sample(struct rtw_dev *rtwdev, u32 *iv, u32 *qv) while (i < DACK_SN_8822C && cnt < 10000) { cnt++; - temp = rtw_read32_mask(rtwdev, 0x2dbc, 0x3fffff); - iv[i] = (temp & 0x3ff000) >> 12; - qv[i] = temp & 0x3ff; + temp = rtw_read32(rtwdev, 0x2dbc); + iv[i] = FIELD_GET(RTW8822C_DAC_IV_MASK, temp); + qv[i] = FIELD_GET(RTW8822C_DAC_QV_MASK, temp); if (rtw8822c_dac_iq_check(rtwdev, iv[i]) && rtw8822c_dac_iq_check(rtwdev, qv[i])) @@ -344,12 +344,12 @@ static void rtw8822c_dac_cal_iq_search(struct rtw_dev *rtwdev, rtw8822c_dac_iq_sort(rtwdev, iv, qv); if (i_delta > 5 || q_delta > 5) { - temp = rtw_read32_mask(rtwdev, 0x2dbc, 0x3fffff); - iv[0] = (temp & 0x3ff000) >> 12; - qv[0] = temp & 0x3ff; - temp = rtw_read32_mask(rtwdev, 0x2dbc, 0x3fffff); - iv[DACK_SN_8822C - 1] = (temp & 0x3ff000) >> 12; - qv[DACK_SN_8822C - 1] = temp & 0x3ff; + temp = rtw_read32(rtwdev, 0x2dbc); + iv[0] = FIELD_GET(RTW8822C_DAC_IV_MASK, temp); + qv[0] = FIELD_GET(RTW8822C_DAC_QV_MASK, temp); + temp = rtw_read32(rtwdev, 0x2dbc); + iv[DACK_SN_8822C - 1] = FIELD_GET(RTW8822C_DAC_IV_MASK, temp); + qv[DACK_SN_8822C - 1] = FIELD_GET(RTW8822C_DAC_QV_MASK, temp); } else { break; } diff --git a/drivers/net/wireless/realtek/rtw88/rtw8822c.h b/drivers/net/wireless/realtek/rtw88/rtw8822c.h index fc62b67a1..7bea99614 100644 --- a/drivers/net/wireless/realtek/rtw88/rtw8822c.h +++ b/drivers/net/wireless/realtek/rtw88/rtw8822c.h @@ -141,6 +141,9 @@ const struct rtw_table name ## _tbl = { \ #define DACK_RF_8822C 1 #define DACK_SN_8822C 100 +#define RTW8822C_DAC_IV_MASK GENMASK(21, 12) +#define RTW8822C_DAC_QV_MASK GENMASK(9, 0) + /* phy status page0 */ #define GET_PHY_STAT_P0_PWDB_A(phy_stat) \ le32_get_bits(*((__le32 *)(phy_stat) + 0x00), GENMASK(15, 8)) -- 2.55.0