rtw8821c.c (29583dfcd2dd72c766422bd05c16f06c6b1fb356) rtw8821c.c (aff5ffd718de23cb8603f2e229204670e2644334)
1// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
2/* Copyright(c) 2018-2019 Realtek Corporation
3 */
4
5#include "main.h"
6#include "coex.h"
7#include "fw.h"
8#include "tx.h"

--- 12 unchanged lines hidden (view full) ---

21 -20, -24, -28, -31, -34, -37, -40, -44};
22
23static void rtw8821ce_efuse_parsing(struct rtw_efuse *efuse,
24 struct rtw8821c_efuse *map)
25{
26 ether_addr_copy(efuse->addr, map->e.mac_addr);
27}
28
1// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
2/* Copyright(c) 2018-2019 Realtek Corporation
3 */
4
5#include "main.h"
6#include "coex.h"
7#include "fw.h"
8#include "tx.h"

--- 12 unchanged lines hidden (view full) ---

21 -20, -24, -28, -31, -34, -37, -40, -44};
22
23static void rtw8821ce_efuse_parsing(struct rtw_efuse *efuse,
24 struct rtw8821c_efuse *map)
25{
26 ether_addr_copy(efuse->addr, map->e.mac_addr);
27}
28
29static void rtw8821cu_efuse_parsing(struct rtw_efuse *efuse,
30 struct rtw8821c_efuse *map)
31{
32 ether_addr_copy(efuse->addr, map->u.mac_addr);
33}
34
29enum rtw8821ce_rf_set {
30 SWITCH_TO_BTG,
31 SWITCH_TO_WLG,
32 SWITCH_TO_WLA,
33 SWITCH_TO_BT,
34};
35
36static int rtw8821c_read_efuse(struct rtw_dev *rtwdev, u8 *log_map)

--- 26 unchanged lines hidden (view full) ---

63
64 if (rtwdev->efuse.rfe_option == 2 || rtwdev->efuse.rfe_option == 4)
65 efuse->txpwr_idx_table[0].pwr_idx_2g = map->txpwr_idx_table[1].pwr_idx_2g;
66
67 switch (rtw_hci_type(rtwdev)) {
68 case RTW_HCI_TYPE_PCIE:
69 rtw8821ce_efuse_parsing(efuse, map);
70 break;
35enum rtw8821ce_rf_set {
36 SWITCH_TO_BTG,
37 SWITCH_TO_WLG,
38 SWITCH_TO_WLA,
39 SWITCH_TO_BT,
40};
41
42static int rtw8821c_read_efuse(struct rtw_dev *rtwdev, u8 *log_map)

--- 26 unchanged lines hidden (view full) ---

69
70 if (rtwdev->efuse.rfe_option == 2 || rtwdev->efuse.rfe_option == 4)
71 efuse->txpwr_idx_table[0].pwr_idx_2g = map->txpwr_idx_table[1].pwr_idx_2g;
72
73 switch (rtw_hci_type(rtwdev)) {
74 case RTW_HCI_TYPE_PCIE:
75 rtw8821ce_efuse_parsing(efuse, map);
76 break;
77 case RTW_HCI_TYPE_USB:
78 rtw8821cu_efuse_parsing(efuse, map);
79 break;
71 default:
72 /* unsupported now */
73 return -ENOTSUPP;
74 }
75
76 return 0;
77}
78

--- 1064 unchanged lines hidden (view full) ---

1143 dm_info->cck_fa_avg = CCK_FA_AVG_RESET;
1144
1145 dm_info->cck_pd_lv[RTW_CHANNEL_WIDTH_20][RF_PATH_A] = new_lvl;
1146 rtw_write32_mask(rtwdev, REG_PWRTH, 0x3f0000, pd[new_lvl]);
1147 rtw_write32_mask(rtwdev, REG_PWRTH2, 0x1f0000,
1148 dm_info->cck_pd_default + new_lvl * 2);
1149}
1150
80 default:
81 /* unsupported now */
82 return -ENOTSUPP;
83 }
84
85 return 0;
86}
87

--- 1064 unchanged lines hidden (view full) ---

1152 dm_info->cck_fa_avg = CCK_FA_AVG_RESET;
1153
1154 dm_info->cck_pd_lv[RTW_CHANNEL_WIDTH_20][RF_PATH_A] = new_lvl;
1155 rtw_write32_mask(rtwdev, REG_PWRTH, 0x3f0000, pd[new_lvl]);
1156 rtw_write32_mask(rtwdev, REG_PWRTH2, 0x1f0000,
1157 dm_info->cck_pd_default + new_lvl * 2);
1158}
1159
1160static void rtw8821c_fill_txdesc_checksum(struct rtw_dev *rtwdev,
1161 struct rtw_tx_pkt_info *pkt_info,
1162 u8 *txdesc)
1163{
1164 fill_txdesc_checksum_common(txdesc, 16);
1165}
1166
1151static struct rtw_pwr_seq_cmd trans_carddis_to_cardemu_8821c[] = {
1152 {0x0086,
1153 RTW_PWR_CUT_ALL_MSK,
1154 RTW_PWR_INTF_SDIO_MSK,
1155 RTW_PWR_ADDR_SDIO,
1156 RTW_PWR_CMD_WRITE, BIT(0), 0},
1157 {0x0086,
1158 RTW_PWR_CUT_ALL_MSK,

--- 357 unchanged lines hidden (view full) ---

1516 .n_gen2_para = ARRAY_SIZE(pcie_gen2_param_8821c),
1517};
1518
1519static const struct rtw_rfe_def rtw8821c_rfe_defs[] = {
1520 [0] = RTW_DEF_RFE(8821c, 0, 0),
1521 [2] = RTW_DEF_RFE_EXT(8821c, 0, 0, 2),
1522 [4] = RTW_DEF_RFE_EXT(8821c, 0, 0, 2),
1523 [6] = RTW_DEF_RFE(8821c, 0, 0),
1167static struct rtw_pwr_seq_cmd trans_carddis_to_cardemu_8821c[] = {
1168 {0x0086,
1169 RTW_PWR_CUT_ALL_MSK,
1170 RTW_PWR_INTF_SDIO_MSK,
1171 RTW_PWR_ADDR_SDIO,
1172 RTW_PWR_CMD_WRITE, BIT(0), 0},
1173 {0x0086,
1174 RTW_PWR_CUT_ALL_MSK,

--- 357 unchanged lines hidden (view full) ---

1532 .n_gen2_para = ARRAY_SIZE(pcie_gen2_param_8821c),
1533};
1534
1535static const struct rtw_rfe_def rtw8821c_rfe_defs[] = {
1536 [0] = RTW_DEF_RFE(8821c, 0, 0),
1537 [2] = RTW_DEF_RFE_EXT(8821c, 0, 0, 2),
1538 [4] = RTW_DEF_RFE_EXT(8821c, 0, 0, 2),
1539 [6] = RTW_DEF_RFE(8821c, 0, 0),
1540 [34] = RTW_DEF_RFE(8821c, 0, 0),
1524};
1525
1526static struct rtw_hw_reg rtw8821c_dig[] = {
1527 [0] = { .addr = 0xc50, .mask = 0x7f },
1528};
1529
1530static const struct rtw_ltecoex_addr rtw8821c_ltecoex_addr = {
1531 .ctrl = LTECOEX_ACCESS_CTRL,

--- 58 unchanged lines hidden (view full) ---

1590 .cfg_ldo25 = rtw8821c_cfg_ldo25,
1591 .false_alarm_statistics = rtw8821c_false_alarm_statistics,
1592 .phy_calibration = rtw8821c_phy_calibration,
1593 .cck_pd_set = rtw8821c_phy_cck_pd_set,
1594 .pwr_track = rtw8821c_pwr_track,
1595 .config_bfee = rtw8821c_bf_config_bfee,
1596 .set_gid_table = rtw_bf_set_gid_table,
1597 .cfg_csi_rate = rtw_bf_cfg_csi_rate,
1541};
1542
1543static struct rtw_hw_reg rtw8821c_dig[] = {
1544 [0] = { .addr = 0xc50, .mask = 0x7f },
1545};
1546
1547static const struct rtw_ltecoex_addr rtw8821c_ltecoex_addr = {
1548 .ctrl = LTECOEX_ACCESS_CTRL,

--- 58 unchanged lines hidden (view full) ---

1607 .cfg_ldo25 = rtw8821c_cfg_ldo25,
1608 .false_alarm_statistics = rtw8821c_false_alarm_statistics,
1609 .phy_calibration = rtw8821c_phy_calibration,
1610 .cck_pd_set = rtw8821c_phy_cck_pd_set,
1611 .pwr_track = rtw8821c_pwr_track,
1612 .config_bfee = rtw8821c_bf_config_bfee,
1613 .set_gid_table = rtw_bf_set_gid_table,
1614 .cfg_csi_rate = rtw_bf_cfg_csi_rate,
1615 .fill_txdesc_checksum = rtw8821c_fill_txdesc_checksum,
1598
1599 .coex_set_init = rtw8821c_coex_cfg_init,
1600 .coex_set_ant_switch = rtw8821c_coex_cfg_ant_switch,
1601 .coex_set_gnt_fix = rtw8821c_coex_cfg_gnt_fix,
1602 .coex_set_gnt_debug = rtw8821c_coex_cfg_gnt_debug,
1603 .coex_set_rfe_type = rtw8821c_coex_cfg_rfe_type,
1604 .coex_set_wl_tx_power = rtw8821c_coex_cfg_wl_tx_power,
1605 .coex_set_wl_rx_gain = rtw8821c_coex_cfg_wl_rx_gain,

--- 363 unchanged lines hidden ---
1616
1617 .coex_set_init = rtw8821c_coex_cfg_init,
1618 .coex_set_ant_switch = rtw8821c_coex_cfg_ant_switch,
1619 .coex_set_gnt_fix = rtw8821c_coex_cfg_gnt_fix,
1620 .coex_set_gnt_debug = rtw8821c_coex_cfg_gnt_debug,
1621 .coex_set_rfe_type = rtw8821c_coex_cfg_rfe_type,
1622 .coex_set_wl_tx_power = rtw8821c_coex_cfg_wl_tx_power,
1623 .coex_set_wl_rx_gain = rtw8821c_coex_cfg_wl_rx_gain,

--- 363 unchanged lines hidden ---