rtl8188eu: Remove all dead code in support of chips other than RTL8188EU

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
This commit is contained in:
Larry Finger 2018-11-09 00:54:41 -06:00
parent 8576d2647a
commit 4ff88c48d1
19 changed files with 13 additions and 1188 deletions

View file

@ -22,7 +22,6 @@
#include "mp_precomp.h" #include "mp_precomp.h"
#include "phydm_precomp.h" #include "phydm_precomp.h"
#if (RTL8188E_SUPPORT == 1)
static bool static bool
check_positive( check_positive(
struct PHY_DM_STRUCT *p_dm_odm, struct PHY_DM_STRUCT *p_dm_odm,
@ -1745,5 +1744,3 @@ odm_read_and_config_mp_8188e_phy_reg_pg(
odm_config_bb_phy_reg_pg_8188e(p_dm_odm, v1, v2, v3, v4, v5, v6); odm_config_bb_phy_reg_pg_8188e(p_dm_odm, v1, v2, v3, v4, v5, v6);
} }
} }
#endif /* end of HWIMG_SUPPORT*/

View file

@ -61,32 +61,17 @@ configure_txpower_track(
struct _TXPWRTRACK_CFG *p_config struct _TXPWRTRACK_CFG *p_config
); );
void void
odm_txpowertracking_callback_thermal_meter( odm_txpowertracking_callback_thermal_meter(
struct _ADAPTER *adapter struct _ADAPTER *adapter
); );
#if (RTL8814A_SUPPORT == 1) #if ODM_IC_11AC_SERIES_SUPPORT
void
odm_txpowertracking_callback_thermal_meter_jaguar_series2(
struct _ADAPTER *adapter
);
#elif ODM_IC_11AC_SERIES_SUPPORT
void void
odm_txpowertracking_callback_thermal_meter_jaguar_series( odm_txpowertracking_callback_thermal_meter_jaguar_series(
struct _ADAPTER *adapter struct _ADAPTER *adapter
); );
#elif (RTL8197F_SUPPORT == 1 || RTL8822B_SUPPORT == 1)
void
odm_txpowertracking_callback_thermal_meter_jaguar_series3(
struct _ADAPTER *adapter
);
#endif
#define IS_CCK_RATE(_rate) (ODM_MGN_1M == _rate || _rate == ODM_MGN_2M || _rate == ODM_MGN_5_5M || _rate == ODM_MGN_11M) #define IS_CCK_RATE(_rate) (ODM_MGN_1M == _rate || _rate == ODM_MGN_2M || _rate == ODM_MGN_5_5M || _rate == ODM_MGN_11M)

View file

@ -43,55 +43,8 @@ void configure_txpower_track(
{ {
struct PHY_DM_STRUCT *p_dm_odm = (struct PHY_DM_STRUCT *)p_dm_void; struct PHY_DM_STRUCT *p_dm_odm = (struct PHY_DM_STRUCT *)p_dm_void;
#if RTL8192E_SUPPORT
if (p_dm_odm->support_ic_type == ODM_RTL8192E)
configure_txpower_track_8192e(p_config);
#endif
#if RTL8821A_SUPPORT
if (p_dm_odm->support_ic_type == ODM_RTL8821)
configure_txpower_track_8821a(p_config);
#endif
#if RTL8812A_SUPPORT
if (p_dm_odm->support_ic_type == ODM_RTL8812)
configure_txpower_track_8812a(p_config);
#endif
#if RTL8188E_SUPPORT
if (p_dm_odm->support_ic_type == ODM_RTL8188E) if (p_dm_odm->support_ic_type == ODM_RTL8188E)
configure_txpower_track_8188e(p_config); configure_txpower_track_8188e(p_config);
#endif
#if RTL8723B_SUPPORT
if (p_dm_odm->support_ic_type == ODM_RTL8723B)
configure_txpower_track_8723b(p_config);
#endif
#if RTL8814A_SUPPORT
if (p_dm_odm->support_ic_type == ODM_RTL8814A)
configure_txpower_track_8814a(p_config);
#endif
#if RTL8703B_SUPPORT
if (p_dm_odm->support_ic_type == ODM_RTL8703B)
configure_txpower_track_8703b(p_config);
#endif
#if RTL8188F_SUPPORT
if (p_dm_odm->support_ic_type == ODM_RTL8188F)
configure_txpower_track_8188f(p_config);
#endif
#if RTL8723D_SUPPORT
if (p_dm_odm->support_ic_type == ODM_RTL8723D)
configure_txpower_track_8723d(p_config);
#endif
#if RTL8822B_SUPPORT
if (p_dm_odm->support_ic_type == ODM_RTL8822B)
configure_txpower_track_8822b(p_config);
#endif
#if RTL8821C_SUPPORT
if (p_dm_odm->support_ic_type == ODM_RTL8821C)
configure_txpower_track_8821c(p_config);
#endif
} }
/* ********************************************************************** /* **********************************************************************
@ -690,25 +643,7 @@ static void odm_iq_calibrate(struct PHY_DM_STRUCT *p_dm_odm)
if (p_dm_odm->linked_interval == 2) { if (p_dm_odm->linked_interval == 2) {
if (IS_HARDWARE_TYPE_8814A(adapter)) { if (IS_HARDWARE_TYPE_8814A(adapter)) {
#if (RTL8814A_SUPPORT == 1)
phy_iq_calibrate_8814a(p_dm_odm, false);
#endif
} }
#if (RTL8822B_SUPPORT == 1)
else if (IS_HARDWARE_TYPE_8822B(adapter))
phy_iq_calibrate_8822b(p_dm_odm, false);
#endif
#if (RTL8821C_SUPPORT == 1)
else if (IS_HARDWARE_TYPE_8821C(adapter))
phy_iq_calibrate_8821c(p_dm_odm, false);
#endif
#if (RTL8821A_SUPPORT == 1)
else if (IS_HARDWARE_TYPE_8821(adapter))
phy_iq_calibrate_8821a(p_dm_odm, false);
#endif
} }
} else } else
p_dm_odm->linked_interval = 0; p_dm_odm->linked_interval = 0;

View file

@ -22,21 +22,8 @@
#define __HAL_PHY_RF_H__ #define __HAL_PHY_RF_H__
#include "phydm_kfree.h" #include "phydm_kfree.h"
#if (RTL8814A_SUPPORT == 1)
#include "rtl8814a/phydm_iqk_8814a.h"
#endif
#if (RTL8822B_SUPPORT == 1)
#include "rtl8822b/phydm_iqk_8822b.h"
#endif
#if (RTL8821C_SUPPORT == 1)
#include "rtl8821c/phydm_iqk_8821c.h"
#endif
#include "phydm_powertracking_ce.h" #include "phydm_powertracking_ce.h"
enum spur_cal_method { enum spur_cal_method {
PLL_RESET, PLL_RESET,
AFE_PHASE_SEL AFE_PHASE_SEL

View file

@ -180,8 +180,6 @@ phydm_init_trx_antenna_setting(
struct PHY_DM_STRUCT *p_dm_odm struct PHY_DM_STRUCT *p_dm_odm
) )
{ {
/*#if (RTL8814A_SUPPORT == 1)*/
if (p_dm_odm->support_ic_type & (ODM_RTL8814A)) { if (p_dm_odm->support_ic_type & (ODM_RTL8814A)) {
u8 rx_ant = 0, tx_ant = 0; u8 rx_ant = 0, tx_ant = 0;
@ -194,7 +192,6 @@ phydm_init_trx_antenna_setting(
p_dm_odm->rx_ant_status = 0x1; p_dm_odm->rx_ant_status = 0x1;
} }
/*#endif*/
} }
static void static void
@ -255,42 +252,6 @@ phydm_config_ofdm_tx_path(
) )
{ {
u8 ofdm_tx_path = 0x33; u8 ofdm_tx_path = 0x33;
#if (RTL8192E_SUPPORT == 1)
if (p_dm_odm->support_ic_type & (ODM_RTL8192E)) {
if (path == PHYDM_A) {
odm_set_bb_reg(p_dm_odm, 0x90c, MASKDWORD, 0x81121111);
/**/
} else if (path == PHYDM_B) {
odm_set_bb_reg(p_dm_odm, 0x90c, MASKDWORD, 0x82221222);
/**/
} else if (path == PHYDM_AB) {
odm_set_bb_reg(p_dm_odm, 0x90c, MASKDWORD, 0x83321333);
/**/
}
}
#endif
#if (RTL8812A_SUPPORT == 1)
if (p_dm_odm->support_ic_type & (ODM_RTL8812)) {
if (path == PHYDM_A) {
ofdm_tx_path = 0x11;
/**/
} else if (path == PHYDM_B) {
ofdm_tx_path = 0x22;
/**/
} else if (path == PHYDM_AB) {
ofdm_tx_path = 0x33;
/**/
}
odm_set_bb_reg(p_dm_odm, 0x80c, 0xff00, ofdm_tx_path);
}
#endif
} }
void void
@ -303,39 +264,7 @@ phydm_config_ofdm_rx_path(
if (p_dm_odm->support_ic_type & (ODM_RTL8192E)) { if (p_dm_odm->support_ic_type & (ODM_RTL8192E)) {
#if (RTL8192E_SUPPORT == 1)
if (path == PHYDM_A) {
ofdm_rx_path = 1;
/**/
} else if (path == PHYDM_B) {
ofdm_rx_path = 2;
/**/
} else if (path == PHYDM_AB) {
ofdm_rx_path = 3;
/**/
}
odm_set_bb_reg(p_dm_odm, 0xC04, 0xff, (((ofdm_rx_path) << 4) | ofdm_rx_path));
odm_set_bb_reg(p_dm_odm, 0xD04, 0xf, ofdm_rx_path);
#endif
} }
#if (RTL8812A_SUPPORT || RTL8822B_SUPPORT)
else if (p_dm_odm->support_ic_type & (ODM_RTL8812 | ODM_RTL8822B)) {
if (path == PHYDM_A) {
ofdm_rx_path = 1;
/**/
} else if (path == PHYDM_B) {
ofdm_rx_path = 2;
/**/
} else if (path == PHYDM_AB) {
ofdm_rx_path = 3;
/**/
}
odm_set_bb_reg(p_dm_odm, 0x808, MASKBYTE0, ((ofdm_rx_path << 4) | ofdm_rx_path));
}
#endif
} }
static void static void
@ -343,19 +272,6 @@ phydm_config_cck_rx_antenna_init(
struct PHY_DM_STRUCT *p_dm_odm struct PHY_DM_STRUCT *p_dm_odm
) )
{ {
#if ((RTL8192E_SUPPORT == 1) || (RTL8812A_SUPPORT == 1))
if (p_dm_odm->support_ic_type & (ODM_RTL8192E | ODM_RTL8812)) {
/*CCK 2R CCA parameters*/
odm_set_bb_reg(p_dm_odm, 0xa2c, BIT(18), 1); /*enable 2R Rx path*/
odm_set_bb_reg(p_dm_odm, 0xa2c, BIT(22), 1); /*enable 2R MRC*/
odm_set_bb_reg(p_dm_odm, 0xa84, BIT(28), 1); /*1. pdx1[5:0] > 2*PD_lim 2. RXIQ_3 = 0 ( signed )*/
odm_set_bb_reg(p_dm_odm, 0xa70, BIT(7), 0); /*Concurrent CCA at LSB & USB*/
odm_set_bb_reg(p_dm_odm, 0xa74, BIT(8), 0); /*RX path diversity enable*/
odm_set_bb_reg(p_dm_odm, 0xa08, BIT(28), 1); /* r_cck_2nd_sel_eco*/
odm_set_bb_reg(p_dm_odm, 0xa14, BIT(7), 0); /* r_en_mrc_antsel*/
}
#endif
} }
static void static void
@ -367,34 +283,6 @@ phydm_config_cck_rx_path(
{ {
u8 path_div_select = 0; u8 path_div_select = 0;
u8 cck_1_path = 0, cck_2_path = 0; u8 cck_1_path = 0, cck_2_path = 0;
#if ((RTL8192E_SUPPORT == 1) || (RTL8812A_SUPPORT == 1))
if (p_dm_odm->support_ic_type & (ODM_RTL8192E | ODM_RTL8812)) {
if (path == PHYDM_A) {
path_div_select = 0;
cck_1_path = 0;
cck_2_path = 0;
} else if (path == PHYDM_B) {
path_div_select = 0;
cck_1_path = 1;
cck_2_path = 1;
} else if (path == PHYDM_AB) {
if (path_div_en == CCA_PATHDIV_ENABLE)
path_div_select = 1;
cck_1_path = 0;
cck_2_path = 1;
}
odm_set_bb_reg(p_dm_odm, 0xa04, (BIT(27) | BIT(26)), cck_1_path);
odm_set_bb_reg(p_dm_odm, 0xa04, (BIT(25) | BIT(24)), cck_2_path);
odm_set_bb_reg(p_dm_odm, 0xa74, BIT(8), path_div_select);
}
#endif
} }
void void
@ -469,41 +357,7 @@ phydm_init_cck_setting(
p_dm_odm->is_cck_high_power = (bool) odm_get_bb_reg(p_dm_odm, ODM_REG(CCK_RPT_FORMAT, p_dm_odm), ODM_BIT(CCK_RPT_FORMAT, p_dm_odm)); p_dm_odm->is_cck_high_power = (bool) odm_get_bb_reg(p_dm_odm, ODM_REG(CCK_RPT_FORMAT, p_dm_odm), ODM_BIT(CCK_RPT_FORMAT, p_dm_odm));
#if (RTL8192E_SUPPORT == 1) p_dm_odm->cck_new_agc = false;
if (p_dm_odm->support_ic_type & (ODM_RTL8192E)) {
/* 0x824[9] = 0x82C[9] = 0xA80[7] those registers setting should be equal or CCK RSSI report may be incorrect */
value_824 = odm_get_bb_reg(p_dm_odm, 0x824, BIT(9));
value_82c = odm_get_bb_reg(p_dm_odm, 0x82c, BIT(9));
if (value_824 != value_82c)
odm_set_bb_reg(p_dm_odm, 0x82c, BIT(9), value_824);
odm_set_bb_reg(p_dm_odm, 0xa80, BIT(7), value_824);
p_dm_odm->cck_agc_report_type = (bool)value_824;
ODM_RT_TRACE(p_dm_odm, ODM_COMP_INIT, ODM_DBG_LOUD, ("cck_agc_report_type = (( %d )), ext_lna_gain = (( %d ))\n", p_dm_odm->cck_agc_report_type, p_dm_odm->ext_lna_gain));
}
#endif
#if ((RTL8703B_SUPPORT == 1) || (RTL8723D_SUPPORT == 1))
if (p_dm_odm->support_ic_type & (ODM_RTL8703B | ODM_RTL8723D)) {
p_dm_odm->cck_agc_report_type = odm_get_bb_reg(p_dm_odm, 0x950, BIT(11)) ? 1 : 0; /*1: 4bit LNA, 0: 3bit LNA */
if (p_dm_odm->cck_agc_report_type != 1) {
dbg_print("[Warning] 8703B/8723D CCK should be 4bit LNA, ie. 0x950[11] = 1\n");
/**/
}
}
#endif
#if ((RTL8723D_SUPPORT == 1) || (RTL8822B_SUPPORT == 1) || (RTL8197F_SUPPORT == 1))
if (p_dm_odm->support_ic_type & (ODM_RTL8723D | ODM_RTL8822B | ODM_RTL8197F)) {
p_dm_odm->cck_new_agc = odm_get_bb_reg(p_dm_odm, 0xa9c, BIT(17)) ? true : false; /*1: new agc 0: old agc*/
} else
#endif
p_dm_odm->cck_new_agc = false;
} }
static void static void
@ -511,12 +365,6 @@ phydm_init_soft_ml_setting(
struct PHY_DM_STRUCT *p_dm_odm struct PHY_DM_STRUCT *p_dm_odm
) )
{ {
#if (RTL8822B_SUPPORT == 1)
if (p_dm_odm->mp_mode == false) {
if (p_dm_odm->support_ic_type & ODM_RTL8822B)
odm_set_bb_reg(p_dm_odm, 0x19a8, MASKDWORD, 0xc10a0000);
}
#endif
} }
static void static void
@ -524,18 +372,6 @@ phydm_init_hw_info_by_rfe(
struct PHY_DM_STRUCT *p_dm_odm struct PHY_DM_STRUCT *p_dm_odm
) )
{ {
#if (RTL8822B_SUPPORT == 1)
if (p_dm_odm->support_ic_type & ODM_RTL8822B)
phydm_init_hw_info_by_rfe_type_8822b(p_dm_odm);
#endif
#if (RTL8821C_SUPPORT == 1)
if (p_dm_odm->support_ic_type & ODM_RTL8821C)
phydm_init_hw_info_by_rfe_type_8821c(p_dm_odm);
#endif
#if (RTL8197F_SUPPORT == 1)
if (p_dm_odm->support_ic_type & ODM_RTL8197F)
phydm_init_hw_info_by_rfe_type_8197f(p_dm_odm);
#endif
} }
static void static void
@ -643,43 +479,21 @@ phydm_get_structure(
{ {
void *p_struct = NULL; void *p_struct = NULL;
#if RTL8195A_SUPPORT
switch (structure_type) {
case PHYDM_FALSEALMCNT:
p_struct = &false_alm_cnt;
break;
case PHYDM_CFOTRACK:
p_struct = &dm_cfo_track;
break;
case PHYDM_ADAPTIVITY:
p_struct = &(p_dm_odm->adaptivity);
break;
default:
break;
}
#else
switch (structure_type) { switch (structure_type) {
case PHYDM_FALSEALMCNT: case PHYDM_FALSEALMCNT:
p_struct = &(p_dm_odm->false_alm_cnt); p_struct = &(p_dm_odm->false_alm_cnt);
break; break;
case PHYDM_CFOTRACK: case PHYDM_CFOTRACK:
p_struct = &(p_dm_odm->dm_cfo_track); p_struct = &(p_dm_odm->dm_cfo_track);
break; break;
case PHYDM_ADAPTIVITY: case PHYDM_ADAPTIVITY:
p_struct = &(p_dm_odm->adaptivity); p_struct = &(p_dm_odm->adaptivity);
break; break;
default: default:
break; break;
} }
#endif
return p_struct; return p_struct;
} }
@ -688,25 +502,6 @@ odm_hw_setting(
struct PHY_DM_STRUCT *p_dm_odm struct PHY_DM_STRUCT *p_dm_odm
) )
{ {
#if (RTL8821A_SUPPORT == 1)
if (p_dm_odm->support_ic_type & ODM_RTL8821)
odm_hw_setting_8821a(p_dm_odm);
#endif
#if (RTL8814A_SUPPORT == 1)
if (p_dm_odm->support_ic_type & ODM_RTL8814A)
phydm_hwsetting_8814a(p_dm_odm);
#endif
#if (RTL8822B_SUPPORT == 1)
if (p_dm_odm->support_ic_type & ODM_RTL8822B)
phydm_hwsetting_8822b(p_dm_odm);
#endif
#if (RTL8197F_SUPPORT == 1)
if (p_dm_odm->support_ic_type & ODM_RTL8197F)
phydm_hwsetting_8197f(p_dm_odm);
#endif
} }
#if SUPPORTABLITY_PHYDMLIZE #if SUPPORTABLITY_PHYDMLIZE
static void static void
@ -910,11 +705,6 @@ odm_dm_init(
phydm_rf_init(p_dm_odm); phydm_rf_init(p_dm_odm);
odm_txpowertracking_init(p_dm_odm); odm_txpowertracking_init(p_dm_odm);
#if (RTL8822B_SUPPORT == 1)
if (p_dm_odm->support_ic_type & ODM_RTL8822B)
phydm_txcurrentcalibration(p_dm_odm);
#endif
odm_antenna_diversity_init(p_dm_odm); odm_antenna_diversity_init(p_dm_odm);
#if (CONFIG_DYNAMIC_RX_PATH == 1) #if (CONFIG_DYNAMIC_RX_PATH == 1)
phydm_dynamic_rx_path_init(p_dm_odm); phydm_dynamic_rx_path_init(p_dm_odm);
@ -940,25 +730,11 @@ odm_dm_init(
odm_dynamic_bb_power_saving_init(p_dm_odm); odm_dynamic_bb_power_saving_init(p_dm_odm);
#endif #endif
#if (RTL8188E_SUPPORT == 1)
if (p_dm_odm->support_ic_type == ODM_RTL8188E) { if (p_dm_odm->support_ic_type == ODM_RTL8188E) {
odm_primary_cca_init(p_dm_odm); odm_primary_cca_init(p_dm_odm);
odm_ra_info_init_all(p_dm_odm); odm_ra_info_init_all(p_dm_odm);
} }
#endif
#if (RTL8723B_SUPPORT == 1)
if (p_dm_odm->support_ic_type == ODM_RTL8723B)
odm_sw_ant_detect_init(p_dm_odm);
#endif
#if (RTL8192E_SUPPORT == 1)
if (p_dm_odm->support_ic_type == ODM_RTL8192E)
odm_primary_cca_check_init(p_dm_odm);
#endif
} }
} }
void void
@ -1102,15 +878,8 @@ odm_dm_watchdog(
if (p_dm_odm->support_ic_type & ODM_IC_11N_SERIES) { if (p_dm_odm->support_ic_type & ODM_IC_11N_SERIES) {
#if (RTL8188E_SUPPORT == 1)
if (p_dm_odm->support_ic_type == ODM_RTL8188E) if (p_dm_odm->support_ic_type == ODM_RTL8188E)
odm_dynamic_primary_cca(p_dm_odm); odm_dynamic_primary_cca(p_dm_odm);
#endif
#if (RTL8192E_SUPPORT == 1)
if (p_dm_odm->support_ic_type == ODM_RTL8192E)
odm_dynamic_primary_cca_check(p_dm_odm);
#endif
} }
odm_dtc(p_dm_odm); odm_dtc(p_dm_odm);

View file

@ -719,10 +719,6 @@ enum phy_reg_pg_type {
struct _DYNAMIC_RX_PATH_ dm_drp_table; struct _DYNAMIC_RX_PATH_ dm_drp_table;
#endif #endif
#if (RTL8814A_SUPPORT == 1 || RTL8822B_SUPPORT == 1 || RTL8821C_SUPPORT == 1)
struct _IQK_INFORMATION IQK_info;
#endif
#if (defined(CONFIG_PATH_DIVERSITY)) #if (defined(CONFIG_PATH_DIVERSITY))
struct _ODM_PATH_DIVERSITY_ dm_path_div; struct _ODM_PATH_DIVERSITY_ dm_path_div;
#endif #endif

View file

@ -72,7 +72,6 @@ phydm_nhm_counter_statistics_init(
odm_set_bb_reg(p_dm_odm, ODM_REG_NHM_TH9_TH10_11N, BIT(10) | BIT9 | BIT8, 0x1); /*0x890[10:8]=1 ignoreCCA ignore PHYTXON enable CCX*/ odm_set_bb_reg(p_dm_odm, ODM_REG_NHM_TH9_TH10_11N, BIT(10) | BIT9 | BIT8, 0x1); /*0x890[10:8]=1 ignoreCCA ignore PHYTXON enable CCX*/
odm_set_bb_reg(p_dm_odm, ODM_REG_OFDM_FA_RSTC_11N, BIT(7), 0x1); /*0xc0c[7]=1 max power among all RX ants*/ odm_set_bb_reg(p_dm_odm, ODM_REG_OFDM_FA_RSTC_11N, BIT(7), 0x1); /*0xc0c[7]=1 max power among all RX ants*/
} }
#if (RTL8195A_SUPPORT == 0)
else if (p_dm_odm->support_ic_type & ODM_IC_11AC_SERIES) { else if (p_dm_odm->support_ic_type & ODM_IC_11AC_SERIES) {
/*PHY parameters initialize for ac series*/ /*PHY parameters initialize for ac series*/
odm_write_2byte(p_dm_odm, ODM_REG_CCX_PERIOD_11AC + 2, 0xC350); /*0x990[31:16]=0xC350 Time duration for NHM unit: us, 0xc350=200ms*/ odm_write_2byte(p_dm_odm, ODM_REG_CCX_PERIOD_11AC + 2, 0xC350); /*0x990[31:16]=0xC350 Time duration for NHM unit: us, 0xc350=200ms*/
@ -84,7 +83,6 @@ phydm_nhm_counter_statistics_init(
odm_set_bb_reg(p_dm_odm, ODM_REG_NHM_9E8_11AC, BIT(0), 0x1); /*0x9e8[7]=1 max power among all RX ants*/ odm_set_bb_reg(p_dm_odm, ODM_REG_NHM_9E8_11AC, BIT(0), 0x1); /*0x9e8[7]=1 max power among all RX ants*/
} }
#endif
} }
void void
@ -111,11 +109,9 @@ phydm_get_nhm_counter_statistics(
{ {
struct PHY_DM_STRUCT *p_dm_odm = (struct PHY_DM_STRUCT *)p_dm_void; struct PHY_DM_STRUCT *p_dm_odm = (struct PHY_DM_STRUCT *)p_dm_void;
u32 value32 = 0; u32 value32 = 0;
#if (RTL8195A_SUPPORT == 0)
if (p_dm_odm->support_ic_type & ODM_IC_11AC_SERIES) if (p_dm_odm->support_ic_type & ODM_IC_11AC_SERIES)
value32 = odm_get_bb_reg(p_dm_odm, ODM_REG_NHM_CNT_11AC, MASKDWORD); value32 = odm_get_bb_reg(p_dm_odm, ODM_REG_NHM_CNT_11AC, MASKDWORD);
else if (p_dm_odm->support_ic_type & ODM_IC_11N_SERIES) else if (p_dm_odm->support_ic_type & ODM_IC_11N_SERIES)
#endif
value32 = odm_get_bb_reg(p_dm_odm, ODM_REG_NHM_CNT_11N, MASKDWORD); value32 = odm_get_bb_reg(p_dm_odm, ODM_REG_NHM_CNT_11N, MASKDWORD);
p_dm_odm->nhm_cnt_0 = (u8)(value32 & MASKBYTE0); p_dm_odm->nhm_cnt_0 = (u8)(value32 & MASKBYTE0);
@ -133,15 +129,10 @@ phydm_nhm_counter_statistics_reset(
if (p_dm_odm->support_ic_type & ODM_IC_11N_SERIES) { if (p_dm_odm->support_ic_type & ODM_IC_11N_SERIES) {
odm_set_bb_reg(p_dm_odm, ODM_REG_NHM_TH9_TH10_11N, BIT(1), 0); odm_set_bb_reg(p_dm_odm, ODM_REG_NHM_TH9_TH10_11N, BIT(1), 0);
odm_set_bb_reg(p_dm_odm, ODM_REG_NHM_TH9_TH10_11N, BIT(1), 1); odm_set_bb_reg(p_dm_odm, ODM_REG_NHM_TH9_TH10_11N, BIT(1), 1);
} } else if (p_dm_odm->support_ic_type & ODM_IC_11AC_SERIES) {
#if (RTL8195A_SUPPORT == 0)
else if (p_dm_odm->support_ic_type & ODM_IC_11AC_SERIES) {
odm_set_bb_reg(p_dm_odm, ODM_REG_NHM_TH9_TH10_11AC, BIT(1), 0); odm_set_bb_reg(p_dm_odm, ODM_REG_NHM_TH9_TH10_11AC, BIT(1), 0);
odm_set_bb_reg(p_dm_odm, ODM_REG_NHM_TH9_TH10_11AC, BIT(1), 1); odm_set_bb_reg(p_dm_odm, ODM_REG_NHM_TH9_TH10_11AC, BIT(1), 1);
} }
#endif
} }
void void
@ -155,11 +146,8 @@ phydm_set_edcca_threshold(
if (p_dm_odm->support_ic_type & ODM_IC_11N_SERIES) if (p_dm_odm->support_ic_type & ODM_IC_11N_SERIES)
odm_set_bb_reg(p_dm_odm, REG_OFDM_0_ECCA_THRESHOLD, MASKBYTE2 | MASKBYTE0, (u32)((u8)L2H | (u8)H2L << 16)); odm_set_bb_reg(p_dm_odm, REG_OFDM_0_ECCA_THRESHOLD, MASKBYTE2 | MASKBYTE0, (u32)((u8)L2H | (u8)H2L << 16));
#if (RTL8195A_SUPPORT == 0)
else if (p_dm_odm->support_ic_type & ODM_IC_11AC_SERIES) else if (p_dm_odm->support_ic_type & ODM_IC_11AC_SERIES)
odm_set_bb_reg(p_dm_odm, REG_FPGA0_XB_LSSI_READ_BACK, MASKLWORD, (u16)((u8)L2H | (u8)H2L << 8)); odm_set_bb_reg(p_dm_odm, REG_FPGA0_XB_LSSI_READ_BACK, MASKLWORD, (u16)((u8)L2H | (u8)H2L << 8));
#endif
} }
static void static void
@ -286,9 +274,7 @@ phydm_set_trx_mux(
odm_set_bb_reg(p_dm_odm, ODM_REG_CCK_RPT_FORMAT_11N_B, BIT(3) | BIT2 | BIT1, tx_mode); /*set TXmod to standby mode to remove outside noise affect*/ odm_set_bb_reg(p_dm_odm, ODM_REG_CCK_RPT_FORMAT_11N_B, BIT(3) | BIT2 | BIT1, tx_mode); /*set TXmod to standby mode to remove outside noise affect*/
odm_set_bb_reg(p_dm_odm, ODM_REG_CCK_RPT_FORMAT_11N_B, BIT(22) | BIT21 | BIT20, rx_mode); /*set RXmod to standby mode to remove outside noise affect*/ odm_set_bb_reg(p_dm_odm, ODM_REG_CCK_RPT_FORMAT_11N_B, BIT(22) | BIT21 | BIT20, rx_mode); /*set RXmod to standby mode to remove outside noise affect*/
} }
} } else if (p_dm_odm->support_ic_type & ODM_IC_11AC_SERIES) {
#if (RTL8195A_SUPPORT == 0)
else if (p_dm_odm->support_ic_type & ODM_IC_11AC_SERIES) {
odm_set_bb_reg(p_dm_odm, ODM_REG_TRMUX_11AC, BIT(11) | BIT10 | BIT9 | BIT8, tx_mode); /*set TXmod to standby mode to remove outside noise affect*/ odm_set_bb_reg(p_dm_odm, ODM_REG_TRMUX_11AC, BIT(11) | BIT10 | BIT9 | BIT8, tx_mode); /*set TXmod to standby mode to remove outside noise affect*/
odm_set_bb_reg(p_dm_odm, ODM_REG_TRMUX_11AC, BIT(7) | BIT6 | BIT5 | BIT4, rx_mode); /*set RXmod to standby mode to remove outside noise affect*/ odm_set_bb_reg(p_dm_odm, ODM_REG_TRMUX_11AC, BIT(7) | BIT6 | BIT5 | BIT4, rx_mode); /*set RXmod to standby mode to remove outside noise affect*/
if (p_dm_odm->rf_type > ODM_1T1R) { if (p_dm_odm->rf_type > ODM_1T1R) {
@ -296,8 +282,6 @@ phydm_set_trx_mux(
odm_set_bb_reg(p_dm_odm, ODM_REG_TRMUX_11AC_B, BIT(7) | BIT6 | BIT5 | BIT4, rx_mode); /*set RXmod to standby mode to remove outside noise affect*/ odm_set_bb_reg(p_dm_odm, ODM_REG_TRMUX_11AC_B, BIT(7) | BIT6 | BIT5 | BIT4, rx_mode); /*set RXmod to standby mode to remove outside noise affect*/
} }
} }
#endif
} }
void void
@ -429,22 +413,17 @@ phydm_search_pwdb_lower_bound(
if (p_dm_odm->support_ic_type & ODM_IC_11N_SERIES) { if (p_dm_odm->support_ic_type & ODM_IC_11N_SERIES) {
odm_set_bb_reg(p_dm_odm, ODM_REG_DBG_RPT_11N, MASKDWORD, 0x0); odm_set_bb_reg(p_dm_odm, ODM_REG_DBG_RPT_11N, MASKDWORD, 0x0);
reg_value32 = odm_get_bb_reg(p_dm_odm, ODM_REG_RPT_11N, MASKDWORD); reg_value32 = odm_get_bb_reg(p_dm_odm, ODM_REG_RPT_11N, MASKDWORD);
} } else if (p_dm_odm->support_ic_type & ODM_IC_11AC_SERIES) {
#if (RTL8195A_SUPPORT == 0)
else if (p_dm_odm->support_ic_type & ODM_IC_11AC_SERIES) {
odm_set_bb_reg(p_dm_odm, ODM_REG_DBG_RPT_11AC, MASKDWORD, 0x0); odm_set_bb_reg(p_dm_odm, ODM_REG_DBG_RPT_11AC, MASKDWORD, 0x0);
reg_value32 = odm_get_bb_reg(p_dm_odm, ODM_REG_RPT_11AC, MASKDWORD); reg_value32 = odm_get_bb_reg(p_dm_odm, ODM_REG_RPT_11AC, MASKDWORD);
} }
#endif
while (reg_value32 & BIT(3) && try_count < 3) { while (reg_value32 & BIT(3) && try_count < 3) {
try_count = try_count + 1; try_count = try_count + 1;
ODM_delay_ms(3); ODM_delay_ms(3);
if (p_dm_odm->support_ic_type & ODM_IC_11N_SERIES) if (p_dm_odm->support_ic_type & ODM_IC_11N_SERIES)
reg_value32 = odm_get_bb_reg(p_dm_odm, ODM_REG_RPT_11N, MASKDWORD); reg_value32 = odm_get_bb_reg(p_dm_odm, ODM_REG_RPT_11N, MASKDWORD);
#if (RTL8195A_SUPPORT == 0)
else if (p_dm_odm->support_ic_type & ODM_IC_11AC_SERIES) else if (p_dm_odm->support_ic_type & ODM_IC_11AC_SERIES)
reg_value32 = odm_get_bb_reg(p_dm_odm, ODM_REG_RPT_11AC, MASKDWORD); reg_value32 = odm_get_bb_reg(p_dm_odm, ODM_REG_RPT_11AC, MASKDWORD);
#endif
} }
try_count = 0; try_count = 0;
@ -452,13 +431,10 @@ phydm_search_pwdb_lower_bound(
if (p_dm_odm->support_ic_type & ODM_IC_11N_SERIES) { if (p_dm_odm->support_ic_type & ODM_IC_11N_SERIES) {
odm_set_bb_reg(p_dm_odm, ODM_REG_DBG_RPT_11N, MASKDWORD, 0x208); odm_set_bb_reg(p_dm_odm, ODM_REG_DBG_RPT_11N, MASKDWORD, 0x208);
value32 = odm_get_bb_reg(p_dm_odm, ODM_REG_RPT_11N, MASKDWORD); value32 = odm_get_bb_reg(p_dm_odm, ODM_REG_RPT_11N, MASKDWORD);
} } else if (p_dm_odm->support_ic_type & ODM_IC_11AC_SERIES) {
#if (RTL8195A_SUPPORT == 0)
else if (p_dm_odm->support_ic_type & ODM_IC_11AC_SERIES) {
odm_set_bb_reg(p_dm_odm, ODM_REG_DBG_RPT_11AC, MASKDWORD, 0x209); odm_set_bb_reg(p_dm_odm, ODM_REG_DBG_RPT_11AC, MASKDWORD, 0x209);
value32 = odm_get_bb_reg(p_dm_odm, ODM_REG_RPT_11AC, MASKDWORD); value32 = odm_get_bb_reg(p_dm_odm, ODM_REG_RPT_11AC, MASKDWORD);
} }
#endif
if (value32 & BIT(30) && (p_dm_odm->support_ic_type & (ODM_RTL8723B | ODM_RTL8188E))) if (value32 & BIT(30) && (p_dm_odm->support_ic_type & (ODM_RTL8723B | ODM_RTL8188E)))
tx_edcca1 = tx_edcca1 + 1; tx_edcca1 = tx_edcca1 + 1;
else if (value32 & BIT(29)) else if (value32 & BIT(29))
@ -629,10 +605,8 @@ phydm_adaptivity_init(
/*Search pwdB lower bound*/ /*Search pwdB lower bound*/
if (p_dm_odm->support_ic_type & ODM_IC_11N_SERIES) if (p_dm_odm->support_ic_type & ODM_IC_11N_SERIES)
odm_set_bb_reg(p_dm_odm, ODM_REG_DBG_RPT_11N, MASKDWORD, 0x208); odm_set_bb_reg(p_dm_odm, ODM_REG_DBG_RPT_11N, MASKDWORD, 0x208);
#if (RTL8195A_SUPPORT == 0)
else if (p_dm_odm->support_ic_type & ODM_IC_11AC_SERIES) else if (p_dm_odm->support_ic_type & ODM_IC_11AC_SERIES)
odm_set_bb_reg(p_dm_odm, ODM_REG_DBG_RPT_11AC, MASKDWORD, 0x209); odm_set_bb_reg(p_dm_odm, ODM_REG_DBG_RPT_11AC, MASKDWORD, 0x209);
#endif
if (p_dm_odm->support_ic_type & ODM_IC_11N_GAIN_IDX_EDCCA) { if (p_dm_odm->support_ic_type & ODM_IC_11N_GAIN_IDX_EDCCA) {
/*odm_set_bb_reg(p_dm_odm, ODM_REG_EDCCA_DOWN_OPT_11N, BIT(12) | BIT11 | BIT10, 0x7);*/ /*interfernce need > 2^x us, and then EDCCA will be 1*/ /*odm_set_bb_reg(p_dm_odm, ODM_REG_EDCCA_DOWN_OPT_11N, BIT(12) | BIT11 | BIT10, 0x7);*/ /*interfernce need > 2^x us, and then EDCCA will be 1*/
@ -643,7 +617,6 @@ phydm_adaptivity_init(
} else } else
odm_set_bb_reg(p_dm_odm, ODM_REG_EDCCA_DCNF_11N, BIT(21) | BIT20, 0x1); /*0:rx_dfir, 1: dcnf_out, 2 :rx_iq, 3: rx_nbi_nf_out*/ odm_set_bb_reg(p_dm_odm, ODM_REG_EDCCA_DCNF_11N, BIT(21) | BIT20, 0x1); /*0:rx_dfir, 1: dcnf_out, 2 :rx_iq, 3: rx_nbi_nf_out*/
} }
#if (RTL8195A_SUPPORT == 0)
if (p_dm_odm->support_ic_type & ODM_IC_11AC_GAIN_IDX_EDCCA) { /*8814a no need to find pwdB lower bound, maybe*/ if (p_dm_odm->support_ic_type & ODM_IC_11AC_GAIN_IDX_EDCCA) { /*8814a no need to find pwdB lower bound, maybe*/
/*odm_set_bb_reg(p_dm_odm, ODM_REG_EDCCA_DOWN_OPT, BIT(30) | BIT29 | BIT28, 0x7);*/ /*interfernce need > 2^x us, and then EDCCA will be 1*/ /*odm_set_bb_reg(p_dm_odm, ODM_REG_EDCCA_DOWN_OPT, BIT(30) | BIT29 | BIT28, 0x7);*/ /*interfernce need > 2^x us, and then EDCCA will be 1*/
odm_set_bb_reg(p_dm_odm, ODM_REG_ACBB_EDCCA_ENHANCE, BIT(29) | BIT28, 0x1); /*0:rx_dfir, 1: dcnf_out, 2 :rx_iq, 3: rx_nbi_nf_out*/ odm_set_bb_reg(p_dm_odm, ODM_REG_ACBB_EDCCA_ENHANCE, BIT(29) | BIT28, 0x1); /*0:rx_dfir, 1: dcnf_out, 2 :rx_iq, 3: rx_nbi_nf_out*/
@ -654,7 +627,6 @@ phydm_adaptivity_init(
if (phydm_re_search_condition(p_dm_odm)) if (phydm_re_search_condition(p_dm_odm))
phydm_search_pwdb_lower_bound(p_dm_odm); phydm_search_pwdb_lower_bound(p_dm_odm);
} }
#endif
/*we need to consider PwdB upper bound for 8814 later IC*/ /*we need to consider PwdB upper bound for 8814 later IC*/
adaptivity->adajust_igi_level = (u8)((p_dm_odm->th_l2h_ini + igi_target) - pwdb_upper_bound + dfir_loss); /*IGI = L2H - PwdB - dfir_loss*/ adaptivity->adajust_igi_level = (u8)((p_dm_odm->th_l2h_ini + igi_target) - pwdb_upper_bound + dfir_loss); /*IGI = L2H - PwdB - dfir_loss*/
@ -692,21 +664,17 @@ phydm_adaptivity(
ODM_RT_TRACE(p_dm_odm, PHYDM_COMP_ADAPTIVITY, ODM_DBG_LOUD, ("odm_Adaptivity() =====>\n")); ODM_RT_TRACE(p_dm_odm, PHYDM_COMP_ADAPTIVITY, ODM_DBG_LOUD, ("odm_Adaptivity() =====>\n"));
ODM_RT_TRACE(p_dm_odm, PHYDM_COMP_ADAPTIVITY, ODM_DBG_LOUD, ("igi_base=0x%x, th_l2h_ini = %d, th_edcca_hl_diff = %d\n", ODM_RT_TRACE(p_dm_odm, PHYDM_COMP_ADAPTIVITY, ODM_DBG_LOUD, ("igi_base=0x%x, th_l2h_ini = %d, th_edcca_hl_diff = %d\n",
adaptivity->igi_base, p_dm_odm->th_l2h_ini, p_dm_odm->th_edcca_hl_diff)); adaptivity->igi_base, p_dm_odm->th_l2h_ini, p_dm_odm->th_edcca_hl_diff));
#if (RTL8195A_SUPPORT == 0)
if (p_dm_odm->support_ic_type & ODM_IC_11AC_SERIES) { if (p_dm_odm->support_ic_type & ODM_IC_11AC_SERIES) {
/*fix AC series when enable EDCCA hang issue*/ /*fix AC series when enable EDCCA hang issue*/
odm_set_bb_reg(p_dm_odm, 0x800, BIT(10), 1); /*ADC_mask disable*/ odm_set_bb_reg(p_dm_odm, 0x800, BIT(10), 1); /*ADC_mask disable*/
odm_set_bb_reg(p_dm_odm, 0x800, BIT(10), 0); /*ADC_mask enable*/ odm_set_bb_reg(p_dm_odm, 0x800, BIT(10), 0); /*ADC_mask enable*/
} }
#endif
if (*p_dm_odm->p_band_width == ODM_BW20M) /*CHANNEL_WIDTH_20*/ if (*p_dm_odm->p_band_width == ODM_BW20M) /*CHANNEL_WIDTH_20*/
igi_target = adaptivity->igi_base; igi_target = adaptivity->igi_base;
else if (*p_dm_odm->p_band_width == ODM_BW40M) else if (*p_dm_odm->p_band_width == ODM_BW40M)
igi_target = adaptivity->igi_base + 2; igi_target = adaptivity->igi_base + 2;
#if (RTL8195A_SUPPORT == 0)
else if (*p_dm_odm->p_band_width == ODM_BW80M) else if (*p_dm_odm->p_band_width == ODM_BW80M)
igi_target = adaptivity->igi_base + 2; igi_target = adaptivity->igi_base + 2;
#endif
else else
igi_target = adaptivity->igi_base; igi_target = adaptivity->igi_base;
adaptivity->igi_target = (u8) igi_target; adaptivity->igi_target = (u8) igi_target;
@ -728,9 +696,7 @@ phydm_adaptivity(
th_l2h_dmc = p_dm_odm->th_l2h_ini - diff + igi_target; th_l2h_dmc = p_dm_odm->th_l2h_ini - diff + igi_target;
th_h2l_dmc = th_l2h_dmc - p_dm_odm->th_edcca_hl_diff; th_h2l_dmc = th_l2h_dmc - p_dm_odm->th_edcca_hl_diff;
} } else {
#if (RTL8195A_SUPPORT == 0)
else {
diff = igi_target - (s8)IGI; diff = igi_target - (s8)IGI;
th_l2h_dmc = p_dm_odm->th_l2h_ini + diff; th_l2h_dmc = p_dm_odm->th_l2h_ini + diff;
if (th_l2h_dmc > 10 && (p_dm_odm->adaptivity_enable == true)) if (th_l2h_dmc > 10 && (p_dm_odm->adaptivity_enable == true))
@ -744,7 +710,6 @@ phydm_adaptivity(
if (th_l2h_dmc < adaptivity->l2h_lb) if (th_l2h_dmc < adaptivity->l2h_lb)
th_l2h_dmc = adaptivity->l2h_lb; th_l2h_dmc = adaptivity->l2h_lb;
} }
#endif
ODM_RT_TRACE(p_dm_odm, PHYDM_COMP_ADAPTIVITY, ODM_DBG_LOUD, ("IGI=0x%x, th_l2h_dmc = %d, th_h2l_dmc = %d\n", IGI, th_l2h_dmc, th_h2l_dmc)); ODM_RT_TRACE(p_dm_odm, PHYDM_COMP_ADAPTIVITY, ODM_DBG_LOUD, ("IGI=0x%x, th_l2h_dmc = %d, th_h2l_dmc = %d\n", IGI, th_l2h_dmc, th_h2l_dmc));
ODM_RT_TRACE(p_dm_odm, PHYDM_COMP_ADAPTIVITY, ODM_DBG_LOUD, ("adaptivity_igi_upper=0x%x, h2l_lb = 0x%x, l2h_lb = 0x%x\n", p_dm_odm->adaptivity_igi_upper, adaptivity->h2l_lb, adaptivity->l2h_lb)); ODM_RT_TRACE(p_dm_odm, PHYDM_COMP_ADAPTIVITY, ODM_DBG_LOUD, ("adaptivity_igi_upper=0x%x, h2l_lb = 0x%x, l2h_lb = 0x%x\n", p_dm_odm->adaptivity_igi_upper, adaptivity->h2l_lb, adaptivity->l2h_lb));
@ -777,9 +742,7 @@ phydm_pause_edcca(
adaptivity->backup_l2h = p_dm_odm->th_l2h_ini - diff + adaptivity->igi_target; adaptivity->backup_l2h = p_dm_odm->th_l2h_ini - diff + adaptivity->igi_target;
adaptivity->backup_h2l = adaptivity->backup_l2h - p_dm_odm->th_edcca_hl_diff; adaptivity->backup_h2l = adaptivity->backup_l2h - p_dm_odm->th_edcca_hl_diff;
} } else {
#if (RTL8195A_SUPPORT == 0)
else {
diff = adaptivity->igi_target - (s8)IGI; diff = adaptivity->igi_target - (s8)IGI;
adaptivity->backup_l2h = p_dm_odm->th_l2h_ini + diff; adaptivity->backup_l2h = p_dm_odm->th_l2h_ini + diff;
if (adaptivity->backup_l2h > 10) if (adaptivity->backup_l2h > 10)
@ -793,7 +756,6 @@ phydm_pause_edcca(
if (adaptivity->backup_l2h < adaptivity->l2h_lb) if (adaptivity->backup_l2h < adaptivity->l2h_lb)
adaptivity->backup_l2h = adaptivity->l2h_lb; adaptivity->backup_l2h = adaptivity->l2h_lb;
} }
#endif
ODM_RT_TRACE(p_dm_odm, PHYDM_COMP_ADAPTIVITY, ODM_DBG_LOUD, ("pauseEDCCA : L2Hbak = 0x%x, H2Lbak = 0x%x, IGI = 0x%x\n", adaptivity->backup_l2h, adaptivity->backup_h2l, IGI)); ODM_RT_TRACE(p_dm_odm, PHYDM_COMP_ADAPTIVITY, ODM_DBG_LOUD, ("pauseEDCCA : L2Hbak = 0x%x, H2Lbak = 0x%x, IGI = 0x%x\n", adaptivity->backup_l2h, adaptivity->backup_h2l, IGI));
/*Disable EDCCA*/ /*Disable EDCCA*/
@ -817,11 +779,8 @@ phydm_pause_edcca_work_item_callback(
if (p_dm_odm->support_ic_type & ODM_IC_11N_SERIES) if (p_dm_odm->support_ic_type & ODM_IC_11N_SERIES)
odm_set_bb_reg(p_dm_odm, REG_OFDM_0_ECCA_THRESHOLD, MASKBYTE2 | MASKBYTE0, (u32)(0x7f | 0x7f << 16)); odm_set_bb_reg(p_dm_odm, REG_OFDM_0_ECCA_THRESHOLD, MASKBYTE2 | MASKBYTE0, (u32)(0x7f | 0x7f << 16));
#if (RTL8195A_SUPPORT == 0)
else if (p_dm_odm->support_ic_type & ODM_IC_11AC_SERIES) else if (p_dm_odm->support_ic_type & ODM_IC_11AC_SERIES)
odm_set_bb_reg(p_dm_odm, REG_FPGA0_XB_LSSI_READ_BACK, MASKLWORD, (u16)(0x7f | 0x7f << 8)); odm_set_bb_reg(p_dm_odm, REG_FPGA0_XB_LSSI_READ_BACK, MASKLWORD, (u16)(0x7f | 0x7f << 8));
#endif
} }
void void
@ -834,11 +793,8 @@ phydm_resume_edcca_work_item_callback(
if (p_dm_odm->support_ic_type & ODM_IC_11N_SERIES) if (p_dm_odm->support_ic_type & ODM_IC_11N_SERIES)
odm_set_bb_reg(p_dm_odm, REG_OFDM_0_ECCA_THRESHOLD, MASKBYTE2 | MASKBYTE0, (u32)((u8)adaptivity->backup_l2h | (u8)adaptivity->backup_h2l << 16)); odm_set_bb_reg(p_dm_odm, REG_OFDM_0_ECCA_THRESHOLD, MASKBYTE2 | MASKBYTE0, (u32)((u8)adaptivity->backup_l2h | (u8)adaptivity->backup_h2l << 16));
#if (RTL8195A_SUPPORT == 0)
else if (p_dm_odm->support_ic_type & ODM_IC_11AC_SERIES) else if (p_dm_odm->support_ic_type & ODM_IC_11AC_SERIES)
odm_set_bb_reg(p_dm_odm, REG_FPGA0_XB_LSSI_READ_BACK, MASKLWORD, (u16)((u8)adaptivity->backup_l2h | (u8)adaptivity->backup_h2l << 8)); odm_set_bb_reg(p_dm_odm, REG_FPGA0_XB_LSSI_READ_BACK, MASKLWORD, (u16)((u8)adaptivity->backup_l2h | (u8)adaptivity->backup_h2l << 8));
#endif
} }
@ -860,9 +816,7 @@ phydm_set_edcca_threshold_api(
th_l2h_dmc = p_dm_odm->th_l2h_ini - diff + igi_target; th_l2h_dmc = p_dm_odm->th_l2h_ini - diff + igi_target;
th_h2l_dmc = th_l2h_dmc - p_dm_odm->th_edcca_hl_diff; th_h2l_dmc = th_l2h_dmc - p_dm_odm->th_edcca_hl_diff;
} } else {
#if (RTL8195A_SUPPORT == 0)
else {
diff = igi_target - (s8)IGI; diff = igi_target - (s8)IGI;
th_l2h_dmc = p_dm_odm->th_l2h_ini + diff; th_l2h_dmc = p_dm_odm->th_l2h_ini + diff;
if (th_l2h_dmc > 10) if (th_l2h_dmc > 10)
@ -876,7 +830,6 @@ phydm_set_edcca_threshold_api(
if (th_l2h_dmc < adaptivity->l2h_lb) if (th_l2h_dmc < adaptivity->l2h_lb)
th_l2h_dmc = adaptivity->l2h_lb; th_l2h_dmc = adaptivity->l2h_lb;
} }
#endif
ODM_RT_TRACE(p_dm_odm, PHYDM_COMP_ADAPTIVITY, ODM_DBG_LOUD, ("API :IGI=0x%x, th_l2h_dmc = %d, th_h2l_dmc = %d\n", IGI, th_l2h_dmc, th_h2l_dmc)); ODM_RT_TRACE(p_dm_odm, PHYDM_COMP_ADAPTIVITY, ODM_DBG_LOUD, ("API :IGI=0x%x, th_l2h_dmc = %d, th_h2l_dmc = %d\n", IGI, th_l2h_dmc, th_h2l_dmc));
ODM_RT_TRACE(p_dm_odm, PHYDM_COMP_ADAPTIVITY, ODM_DBG_LOUD, ("API :adaptivity_igi_upper=0x%x, h2l_lb = 0x%x, l2h_lb = 0x%x\n", p_dm_odm->adaptivity_igi_upper, adaptivity->h2l_lb, adaptivity->l2h_lb)); ODM_RT_TRACE(p_dm_odm, PHYDM_COMP_ADAPTIVITY, ODM_DBG_LOUD, ("API :adaptivity_igi_upper=0x%x, h2l_lb = 0x%x, l2h_lb = 0x%x\n", p_dm_odm->adaptivity_igi_upper, adaptivity->h2l_lb, adaptivity->l2h_lb));

View file

@ -1813,31 +1813,7 @@ phydm_update_beam_pattern(
} }
if (p_dm_odm->support_ic_type == ODM_RTL8821) { if (p_dm_odm->support_ic_type == ODM_RTL8821) {
#if (RTL8821A_SUPPORT == 1)
reg44_tmp_p = reg44_ori & (~(BIT(11) | BIT10)); /*clean bit 10 & 11*/
reg44_tmp_p |= ((1 << 11) | (beam_ctrl_signal << 10));
reg44_tmp_n = reg44_ori & (~(BIT(11) | BIT(10)));
/*ODM_RT_TRACE(p_dm_odm, ODM_COMP_ANT_DIV, ODM_DBG_LOUD, ("reg44_tmp_p =(( 0x%x )), reg44_tmp_n = (( 0x%x ))\n", reg44_tmp_p, reg44_tmp_n));*/
odm_set_mac_reg(p_dm_odm, 0x44, MASKDWORD, reg44_tmp_p);
odm_set_mac_reg(p_dm_odm, 0x44, MASKDWORD, reg44_tmp_n);
#endif
} }
#if (RTL8822B_SUPPORT == 1)
else if (p_dm_odm->support_ic_type == ODM_RTL8822B) {
reg44_tmp_p = reg44_ori & (~(BIT(9) | BIT8)); /*clean bit 9 & 8*/
reg44_tmp_p |= ((1 << 9) | (beam_ctrl_signal << 8));
reg44_tmp_n = reg44_ori & (~(BIT(9) | BIT(8)));
/* ODM_RT_TRACE(p_dm_odm, ODM_COMP_ANT_DIV, ODM_DBG_LOUD, ("reg44_tmp_p =(( 0x%x )), reg44_tmp_n = (( 0x%x ))\n", reg44_tmp_p, reg44_tmp_n)); */
odm_set_mac_reg(p_dm_odm, 0x44, MASKDWORD, reg44_tmp_p);
ODM_delay_us(10);
odm_set_mac_reg(p_dm_odm, 0x44, MASKDWORD, reg44_tmp_n);
ODM_delay_us(10);
}
#endif
} }
} }
@ -2563,24 +2539,6 @@ odm_ant_div_init(
} }
#endif #endif
/*[--8822B---]*/
#if (RTL8822B_SUPPORT == 1)
else if (p_dm_odm->support_ic_type == ODM_RTL8822B) {
#ifdef CONFIG_HL_SMART_ANTENNA_TYPE1
p_dm_odm->ant_div_type = HL_SW_SMART_ANT_TYPE1;
if (p_dm_odm->ant_div_type == HL_SW_SMART_ANT_TYPE1)
phydm_hl_smart_ant_type1_init_8822b(p_dm_odm);
#endif
}
#endif
/*
ODM_RT_TRACE(p_dm_odm, ODM_COMP_ANT_DIV, ODM_DBG_LOUD, ("*** support_ic_type=[%lu]\n",p_dm_odm->support_ic_type));
ODM_RT_TRACE(p_dm_odm, ODM_COMP_ANT_DIV, ODM_DBG_LOUD, ("*** AntDiv support_ability=[%lu]\n",(p_dm_odm->support_ability & ODM_BB_ANT_DIV)>>6));
ODM_RT_TRACE(p_dm_odm, ODM_COMP_ANT_DIV, ODM_DBG_LOUD, ("*** AntDiv type=[%d]\n",p_dm_odm->ant_div_type));
*/
} }
void void

View file

@ -145,18 +145,6 @@ odm_cfo_tracking_init(
p_cfo_track->is_adjust = true; p_cfo_track->is_adjust = true;
ODM_RT_TRACE(p_dm_odm, ODM_COMP_CFO_TRACKING, ODM_DBG_LOUD, ("ODM_CfoTracking_init()=========>\n")); ODM_RT_TRACE(p_dm_odm, ODM_COMP_CFO_TRACKING, ODM_DBG_LOUD, ("ODM_CfoTracking_init()=========>\n"));
ODM_RT_TRACE(p_dm_odm, ODM_COMP_CFO_TRACKING, ODM_DBG_LOUD, ("ODM_CfoTracking_init(): is_atc_status = %d, crystal_cap = 0x%x\n", p_cfo_track->is_atc_status, p_cfo_track->def_x_cap)); ODM_RT_TRACE(p_dm_odm, ODM_COMP_CFO_TRACKING, ODM_DBG_LOUD, ("ODM_CfoTracking_init(): is_atc_status = %d, crystal_cap = 0x%x\n", p_cfo_track->is_atc_status, p_cfo_track->def_x_cap));
#if RTL8822B_SUPPORT
/* Crystal cap. control by WiFi */
if (p_dm_odm->support_ic_type & ODM_RTL8822B)
odm_set_bb_reg(p_dm_odm, 0x10, 0x40, 0x1);
#endif
#if RTL8821C_SUPPORT
/* Crystal cap. control by WiFi */
if (p_dm_odm->support_ic_type & ODM_RTL8821C)
odm_set_bb_reg(p_dm_odm, 0x10, 0x40, 0x1);
#endif
} }
void void

View file

@ -938,14 +938,6 @@ phydm_basic_dbg_message
ODM_RT_TRACE(p_dm_odm, ODM_COMP_COMMON, ODM_DBG_LOUD, ("CFO_avg = ((%d kHz)) , CrystalCap_tracking = ((%s%d))\n", ODM_RT_TRACE(p_dm_odm, ODM_COMP_COMMON, ODM_DBG_LOUD, ("CFO_avg = ((%d kHz)) , CrystalCap_tracking = ((%s%d))\n",
p_cfo_track->CFO_ave_pre, ((p_cfo_track->crystal_cap > p_cfo_track->def_x_cap) ? "+" : "-"), tmp_val_u1)); p_cfo_track->CFO_ave_pre, ((p_cfo_track->crystal_cap > p_cfo_track->def_x_cap) ? "+" : "-"), tmp_val_u1));
/* Condition number */
#if (RTL8822B_SUPPORT == 1)
if (p_dm_odm->support_ic_type == ODM_RTL8822B) {
tmp_val = phydm_get_condition_number_8822B(p_dm_odm);
ODM_RT_TRACE(p_dm_odm, ODM_COMP_COMMON, ODM_DBG_LOUD, ("Condition number = ((%d))\n", tmp_val));
}
#endif
#if (ODM_PHY_STATUS_NEW_TYPE_SUPPORT == 1) #if (ODM_PHY_STATUS_NEW_TYPE_SUPPORT == 1)
/*STBC or LDPC pkt*/ /*STBC or LDPC pkt*/
ODM_RT_TRACE(p_dm_odm, ODM_COMP_COMMON, ODM_DBG_LOUD, ("LDPC = %s, STBC = %s\n", (p_dm_odm->phy_dbg_info.is_ldpc_pkt) ? "Y" : "N", (p_dm_odm->phy_dbg_info.is_stbc_pkt) ? "Y" : "N")); ODM_RT_TRACE(p_dm_odm, ODM_COMP_COMMON, ODM_DBG_LOUD, ("LDPC = %s, STBC = %s\n", (p_dm_odm->phy_dbg_info.is_ldpc_pkt) ? "Y" : "N", (p_dm_odm->phy_dbg_info.is_stbc_pkt) ? "Y" : "N"));
@ -991,117 +983,11 @@ void phydm_basic_profile(
PHYDM_SNPRINTF((output + used, out_len - used, "%-35s\n", "% Basic Profile %")); PHYDM_SNPRINTF((output + used, out_len - used, "%-35s\n", "% Basic Profile %"));
if (p_dm_odm->support_ic_type == ODM_RTL8188E) { if (p_dm_odm->support_ic_type == ODM_RTL8188E) {
#if (RTL8188E_SUPPORT == 1)
ic_type = "RTL8188E"; ic_type = "RTL8188E";
date = RELEASE_DATE_8188E; date = RELEASE_DATE_8188E;
commit_by = COMMIT_BY_8188E; commit_by = COMMIT_BY_8188E;
release_ver = RELEASE_VERSION_8188E; release_ver = RELEASE_VERSION_8188E;
#endif
} }
#if (RTL8812A_SUPPORT == 1)
else if (p_dm_odm->support_ic_type == ODM_RTL8812) {
ic_type = "RTL8812A";
date = RELEASE_DATE_8812A;
commit_by = COMMIT_BY_8812A;
release_ver = RELEASE_VERSION_8812A;
}
#endif
#if (RTL8821A_SUPPORT == 1)
else if (p_dm_odm->support_ic_type == ODM_RTL8821) {
ic_type = "RTL8821A";
date = RELEASE_DATE_8821A;
commit_by = COMMIT_BY_8821A;
release_ver = RELEASE_VERSION_8821A;
}
#endif
#if (RTL8192E_SUPPORT == 1)
else if (p_dm_odm->support_ic_type == ODM_RTL8192E) {
ic_type = "RTL8192E";
date = RELEASE_DATE_8192E;
commit_by = COMMIT_BY_8192E;
release_ver = RELEASE_VERSION_8192E;
}
#endif
#if (RTL8723B_SUPPORT == 1)
else if (p_dm_odm->support_ic_type == ODM_RTL8723B) {
ic_type = "RTL8723B";
date = RELEASE_DATE_8723B;
commit_by = COMMIT_BY_8723B;
release_ver = RELEASE_VERSION_8723B;
}
#endif
#if (RTL8814A_SUPPORT == 1)
else if (p_dm_odm->support_ic_type == ODM_RTL8814A) {
ic_type = "RTL8814A";
date = RELEASE_DATE_8814A;
commit_by = COMMIT_BY_8814A;
release_ver = RELEASE_VERSION_8814A;
}
#endif
#if (RTL8881A_SUPPORT == 1)
else if (p_dm_odm->support_ic_type == ODM_RTL8881A) {
ic_type = "RTL8881A";
/**/
}
#endif
#if (RTL8822B_SUPPORT == 1)
else if (p_dm_odm->support_ic_type == ODM_RTL8822B) {
ic_type = "RTL8822B";
date = RELEASE_DATE_8822B;
commit_by = COMMIT_BY_8822B;
release_ver = RELEASE_VERSION_8822B;
}
#endif
#if (RTL8197F_SUPPORT == 1)
else if (p_dm_odm->support_ic_type == ODM_RTL8197F) {
ic_type = "RTL8197F";
date = RELEASE_DATE_8197F;
commit_by = COMMIT_BY_8197F;
release_ver = RELEASE_VERSION_8197F;
}
#endif
#if (RTL8703B_SUPPORT == 1)
else if (p_dm_odm->support_ic_type == ODM_RTL8703B) {
ic_type = "RTL8703B";
date = RELEASE_DATE_8703B;
commit_by = COMMIT_BY_8703B;
release_ver = RELEASE_VERSION_8703B;
}
#endif
#if (RTL8195A_SUPPORT == 1)
else if (p_dm_odm->support_ic_type == ODM_RTL8195A) {
ic_type = "RTL8195A";
/**/
}
#endif
#if (RTL8188F_SUPPORT == 1)
else if (p_dm_odm->support_ic_type == ODM_RTL8188F) {
ic_type = "RTL8188F";
date = RELEASE_DATE_8188F;
commit_by = COMMIT_BY_8188F;
release_ver = RELEASE_VERSION_8188F;
}
#endif
#if (RTL8723D_SUPPORT == 1)
else if (p_dm_odm->support_ic_type == ODM_RTL8723D) {
ic_type = "RTL8723D";
date = RELEASE_DATE_8723D;
commit_by = COMMIT_BY_8723D;
release_ver = RELEASE_VERSION_8723D;
/**/
}
#endif
#if (RTL8821C_SUPPORT == 1)
else if (p_dm_odm->support_ic_type == ODM_RTL8821C) {
ic_type = "RTL8821C";
date = RELEASE_DATE_8821C;
commit_by = COMMIT_BY_8821C;
release_ver = RELEASE_VERSION_8821C;
}
#endif
PHYDM_SNPRINTF((output + used, out_len - used, " %-35s: %s (MP Chip: %s)\n", "IC type", ic_type, p_dm_odm->is_mp_chip ? "Yes" : "No")); PHYDM_SNPRINTF((output + used, out_len - used, " %-35s: %s (MP Chip: %s)\n", "IC type", ic_type, p_dm_odm->is_mp_chip ? "Yes" : "No"));
if (p_dm_odm->cut_version == ODM_CUT_A) if (p_dm_odm->cut_version == ODM_CUT_A)
@ -1196,72 +1082,6 @@ phydm_fw_trace_en_h2c(
odm_fill_h2c_cmd(p_dm_odm, PHYDM_H2C_FW_TRACE_EN, cmd_length, h2c_parameter); odm_fill_h2c_cmd(p_dm_odm, PHYDM_H2C_FW_TRACE_EN, cmd_length, h2c_parameter);
} }
#if (RTL8822B_SUPPORT == 1 || RTL8197F_SUPPORT == 1 || RTL8821C_SUPPORT == 1)
bool
phydm_api_set_txagc(
struct PHY_DM_STRUCT *p_dm_odm,
u32 power_index,
enum odm_rf_radio_path_e path,
u8 hw_rate,
bool is_single_rate
)
{
bool ret = false;
return ret;
}
u8
phydm_api_get_txagc(
struct PHY_DM_STRUCT *p_dm_odm,
enum odm_rf_radio_path_e path,
u8 hw_rate
)
{
u8 ret = 0;
return ret;
}
bool
phydm_api_switch_bw_channel(
struct PHY_DM_STRUCT *p_dm_odm,
u8 central_ch,
u8 primary_ch_idx,
enum odm_bw_e bandwidth
)
{
bool ret = false;
return ret;
}
bool
phydm_api_trx_mode(
struct PHY_DM_STRUCT *p_dm_odm,
enum odm_rf_path_e tx_path,
enum odm_rf_path_e rx_path,
bool is_tx2_path
)
{
bool ret = false;
#if (RTL8822B_SUPPORT == 1)
if (p_dm_odm->support_ic_type & ODM_RTL8822B)
ret = config_phydm_trx_mode_8822b(p_dm_odm, tx_path, rx_path, is_tx2_path);
#endif
#if (RTL8197F_SUPPORT == 1)
if (p_dm_odm->support_ic_type & ODM_RTL8197F)
ret = config_phydm_trx_mode_8197f(p_dm_odm, tx_path, rx_path, is_tx2_path);
#endif
return ret;
}
#endif
static void static void
phydm_get_per_path_txagc( phydm_get_per_path_txagc(
void *p_dm_void, void *p_dm_void,
@ -1277,42 +1097,8 @@ phydm_get_per_path_txagc(
u32 used = *_used; u32 used = *_used;
u32 out_len = *_out_len; u32 out_len = *_out_len;
#if ((RTL8822B_SUPPORT == 1) || (RTL8197F_SUPPORT == 1) || (RTL8821C_SUPPORT == 1))
if (((p_dm_odm->support_ic_type & (ODM_RTL8822B | ODM_RTL8197F)) && (path <= ODM_RF_PATH_B)) ||
((p_dm_odm->support_ic_type & (ODM_RTL8821C)) && (path <= ODM_RF_PATH_A))) {
for (rate_idx = 0; rate_idx <= 0x53; rate_idx++) {
if (rate_idx == ODM_RATE1M)
PHYDM_SNPRINTF((output + used, out_len - used, " %-35s\n", "CCK====>"));
else if (rate_idx == ODM_RATE6M)
PHYDM_SNPRINTF((output + used, out_len - used, "\n %-35s\n", "OFDM====>"));
else if (rate_idx == ODM_RATEMCS0)
PHYDM_SNPRINTF((output + used, out_len - used, "\n %-35s\n", "HT 1ss====>"));
else if (rate_idx == ODM_RATEMCS8)
PHYDM_SNPRINTF((output + used, out_len - used, "\n %-35s\n", "HT 2ss====>"));
else if (rate_idx == ODM_RATEMCS16)
PHYDM_SNPRINTF((output + used, out_len - used, "\n %-35s\n", "HT 3ss====>"));
else if (rate_idx == ODM_RATEMCS24)
PHYDM_SNPRINTF((output + used, out_len - used, "\n %-35s\n", "HT 4ss====>"));
else if (rate_idx == ODM_RATEVHTSS1MCS0)
PHYDM_SNPRINTF((output + used, out_len - used, "\n %-35s\n", "VHT 1ss====>"));
else if (rate_idx == ODM_RATEVHTSS2MCS0)
PHYDM_SNPRINTF((output + used, out_len - used, "\n %-35s\n", "VHT 2ss====>"));
else if (rate_idx == ODM_RATEVHTSS3MCS0)
PHYDM_SNPRINTF((output + used, out_len - used, "\n %-35s\n", "VHT 3ss====>"));
else if (rate_idx == ODM_RATEVHTSS4MCS0)
PHYDM_SNPRINTF((output + used, out_len - used, "\n %-35s\n", "VHT 4ss====>"));
txagc = phydm_api_get_txagc(p_dm_odm, (enum odm_rf_radio_path_e) path, rate_idx);
if (config_phydm_read_txagc_check(txagc))
PHYDM_SNPRINTF((output + used, out_len - used, " 0x%02x ", txagc));
else
PHYDM_SNPRINTF((output + used, out_len - used, " 0x%s ", "xx"));
}
}
#endif
} }
static void static void
phydm_get_txagc( phydm_get_txagc(
void *p_dm_void, void *p_dm_void,
@ -1359,41 +1145,6 @@ phydm_set_txagc(
/*dm_value[1] = path*/ /*dm_value[1] = path*/
/*dm_value[2] = hw_rate*/ /*dm_value[2] = hw_rate*/
/*dm_value[3] = power_index*/ /*dm_value[3] = power_index*/
#if (RTL8822B_SUPPORT == 1 || RTL8197F_SUPPORT == 1 || RTL8821C_SUPPORT == 1)
if (p_dm_odm->support_ic_type & (ODM_RTL8822B | ODM_RTL8197F | ODM_RTL8821C)) {
if (dm_value[1] <= 1) {
if ((u8)dm_value[2] != 0xff) {
if (phydm_api_set_txagc(p_dm_odm, dm_value[3], (enum odm_rf_radio_path_e) dm_value[1], (u8)dm_value[2], true))
PHYDM_SNPRINTF((output + used, out_len - used, " %s%d %s%x%s%x\n", "Write path-", dm_value[1], "rate index-0x", dm_value[2], " = 0x", dm_value[3]));
else
PHYDM_SNPRINTF((output + used, out_len - used, " %s%d %s%x%s\n", "Write path-", (dm_value[1] & 0x1), "rate index-0x", (dm_value[2] & 0x7f), " fail"));
} else {
u8 i;
u32 power_index;
bool status = true;
power_index = (dm_value[3] & 0x3f);
if (p_dm_odm->support_ic_type & (ODM_RTL8822B | ODM_RTL8821C)) {
power_index = (power_index << 24) | (power_index << 16) | (power_index << 8) | (power_index);
for (i = 0; i < ODM_RATEVHTSS2MCS9; i += 4)
status = (status & phydm_api_set_txagc(p_dm_odm, power_index, (enum odm_rf_radio_path_e) dm_value[1], i, false));
} else if (p_dm_odm->support_ic_type & ODM_RTL8197F) {
for (i = 0; i <= ODM_RATEMCS15; i++)
status = (status & phydm_api_set_txagc(p_dm_odm, power_index, (enum odm_rf_radio_path_e) dm_value[1], i, false));
}
if (status)
PHYDM_SNPRINTF((output + used, out_len - used, " %s%d %s%x\n", "Write all TXAGC of path-", dm_value[1], " = 0x", dm_value[3]));
else
PHYDM_SNPRINTF((output + used, out_len - used, " %s%d %s\n", "Write all TXAGC of path-", dm_value[1], " fail"));
}
} else
PHYDM_SNPRINTF((output + used, out_len - used, " %s%d %s%x%s\n", "Write path-", (dm_value[1] & 0x1), "rate index-0x", (dm_value[2] & 0x7f), " fail"));
}
#endif
} }
static void static void
@ -1613,63 +1364,8 @@ phydm_enable_big_jump(
bool state bool state
) )
{ {
#if (RTL8822B_SUPPORT == 1)
struct _dynamic_initial_gain_threshold_ *p_dm_dig_table = &p_dm_odm->dm_dig_table;
if (state == false) {
p_dm_odm->dm_dig_table.enable_adjust_big_jump = false;
odm_set_bb_reg(p_dm_odm, 0x8c8, 0xfe, ((p_dm_dig_table->big_jump_step3 << 5) | (p_dm_dig_table->big_jump_step2 << 3) | p_dm_dig_table->big_jump_step1));
} else
p_dm_odm->dm_dig_table.enable_adjust_big_jump = true;
#endif
} }
#if (RTL8822B_SUPPORT == 1)
void
phydm_show_rx_rate(
struct PHY_DM_STRUCT *p_dm_odm,
u32 *_used,
char *output,
u32 *_out_len
)
{
u32 used = *_used;
u32 out_len = *_out_len;
PHYDM_SNPRINTF((output + used, out_len - used, "=====Rx SU rate Statistics=====\n"));
PHYDM_SNPRINTF((output + used, out_len - used, "1SS MCS0 = %d, 1SS MCS1 = %d, 1SS MCS2 = %d, 1SS MCS 3 = %d\n",
p_dm_odm->phy_dbg_info.num_qry_vht_pkt[0], p_dm_odm->phy_dbg_info.num_qry_vht_pkt[1], p_dm_odm->phy_dbg_info.num_qry_vht_pkt[2], p_dm_odm->phy_dbg_info.num_qry_vht_pkt[3]));
PHYDM_SNPRINTF((output + used, out_len - used, "1SS MCS4 = %d, 1SS MCS5 = %d, 1SS MCS6 = %d, 1SS MCS 7 = %d\n",
p_dm_odm->phy_dbg_info.num_qry_vht_pkt[4], p_dm_odm->phy_dbg_info.num_qry_vht_pkt[5], p_dm_odm->phy_dbg_info.num_qry_vht_pkt[6], p_dm_odm->phy_dbg_info.num_qry_vht_pkt[7]));
PHYDM_SNPRINTF((output + used, out_len - used, "1SS MCS8 = %d, 1SS MCS9 = %d\n",
p_dm_odm->phy_dbg_info.num_qry_vht_pkt[8], p_dm_odm->phy_dbg_info.num_qry_vht_pkt[9]));
PHYDM_SNPRINTF((output + used, out_len - used, "2SS MCS0 = %d, 2SS MCS1 = %d, 2SS MCS2 = %d, 2SS MCS 3 = %d\n",
p_dm_odm->phy_dbg_info.num_qry_vht_pkt[10], p_dm_odm->phy_dbg_info.num_qry_vht_pkt[11], p_dm_odm->phy_dbg_info.num_qry_vht_pkt[12], p_dm_odm->phy_dbg_info.num_qry_vht_pkt[13]));
PHYDM_SNPRINTF((output + used, out_len - used, "2SS MCS4 = %d, 2SS MCS5 = %d, 2SS MCS6 = %d, 2SS MCS 7 = %d\n",
p_dm_odm->phy_dbg_info.num_qry_vht_pkt[14], p_dm_odm->phy_dbg_info.num_qry_vht_pkt[15], p_dm_odm->phy_dbg_info.num_qry_vht_pkt[16], p_dm_odm->phy_dbg_info.num_qry_vht_pkt[17]));
PHYDM_SNPRINTF((output + used, out_len - used, "2SS MCS8 = %d, 2SS MCS9 = %d\n",
p_dm_odm->phy_dbg_info.num_qry_vht_pkt[18], p_dm_odm->phy_dbg_info.num_qry_vht_pkt[19]));
PHYDM_SNPRINTF((output + used, out_len - used, "=====Rx MU rate Statistics=====\n"));
PHYDM_SNPRINTF((output + used, out_len - used, "1SS MCS0 = %d, 1SS MCS1 = %d, 1SS MCS2 = %d, 1SS MCS 3 = %d\n",
p_dm_odm->phy_dbg_info.num_qry_mu_vht_pkt[0], p_dm_odm->phy_dbg_info.num_qry_mu_vht_pkt[1], p_dm_odm->phy_dbg_info.num_qry_mu_vht_pkt[2], p_dm_odm->phy_dbg_info.num_qry_mu_vht_pkt[3]));
PHYDM_SNPRINTF((output + used, out_len - used, "1SS MCS4 = %d, 1SS MCS5 = %d, 1SS MCS6 = %d, 1SS MCS 7 = %d\n",
p_dm_odm->phy_dbg_info.num_qry_mu_vht_pkt[4], p_dm_odm->phy_dbg_info.num_qry_mu_vht_pkt[5], p_dm_odm->phy_dbg_info.num_qry_mu_vht_pkt[6], p_dm_odm->phy_dbg_info.num_qry_mu_vht_pkt[7]));
PHYDM_SNPRINTF((output + used, out_len - used, "1SS MCS8 = %d, 1SS MCS9 = %d\n",
p_dm_odm->phy_dbg_info.num_qry_mu_vht_pkt[8], p_dm_odm->phy_dbg_info.num_qry_mu_vht_pkt[9]));
PHYDM_SNPRINTF((output + used, out_len - used, "2SS MCS0 = %d, 2SS MCS1 = %d, 2SS MCS2 = %d, 2SS MCS 3 = %d\n",
p_dm_odm->phy_dbg_info.num_qry_mu_vht_pkt[10], p_dm_odm->phy_dbg_info.num_qry_mu_vht_pkt[11], p_dm_odm->phy_dbg_info.num_qry_mu_vht_pkt[12], p_dm_odm->phy_dbg_info.num_qry_mu_vht_pkt[13]));
PHYDM_SNPRINTF((output + used, out_len - used, "2SS MCS4 = %d, 2SS MCS5 = %d, 2SS MCS6 = %d, 2SS MCS 7 = %d\n",
p_dm_odm->phy_dbg_info.num_qry_mu_vht_pkt[14], p_dm_odm->phy_dbg_info.num_qry_mu_vht_pkt[15], p_dm_odm->phy_dbg_info.num_qry_mu_vht_pkt[16], p_dm_odm->phy_dbg_info.num_qry_mu_vht_pkt[17]));
PHYDM_SNPRINTF((output + used, out_len - used, "2SS MCS8 = %d, 2SS MCS9 = %d\n",
p_dm_odm->phy_dbg_info.num_qry_mu_vht_pkt[18], p_dm_odm->phy_dbg_info.num_qry_mu_vht_pkt[19]));
}
#endif
struct _PHYDM_COMMAND { struct _PHYDM_COMMAND {
char name[16]; char name[16];
u8 id; u8 id;
@ -1948,47 +1644,14 @@ phydm_cmd_parser(
break; break;
case PHYDM_API: case PHYDM_API:
#if (RTL8822B_SUPPORT == 1 || RTL8197F_SUPPORT == 1 || RTL8821C_SUPPORT == 1)
{
if (p_dm_odm->support_ic_type & (ODM_RTL8822B | ODM_RTL8197F | ODM_RTL8821C)) {
bool is_enable_dbg_mode;
u8 central_ch, primary_ch_idx, bandwidth;
for (i = 0; i < 4; i++) {
if (input[i + 1])
PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL, &var1[i]);
}
is_enable_dbg_mode = (bool)var1[0];
central_ch = (u8) var1[1];
primary_ch_idx = (u8) var1[2];
bandwidth = (enum odm_bw_e) var1[3];
if (is_enable_dbg_mode) {
p_dm_odm->is_disable_phy_api = false;
phydm_api_switch_bw_channel(p_dm_odm, central_ch, primary_ch_idx, (enum odm_bw_e) bandwidth);
p_dm_odm->is_disable_phy_api = true;
PHYDM_SNPRINTF((output + used, out_len - used, "central_ch = %d, primary_ch_idx = %d, bandwidth = %d\n", central_ch, primary_ch_idx, bandwidth));
} else {
p_dm_odm->is_disable_phy_api = false;
PHYDM_SNPRINTF((output + used, out_len - used, "Disable API debug mode\n"));
}
} else
PHYDM_SNPRINTF((output + used, out_len - used, "This IC doesn't support PHYDM API function\n"));
}
#else
PHYDM_SNPRINTF((output + used, out_len - used, "This IC doesn't support PHYDM API function\n")); PHYDM_SNPRINTF((output + used, out_len - used, "This IC doesn't support PHYDM API function\n"));
#endif
break; break;
case PHYDM_PROFILE: /*echo profile, >cmd*/ case PHYDM_PROFILE: /*echo profile, >cmd*/
phydm_basic_profile(p_dm_odm, &used, output, &out_len); phydm_basic_profile(p_dm_odm, &used, output, &out_len);
break; break;
case PHYDM_GET_TXAGC: case PHYDM_GET_TXAGC:
phydm_get_txagc(p_dm_odm, &used, output, &out_len); phydm_get_txagc(p_dm_odm, &used, output, &out_len);
break; break;
case PHYDM_SET_TXAGC: case PHYDM_SET_TXAGC:
{ {
bool is_enable_dbg_mode; bool is_enable_dbg_mode;
@ -2025,29 +1688,7 @@ phydm_cmd_parser(
if (input[i + 1]) if (input[i + 1])
PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL, &var1[i]); PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL, &var1[i]);
} }
#if (RTL8822B_SUPPORT == 1 || RTL8197F_SUPPORT == 1) phydm_config_trx_path(p_dm_odm, (u32 *)var1, &used, output, &out_len);
if (p_dm_odm->support_ic_type & (ODM_RTL8822B | ODM_RTL8197F)) {
u8 tx_path, rx_path;
bool is_enable_dbg_mode, is_tx2_path;
is_enable_dbg_mode = (bool)var1[0];
tx_path = (u8) var1[1];
rx_path = (u8) var1[2];
is_tx2_path = (bool) var1[3];
if (is_enable_dbg_mode) {
p_dm_odm->is_disable_phy_api = false;
phydm_api_trx_mode(p_dm_odm, (enum odm_rf_path_e) tx_path, (enum odm_rf_path_e) rx_path, is_tx2_path);
p_dm_odm->is_disable_phy_api = true;
PHYDM_SNPRINTF((output + used, out_len - used, "tx_path = 0x%x, rx_path = 0x%x, is_tx2_path = %d\n", tx_path, rx_path, is_tx2_path));
} else {
p_dm_odm->is_disable_phy_api = false;
PHYDM_SNPRINTF((output + used, out_len - used, "Disable API debug mode\n"));
}
} else
#endif
phydm_config_trx_path(p_dm_odm, (u32 *)var1, &used, output, &out_len);
break; break;
case PHYDM_LA_MODE: case PHYDM_LA_MODE:
@ -2079,116 +1720,16 @@ phydm_cmd_parser(
break; break;
case PHYDM_MU_MIMO: case PHYDM_MU_MIMO:
#if (RTL8822B_SUPPORT == 1)
if (input[1])
PHYDM_SSCANF(input[1], DCMD_DECIMAL, &var1[0]);
else
var1[0] = 0;
if (var1[0] == 1) {
int index, ptr;
u32 dword_h, dword_l;
PHYDM_SNPRINTF((output + used, out_len - used, "Get MU BFee CSI\n"));
odm_set_bb_reg(p_dm_odm, 0x9e8, BIT(17) | BIT16, 2); /*Read BFee*/
odm_set_bb_reg(p_dm_odm, 0x1910, BIT(15), 1); /*Select BFee's CSI report*/
odm_set_bb_reg(p_dm_odm, 0x19b8, BIT(6), 1); /*set as CSI report*/
odm_set_bb_reg(p_dm_odm, 0x19a8, 0xFFFF, 0xFFFF); /*disable gated_clk*/
for (index = 0; index < 80; index++) {
ptr = index + 256;
if (ptr > 311)
ptr -= 312;
odm_set_bb_reg(p_dm_odm, 0x1910, 0x03FF0000, ptr); /*Select Address*/
dword_h = odm_get_bb_reg(p_dm_odm, 0xF74, MASKDWORD);
dword_l = odm_get_bb_reg(p_dm_odm, 0xF5C, MASKDWORD);
if (index % 2 == 0)
PHYDM_SNPRINTF((output + used, out_len - used, "%02x %02x %02x %02x %02x %02x %02x %02x\n",
dword_l & MASKBYTE0, (dword_l & MASKBYTE1) >> 8, (dword_l & MASKBYTE2) >> 16, (dword_l & MASKBYTE3) >> 24,
dword_h & MASKBYTE0, (dword_h & MASKBYTE1) >> 8, (dword_h & MASKBYTE2) >> 16, (dword_h & MASKBYTE3) >> 24));
else
PHYDM_SNPRINTF((output + used, out_len - used, "%02x %02x %02x %02x %02x %02x %02x %02x\n",
dword_l & MASKBYTE0, (dword_l & MASKBYTE1) >> 8, (dword_l & MASKBYTE2) >> 16, (dword_l & MASKBYTE3) >> 24,
dword_h & MASKBYTE0, (dword_h & MASKBYTE1) >> 8, (dword_h & MASKBYTE2) >> 16, (dword_h & MASKBYTE3) >> 24));
}
} else if (var1[0] == 2) {
int index, ptr;
u32 dword_h, dword_l;
PHYDM_SSCANF(input[2], DCMD_DECIMAL, &var1[1]);
PHYDM_SNPRINTF((output + used, out_len - used, "Get MU BFer's STA%d CSI\n", var1[1]));
odm_set_bb_reg(p_dm_odm, 0x9e8, BIT(24), 0); /*Read BFer*/
odm_set_bb_reg(p_dm_odm, 0x9e8, BIT(25), 1); /*enable Read/Write RAM*/
odm_set_bb_reg(p_dm_odm, 0x9e8, BIT(30) | BIT29 | BIT28, var1[1]); /*read which STA's CSI report*/
odm_set_bb_reg(p_dm_odm, 0x1910, BIT(15), 0); /*select BFer's CSI*/
odm_set_bb_reg(p_dm_odm, 0x19e0, 0x00003FC0, 0xFF); /*disable gated_clk*/
for (index = 0; index < 80; index++) {
ptr = index + 256;
if (ptr > 311)
ptr -= 312;
odm_set_bb_reg(p_dm_odm, 0x1910, 0x03FF0000, ptr); /*Select Address*/
dword_h = odm_get_bb_reg(p_dm_odm, 0xF74, MASKDWORD);
dword_l = odm_get_bb_reg(p_dm_odm, 0xF5C, MASKDWORD);
if (index % 2 == 0)
PHYDM_SNPRINTF((output + used, out_len - used, "%02x %02x %02x %02x %02x %02x %02x %02x\n",
dword_l & MASKBYTE0, (dword_l & MASKBYTE1) >> 8, (dword_l & MASKBYTE2) >> 16, (dword_l & MASKBYTE3) >> 24,
dword_h & MASKBYTE0, (dword_h & MASKBYTE1) >> 8, (dword_h & MASKBYTE2) >> 16, (dword_h & MASKBYTE3) >> 24));
else
PHYDM_SNPRINTF((output + used, out_len - used, "%02x %02x %02x %02x %02x %02x %02x %02x\n",
dword_l & MASKBYTE0, (dword_l & MASKBYTE1) >> 8, (dword_l & MASKBYTE2) >> 16, (dword_l & MASKBYTE3) >> 24,
dword_h & MASKBYTE0, (dword_h & MASKBYTE1) >> 8, (dword_h & MASKBYTE2) >> 16, (dword_h & MASKBYTE3) >> 24));
PHYDM_SNPRINTF((output + used, out_len - used, "ptr=%d : 0x%8x %8x\n", ptr, dword_h, dword_l));
}
}
#endif
break; break;
case PHYDM_BIG_JUMP: case PHYDM_BIG_JUMP:
{
#if (RTL8822B_SUPPORT == 1)
if (input[1]) {
PHYDM_SSCANF(input[1], DCMD_DECIMAL, &var1[0]);
phydm_enable_big_jump(p_dm_odm, (bool)(var1[0]));
} else
PHYDM_SNPRINTF((output + used, out_len - used, "unknown command!\n"));
#else
PHYDM_SNPRINTF((output + used, out_len - used, "The command is only for 8822B!\n")); PHYDM_SNPRINTF((output + used, out_len - used, "The command is only for 8822B!\n"));
#endif
break; break;
}
case PHYDM_HANG: case PHYDM_HANG:
phydm_bb_rx_hang_info(p_dm_odm, &used, output, &out_len); phydm_bb_rx_hang_info(p_dm_odm, &used, output, &out_len);
break; break;
case PHYDM_SHOW_RXRATE: case PHYDM_SHOW_RXRATE:
#if (RTL8822B_SUPPORT == 1)
{
u8 rate_idx;
if (input[1])
PHYDM_SSCANF(input[1], DCMD_DECIMAL, &var1[0]);
if (var1[0] == 1)
phydm_show_rx_rate(p_dm_odm, &used, output, &out_len);
else {
PHYDM_SNPRINTF((output + used, out_len - used, "Reset Rx rate counter\n"));
for (rate_idx = 0; rate_idx < 40; rate_idx++) {
p_dm_odm->phy_dbg_info.num_qry_vht_pkt[rate_idx] = 0;
p_dm_odm->phy_dbg_info.num_qry_mu_vht_pkt[rate_idx] = 0;
}
}
}
#endif
break; break;
case PHYDM_NBI_EN: case PHYDM_NBI_EN:
for (i = 0; i < 5; i++) { for (i = 0; i < 5; i++) {
if (input[i + 1]) { if (input[i + 1]) {
PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL, &var1[i]); PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL, &var1[i]);

View file

@ -230,30 +230,6 @@ phydm_set_big_jump_step(
u8 current_igi u8 current_igi
) )
{ {
#if (RTL8822B_SUPPORT == 1 || RTL8197F_SUPPORT == 1)
struct PHY_DM_STRUCT *p_dm_odm = (struct PHY_DM_STRUCT *)p_dm_void;
struct _dynamic_initial_gain_threshold_ *p_dm_dig_table = &p_dm_odm->dm_dig_table;
u8 step1[8] = {24, 30, 40, 50, 60, 70, 80, 90};
u8 i;
if (p_dm_dig_table->enable_adjust_big_jump == 0)
return;
for (i = 0; i <= p_dm_dig_table->big_jump_step1; i++) {
if ((current_igi + step1[i]) > p_dm_dig_table->big_jump_lmt[p_dm_dig_table->agc_table_idx]) {
if (i != 0)
i = i - 1;
break;
} else if (i == p_dm_dig_table->big_jump_step1)
break;
}
if (p_dm_odm->support_ic_type & ODM_RTL8822B)
odm_set_bb_reg(p_dm_odm, 0x8c8, 0xe, i);
else if (p_dm_odm->support_ic_type & ODM_RTL8197F)
odm_set_bb_reg(p_dm_odm, ODM_REG_BB_AGC_SET_2_11N, 0xe, i);
ODM_RT_TRACE(p_dm_odm, ODM_COMP_DIG, ODM_DBG_LOUD, ("phydm_set_big_jump_step(): bigjump = %d (ori = 0x%x), LMT=0x%x\n", i, p_dm_dig_table->big_jump_step1, p_dm_dig_table->big_jump_lmt[p_dm_dig_table->agc_table_idx]));
#endif
} }
void void
@ -289,12 +265,6 @@ odm_write_dig(
if (p_dm_dig_table->cur_ig_value != current_igi) { if (p_dm_dig_table->cur_ig_value != current_igi) {
#if (RTL8822B_SUPPORT == 1 || RTL8197F_SUPPORT == 1)
/* Modify big jump step for 8822B and 8197F */
if (p_dm_odm->support_ic_type & (ODM_RTL8822B | ODM_RTL8197F))
phydm_set_big_jump_step(p_dm_odm, current_igi);
#endif
#if (ODM_PHY_STATUS_NEW_TYPE_SUPPORT == 1) #if (ODM_PHY_STATUS_NEW_TYPE_SUPPORT == 1)
/* Set IGI value of CCK for new CCK AGC */ /* Set IGI value of CCK for new CCK AGC */
if (p_dm_odm->cck_new_agc) { if (p_dm_odm->cck_new_agc) {
@ -567,28 +537,6 @@ odm_dig_init(
p_dm_dig_table->rx_gain_range_max = DM_DIG_MAX_NIC; p_dm_dig_table->rx_gain_range_max = DM_DIG_MAX_NIC;
p_dm_dig_table->rx_gain_range_min = DM_DIG_MIN_NIC; p_dm_dig_table->rx_gain_range_min = DM_DIG_MIN_NIC;
} }
#if (RTL8822B_SUPPORT == 1 || RTL8197F_SUPPORT == 1)
p_dm_dig_table->enable_adjust_big_jump = 1;
if (p_dm_odm->support_ic_type & ODM_RTL8822B) {
ret_value = odm_get_bb_reg(p_dm_odm, 0x8c8, MASKLWORD);
p_dm_dig_table->big_jump_step1 = (u8)(ret_value & 0xe) >> 1;
p_dm_dig_table->big_jump_step2 = (u8)(ret_value & 0x30) >> 4;
p_dm_dig_table->big_jump_step3 = (u8)(ret_value & 0xc0) >> 6;
} else if (p_dm_odm->support_ic_type & ODM_RTL8197F) {
ret_value = odm_get_bb_reg(p_dm_odm, ODM_REG_BB_AGC_SET_2_11N, MASKLWORD);
p_dm_dig_table->big_jump_step1 = (u8)(ret_value & 0xe) >> 1;
p_dm_dig_table->big_jump_step2 = (u8)(ret_value & 0x30) >> 4;
p_dm_dig_table->big_jump_step3 = (u8)(ret_value & 0xc0) >> 6;
}
if (p_dm_odm->support_ic_type & (ODM_RTL8822B | ODM_RTL8197F)) {
for (i = 0; i < sizeof(p_dm_dig_table->big_jump_lmt); i++) {
if (p_dm_dig_table->big_jump_lmt[i] == 0)
p_dm_dig_table->big_jump_lmt[i] = 0x64; /* Set -10dBm as default value */
}
}
#endif
} }

View file

@ -93,16 +93,6 @@ struct _dynamic_initial_gain_threshold_ {
u32 cck_fa_ma; u32 cck_fa_ma;
enum dig_goupcheck_level dig_go_up_check_level; enum dig_goupcheck_level dig_go_up_check_level;
#if (RTL8822B_SUPPORT == 1 || RTL8197F_SUPPORT == 1 || RTL8821C_SUPPORT == 1)
u8 rf_gain_idx;
u8 agc_table_idx;
u8 big_jump_lmt[16];
u8 enable_adjust_big_jump:1;
u8 big_jump_step1:3;
u8 big_jump_step2:2;
u8 big_jump_step3:2;
#endif
}; };
struct _FALSE_ALARM_STATISTICS { struct _FALSE_ALARM_STATISTICS {

View file

@ -22,11 +22,7 @@
#define __PHYDM_FEATURES #define __PHYDM_FEATURES
#define ODM_RECEIVER_BLOCKING_SUPPORT (ODM_RTL8188E | ODM_RTL8192E) #define ODM_RECEIVER_BLOCKING_SUPPORT (ODM_RTL8188E | ODM_RTL8192E)
#if ((RTL8814A_SUPPORT == 1) || (RTL8821C_SUPPORT == 1) || (RTL8822B_SUPPORT == 1) || (RTL8197F_SUPPORT == 1)) #define PHYDM_LA_MODE_SUPPORT 0
#define PHYDM_LA_MODE_SUPPORT 1
#else
#define PHYDM_LA_MODE_SUPPORT 0
#endif
/*phydm debyg report & tools*/ /*phydm debyg report & tools*/
#define CONFIG_PHYDM_DEBUG_FUNCTION 1 #define CONFIG_PHYDM_DEBUG_FUNCTION 1

View file

@ -1154,54 +1154,6 @@ odm_process_rssi_for_dm(
if (p_pktinfo->is_packet_to_self || p_pktinfo->is_packet_beacon) { if (p_pktinfo->is_packet_to_self || p_pktinfo->is_packet_beacon) {
if (!is_cck_rate) { /* ofdm rate */ if (!is_cck_rate) { /* ofdm rate */
#if (RTL8814A_SUPPORT == 1) || (RTL8822B_SUPPORT == 1)
if (p_dm_odm->support_ic_type & (ODM_RTL8814A | ODM_RTL8822B)) {
u8 RX_count = 0;
u32 RSSI_linear = 0;
if (p_dm_odm->rx_ant_status & ODM_RF_A) {
p_dm_odm->RSSI_A = p_phy_info->rx_mimo_signal_strength[ODM_RF_PATH_A];
RX_count++;
RSSI_linear += odm_convert_to_linear(p_phy_info->rx_mimo_signal_strength[ODM_RF_PATH_A]);
} else
p_dm_odm->RSSI_A = 0;
if (p_dm_odm->rx_ant_status & ODM_RF_B) {
p_dm_odm->RSSI_B = p_phy_info->rx_mimo_signal_strength[ODM_RF_PATH_B];
RX_count++;
RSSI_linear += odm_convert_to_linear(p_phy_info->rx_mimo_signal_strength[ODM_RF_PATH_B]);
} else
p_dm_odm->RSSI_B = 0;
if (p_dm_odm->rx_ant_status & ODM_RF_C) {
p_dm_odm->RSSI_C = p_phy_info->rx_mimo_signal_strength[ODM_RF_PATH_C];
RX_count++;
RSSI_linear += odm_convert_to_linear(p_phy_info->rx_mimo_signal_strength[ODM_RF_PATH_C]);
} else
p_dm_odm->RSSI_C = 0;
if (p_dm_odm->rx_ant_status & ODM_RF_D) {
p_dm_odm->RSSI_D = p_phy_info->rx_mimo_signal_strength[ODM_RF_PATH_D];
RX_count++;
RSSI_linear += odm_convert_to_linear(p_phy_info->rx_mimo_signal_strength[ODM_RF_PATH_D]);
} else
p_dm_odm->RSSI_D = 0;
/* Calculate average RSSI */
switch (RX_count) {
case 2:
RSSI_linear = (RSSI_linear >> 1);
break;
case 3:
RSSI_linear = ((RSSI_linear) + (RSSI_linear << 1) + (RSSI_linear << 3)) >> 5; /* RSSI_linear/3 ~ RSSI_linear*11/32 */
break;
case 4:
RSSI_linear = (RSSI_linear >> 2);
break;
}
rssi_ave = odm_convert_to_db(RSSI_linear);
} else
#endif
{ {
if (p_phy_info->rx_mimo_signal_strength[ODM_RF_PATH_B] == 0) { if (p_phy_info->rx_mimo_signal_strength[ODM_RF_PATH_B] == 0) {
rssi_ave = p_phy_info->rx_mimo_signal_strength[ODM_RF_PATH_A]; rssi_ave = p_phy_info->rx_mimo_signal_strength[ODM_RF_PATH_A];
@ -1486,91 +1438,6 @@ odm_config_rf_with_tx_pwr_track_header_file(
} }
/* 1 All platforms support */ /* 1 All platforms support */
#if RTL8723B_SUPPORT
if (p_dm_odm->support_ic_type == ODM_RTL8723B) {
if (p_dm_odm->support_interface == ODM_ITRF_PCIE)
READ_AND_CONFIG_MP(8723b, _txpowertrack_pcie);
else if (p_dm_odm->support_interface == ODM_ITRF_USB)
READ_AND_CONFIG_MP(8723b, _txpowertrack_usb);
else if (p_dm_odm->support_interface == ODM_ITRF_SDIO)
READ_AND_CONFIG_MP(8723b, _txpowertrack_sdio);
}
#endif
#if RTL8814A_SUPPORT
if (p_dm_odm->support_ic_type == ODM_RTL8814A) {
if (p_dm_odm->rfe_type == 0)
READ_AND_CONFIG_MP(8814a, _txpowertrack_type0);
else if (p_dm_odm->rfe_type == 2)
READ_AND_CONFIG_MP(8814a, _txpowertrack_type2);
else if (p_dm_odm->rfe_type == 5)
READ_AND_CONFIG_MP(8814a, _txpowertrack_type5);
else
READ_AND_CONFIG_MP(8814a, _txpowertrack);
READ_AND_CONFIG_MP(8814a, _txpowertssi);
}
#endif
#if RTL8703B_SUPPORT
if (p_dm_odm->support_ic_type == ODM_RTL8703B) {
if (p_dm_odm->support_interface == ODM_ITRF_USB)
READ_AND_CONFIG_MP(8703b, _txpowertrack_usb);
else if (p_dm_odm->support_interface == ODM_ITRF_SDIO)
READ_AND_CONFIG_MP(8703b, _txpowertrack_sdio);
READ_AND_CONFIG_MP(8703b, _txxtaltrack);
}
#endif
#if RTL8188F_SUPPORT
if (p_dm_odm->support_ic_type == ODM_RTL8188F) {
if (p_dm_odm->support_interface == ODM_ITRF_USB)
READ_AND_CONFIG_MP(8188f, _txpowertrack_usb);
else if (p_dm_odm->support_interface == ODM_ITRF_SDIO)
READ_AND_CONFIG_MP(8188f, _txpowertrack_sdio);
}
#endif
#if RTL8822B_SUPPORT
if (p_dm_odm->support_ic_type == ODM_RTL8822B) {
if (p_dm_odm->rfe_type == 0)
READ_AND_CONFIG_MP(8822b, _txpowertrack_type0);
else if (p_dm_odm->rfe_type == 1)
READ_AND_CONFIG_MP(8822b, _txpowertrack_type1);
else if (p_dm_odm->rfe_type == 2)
READ_AND_CONFIG_MP(8822b, _txpowertrack_type2);
else if ((p_dm_odm->rfe_type == 3) || (p_dm_odm->rfe_type == 5))
READ_AND_CONFIG_MP(8822b, _txpowertrack_type3_type5);
else if (p_dm_odm->rfe_type == 4)
READ_AND_CONFIG_MP(8822b, _txpowertrack_type4);
else if (p_dm_odm->rfe_type == 6)
READ_AND_CONFIG_MP(8822b, _txpowertrack_type6);
else if (p_dm_odm->rfe_type == 7)
READ_AND_CONFIG_MP(8822b, _txpowertrack_type7);
else if (p_dm_odm->rfe_type == 8)
READ_AND_CONFIG_MP(8822b, _txpowertrack_type8);
else if (p_dm_odm->rfe_type == 9)
READ_AND_CONFIG_MP(8822b, _txpowertrack_type9);
else
READ_AND_CONFIG_MP(8822b, _txpowertrack);
}
#endif
#if RTL8197F_SUPPORT
if (p_dm_odm->support_ic_type == ODM_RTL8197F) {
if (p_dm_odm->rfe_type == 0)
READ_AND_CONFIG_MP(8197f, _txpowertrack_type0);
else if (p_dm_odm->rfe_type == 1)
READ_AND_CONFIG_MP(8197f, _txpowertrack_type1);
else
READ_AND_CONFIG_MP(8197f, _txpowertrack);
}
#endif
#if RTL8821C_SUPPORT
if (p_dm_odm->support_ic_type == ODM_RTL8821C)
READ_AND_CONFIG(8821c, _txpowertrack);
#endif
return HAL_STATUS_SUCCESS; return HAL_STATUS_SUCCESS;
} }
@ -1822,27 +1689,8 @@ phydm_get_rx_phy_status_type0(
if (p_dm_odm->cck_new_agc == false) { if (p_dm_odm->cck_new_agc == false) {
u8 lna_idx, vga_idx; u8 lna_idx, vga_idx;
#if (RTL8197F_SUPPORT == 1)
if (p_dm_odm->support_ic_type & ODM_RTL8197F)
lna_idx = p_phy_sta_rpt->lna_l;
else
#endif
lna_idx = ((p_phy_sta_rpt->lna_h << 3) | p_phy_sta_rpt->lna_l); lna_idx = ((p_phy_sta_rpt->lna_h << 3) | p_phy_sta_rpt->lna_l);
vga_idx = p_phy_sta_rpt->vga; vga_idx = p_phy_sta_rpt->vga;
#if (RTL8723D_SUPPORT == 1)
if (p_dm_odm->support_ic_type & ODM_RTL8723D)
rx_power = odm_cckrssi_8723d(lna_idx, vga_idx);
#endif
#if (RTL8822B_SUPPORT == 1)
/* Need to do !! */
/*if (p_dm_odm->support_ic_type & ODM_RTL8822B) */
/*rx_power = odm_CCKRSSI_8822B(LNA_idx, VGA_idx);*/
#endif
#if (RTL8197F_SUPPORT == 1)
if (p_dm_odm->support_ic_type & ODM_RTL8197F)
rx_power = odm_cckrssi_8197f(p_dm_odm, lna_idx, vga_idx);
#endif
} }
/* Update CCK packet counter */ /* Update CCK packet counter */

View file

@ -336,11 +336,7 @@ enum odm_ic_type_e {
#define ODM_CONFIG_BT_COEXIST 0 #define ODM_CONFIG_BT_COEXIST 0
#endif #endif
#if ((RTL8197F_SUPPORT == 1) || (RTL8723D_SUPPORT == 1) || (RTL8822B_SUPPORT == 1) || (RTL8821C_SUPPORT == 1)) #define ODM_PHY_STATUS_NEW_TYPE_SUPPORT 0
#define ODM_PHY_STATUS_NEW_TYPE_SUPPORT 1
#else
#define ODM_PHY_STATUS_NEW_TYPE_SUPPORT 0
#endif
/* ODM_CMNINFO_CUT_VER */ /* ODM_CMNINFO_CUT_VER */
enum odm_cut_version_e { enum odm_cut_version_e {

View file

@ -789,15 +789,6 @@ phydm_init_ra_info(
) )
{ {
struct PHY_DM_STRUCT *p_dm_odm = (struct PHY_DM_STRUCT *)p_dm_void; struct PHY_DM_STRUCT *p_dm_odm = (struct PHY_DM_STRUCT *)p_dm_void;
#if (RTL8822B_SUPPORT == 1)
if (p_dm_odm->support_ic_type == ODM_RTL8822B) {
u32 ret_value;
ret_value = odm_get_bb_reg(p_dm_odm, 0x4c8, MASKBYTE2);
odm_set_bb_reg(p_dm_odm, 0x4cc, MASKBYTE3, (ret_value - 1));
}
#endif
} }
void void

View file

@ -35,32 +35,9 @@ beamforming_get_vht_ndp_tx_rate(
u8 comp_steering_num_of_bfer u8 comp_steering_num_of_bfer
); );
#if (RTL8822B_SUPPORT == 1)
u8
phydm_get_beamforming_sounding_info(
void *p_dm_void,
u16 *troughput,
u8 total_bfee_num,
u8 *tx_rate
);
u8
phydm_get_ndpa_rate(
void *p_dm_void
);
u8
phydm_get_mu_bfee_snding_decision(
void *p_dm_void,
u16 throughput
);
#else
#define phydm_get_beamforming_sounding_info(p_dm_void, troughput, total_bfee_num, tx_rate) #define phydm_get_beamforming_sounding_info(p_dm_void, troughput, total_bfee_num, tx_rate)
#define phydm_get_ndpa_rate(p_dm_void) #define phydm_get_ndpa_rate(p_dm_void)
#define phydm_get_mu_bfee_snding_decision(p_dm_void, troughput) #define phydm_get_mu_bfee_snding_decision(p_dm_void, troughput)
#endif
#endif #endif
#endif #endif

View file

@ -203,7 +203,7 @@ SetAntennaConfig92C(
* 2) "#define RTL8723_FPGA_VERIFICATION 1" in Precomp.h.WlanE.Windows * 2) "#define RTL8723_FPGA_VERIFICATION 1" in Precomp.h.WlanE.Windows
* 3) "#define RTL8190_Download_Firmware_From_Header 0" in Precomp.h.WlanE.Windows if needed. * 3) "#define RTL8190_Download_Firmware_From_Header 0" in Precomp.h.WlanE.Windows if needed.
* */ * */
#if (RTL8188E_SUPPORT == 1) && (RTL8188E_FPGA_TRUE_PHY_VERIFICATION == 1) #if (RTL8188E_FPGA_TRUE_PHY_VERIFICATION == 1)
#define SIC_ENABLE 1 #define SIC_ENABLE 1
#define SIC_HW_SUPPORT 1 #define SIC_HW_SUPPORT 1
#else #else
@ -218,7 +218,6 @@ SetAntennaConfig92C(
#if (SIC_HW_SUPPORT == 1) #if (SIC_HW_SUPPORT == 1)
#define SIC_CMD_READY 0 #define SIC_CMD_READY 0
#define SIC_CMD_PREWRITE 0x1 #define SIC_CMD_PREWRITE 0x1
#if (RTL8188E_SUPPORT == 1)
#define SIC_CMD_WRITE 0x40 #define SIC_CMD_WRITE 0x40
#define SIC_CMD_PREREAD 0x2 #define SIC_CMD_PREREAD 0x2
#define SIC_CMD_READ 0x80 #define SIC_CMD_READ 0x80
@ -229,32 +228,14 @@ SetAntennaConfig92C(
#define SIC_CMD_REG 0x1EB /* 1byte */ #define SIC_CMD_REG 0x1EB /* 1byte */
#define SIC_ADDR_REG 0x1E8 /* 1b4~1b5, 2 bytes */ #define SIC_ADDR_REG 0x1E8 /* 1b4~1b5, 2 bytes */
#define SIC_DATA_REG 0x1EC /* 1b0~1b3 */ #define SIC_DATA_REG 0x1EC /* 1b0~1b3 */
#else
#define SIC_CMD_WRITE 0x11
#define SIC_CMD_PREREAD 0x2
#define SIC_CMD_READ 0x12
#define SIC_CMD_INIT 0x1f
#define SIC_INIT_VAL 0xff
#define SIC_INIT_REG 0x1b7
#define SIC_CMD_REG 0x1b6 /* 1byte */
#define SIC_ADDR_REG 0x1b4 /* 1b4~1b5, 2 bytes */
#define SIC_DATA_REG 0x1b0 /* 1b0~1b3 */
#endif
#else #else
#define SIC_CMD_READY 0 #define SIC_CMD_READY 0
#define SIC_CMD_WRITE 1 #define SIC_CMD_WRITE 1
#define SIC_CMD_READ 2 #define SIC_CMD_READ 2
#if (RTL8188E_SUPPORT == 1)
#define SIC_CMD_REG 0x1EB /* 1byte */ #define SIC_CMD_REG 0x1EB /* 1byte */
#define SIC_ADDR_REG 0x1E8 /* 1b9~1ba, 2 bytes */ #define SIC_ADDR_REG 0x1E8 /* 1b9~1ba, 2 bytes */
#define SIC_DATA_REG 0x1EC /* 1bc~1bf */ #define SIC_DATA_REG 0x1EC /* 1bc~1bf */
#else
#define SIC_CMD_REG 0x1b8 /* 1byte */
#define SIC_ADDR_REG 0x1b9 /* 1b9~1ba, 2 bytes */
#define SIC_DATA_REG 0x1bc /* 1bc~1bf */
#endif
#endif #endif
#if (SIC_ENABLE == 1) #if (SIC_ENABLE == 1)

View file

@ -118,19 +118,8 @@ struct phy_info {
u8 SignalStrength; /* in 0-100 index. */ u8 SignalStrength; /* in 0-100 index. */
s8 RxPwr[4]; /* per-path's pwdb */ s8 RxPwr[4]; /* per-path's pwdb */
s8 RxSNR[4]; s8 RxSNR[4];
#if ((RTL8822B_SUPPORT == 1) || (RTL8723D_SUPPORT == 1) || (RTL8821C_SUPPORT == 1))
u8 RxCount:2;
u8 BandWidth:2;
u8 rxsc:4;
#else
u8 BandWidth; u8 BandWidth;
#endif
u8 btCoexPwrAdjust; u8 btCoexPwrAdjust;
#if ((RTL8822B_SUPPORT == 1) || (RTL8723D_SUPPORT == 1) || (RTL8821C_SUPPORT == 1))
u8 channel; /* channel number---*/
BOOLEAN bMuPacket; /* is MU packet or not---*/
BOOLEAN bBeamformed;
#endif
}; };
struct rx_raw_rssi { struct rx_raw_rssi {