@@ -1700,10 +1700,10 @@ void rtw_set_txrx_1ss(struct rtw_dev *rtwdev, bool txrx_1ss)
rtwdev->hal.txrx_1ss = txrx_1ss;
if (txrx_1ss)
- chip->ops->config_txrx_mode(rtwdev, BB_PATH_A, BB_PATH_A, false);
+ chip->ops->config_txrx_mode(rtwdev, BB_PATH_A, BB_PATH_A);
else
chip->ops->config_txrx_mode(rtwdev, hal->antenna_tx,
- hal->antenna_rx, false);
+ hal->antenna_rx);
rtw_iterate_vifs_atomic(rtwdev, rtw_vif_smps_iter, rtwdev);
}
@@ -879,10 +879,9 @@ struct rtw_chip_ops {
void (*cfo_track)(struct rtw_dev *rtwdev);
void (*config_tx_path)(struct rtw_dev *rtwdev, u8 tx_path,
enum rtw_bb_path tx_path_1ss,
- enum rtw_bb_path tx_path_cck,
- bool is_tx2_path);
+ enum rtw_bb_path tx_path_cck);
void (*config_txrx_mode)(struct rtw_dev *rtwdev, u8 tx_path,
- u8 rx_path, bool is_tx2_path);
+ u8 rx_path);
/* for USB/SDIO only */
void (*fill_txdesc_checksum)(struct rtw_dev *rtwdev,
struct rtw_tx_pkt_info *pkt_info,
@@ -2488,7 +2488,7 @@ static void rtw_phy_set_tx_path_by_reg(struct rtw_dev *rtwdev,
rtw_dbg(rtwdev, RTW_DBG_PATH_DIV, "Switch TX path=%s\n",
tx_path_sel_1ss == BB_PATH_A ? "A" : "B");
chip->ops->config_tx_path(rtwdev, rtwdev->hal.antenna_tx,
- tx_path_sel_1ss, tx_path_sel_cck, false);
+ tx_path_sel_1ss, tx_path_sel_cck);
}
static void rtw_phy_tx_path_div_select(struct rtw_dev *rtwdev)
@@ -17,8 +17,8 @@
#include "bf.h"
#include "regd.h"
-static void rtw8822b_config_trx_mode(struct rtw_dev *rtwdev, u8 tx_path,
- u8 rx_path, bool is_tx2_path);
+static void rtw8822b_config_txrx_mode(struct rtw_dev *rtwdev, u8 tx_path,
+ u8 rx_path);
static void rtw8822be_efuse_parsing(struct rtw_efuse *efuse,
struct rtw8822b_efuse *map)
@@ -152,7 +152,6 @@ static void rtw8822b_phy_set_param(struct rtw_dev *rtwdev)
{
struct rtw_hal *hal = &rtwdev->hal;
u8 crystal_cap;
- bool is_tx2_path;
/* power on BB/RF domain */
rtw_write8_set(rtwdev, REG_SYS_FUNC_EN,
@@ -173,9 +172,7 @@ static void rtw8822b_phy_set_param(struct rtw_dev *rtwdev)
/* post init after header files config */
rtw_write32_set(rtwdev, REG_RXPSEL, BIT_RX_PSEL_RST);
- is_tx2_path = false;
- rtw8822b_config_trx_mode(rtwdev, hal->antenna_tx, hal->antenna_rx,
- is_tx2_path);
+ rtw8822b_config_txrx_mode(rtwdev, hal->antenna_tx, hal->antenna_rx);
rtw_phy_init(rtwdev);
rtw8822b_phy_rfe_init(rtwdev);
@@ -734,8 +731,8 @@ static void rtw8822b_set_channel(struct rtw_dev *rtwdev, u8 channel, u8 bw,
(*rfe_info->rtw_set_channel_rfe)(rtwdev, channel);
}
-static void rtw8822b_config_trx_mode(struct rtw_dev *rtwdev, u8 tx_path,
- u8 rx_path, bool is_tx2_path)
+static void rtw8822b_config_txrx_mode(struct rtw_dev *rtwdev, u8 tx_path,
+ u8 rx_path)
{
struct rtw_efuse *efuse = &rtwdev->efuse;
const struct rtw8822b_rfe_info *rfe_info;
@@ -780,7 +777,7 @@ static void rtw8822b_config_trx_mode(struct rtw_dev *rtwdev, u8 tx_path,
rtw_write32_mask(rtwdev, REG_TXPSEL, MASKBYTE0, tx_path_sel);
if (tx_path != BB_PATH_A && tx_path != BB_PATH_B) {
- if (is_tx2_path || rtwdev->mp_mode) {
+ if (rtwdev->mp_mode) {
rtw_write32_mask(rtwdev, REG_CDDTXP, 0xfff00000, 0x043);
rtw_write32_mask(rtwdev, REG_ADCINI, 0xf0000000, 0xc);
}
@@ -1042,7 +1039,7 @@ static int rtw8822b_set_antenna(struct rtw_dev *rtwdev,
hal->antenna_tx = antenna_tx;
hal->antenna_rx = antenna_rx;
- rtw8822b_config_trx_mode(rtwdev, antenna_tx, antenna_rx, false);
+ rtw8822b_config_txrx_mode(rtwdev, antenna_tx, antenna_rx);
return 0;
}
@@ -20,8 +20,8 @@
#define IQK_DONE_8822C 0xaa
-static void rtw8822c_config_trx_mode(struct rtw_dev *rtwdev, u8 tx_path,
- u8 rx_path, bool is_tx2_path);
+static void rtw8822c_config_txrx_mode(struct rtw_dev *rtwdev, u8 tx_path,
+ u8 rx_path);
static void rtw8822ce_efuse_parsing(struct rtw_efuse *efuse,
struct rtw8822c_efuse *map)
@@ -1868,7 +1868,6 @@ static void rtw8822c_phy_set_param(struct rtw_dev *rtwdev)
u8 cck_gi_u_bnd_lsb = 0;
u8 cck_gi_l_bnd_msb = 0;
u8 cck_gi_l_bnd_lsb = 0;
- bool is_tx2_path;
/* power on BB/RF domain */
rtw_write8_set(rtwdev, REG_SYS_FUNC_EN,
@@ -1892,9 +1891,7 @@ static void rtw8822c_phy_set_param(struct rtw_dev *rtwdev)
/* post init after header files config */
rtw8822c_header_file_init(rtwdev, false);
- is_tx2_path = false;
- rtw8822c_config_trx_mode(rtwdev, hal->antenna_tx, hal->antenna_rx,
- is_tx2_path);
+ rtw8822c_config_txrx_mode(rtwdev, hal->antenna_tx, hal->antenna_rx);
rtw_phy_init(rtwdev);
cck_gi_u_bnd_msb = (u8)rtw_read32_mask(rtwdev, 0x1a98, 0xc000);
@@ -2475,18 +2472,14 @@ static void rtw8822c_config_rx_path(struct rtw_dev *rtwdev, u8 rx_path)
rtw8822c_config_ofdm_rx_path(rtwdev, rx_path);
}
-static void rtw8822c_config_cck_tx_path(struct rtw_dev *rtwdev, u8 tx_path,
- bool is_tx2_path)
+static void rtw8822c_config_cck_tx_path(struct rtw_dev *rtwdev, u8 tx_path)
{
if (tx_path == BB_PATH_A) {
rtw_write32_mask(rtwdev, REG_RXCCKSEL, 0xf0000000, 0x8);
} else if (tx_path == BB_PATH_B) {
rtw_write32_mask(rtwdev, REG_RXCCKSEL, 0xf0000000, 0x4);
} else {
- if (is_tx2_path)
- rtw_write32_mask(rtwdev, REG_RXCCKSEL, 0xf0000000, 0xc);
- else
- rtw_write32_mask(rtwdev, REG_RXCCKSEL, 0xf0000000, 0x8);
+ rtw_write32_mask(rtwdev, REG_RXCCKSEL, 0xf0000000, 0x8);
}
rtw8822c_bb_reset(rtwdev);
}
@@ -2517,16 +2510,15 @@ static void rtw8822c_config_ofdm_tx_path(struct rtw_dev *rtwdev, u8 tx_path,
static void rtw8822c_config_tx_path(struct rtw_dev *rtwdev, u8 tx_path,
enum rtw_bb_path tx_path_sel_1ss,
- enum rtw_bb_path tx_path_cck,
- bool is_tx2_path)
+ enum rtw_bb_path tx_path_cck)
{
- rtw8822c_config_cck_tx_path(rtwdev, tx_path_cck, is_tx2_path);
+ rtw8822c_config_cck_tx_path(rtwdev, tx_path_cck);
rtw8822c_config_ofdm_tx_path(rtwdev, tx_path, tx_path_sel_1ss);
rtw8822c_bb_reset(rtwdev);
}
-static void rtw8822c_config_trx_mode(struct rtw_dev *rtwdev, u8 tx_path,
- u8 rx_path, bool is_tx2_path)
+static void rtw8822c_config_txrx_mode(struct rtw_dev *rtwdev, u8 tx_path,
+ u8 rx_path)
{
if ((tx_path | rx_path) & BB_PATH_A)
rtw_write32_mask(rtwdev, REG_ORITXCODE, MASK20BITS, 0x33312);
@@ -2538,8 +2530,7 @@ static void rtw8822c_config_trx_mode(struct rtw_dev *rtwdev, u8 tx_path,
rtw_write32_mask(rtwdev, REG_ORITXCODE2, MASK20BITS, 0x11111);
rtw8822c_config_rx_path(rtwdev, rx_path);
- rtw8822c_config_tx_path(rtwdev, tx_path, BB_PATH_A, BB_PATH_A,
- is_tx2_path);
+ rtw8822c_config_tx_path(rtwdev, tx_path, BB_PATH_A, BB_PATH_A);
rtw8822c_toggle_igi(rtwdev);
}
@@ -2833,7 +2824,7 @@ static int rtw8822c_set_antenna(struct rtw_dev *rtwdev,
hal->antenna_tx = antenna_tx;
hal->antenna_rx = antenna_rx;
- rtw8822c_config_trx_mode(rtwdev, antenna_tx, antenna_rx, false);
+ rtw8822c_config_txrx_mode(rtwdev, antenna_tx, antenna_rx);
return 0;
}
@@ -5009,7 +5000,7 @@ static struct rtw_chip_ops rtw8822c_ops = {
.cfo_init = rtw8822c_cfo_init,
.cfo_track = rtw8822c_cfo_track,
.config_tx_path = rtw8822c_config_tx_path,
- .config_txrx_mode = rtw8822c_config_trx_mode,
+ .config_txrx_mode = rtw8822c_config_txrx_mode,
.fill_txdesc_checksum = rtw8822c_fill_txdesc_checksum,
.coex_set_init = rtw8822c_coex_cfg_init,
Since 4th argument of '(*config_tx_path)()' and '(*config_txrx_mode)()' from 'struct rtw_chip_ops' is a hardcoded false, drop it and adjust chip-specific code for rtw8822b and rtw8822c (including renaming from presumably misspelled 'rtwxxxx_config_trx_mode()' to more suitable 'rtwxxxx_config_txrx_mode()') accordingly. Briefly tested on the following USB dongle: usb 3-6: new high-speed USB device number 7 using xhci_hcd usb 3-6: New USB device found, idVendor=0bda, idProduct=b812, bcdDevice=2.10 usb 3-6: New USB device strings: Mfr=1, Product=2, SerialNumber=3 usb 3-6: Product: USB3.0 802.11ac 1200M Adapter usb 3-6: Manufacturer: Realtek usb 3-6: SerialNumber: 123456 rtw_8822bu 3-6:1.0: Firmware version 27.2.0, H2C version 13 usbcore: registered new interface driver rtw_8822bu Signed-off-by: Dmitry Antipov <dmantipov@yandex.ru> --- drivers/net/wireless/realtek/rtw88/main.c | 4 +-- drivers/net/wireless/realtek/rtw88/main.h | 5 ++- drivers/net/wireless/realtek/rtw88/phy.c | 2 +- drivers/net/wireless/realtek/rtw88/rtw8822b.c | 17 ++++------ drivers/net/wireless/realtek/rtw88/rtw8822c.c | 33 +++++++------------ 5 files changed, 24 insertions(+), 37 deletions(-)