Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

rtw88: use macro to check the current band

Add macros to see which band we are, based on the current channel.

Signed-off-by: Yan-Hsuan Chuang <yhchuang@realtek.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>

authored by

Yan-Hsuan Chuang and committed by
Kalle Valo
8575b534 844e9d7c

+41 -32
+1 -1
drivers/net/wireless/realtek/rtw88/mac.c
··· 47 47 48 48 value8 = rtw_read8(rtwdev, REG_CCK_CHECK); 49 49 value8 = value8 & ~BIT_CHECK_CCK_EN; 50 - if (channel > 35) 50 + if (IS_CH_5G_BAND(channel)) 51 51 value8 |= BIT_CHECK_CCK_EN; 52 52 rtw_write8(rtwdev, REG_CCK_CHECK, value8); 53 53 }
+13
drivers/net/wireless/realtek/rtw88/main.h
··· 58 58 u8 bulkout_num; 59 59 }; 60 60 61 + #define IS_CH_5G_BAND_1(channel) ((channel) >= 36 && (channel <= 48)) 62 + #define IS_CH_5G_BAND_2(channel) ((channel) >= 52 && (channel <= 64)) 63 + #define IS_CH_5G_BAND_3(channel) ((channel) >= 100 && (channel <= 144)) 64 + #define IS_CH_5G_BAND_4(channel) ((channel) >= 149 && (channel <= 177)) 65 + 66 + #define IS_CH_5G_BAND_MID(channel) \ 67 + (IS_CH_5G_BAND_2(channel) || IS_CH_5G_BAND_3(channel)) 68 + 69 + #define IS_CH_2G_BAND(channel) ((channel) <= 14) 70 + #define IS_CH_5G_BAND(channel) \ 71 + (IS_CH_5G_BAND_1(channel) || IS_CH_5G_BAND_2(channel) || \ 72 + IS_CH_5G_BAND_3(channel) || IS_CH_5G_BAND_4(channel)) 73 + 61 74 enum rtw_supported_band { 62 75 RTW_BAND_2G = 1 << 0, 63 76 RTW_BAND_5G = 1 << 1,
+1 -1
drivers/net/wireless/realtek/rtw88/phy.c
··· 1748 1748 group = rtw_get_channel_group(ch); 1749 1749 1750 1750 /* base power index for 2.4G/5G */ 1751 - if (ch <= 14) { 1751 + if (IS_CH_2G_BAND(ch)) { 1752 1752 band = PHY_BAND_2G; 1753 1753 *base = rtw_phy_get_2g_tx_power_index(rtwdev, 1754 1754 &pwr_idx->pwr_idx_2g,
+18 -22
drivers/net/wireless/realtek/rtw88/rtw8822b.c
··· 211 211 static void rtw8822b_set_channel_rfe_efem(struct rtw_dev *rtwdev, u8 channel) 212 212 { 213 213 struct rtw_hal *hal = &rtwdev->hal; 214 - bool is_channel_2g = (channel <= 14) ? true : false; 215 214 216 - if (is_channel_2g) { 215 + if (IS_CH_2G_BAND(channel)) { 217 216 rtw_write32s_mask(rtwdev, REG_RFESEL0, 0xffffff, 0x705770); 218 217 rtw_write32s_mask(rtwdev, REG_RFESEL8, MASKBYTE1, 0x57); 219 218 rtw_write32s_mask(rtwdev, REG_RFECTL, BIT(4), 0); ··· 240 241 static void rtw8822b_set_channel_rfe_ifem(struct rtw_dev *rtwdev, u8 channel) 241 242 { 242 243 struct rtw_hal *hal = &rtwdev->hal; 243 - bool is_channel_2g = (channel <= 14) ? true : false; 244 244 245 - if (is_channel_2g) { 245 + if (IS_CH_2G_BAND(channel)) { 246 246 /* signal source */ 247 247 rtw_write32s_mask(rtwdev, REG_RFESEL0, 0xffffff, 0x745774); 248 248 rtw_write32s_mask(rtwdev, REG_RFESEL8, MASKBYTE1, 0x57); ··· 253 255 254 256 rtw_write32s_mask(rtwdev, REG_RFEINV, BIT(11) | BIT(10) | 0x3f, 0x0); 255 257 256 - if (is_channel_2g) { 258 + if (IS_CH_2G_BAND(channel)) { 257 259 if (hal->antenna_rx == BB_PATH_AB || 258 260 hal->antenna_tx == BB_PATH_AB) { 259 261 /* 2TX or 2RX */ ··· 348 350 u32 reg82c, reg830, reg838; 349 351 bool is_efem_cca = false, is_ifem_cca = false, is_rfe_type = false; 350 352 351 - if (channel <= 14) { 353 + if (IS_CH_2G_BAND(channel)) { 352 354 cca_ccut = rfe_info->cca_ccut_2g; 353 355 354 356 if (hal->antenna_rx == BB_PATH_A || ··· 379 381 is_efem_cca = true; 380 382 break; 381 383 case RTW_RFE_IFEM2G_EFEM5G: 382 - if (channel <= 14) 384 + if (IS_CH_2G_BAND(channel)) 383 385 is_ifem_cca = true; 384 386 else 385 387 is_efem_cca = true; ··· 403 405 if (is_efem_cca && !(hal->cut_version == RTW_CHIP_VER_CUT_B)) 404 406 rtw_write32_mask(rtwdev, REG_L1WT, MASKDWORD, 0x9194b2b9); 405 407 406 - if (bw == RTW_CHANNEL_WIDTH_20 && 407 - ((channel >= 52 && channel <= 64) || 408 - (channel >= 100 && channel <= 144))) 408 + if (bw == RTW_CHANNEL_WIDTH_20 && IS_CH_5G_BAND_MID(channel)) 409 409 rtw_write32_mask(rtwdev, REG_CCA2ND, 0xf0, 0x4); 410 410 } 411 411 ··· 438 442 rf_reg18 &= ~(RF18_BAND_MASK | RF18_CHANNEL_MASK | RF18_RFSI_MASK | 439 443 RF18_BW_MASK); 440 444 441 - rf_reg18 |= (channel <= 14 ? RF18_BAND_2G : RF18_BAND_5G); 445 + rf_reg18 |= (IS_CH_2G_BAND(channel) ? RF18_BAND_2G : RF18_BAND_5G); 442 446 rf_reg18 |= (channel & RF18_CHANNEL_MASK); 443 447 if (channel > 144) 444 448 rf_reg18 |= RF18_RFSI_GT_CH144; ··· 460 464 break; 461 465 } 462 466 463 - if (channel <= 14) 467 + if (IS_CH_2G_BAND(channel)) 464 468 rf_reg_be = 0x0; 465 - else if (channel >= 36 && channel <= 64) 469 + else if (IS_CH_5G_BAND_1(channel) || IS_CH_5G_BAND_2(channel)) 466 470 rf_reg_be = low_band[(channel - 36) >> 1]; 467 - else if (channel >= 100 && channel <= 144) 471 + else if (IS_CH_5G_BAND_3(channel)) 468 472 rf_reg_be = middle_band[(channel - 100) >> 1]; 469 - else if (channel >= 149 && channel <= 177) 473 + else if (IS_CH_5G_BAND_4(channel)) 470 474 rf_reg_be = high_band[(channel - 149) >> 1]; 471 475 else 472 476 goto err; ··· 535 539 u8 rfe_option = efuse->rfe_option; 536 540 u32 val32; 537 541 538 - if (channel <= 14) { 542 + if (IS_CH_2G_BAND(channel)) { 539 543 rtw_write32_mask(rtwdev, REG_RXPSEL, BIT(28), 0x1); 540 544 rtw_write32_mask(rtwdev, REG_CCK_CHECK, BIT(7), 0x0); 541 545 rtw_write32_mask(rtwdev, REG_ENTXCCK, BIT(18), 0x0); ··· 552 556 } 553 557 554 558 rtw_write32_mask(rtwdev, REG_RFEINV, 0x300, 0x2); 555 - } else if (channel > 35) { 559 + } else if (IS_CH_5G_BAND(channel)) { 556 560 rtw_write32_mask(rtwdev, REG_ENTXCCK, BIT(18), 0x1); 557 561 rtw_write32_mask(rtwdev, REG_CCK_CHECK, BIT(7), 0x1); 558 562 rtw_write32_mask(rtwdev, REG_RXPSEL, BIT(28), 0x0); 559 563 rtw_write32_mask(rtwdev, REG_RXCCAMSK, 0x0000FC00, 34); 560 564 561 - if (channel >= 36 && channel <= 64) 565 + if (IS_CH_5G_BAND_1(channel) || IS_CH_5G_BAND_2(channel)) 562 566 rtw_write32_mask(rtwdev, REG_ACGG2TBL, 0x1f, 0x1); 563 - else if (channel >= 100 && channel <= 144) 567 + else if (IS_CH_5G_BAND_3(channel)) 564 568 rtw_write32_mask(rtwdev, REG_ACGG2TBL, 0x1f, 0x2); 565 - else if (channel >= 149) 569 + else if (IS_CH_5G_BAND_4(channel)) 566 570 rtw_write32_mask(rtwdev, REG_ACGG2TBL, 0x1f, 0x3); 567 571 568 - if (channel >= 36 && channel <= 48) 572 + if (IS_CH_5G_BAND_1(channel)) 569 573 rtw_write32_mask(rtwdev, REG_CLKTRK, 0x1ffe0000, 0x494); 570 - else if (channel >= 52 && channel <= 64) 574 + else if (IS_CH_5G_BAND_2(channel)) 571 575 rtw_write32_mask(rtwdev, REG_CLKTRK, 0x1ffe0000, 0x453); 572 576 else if (channel >= 100 && channel <= 116) 573 577 rtw_write32_mask(rtwdev, REG_CLKTRK, 0x1ffe0000, 0x452);
+8 -8
drivers/net/wireless/realtek/rtw88/rtw8822c.c
··· 1287 1287 rf_reg18 &= ~(RF18_BAND_MASK | RF18_CHANNEL_MASK | RF18_RFSI_MASK | 1288 1288 RF18_BW_MASK); 1289 1289 1290 - rf_reg18 |= (channel <= 14 ? RF18_BAND_2G : RF18_BAND_5G); 1290 + rf_reg18 |= (IS_CH_2G_BAND(channel) ? RF18_BAND_2G : RF18_BAND_5G); 1291 1291 rf_reg18 |= (channel & RF18_CHANNEL_MASK); 1292 - if (channel > 144) 1292 + if (IS_CH_5G_BAND_4(channel)) 1293 1293 rf_reg18 |= RF18_RFSI_GT_CH140; 1294 - else if (channel >= 80) 1294 + else if (IS_CH_5G_BAND_3(channel)) 1295 1295 rf_reg18 |= RF18_RFSI_GE_CH80; 1296 1296 1297 1297 switch (bw) { ··· 1341 1341 static void rtw8822c_set_channel_bb(struct rtw_dev *rtwdev, u8 channel, u8 bw, 1342 1342 u8 primary_ch_idx) 1343 1343 { 1344 - if (channel <= 14) { 1344 + if (IS_CH_2G_BAND(channel)) { 1345 1345 rtw_write32_clr(rtwdev, REG_BGCTRL, BITS_RX_IQ_WEIGHT); 1346 1346 rtw_write32_mask(rtwdev, REG_RXCCKSEL, 0xf0000000, 0x8); 1347 1347 rtw_write32_set(rtwdev, REG_TXF4, BIT(20)); ··· 1406 1406 rtw_write32_mask(rtwdev, REG_TXDFIR0, 0x70, 0x3); 1407 1407 else 1408 1408 rtw_write32_mask(rtwdev, REG_TXDFIR0, 0x70, 0x1); 1409 - } else if (channel > 35) { 1409 + } else if (IS_CH_5G_BAND(channel)) { 1410 1410 rtw_write32_set(rtwdev, REG_CCKTXONLY, BIT_BB_CCK_CHECK_EN); 1411 1411 rtw_write32_set(rtwdev, REG_CCK_CHECK, BIT_CHECK_CCK_EN); 1412 1412 rtw_write32_set(rtwdev, REG_BGCTRL, BITS_RX_IQ_WEIGHT); ··· 1414 1414 rtw_write32_mask(rtwdev, REG_RXCCKSEL, 0xf0000000, 0x0); 1415 1415 rtw_write32_mask(rtwdev, REG_CCAMSK, 0x3F000000, 0x22); 1416 1416 rtw_write32_mask(rtwdev, REG_TXDFIR0, 0x70, 0x3); 1417 - if (channel >= 36 && channel <= 64) { 1417 + if (IS_CH_5G_BAND_1(channel) || IS_CH_5G_BAND_2(channel)) { 1418 1418 rtw_write32_mask(rtwdev, REG_RXAGCCTL0, BITS_RXAGC_OFDM, 1419 1419 0x1); 1420 1420 rtw_write32_mask(rtwdev, REG_RXAGCCTL, BITS_RXAGC_OFDM, 1421 1421 0x1); 1422 - } else if (channel >= 100 && channel <= 144) { 1422 + } else if (IS_CH_5G_BAND_3(channel)) { 1423 1423 rtw_write32_mask(rtwdev, REG_RXAGCCTL0, BITS_RXAGC_OFDM, 1424 1424 0x2); 1425 1425 rtw_write32_mask(rtwdev, REG_RXAGCCTL, BITS_RXAGC_OFDM, 1426 1426 0x2); 1427 - } else if (channel >= 149) { 1427 + } else if (IS_CH_5G_BAND_4(channel)) { 1428 1428 rtw_write32_mask(rtwdev, REG_RXAGCCTL0, BITS_RXAGC_OFDM, 1429 1429 0x3); 1430 1430 rtw_write32_mask(rtwdev, REG_RXAGCCTL, BITS_RXAGC_OFDM,