Commit e6deaf81 authored by Larry Finger's avatar Larry Finger Committed by John W. Linville

rtlwifi: rtl8192c: rtl8192ce: rtl8192cu: rtl8192de: rtl8723ae: Add changes...

rtlwifi: rtl8192c: rtl8192ce: rtl8192cu: rtl8192de: rtl8723ae: Add changes required by adding rtl81988ee

This patch combines the remaining changes in the rtlwifi family to handle
the addition of rtl8188ee. A number of these changes eliminate some CamelCase
variable names, and other shorten common variable names so that long lines
in the new driver could be shortened.
Signed-off-by: default avatarLarry Finger <Larry.Finger@lwfinger.net>
Cc: jcheung@suse.com
Cc: machen@suse.com
Cc: mmarek@suse.cz
Cc: zhiyuan_yang@realsil.com.cn
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent f0eb856e
...@@ -473,6 +473,7 @@ int rtl_init_core(struct ieee80211_hw *hw) ...@@ -473,6 +473,7 @@ int rtl_init_core(struct ieee80211_hw *hw)
spin_lock_init(&rtlpriv->locks.rf_lock); spin_lock_init(&rtlpriv->locks.rf_lock);
spin_lock_init(&rtlpriv->locks.waitq_lock); spin_lock_init(&rtlpriv->locks.waitq_lock);
spin_lock_init(&rtlpriv->locks.entry_list_lock); spin_lock_init(&rtlpriv->locks.entry_list_lock);
spin_lock_init(&rtlpriv->locks.fw_ps_lock);
spin_lock_init(&rtlpriv->locks.cck_and_rw_pagea_lock); spin_lock_init(&rtlpriv->locks.cck_and_rw_pagea_lock);
spin_lock_init(&rtlpriv->locks.check_sendpkt_lock); spin_lock_init(&rtlpriv->locks.check_sendpkt_lock);
spin_lock_init(&rtlpriv->locks.fw_ps_lock); spin_lock_init(&rtlpriv->locks.fw_ps_lock);
......
...@@ -115,11 +115,11 @@ ...@@ -115,11 +115,11 @@
/* Define EEPROM and EFUSE check module bit*/ /* Define EEPROM and EFUSE check module bit*/
#define EEPROM_W BIT(0) #define EEPROM_W BIT(0)
#define EFUSE_PG BIT(1) #define EFUSE_PG BIT(1)
#define EFUSE_READ_ALL BIT(2) #define EFUSE_READ_ALL BIT(2)
/* Define init check for module bit*/ /* Define init check for module bit*/
#define INIT_EEPROM BIT(0) #define INIT_EEPROM BIT(0)
#define INIT_TxPower BIT(1) #define INIT_TXPOWER BIT(1)
#define INIT_IQK BIT(2) #define INIT_IQK BIT(2)
#define INIT_RF BIT(3) #define INIT_RF BIT(3)
...@@ -142,6 +142,8 @@ ...@@ -142,6 +142,8 @@
#define DM_DIG BIT(3) #define DM_DIG BIT(3)
#define DM_EDCA_TURBO BIT(4) #define DM_EDCA_TURBO BIT(4)
#define DM_PWDB BIT(1)
enum dbgp_flag_e { enum dbgp_flag_e {
FQOS = 0, FQOS = 0,
FTX = 1, FTX = 1,
......
...@@ -32,7 +32,6 @@ ...@@ -32,7 +32,6 @@
#define EFUSE_IC_ID_OFFSET 506 #define EFUSE_IC_ID_OFFSET 506
#define EFUSE_REAL_CONTENT_LEN 512
#define EFUSE_MAP_LEN 128 #define EFUSE_MAP_LEN 128
#define EFUSE_MAX_WORD_UNIT 4 #define EFUSE_MAX_WORD_UNIT 4
......
...@@ -861,7 +861,7 @@ static irqreturn_t _rtl_pci_interrupt(int irq, void *dev_id) ...@@ -861,7 +861,7 @@ static irqreturn_t _rtl_pci_interrupt(int irq, void *dev_id)
RT_TRACE(rtlpriv, COMP_INTR, DBG_TRACE, "beacon interrupt!\n"); RT_TRACE(rtlpriv, COMP_INTR, DBG_TRACE, "beacon interrupt!\n");
} }
if (inta & rtlpriv->cfg->maps[RTL_IMR_BcnInt]) { if (inta & rtlpriv->cfg->maps[RTL_IMR_BCNINT]) {
RT_TRACE(rtlpriv, COMP_INTR, DBG_TRACE, RT_TRACE(rtlpriv, COMP_INTR, DBG_TRACE,
"prepare beacon for interrupt!\n"); "prepare beacon for interrupt!\n");
tasklet_schedule(&rtlpriv->works.irq_prepare_bcn_tasklet); tasklet_schedule(&rtlpriv->works.irq_prepare_bcn_tasklet);
......
...@@ -174,8 +174,8 @@ static void rtl92c_dm_diginit(struct ieee80211_hw *hw) ...@@ -174,8 +174,8 @@ static void rtl92c_dm_diginit(struct ieee80211_hw *hw)
dm_digtable->rssi_highthresh = DM_DIG_THRESH_HIGH; dm_digtable->rssi_highthresh = DM_DIG_THRESH_HIGH;
dm_digtable->fa_lowthresh = DM_FALSEALARM_THRESH_LOW; dm_digtable->fa_lowthresh = DM_FALSEALARM_THRESH_LOW;
dm_digtable->fa_highthresh = DM_FALSEALARM_THRESH_HIGH; dm_digtable->fa_highthresh = DM_FALSEALARM_THRESH_HIGH;
dm_digtable->rx_gain_range_max = DM_DIG_MAX; dm_digtable->rx_gain_max = DM_DIG_MAX;
dm_digtable->rx_gain_range_min = DM_DIG_MIN; dm_digtable->rx_gain_min = DM_DIG_MIN;
dm_digtable->back_val = DM_DIG_BACKOFF_DEFAULT; dm_digtable->back_val = DM_DIG_BACKOFF_DEFAULT;
dm_digtable->back_range_max = DM_DIG_BACKOFF_MAX; dm_digtable->back_range_max = DM_DIG_BACKOFF_MAX;
dm_digtable->back_range_min = DM_DIG_BACKOFF_MIN; dm_digtable->back_range_min = DM_DIG_BACKOFF_MIN;
...@@ -300,11 +300,11 @@ static void rtl92c_dm_ctrl_initgain_by_rssi(struct ieee80211_hw *hw) ...@@ -300,11 +300,11 @@ static void rtl92c_dm_ctrl_initgain_by_rssi(struct ieee80211_hw *hw)
} }
if ((digtable->rssi_val_min + 10 - digtable->back_val) > if ((digtable->rssi_val_min + 10 - digtable->back_val) >
digtable->rx_gain_range_max) digtable->rx_gain_max)
digtable->cur_igvalue = digtable->rx_gain_range_max; digtable->cur_igvalue = digtable->rx_gain_max;
else if ((digtable->rssi_val_min + 10 - else if ((digtable->rssi_val_min + 10 -
digtable->back_val) < digtable->rx_gain_range_min) digtable->back_val) < digtable->rx_gain_min)
digtable->cur_igvalue = digtable->rx_gain_range_min; digtable->cur_igvalue = digtable->rx_gain_min;
else else
digtable->cur_igvalue = digtable->rssi_val_min + 10 - digtable->cur_igvalue = digtable->rssi_val_min + 10 -
digtable->back_val; digtable->back_val;
......
...@@ -1503,7 +1503,7 @@ static void _rtl92ce_read_txpower_info_from_hwpg(struct ieee80211_hw *hw, ...@@ -1503,7 +1503,7 @@ static void _rtl92ce_read_txpower_info_from_hwpg(struct ieee80211_hw *hw,
} }
for (i = 0; i < 14; i++) { for (i = 0; i < 14; i++) {
RTPRINT(rtlpriv, FINIT, INIT_TxPower, RTPRINT(rtlpriv, FINIT, INIT_TXPOWER,
"RF(%d)-Ch(%d) [CCK / HT40_1S / HT40_2S] = [0x%x / 0x%x / 0x%x]\n", "RF(%d)-Ch(%d) [CCK / HT40_1S / HT40_2S] = [0x%x / 0x%x / 0x%x]\n",
rf_path, i, rf_path, i,
rtlefuse->txpwrlevel_cck[rf_path][i], rtlefuse->txpwrlevel_cck[rf_path][i],
...@@ -1544,11 +1544,11 @@ static void _rtl92ce_read_txpower_info_from_hwpg(struct ieee80211_hw *hw, ...@@ -1544,11 +1544,11 @@ static void _rtl92ce_read_txpower_info_from_hwpg(struct ieee80211_hw *hw,
& 0xf0) >> 4); & 0xf0) >> 4);
} }
RTPRINT(rtlpriv, FINIT, INIT_TxPower, RTPRINT(rtlpriv, FINIT, INIT_TXPOWER,
"RF-%d pwrgroup_ht20[%d] = 0x%x\n", "RF-%d pwrgroup_ht20[%d] = 0x%x\n",
rf_path, i, rf_path, i,
rtlefuse->pwrgroup_ht20[rf_path][i]); rtlefuse->pwrgroup_ht20[rf_path][i]);
RTPRINT(rtlpriv, FINIT, INIT_TxPower, RTPRINT(rtlpriv, FINIT, INIT_TXPOWER,
"RF-%d pwrgroup_ht40[%d] = 0x%x\n", "RF-%d pwrgroup_ht40[%d] = 0x%x\n",
rf_path, i, rf_path, i,
rtlefuse->pwrgroup_ht40[rf_path][i]); rtlefuse->pwrgroup_ht40[rf_path][i]);
...@@ -1589,19 +1589,19 @@ static void _rtl92ce_read_txpower_info_from_hwpg(struct ieee80211_hw *hw, ...@@ -1589,19 +1589,19 @@ static void _rtl92ce_read_txpower_info_from_hwpg(struct ieee80211_hw *hw,
rtlefuse->txpwr_legacyhtdiff[RF90_PATH_A][7]; rtlefuse->txpwr_legacyhtdiff[RF90_PATH_A][7];
for (i = 0; i < 14; i++) for (i = 0; i < 14; i++)
RTPRINT(rtlpriv, FINIT, INIT_TxPower, RTPRINT(rtlpriv, FINIT, INIT_TXPOWER,
"RF-A Ht20 to HT40 Diff[%d] = 0x%x\n", "RF-A Ht20 to HT40 Diff[%d] = 0x%x\n",
i, rtlefuse->txpwr_ht20diff[RF90_PATH_A][i]); i, rtlefuse->txpwr_ht20diff[RF90_PATH_A][i]);
for (i = 0; i < 14; i++) for (i = 0; i < 14; i++)
RTPRINT(rtlpriv, FINIT, INIT_TxPower, RTPRINT(rtlpriv, FINIT, INIT_TXPOWER,
"RF-A Legacy to Ht40 Diff[%d] = 0x%x\n", "RF-A Legacy to Ht40 Diff[%d] = 0x%x\n",
i, rtlefuse->txpwr_legacyhtdiff[RF90_PATH_A][i]); i, rtlefuse->txpwr_legacyhtdiff[RF90_PATH_A][i]);
for (i = 0; i < 14; i++) for (i = 0; i < 14; i++)
RTPRINT(rtlpriv, FINIT, INIT_TxPower, RTPRINT(rtlpriv, FINIT, INIT_TXPOWER,
"RF-B Ht20 to HT40 Diff[%d] = 0x%x\n", "RF-B Ht20 to HT40 Diff[%d] = 0x%x\n",
i, rtlefuse->txpwr_ht20diff[RF90_PATH_B][i]); i, rtlefuse->txpwr_ht20diff[RF90_PATH_B][i]);
for (i = 0; i < 14; i++) for (i = 0; i < 14; i++)
RTPRINT(rtlpriv, FINIT, INIT_TxPower, RTPRINT(rtlpriv, FINIT, INIT_TXPOWER,
"RF-B Legacy to HT40 Diff[%d] = 0x%x\n", "RF-B Legacy to HT40 Diff[%d] = 0x%x\n",
i, rtlefuse->txpwr_legacyhtdiff[RF90_PATH_B][i]); i, rtlefuse->txpwr_legacyhtdiff[RF90_PATH_B][i]);
...@@ -1609,7 +1609,7 @@ static void _rtl92ce_read_txpower_info_from_hwpg(struct ieee80211_hw *hw, ...@@ -1609,7 +1609,7 @@ static void _rtl92ce_read_txpower_info_from_hwpg(struct ieee80211_hw *hw,
rtlefuse->eeprom_regulatory = (hwinfo[RF_OPTION1] & 0x7); rtlefuse->eeprom_regulatory = (hwinfo[RF_OPTION1] & 0x7);
else else
rtlefuse->eeprom_regulatory = 0; rtlefuse->eeprom_regulatory = 0;
RTPRINT(rtlpriv, FINIT, INIT_TxPower, RTPRINT(rtlpriv, FINIT, INIT_TXPOWER,
"eeprom_regulatory = 0x%x\n", rtlefuse->eeprom_regulatory); "eeprom_regulatory = 0x%x\n", rtlefuse->eeprom_regulatory);
if (!autoload_fail) { if (!autoload_fail) {
...@@ -1619,7 +1619,7 @@ static void _rtl92ce_read_txpower_info_from_hwpg(struct ieee80211_hw *hw, ...@@ -1619,7 +1619,7 @@ static void _rtl92ce_read_txpower_info_from_hwpg(struct ieee80211_hw *hw,
rtlefuse->eeprom_tssi[RF90_PATH_A] = EEPROM_DEFAULT_TSSI; rtlefuse->eeprom_tssi[RF90_PATH_A] = EEPROM_DEFAULT_TSSI;
rtlefuse->eeprom_tssi[RF90_PATH_B] = EEPROM_DEFAULT_TSSI; rtlefuse->eeprom_tssi[RF90_PATH_B] = EEPROM_DEFAULT_TSSI;
} }
RTPRINT(rtlpriv, FINIT, INIT_TxPower, "TSSI_A = 0x%x, TSSI_B = 0x%x\n", RTPRINT(rtlpriv, FINIT, INIT_TXPOWER, "TSSI_A = 0x%x, TSSI_B = 0x%x\n",
rtlefuse->eeprom_tssi[RF90_PATH_A], rtlefuse->eeprom_tssi[RF90_PATH_A],
rtlefuse->eeprom_tssi[RF90_PATH_B]); rtlefuse->eeprom_tssi[RF90_PATH_B]);
...@@ -1633,7 +1633,7 @@ static void _rtl92ce_read_txpower_info_from_hwpg(struct ieee80211_hw *hw, ...@@ -1633,7 +1633,7 @@ static void _rtl92ce_read_txpower_info_from_hwpg(struct ieee80211_hw *hw,
rtlefuse->apk_thermalmeterignore = true; rtlefuse->apk_thermalmeterignore = true;
rtlefuse->thermalmeter[0] = rtlefuse->eeprom_thermalmeter; rtlefuse->thermalmeter[0] = rtlefuse->eeprom_thermalmeter;
RTPRINT(rtlpriv, FINIT, INIT_TxPower, RTPRINT(rtlpriv, FINIT, INIT_TXPOWER,
"thermalmeter = 0x%x\n", rtlefuse->eeprom_thermalmeter); "thermalmeter = 0x%x\n", rtlefuse->eeprom_thermalmeter);
} }
......
...@@ -311,7 +311,7 @@ static struct rtl_hal_cfg rtl92ce_hal_cfg = { ...@@ -311,7 +311,7 @@ static struct rtl_hal_cfg rtl92ce_hal_cfg = {
.maps[RTL_IMR_TXFOVW] = IMR_TXFOVW, .maps[RTL_IMR_TXFOVW] = IMR_TXFOVW,
.maps[RTL_IMR_PSTIMEOUT] = IMR_PSTIMEOUT, .maps[RTL_IMR_PSTIMEOUT] = IMR_PSTIMEOUT,
.maps[RTL_IMR_BcnInt] = IMR_BCNINT, .maps[RTL_IMR_BCNINT] = IMR_BCNINT,
.maps[RTL_IMR_RXFOVW] = IMR_RXFOVW, .maps[RTL_IMR_RXFOVW] = IMR_RXFOVW,
.maps[RTL_IMR_RDU] = IMR_RDU, .maps[RTL_IMR_RDU] = IMR_RDU,
.maps[RTL_IMR_ATIMEND] = IMR_ATIMEND, .maps[RTL_IMR_ATIMEND] = IMR_ATIMEND,
......
...@@ -202,7 +202,7 @@ static void _rtl92cu_read_txpower_info_from_hwpg(struct ieee80211_hw *hw, ...@@ -202,7 +202,7 @@ static void _rtl92cu_read_txpower_info_from_hwpg(struct ieee80211_hw *hw,
} }
} }
for (i = 0; i < 14; i++) { for (i = 0; i < 14; i++) {
RTPRINT(rtlpriv, FINIT, INIT_TxPower, RTPRINT(rtlpriv, FINIT, INIT_TXPOWER,
"RF(%d)-Ch(%d) [CCK / HT40_1S / HT40_2S] = [0x%x / 0x%x / 0x%x]\n", rf_path, i, "RF(%d)-Ch(%d) [CCK / HT40_1S / HT40_2S] = [0x%x / 0x%x / 0x%x]\n", rf_path, i,
rtlefuse->txpwrlevel_cck[rf_path][i], rtlefuse->txpwrlevel_cck[rf_path][i],
rtlefuse->txpwrlevel_ht40_1s[rf_path][i], rtlefuse->txpwrlevel_ht40_1s[rf_path][i],
...@@ -238,11 +238,11 @@ static void _rtl92cu_read_txpower_info_from_hwpg(struct ieee80211_hw *hw, ...@@ -238,11 +238,11 @@ static void _rtl92cu_read_txpower_info_from_hwpg(struct ieee80211_hw *hw,
((rtlefuse->eeprom_pwrlimit_ht40[index] ((rtlefuse->eeprom_pwrlimit_ht40[index]
& 0xf0) >> 4); & 0xf0) >> 4);
} }
RTPRINT(rtlpriv, FINIT, INIT_TxPower, RTPRINT(rtlpriv, FINIT, INIT_TXPOWER,
"RF-%d pwrgroup_ht20[%d] = 0x%x\n", "RF-%d pwrgroup_ht20[%d] = 0x%x\n",
rf_path, i, rf_path, i,
rtlefuse->pwrgroup_ht20[rf_path][i]); rtlefuse->pwrgroup_ht20[rf_path][i]);
RTPRINT(rtlpriv, FINIT, INIT_TxPower, RTPRINT(rtlpriv, FINIT, INIT_TXPOWER,
"RF-%d pwrgroup_ht40[%d] = 0x%x\n", "RF-%d pwrgroup_ht40[%d] = 0x%x\n",
rf_path, i, rf_path, i,
rtlefuse->pwrgroup_ht40[rf_path][i]); rtlefuse->pwrgroup_ht40[rf_path][i]);
...@@ -273,26 +273,26 @@ static void _rtl92cu_read_txpower_info_from_hwpg(struct ieee80211_hw *hw, ...@@ -273,26 +273,26 @@ static void _rtl92cu_read_txpower_info_from_hwpg(struct ieee80211_hw *hw,
rtlefuse->legacy_ht_txpowerdiff = rtlefuse->legacy_ht_txpowerdiff =
rtlefuse->txpwr_legacyhtdiff[RF90_PATH_A][7]; rtlefuse->txpwr_legacyhtdiff[RF90_PATH_A][7];
for (i = 0; i < 14; i++) for (i = 0; i < 14; i++)
RTPRINT(rtlpriv, FINIT, INIT_TxPower, RTPRINT(rtlpriv, FINIT, INIT_TXPOWER,
"RF-A Ht20 to HT40 Diff[%d] = 0x%x\n", "RF-A Ht20 to HT40 Diff[%d] = 0x%x\n",
i, rtlefuse->txpwr_ht20diff[RF90_PATH_A][i]); i, rtlefuse->txpwr_ht20diff[RF90_PATH_A][i]);
for (i = 0; i < 14; i++) for (i = 0; i < 14; i++)
RTPRINT(rtlpriv, FINIT, INIT_TxPower, RTPRINT(rtlpriv, FINIT, INIT_TXPOWER,
"RF-A Legacy to Ht40 Diff[%d] = 0x%x\n", "RF-A Legacy to Ht40 Diff[%d] = 0x%x\n",
i, rtlefuse->txpwr_legacyhtdiff[RF90_PATH_A][i]); i, rtlefuse->txpwr_legacyhtdiff[RF90_PATH_A][i]);
for (i = 0; i < 14; i++) for (i = 0; i < 14; i++)
RTPRINT(rtlpriv, FINIT, INIT_TxPower, RTPRINT(rtlpriv, FINIT, INIT_TXPOWER,
"RF-B Ht20 to HT40 Diff[%d] = 0x%x\n", "RF-B Ht20 to HT40 Diff[%d] = 0x%x\n",
i, rtlefuse->txpwr_ht20diff[RF90_PATH_B][i]); i, rtlefuse->txpwr_ht20diff[RF90_PATH_B][i]);
for (i = 0; i < 14; i++) for (i = 0; i < 14; i++)
RTPRINT(rtlpriv, FINIT, INIT_TxPower, RTPRINT(rtlpriv, FINIT, INIT_TXPOWER,
"RF-B Legacy to HT40 Diff[%d] = 0x%x\n", "RF-B Legacy to HT40 Diff[%d] = 0x%x\n",
i, rtlefuse->txpwr_legacyhtdiff[RF90_PATH_B][i]); i, rtlefuse->txpwr_legacyhtdiff[RF90_PATH_B][i]);
if (!autoload_fail) if (!autoload_fail)
rtlefuse->eeprom_regulatory = (hwinfo[RF_OPTION1] & 0x7); rtlefuse->eeprom_regulatory = (hwinfo[RF_OPTION1] & 0x7);
else else
rtlefuse->eeprom_regulatory = 0; rtlefuse->eeprom_regulatory = 0;
RTPRINT(rtlpriv, FINIT, INIT_TxPower, RTPRINT(rtlpriv, FINIT, INIT_TXPOWER,
"eeprom_regulatory = 0x%x\n", rtlefuse->eeprom_regulatory); "eeprom_regulatory = 0x%x\n", rtlefuse->eeprom_regulatory);
if (!autoload_fail) { if (!autoload_fail) {
rtlefuse->eeprom_tssi[RF90_PATH_A] = hwinfo[EEPROM_TSSI_A]; rtlefuse->eeprom_tssi[RF90_PATH_A] = hwinfo[EEPROM_TSSI_A];
...@@ -301,7 +301,7 @@ static void _rtl92cu_read_txpower_info_from_hwpg(struct ieee80211_hw *hw, ...@@ -301,7 +301,7 @@ static void _rtl92cu_read_txpower_info_from_hwpg(struct ieee80211_hw *hw,
rtlefuse->eeprom_tssi[RF90_PATH_A] = EEPROM_DEFAULT_TSSI; rtlefuse->eeprom_tssi[RF90_PATH_A] = EEPROM_DEFAULT_TSSI;
rtlefuse->eeprom_tssi[RF90_PATH_B] = EEPROM_DEFAULT_TSSI; rtlefuse->eeprom_tssi[RF90_PATH_B] = EEPROM_DEFAULT_TSSI;
} }
RTPRINT(rtlpriv, FINIT, INIT_TxPower, RTPRINT(rtlpriv, FINIT, INIT_TXPOWER,
"TSSI_A = 0x%x, TSSI_B = 0x%x\n", "TSSI_A = 0x%x, TSSI_B = 0x%x\n",
rtlefuse->eeprom_tssi[RF90_PATH_A], rtlefuse->eeprom_tssi[RF90_PATH_A],
rtlefuse->eeprom_tssi[RF90_PATH_B]); rtlefuse->eeprom_tssi[RF90_PATH_B]);
...@@ -316,7 +316,7 @@ static void _rtl92cu_read_txpower_info_from_hwpg(struct ieee80211_hw *hw, ...@@ -316,7 +316,7 @@ static void _rtl92cu_read_txpower_info_from_hwpg(struct ieee80211_hw *hw,
if (rtlefuse->eeprom_thermalmeter == 0x1f || autoload_fail) if (rtlefuse->eeprom_thermalmeter == 0x1f || autoload_fail)
rtlefuse->apk_thermalmeterignore = true; rtlefuse->apk_thermalmeterignore = true;
rtlefuse->thermalmeter[0] = rtlefuse->eeprom_thermalmeter; rtlefuse->thermalmeter[0] = rtlefuse->eeprom_thermalmeter;
RTPRINT(rtlpriv, FINIT, INIT_TxPower, RTPRINT(rtlpriv, FINIT, INIT_TXPOWER,
"thermalmeter = 0x%x\n", rtlefuse->eeprom_thermalmeter); "thermalmeter = 0x%x\n", rtlefuse->eeprom_thermalmeter);
} }
......
...@@ -223,7 +223,7 @@ static struct rtl_hal_cfg rtl92cu_hal_cfg = { ...@@ -223,7 +223,7 @@ static struct rtl_hal_cfg rtl92cu_hal_cfg = {
.maps[RTL_IMR_TXFOVW] = IMR_TXFOVW, .maps[RTL_IMR_TXFOVW] = IMR_TXFOVW,
.maps[RTL_IMR_PSTIMEOUT] = IMR_PSTIMEOUT, .maps[RTL_IMR_PSTIMEOUT] = IMR_PSTIMEOUT,
.maps[RTL_IMR_BcnInt] = IMR_BCNINT, .maps[RTL_IMR_BCNINT] = IMR_BCNINT,
.maps[RTL_IMR_RXFOVW] = IMR_RXFOVW, .maps[RTL_IMR_RXFOVW] = IMR_RXFOVW,
.maps[RTL_IMR_RDU] = IMR_RDU, .maps[RTL_IMR_RDU] = IMR_RDU,
.maps[RTL_IMR_ATIMEND] = IMR_ATIMEND, .maps[RTL_IMR_ATIMEND] = IMR_ATIMEND,
......
...@@ -171,8 +171,8 @@ static void rtl92d_dm_diginit(struct ieee80211_hw *hw) ...@@ -171,8 +171,8 @@ static void rtl92d_dm_diginit(struct ieee80211_hw *hw)
de_digtable->rssi_highthresh = DM_DIG_THRESH_HIGH; de_digtable->rssi_highthresh = DM_DIG_THRESH_HIGH;
de_digtable->fa_lowthresh = DM_FALSEALARM_THRESH_LOW; de_digtable->fa_lowthresh = DM_FALSEALARM_THRESH_LOW;
de_digtable->fa_highthresh = DM_FALSEALARM_THRESH_HIGH; de_digtable->fa_highthresh = DM_FALSEALARM_THRESH_HIGH;
de_digtable->rx_gain_range_max = DM_DIG_FA_UPPER; de_digtable->rx_gain_max = DM_DIG_FA_UPPER;
de_digtable->rx_gain_range_min = DM_DIG_FA_LOWER; de_digtable->rx_gain_min = DM_DIG_FA_LOWER;
de_digtable->back_val = DM_DIG_BACKOFF_DEFAULT; de_digtable->back_val = DM_DIG_BACKOFF_DEFAULT;
de_digtable->back_range_max = DM_DIG_BACKOFF_MAX; de_digtable->back_range_max = DM_DIG_BACKOFF_MAX;
de_digtable->back_range_min = DM_DIG_BACKOFF_MIN; de_digtable->back_range_min = DM_DIG_BACKOFF_MIN;
...@@ -444,8 +444,8 @@ static void rtl92d_dm_dig(struct ieee80211_hw *hw) ...@@ -444,8 +444,8 @@ static void rtl92d_dm_dig(struct ieee80211_hw *hw)
"dm_DIG() Before: large_fa_hit=%d, forbidden_igi=%x\n", "dm_DIG() Before: large_fa_hit=%d, forbidden_igi=%x\n",
de_digtable->large_fa_hit, de_digtable->forbidden_igi); de_digtable->large_fa_hit, de_digtable->forbidden_igi);
RT_TRACE(rtlpriv, COMP_DIG, DBG_LOUD, RT_TRACE(rtlpriv, COMP_DIG, DBG_LOUD,
"dm_DIG() Before: Recover_cnt=%d, rx_gain_range_min=%x\n", "dm_DIG() Before: Recover_cnt=%d, rx_gain_min=%x\n",
de_digtable->recover_cnt, de_digtable->rx_gain_range_min); de_digtable->recover_cnt, de_digtable->rx_gain_min);
/* deal with abnorally large false alarm */ /* deal with abnorally large false alarm */
if (falsealm_cnt->cnt_all > 10000) { if (falsealm_cnt->cnt_all > 10000) {
...@@ -459,9 +459,9 @@ static void rtl92d_dm_dig(struct ieee80211_hw *hw) ...@@ -459,9 +459,9 @@ static void rtl92d_dm_dig(struct ieee80211_hw *hw)
} }
if (de_digtable->large_fa_hit >= 3) { if (de_digtable->large_fa_hit >= 3) {
if ((de_digtable->forbidden_igi + 1) > DM_DIG_MAX) if ((de_digtable->forbidden_igi + 1) > DM_DIG_MAX)
de_digtable->rx_gain_range_min = DM_DIG_MAX; de_digtable->rx_gain_min = DM_DIG_MAX;
else else
de_digtable->rx_gain_range_min = de_digtable->rx_gain_min =
(de_digtable->forbidden_igi + 1); (de_digtable->forbidden_igi + 1);
de_digtable->recover_cnt = 3600; /* 3600=2hr */ de_digtable->recover_cnt = 3600; /* 3600=2hr */
} }
...@@ -475,12 +475,12 @@ static void rtl92d_dm_dig(struct ieee80211_hw *hw) ...@@ -475,12 +475,12 @@ static void rtl92d_dm_dig(struct ieee80211_hw *hw)
DM_DIG_FA_LOWER) { DM_DIG_FA_LOWER) {
de_digtable->forbidden_igi = de_digtable->forbidden_igi =
DM_DIG_FA_LOWER; DM_DIG_FA_LOWER;
de_digtable->rx_gain_range_min = de_digtable->rx_gain_min =
DM_DIG_FA_LOWER; DM_DIG_FA_LOWER;
} else { } else {
de_digtable->forbidden_igi--; de_digtable->forbidden_igi--;
de_digtable->rx_gain_range_min = de_digtable->rx_gain_min =
(de_digtable->forbidden_igi + 1); (de_digtable->forbidden_igi + 1);
} }
} else if (de_digtable->large_fa_hit == 3) { } else if (de_digtable->large_fa_hit == 3) {
...@@ -492,13 +492,13 @@ static void rtl92d_dm_dig(struct ieee80211_hw *hw) ...@@ -492,13 +492,13 @@ static void rtl92d_dm_dig(struct ieee80211_hw *hw)
"dm_DIG() After: large_fa_hit=%d, forbidden_igi=%x\n", "dm_DIG() After: large_fa_hit=%d, forbidden_igi=%x\n",
de_digtable->large_fa_hit, de_digtable->forbidden_igi); de_digtable->large_fa_hit, de_digtable->forbidden_igi);
RT_TRACE(rtlpriv, COMP_DIG, DBG_LOUD, RT_TRACE(rtlpriv, COMP_DIG, DBG_LOUD,
"dm_DIG() After: recover_cnt=%d, rx_gain_range_min=%x\n", "dm_DIG() After: recover_cnt=%d, rx_gain_min=%x\n",
de_digtable->recover_cnt, de_digtable->rx_gain_range_min); de_digtable->recover_cnt, de_digtable->rx_gain_min);
if (value_igi > DM_DIG_MAX) if (value_igi > DM_DIG_MAX)
value_igi = DM_DIG_MAX; value_igi = DM_DIG_MAX;
else if (value_igi < de_digtable->rx_gain_range_min) else if (value_igi < de_digtable->rx_gain_min)
value_igi = de_digtable->rx_gain_range_min; value_igi = de_digtable->rx_gain_min;
de_digtable->cur_igvalue = value_igi; de_digtable->cur_igvalue = value_igi;
rtl92d_dm_write_dig(hw); rtl92d_dm_write_dig(hw);
if (rtlpriv->rtlhal.current_bandtype != BAND_ON_5G) if (rtlpriv->rtlhal.current_bandtype != BAND_ON_5G)
...@@ -1071,9 +1071,9 @@ static void rtl92d_dm_txpower_tracking_callback_thermalmeter( ...@@ -1071,9 +1071,9 @@ static void rtl92d_dm_txpower_tracking_callback_thermalmeter(
} }
ele_d = (ofdmswing_table[(u8) ofdm_index[0]] & ele_d = (ofdmswing_table[(u8) ofdm_index[0]] &
0xFFC00000) >> 22; 0xFFC00000) >> 22;
val_x = rtlphy->iqk_matrix_regsetting val_x = rtlphy->iqk_matrix
[indexforchannel].value[0][0]; [indexforchannel].value[0][0];
val_y = rtlphy->iqk_matrix_regsetting val_y = rtlphy->iqk_matrix
[indexforchannel].value[0][1]; [indexforchannel].value[0][1];
if (val_x != 0) { if (val_x != 0) {
if ((val_x & 0x00000200) != 0) if ((val_x & 0x00000200) != 0)
...@@ -1175,9 +1175,9 @@ static void rtl92d_dm_txpower_tracking_callback_thermalmeter( ...@@ -1175,9 +1175,9 @@ static void rtl92d_dm_txpower_tracking_callback_thermalmeter(
if (is2t) { if (is2t) {
ele_d = (ofdmswing_table[(u8) ofdm_index[1]] & ele_d = (ofdmswing_table[(u8) ofdm_index[1]] &
0xFFC00000) >> 22; 0xFFC00000) >> 22;
val_x = rtlphy->iqk_matrix_regsetting val_x = rtlphy->iqk_matrix
[indexforchannel].value[0][4]; [indexforchannel].value[0][4];
val_y = rtlphy->iqk_matrix_regsetting val_y = rtlphy->iqk_matrix
[indexforchannel].value[0][5]; [indexforchannel].value[0][5];
if (val_x != 0) { if (val_x != 0) {
if ((val_x & 0x00000200) != 0) if ((val_x & 0x00000200) != 0)
......
...@@ -1183,7 +1183,7 @@ void rtl92d_linked_set_reg(struct ieee80211_hw *hw) ...@@ -1183,7 +1183,7 @@ void rtl92d_linked_set_reg(struct ieee80211_hw *hw)
u8 channel = rtlphy->current_channel; u8 channel = rtlphy->current_channel;
indexforchannel = rtl92d_get_rightchnlplace_for_iqk(channel); indexforchannel = rtl92d_get_rightchnlplace_for_iqk(channel);
if (!rtlphy->iqk_matrix_regsetting[indexforchannel].iqk_done) { if (!rtlphy->iqk_matrix[indexforchannel].iqk_done) {
RT_TRACE(rtlpriv, COMP_SCAN | COMP_INIT, DBG_DMESG, RT_TRACE(rtlpriv, COMP_SCAN | COMP_INIT, DBG_DMESG,
"Do IQK for channel:%d\n", channel); "Do IQK for channel:%d\n", channel);
rtl92d_phy_iq_calibrate(hw); rtl92d_phy_iq_calibrate(hw);
......
...@@ -2479,9 +2479,9 @@ void rtl92d_phy_iq_calibrate(struct ieee80211_hw *hw) ...@@ -2479,9 +2479,9 @@ void rtl92d_phy_iq_calibrate(struct ieee80211_hw *hw)
rtlphy->current_channel); rtlphy->current_channel);
for (i = 0; i < IQK_MATRIX_REG_NUM; i++) for (i = 0; i < IQK_MATRIX_REG_NUM; i++)
rtlphy->iqk_matrix_regsetting[indexforchannel]. rtlphy->iqk_matrix[indexforchannel].
value[0][i] = result[final_candidate][i]; value[0][i] = result[final_candidate][i];
rtlphy->iqk_matrix_regsetting[indexforchannel].iqk_done = rtlphy->iqk_matrix[indexforchannel].iqk_done =
true; true;
RT_TRACE(rtlpriv, COMP_SCAN | COMP_MLME, DBG_LOUD, RT_TRACE(rtlpriv, COMP_SCAN | COMP_MLME, DBG_LOUD,
...@@ -2501,8 +2501,8 @@ void rtl92d_phy_reload_iqk_setting(struct ieee80211_hw *hw, u8 channel) ...@@ -2501,8 +2501,8 @@ void rtl92d_phy_reload_iqk_setting(struct ieee80211_hw *hw, u8 channel)
indexforchannel = rtl92d_get_rightchnlplace_for_iqk(channel); indexforchannel = rtl92d_get_rightchnlplace_for_iqk(channel);
RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD, "indexforchannel %d done %d\n", RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD, "indexforchannel %d done %d\n",
indexforchannel, indexforchannel,
rtlphy->iqk_matrix_regsetting[indexforchannel].iqk_done); rtlphy->iqk_matrix[indexforchannel].iqk_done);
if (0 && !rtlphy->iqk_matrix_regsetting[indexforchannel].iqk_done && if (0 && !rtlphy->iqk_matrix[indexforchannel].iqk_done &&
rtlphy->need_iqk) { rtlphy->need_iqk) {
/* Re Do IQK. */ /* Re Do IQK. */
RT_TRACE(rtlpriv, COMP_SCAN | COMP_INIT, DBG_LOUD, RT_TRACE(rtlpriv, COMP_SCAN | COMP_INIT, DBG_LOUD,
...@@ -2516,23 +2516,23 @@ void rtl92d_phy_reload_iqk_setting(struct ieee80211_hw *hw, u8 channel) ...@@ -2516,23 +2516,23 @@ void rtl92d_phy_reload_iqk_setting(struct ieee80211_hw *hw, u8 channel)
RT_TRACE(rtlpriv, COMP_SCAN, DBG_LOUD, RT_TRACE(rtlpriv, COMP_SCAN, DBG_LOUD,
"Just Read IQK Matrix reg for channel:%d....\n", "Just Read IQK Matrix reg for channel:%d....\n",
channel); channel);
if ((rtlphy->iqk_matrix_regsetting[indexforchannel]. if ((rtlphy->iqk_matrix[indexforchannel].
value[0] != NULL) value[0] != NULL)
/*&&(regea4 != 0) */) /*&&(regea4 != 0) */)
_rtl92d_phy_patha_fill_iqk_matrix(hw, true, _rtl92d_phy_patha_fill_iqk_matrix(hw, true,
rtlphy->iqk_matrix_regsetting[ rtlphy->iqk_matrix[
indexforchannel].value, 0, indexforchannel].value, 0,
(rtlphy->iqk_matrix_regsetting[ (rtlphy->iqk_matrix[
indexforchannel].value[0][2] == 0)); indexforchannel].value[0][2] == 0));
if (IS_92D_SINGLEPHY(rtlhal->version)) { if (IS_92D_SINGLEPHY(rtlhal->version)) {
if ((rtlphy->iqk_matrix_regsetting[ if ((rtlphy->iqk_matrix[
indexforchannel].value[0][4] != 0) indexforchannel].value[0][4] != 0)
/*&&(regec4 != 0) */) /*&&(regec4 != 0) */)
_rtl92d_phy_pathb_fill_iqk_matrix(hw, _rtl92d_phy_pathb_fill_iqk_matrix(hw,
true, true,
rtlphy->iqk_matrix_regsetting[ rtlphy->iqk_matrix[
indexforchannel].value, 0, indexforchannel].value, 0,
(rtlphy->iqk_matrix_regsetting[ (rtlphy->iqk_matrix[
indexforchannel].value[0][6] indexforchannel].value[0][6]
== 0)); == 0));
} }
...@@ -2830,20 +2830,20 @@ void rtl92d_phy_reset_iqk_result(struct ieee80211_hw *hw) ...@@ -2830,20 +2830,20 @@ void rtl92d_phy_reset_iqk_result(struct ieee80211_hw *hw)
RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
"settings regs %d default regs %d\n", "settings regs %d default regs %d\n",
(int)(sizeof(rtlphy->iqk_matrix_regsetting) / (int)(sizeof(rtlphy->iqk_matrix) /
sizeof(struct iqk_matrix_regs)), sizeof(struct iqk_matrix_regs)),
IQK_MATRIX_REG_NUM); IQK_MATRIX_REG_NUM);
/* 0xe94, 0xe9c, 0xea4, 0xeac, 0xeb4, 0xebc, 0xec4, 0xecc */ /* 0xe94, 0xe9c, 0xea4, 0xeac, 0xeb4, 0xebc, 0xec4, 0xecc */
for (i = 0; i < IQK_MATRIX_SETTINGS_NUM; i++) { for (i = 0; i < IQK_MATRIX_SETTINGS_NUM; i++) {
rtlphy->iqk_matrix_regsetting[i].value[0][0] = 0x100; rtlphy->iqk_matrix[i].value[0][0] = 0x100;
rtlphy->iqk_matrix_regsetting[i].value[0][2] = 0x100; rtlphy->iqk_matrix[i].value[0][2] = 0x100;
rtlphy->iqk_matrix_regsetting[i].value[0][4] = 0x100; rtlphy->iqk_matrix[i].value[0][4] = 0x100;
rtlphy->iqk_matrix_regsetting[i].value[0][6] = 0x100; rtlphy->iqk_matrix[i].value[0][6] = 0x100;
rtlphy->iqk_matrix_regsetting[i].value[0][1] = 0x0; rtlphy->iqk_matrix[i].value[0][1] = 0x0;
rtlphy->iqk_matrix_regsetting[i].value[0][3] = 0x0; rtlphy->iqk_matrix[i].value[0][3] = 0x0;
rtlphy->iqk_matrix_regsetting[i].value[0][5] = 0x0; rtlphy->iqk_matrix[i].value[0][5] = 0x0;
rtlphy->iqk_matrix_regsetting[i].value[0][7] = 0x0; rtlphy->iqk_matrix[i].value[0][7] = 0x0;
rtlphy->iqk_matrix_regsetting[i].iqk_done = false; rtlphy->iqk_matrix[i].iqk_done = false;
} }
} }
......
...@@ -543,7 +543,7 @@ ...@@ -543,7 +543,7 @@
#define IMR_TIMEOUT1 BIT(16) #define IMR_TIMEOUT1 BIT(16)
#define IMR_TXFOVW BIT(15) #define IMR_TXFOVW BIT(15)
#define IMR_PSTIMEOUT BIT(14) #define IMR_PSTIMEOUT BIT(14)
#define IMR_BcnInt BIT(13) #define IMR_BCNINT BIT(13)
#define IMR_RXFOVW BIT(12) #define IMR_RXFOVW BIT(12)
#define IMR_RDU BIT(11) #define IMR_RDU BIT(11)
#define IMR_ATIMEND BIT(10) #define IMR_ATIMEND BIT(10)
......
...@@ -166,7 +166,7 @@ static int rtl92d_init_sw_vars(struct ieee80211_hw *hw) ...@@ -166,7 +166,7 @@ static int rtl92d_init_sw_vars(struct ieee80211_hw *hw)
rtlpriv->psc.fwctrl_psmode = FW_PS_DTIM_MODE; rtlpriv->psc.fwctrl_psmode = FW_PS_DTIM_MODE;
/* for early mode */ /* for early mode */
rtlpriv->rtlhal.earlymode_enable = true; rtlpriv->rtlhal.earlymode_enable = false;
for (tid = 0; tid < 8; tid++) for (tid = 0; tid < 8; tid++)
skb_queue_head_init(&rtlpriv->mac80211.skb_waitq[tid]); skb_queue_head_init(&rtlpriv->mac80211.skb_waitq[tid]);
...@@ -319,7 +319,7 @@ static struct rtl_hal_cfg rtl92de_hal_cfg = { ...@@ -319,7 +319,7 @@ static struct rtl_hal_cfg rtl92de_hal_cfg = {
.maps[RTL_IMR_TXFOVW] = IMR_TXFOVW, .maps[RTL_IMR_TXFOVW] = IMR_TXFOVW,
.maps[RTL_IMR_PSTIMEOUT] = IMR_PSTIMEOUT, .maps[RTL_IMR_PSTIMEOUT] = IMR_PSTIMEOUT,
.maps[RTL_IMR_BcnInt] = IMR_BcnInt, .maps[RTL_IMR_BCNINT] = IMR_BCNINT,
.maps[RTL_IMR_RXFOVW] = IMR_RXFOVW, .maps[RTL_IMR_RXFOVW] = IMR_RXFOVW,
.maps[RTL_IMR_RDU] = IMR_RDU, .maps[RTL_IMR_RDU] = IMR_RDU,
.maps[RTL_IMR_ATIMEND] = IMR_ATIMEND, .maps[RTL_IMR_ATIMEND] = IMR_ATIMEND,
...@@ -333,7 +333,7 @@ static struct rtl_hal_cfg rtl92de_hal_cfg = { ...@@ -333,7 +333,7 @@ static struct rtl_hal_cfg rtl92de_hal_cfg = {
.maps[RTL_IMR_VIDOK] = IMR_VIDOK, .maps[RTL_IMR_VIDOK] = IMR_VIDOK,
.maps[RTL_IMR_VODOK] = IMR_VODOK, .maps[RTL_IMR_VODOK] = IMR_VODOK,
.maps[RTL_IMR_ROK] = IMR_ROK, .maps[RTL_IMR_ROK] = IMR_ROK,
.maps[RTL_IBSS_INT_MASKS] = (IMR_BcnInt | IMR_TBDOK | IMR_TBDER), .maps[RTL_IBSS_INT_MASKS] = (IMR_BCNINT | IMR_TBDOK | IMR_TBDER),
.maps[RTL_RC_CCK_RATE1M] = DESC92_RATE1M, .maps[RTL_RC_CCK_RATE1M] = DESC92_RATE1M,
.maps[RTL_RC_CCK_RATE2M] = DESC92_RATE2M, .maps[RTL_RC_CCK_RATE2M] = DESC92_RATE2M,
......
...@@ -472,13 +472,13 @@ static void _rtl92s_dm_initial_gain_sta_beforeconnect(struct ieee80211_hw *hw) ...@@ -472,13 +472,13 @@ static void _rtl92s_dm_initial_gain_sta_beforeconnect(struct ieee80211_hw *hw)
digtable->back_val = DM_DIG_BACKOFF; digtable->back_val = DM_DIG_BACKOFF;
if ((digtable->rssi_val + 10 - digtable->back_val) > if ((digtable->rssi_val + 10 - digtable->back_val) >
digtable->rx_gain_range_max) digtable->rx_gain_max)
digtable->cur_igvalue = digtable->cur_igvalue =
digtable->rx_gain_range_max; digtable->rx_gain_max;
else if ((digtable->rssi_val + 10 - digtable->back_val) else if ((digtable->rssi_val + 10 - digtable->back_val)
< digtable->rx_gain_range_min) < digtable->rx_gain_min)
digtable->cur_igvalue = digtable->cur_igvalue =
digtable->rx_gain_range_min; digtable->rx_gain_min;
else else
digtable->cur_igvalue = digtable->rssi_val + 10 digtable->cur_igvalue = digtable->rssi_val + 10
- digtable->back_val; - digtable->back_val;
...@@ -490,7 +490,7 @@ static void _rtl92s_dm_initial_gain_sta_beforeconnect(struct ieee80211_hw *hw) ...@@ -490,7 +490,7 @@ static void _rtl92s_dm_initial_gain_sta_beforeconnect(struct ieee80211_hw *hw)
if (falsealm_cnt->cnt_all > 16000) if (falsealm_cnt->cnt_all > 16000)
digtable->cur_igvalue = digtable->cur_igvalue =
digtable->rx_gain_range_max; digtable->rx_gain_max;
/* connected -> connected or disconnected -> disconnected */ /* connected -> connected or disconnected -> disconnected */
} else { } else {
/* Firmware control DIG, do nothing in driver dm */ /* Firmware control DIG, do nothing in driver dm */
...@@ -692,9 +692,9 @@ static void _rtl92s_dm_init_dig(struct ieee80211_hw *hw) ...@@ -692,9 +692,9 @@ static void _rtl92s_dm_init_dig(struct ieee80211_hw *hw)
/* for dig debug rssi value */ /* for dig debug rssi value */
digtable->rssi_val = 50; digtable->rssi_val = 50;
digtable->back_val = DM_DIG_BACKOFF; digtable->back_val = DM_DIG_BACKOFF;
digtable->rx_gain_range_max = DM_DIG_MAX; digtable->rx_gain_max = DM_DIG_MAX;
digtable->rx_gain_range_min = DM_DIG_MIN; digtable->rx_gain_min = DM_DIG_MIN;
digtable->backoffval_range_max = DM_DIG_BACKOFF_MAX; digtable->backoffval_range_max = DM_DIG_BACKOFF_MAX;
digtable->backoffval_range_min = DM_DIG_BACKOFF_MIN; digtable->backoffval_range_min = DM_DIG_BACKOFF_MIN;
......
...@@ -1791,7 +1791,7 @@ static void _rtl92se_read_adapter_info(struct ieee80211_hw *hw) ...@@ -1791,7 +1791,7 @@ static void _rtl92se_read_adapter_info(struct ieee80211_hw *hw)
} }
for (i = 0; i < 14; i++) { for (i = 0; i < 14; i++) {
RTPRINT(rtlpriv, FINIT, INIT_TxPower, RTPRINT(rtlpriv, FINIT, INIT_TXPOWER,
"RF(%d)-Ch(%d) [CCK / HT40_1S / HT40_2S] = [0x%x / 0x%x / 0x%x]\n", "RF(%d)-Ch(%d) [CCK / HT40_1S / HT40_2S] = [0x%x / 0x%x / 0x%x]\n",
rf_path, i, rf_path, i,
rtlefuse->txpwrlevel_cck[rf_path][i], rtlefuse->txpwrlevel_cck[rf_path][i],
...@@ -1828,11 +1828,11 @@ static void _rtl92se_read_adapter_info(struct ieee80211_hw *hw) ...@@ -1828,11 +1828,11 @@ static void _rtl92se_read_adapter_info(struct ieee80211_hw *hw)
((rtlefuse->eeprom_pwrgroup[rf_path][index] & ((rtlefuse->eeprom_pwrgroup[rf_path][index] &
0xf0) >> 4); 0xf0) >> 4);
RTPRINT(rtlpriv, FINIT, INIT_TxPower, RTPRINT(rtlpriv, FINIT, INIT_TXPOWER,
"RF-%d pwrgroup_ht20[%d] = 0x%x\n", "RF-%d pwrgroup_ht20[%d] = 0x%x\n",
rf_path, i, rf_path, i,
rtlefuse->pwrgroup_ht20[rf_path][i]); rtlefuse->pwrgroup_ht20[rf_path][i]);
RTPRINT(rtlpriv, FINIT, INIT_TxPower, RTPRINT(rtlpriv, FINIT, INIT_TXPOWER,
"RF-%d pwrgroup_ht40[%d] = 0x%x\n", "RF-%d pwrgroup_ht40[%d] = 0x%x\n",
rf_path, i, rf_path, i,
rtlefuse->pwrgroup_ht40[rf_path][i]); rtlefuse->pwrgroup_ht40[rf_path][i]);
...@@ -1887,27 +1887,27 @@ static void _rtl92se_read_adapter_info(struct ieee80211_hw *hw) ...@@ -1887,27 +1887,27 @@ static void _rtl92se_read_adapter_info(struct ieee80211_hw *hw)
rtlefuse->eeprom_regulatory = rtlefuse->eeprom_regulatory =
(hwinfo[EEPROM_REGULATORY] & 0x1); (hwinfo[EEPROM_REGULATORY] & 0x1);
} }
RTPRINT(rtlpriv, FINIT, INIT_TxPower, RTPRINT(rtlpriv, FINIT, INIT_TXPOWER,
"eeprom_regulatory = 0x%x\n", rtlefuse->eeprom_regulatory); "eeprom_regulatory = 0x%x\n", rtlefuse->eeprom_regulatory);
for (i = 0; i < 14; i++) for (i = 0; i < 14; i++)
RTPRINT(rtlpriv, FINIT, INIT_TxPower, RTPRINT(rtlpriv, FINIT, INIT_TXPOWER,
"RF-A Ht20 to HT40 Diff[%d] = 0x%x\n", "RF-A Ht20 to HT40 Diff[%d] = 0x%x\n",
i, rtlefuse->txpwr_ht20diff[RF90_PATH_A][i]); i, rtlefuse->txpwr_ht20diff[RF90_PATH_A][i]);
for (i = 0; i < 14; i++) for (i = 0; i < 14; i++)
RTPRINT(rtlpriv, FINIT, INIT_TxPower, RTPRINT(rtlpriv, FINIT, INIT_TXPOWER,
"RF-A Legacy to Ht40 Diff[%d] = 0x%x\n", "RF-A Legacy to Ht40 Diff[%d] = 0x%x\n",
i, rtlefuse->txpwr_legacyhtdiff[RF90_PATH_A][i]); i, rtlefuse->txpwr_legacyhtdiff[RF90_PATH_A][i]);
for (i = 0; i < 14; i++) for (i = 0; i < 14; i++)
RTPRINT(rtlpriv, FINIT, INIT_TxPower, RTPRINT(rtlpriv, FINIT, INIT_TXPOWER,
"RF-B Ht20 to HT40 Diff[%d] = 0x%x\n", "RF-B Ht20 to HT40 Diff[%d] = 0x%x\n",
i, rtlefuse->txpwr_ht20diff[RF90_PATH_B][i]); i, rtlefuse->txpwr_ht20diff[RF90_PATH_B][i]);
for (i = 0; i < 14; i++) for (i = 0; i < 14; i++)
RTPRINT(rtlpriv, FINIT, INIT_TxPower, RTPRINT(rtlpriv, FINIT, INIT_TXPOWER,
"RF-B Legacy to HT40 Diff[%d] = 0x%x\n", "RF-B Legacy to HT40 Diff[%d] = 0x%x\n",
i, rtlefuse->txpwr_legacyhtdiff[RF90_PATH_B][i]); i, rtlefuse->txpwr_legacyhtdiff[RF90_PATH_B][i]);
RTPRINT(rtlpriv, FINIT, INIT_TxPower, RTPRINT(rtlpriv, FINIT, INIT_TXPOWER,
"TxPwrSafetyFlag = %d\n", rtlefuse->txpwr_safetyflag); "TxPwrSafetyFlag = %d\n", rtlefuse->txpwr_safetyflag);
/* Read RF-indication and Tx Power gain /* Read RF-indication and Tx Power gain
...@@ -1917,7 +1917,7 @@ static void _rtl92se_read_adapter_info(struct ieee80211_hw *hw) ...@@ -1917,7 +1917,7 @@ static void _rtl92se_read_adapter_info(struct ieee80211_hw *hw)
rtlefuse->legacy_httxpowerdiff = rtlefuse->legacy_httxpowerdiff =
rtlefuse->txpwr_legacyhtdiff[RF90_PATH_A][0]; rtlefuse->txpwr_legacyhtdiff[RF90_PATH_A][0];
RTPRINT(rtlpriv, FINIT, INIT_TxPower, RTPRINT(rtlpriv, FINIT, INIT_TXPOWER,
"TxPowerDiff = %#x\n", rtlefuse->eeprom_txpowerdiff); "TxPowerDiff = %#x\n", rtlefuse->eeprom_txpowerdiff);
/* Get TSSI value for each path. */ /* Get TSSI value for each path. */
...@@ -1926,7 +1926,7 @@ static void _rtl92se_read_adapter_info(struct ieee80211_hw *hw) ...@@ -1926,7 +1926,7 @@ static void _rtl92se_read_adapter_info(struct ieee80211_hw *hw)
usvalue = hwinfo[EEPROM_TSSI_B]; usvalue = hwinfo[EEPROM_TSSI_B];
rtlefuse->eeprom_tssi[RF90_PATH_B] = (u8)(usvalue & 0xff); rtlefuse->eeprom_tssi[RF90_PATH_B] = (u8)(usvalue & 0xff);
RTPRINT(rtlpriv, FINIT, INIT_TxPower, "TSSI_A = 0x%x, TSSI_B = 0x%x\n", RTPRINT(rtlpriv, FINIT, INIT_TXPOWER, "TSSI_A = 0x%x, TSSI_B = 0x%x\n",
rtlefuse->eeprom_tssi[RF90_PATH_A], rtlefuse->eeprom_tssi[RF90_PATH_A],
rtlefuse->eeprom_tssi[RF90_PATH_B]); rtlefuse->eeprom_tssi[RF90_PATH_B]);
...@@ -1934,7 +1934,7 @@ static void _rtl92se_read_adapter_info(struct ieee80211_hw *hw) ...@@ -1934,7 +1934,7 @@ static void _rtl92se_read_adapter_info(struct ieee80211_hw *hw)
/* and read ThermalMeter from EEPROM */ /* and read ThermalMeter from EEPROM */
tempval = hwinfo[EEPROM_THERMALMETER]; tempval = hwinfo[EEPROM_THERMALMETER];
rtlefuse->eeprom_thermalmeter = tempval; rtlefuse->eeprom_thermalmeter = tempval;
RTPRINT(rtlpriv, FINIT, INIT_TxPower, RTPRINT(rtlpriv, FINIT, INIT_TXPOWER,
"thermalmeter = 0x%x\n", rtlefuse->eeprom_thermalmeter); "thermalmeter = 0x%x\n", rtlefuse->eeprom_thermalmeter);
/* ThermalMeter, BIT(0)~3 for RFIC1, BIT(4)~7 for RFIC2 */ /* ThermalMeter, BIT(0)~3 for RFIC1, BIT(4)~7 for RFIC2 */
...@@ -1951,7 +1951,7 @@ static void _rtl92se_read_adapter_info(struct ieee80211_hw *hw) ...@@ -1951,7 +1951,7 @@ static void _rtl92se_read_adapter_info(struct ieee80211_hw *hw)
/* Version ID, Channel plan */ /* Version ID, Channel plan */
rtlefuse->eeprom_channelplan = hwinfo[EEPROM_CHANNELPLAN]; rtlefuse->eeprom_channelplan = hwinfo[EEPROM_CHANNELPLAN];
rtlefuse->txpwr_fromeprom = true; rtlefuse->txpwr_fromeprom = true;
RTPRINT(rtlpriv, FINIT, INIT_TxPower, RTPRINT(rtlpriv, FINIT, INIT_TXPOWER,
"EEPROM ChannelPlan = 0x%4x\n", rtlefuse->eeprom_channelplan); "EEPROM ChannelPlan = 0x%4x\n", rtlefuse->eeprom_channelplan);
/* Read Customer ID or Board Type!!! */ /* Read Customer ID or Board Type!!! */
......
...@@ -367,7 +367,7 @@ static struct rtl_hal_cfg rtl92se_hal_cfg = { ...@@ -367,7 +367,7 @@ static struct rtl_hal_cfg rtl92se_hal_cfg = {
.maps[RTL_IMR_TXFOVW] = IMR_TXFOVW, .maps[RTL_IMR_TXFOVW] = IMR_TXFOVW,
.maps[RTL_IMR_PSTIMEOUT] = IMR_PSTIMEOUT, .maps[RTL_IMR_PSTIMEOUT] = IMR_PSTIMEOUT,
.maps[RTL_IMR_BcnInt] = IMR_BCNINT, .maps[RTL_IMR_BCNINT] = IMR_BCNINT,
.maps[RTL_IMR_RXFOVW] = IMR_RXFOVW, .maps[RTL_IMR_RXFOVW] = IMR_RXFOVW,
.maps[RTL_IMR_RDU] = IMR_RDU, .maps[RTL_IMR_RDU] = IMR_RDU,
.maps[RTL_IMR_ATIMEND] = IMR_ATIMEND, .maps[RTL_IMR_ATIMEND] = IMR_ATIMEND,
......
...@@ -166,8 +166,8 @@ static void rtl8723ae_dm_diginit(struct ieee80211_hw *hw) ...@@ -166,8 +166,8 @@ static void rtl8723ae_dm_diginit(struct ieee80211_hw *hw)
dm_digtable->rssi_highthresh = DM_DIG_THRESH_HIGH; dm_digtable->rssi_highthresh = DM_DIG_THRESH_HIGH;
dm_digtable->fa_lowthresh = DM_FALSEALARM_THRESH_LOW; dm_digtable->fa_lowthresh = DM_FALSEALARM_THRESH_LOW;
dm_digtable->fa_highthresh = DM_FALSEALARM_THRESH_HIGH; dm_digtable->fa_highthresh = DM_FALSEALARM_THRESH_HIGH;
dm_digtable->rx_gain_range_max = DM_DIG_MAX; dm_digtable->rx_gain_max = DM_DIG_MAX;
dm_digtable->rx_gain_range_min = DM_DIG_MIN; dm_digtable->rx_gain_min = DM_DIG_MIN;
dm_digtable->back_val = DM_DIG_BACKOFF_DEFAULT; dm_digtable->back_val = DM_DIG_BACKOFF_DEFAULT;
dm_digtable->back_range_max = DM_DIG_BACKOFF_MAX; dm_digtable->back_range_max = DM_DIG_BACKOFF_MAX;
dm_digtable->back_range_min = DM_DIG_BACKOFF_MIN; dm_digtable->back_range_min = DM_DIG_BACKOFF_MIN;
...@@ -291,11 +291,11 @@ static void rtl92c_dm_ctrl_initgain_by_rssi(struct ieee80211_hw *hw) ...@@ -291,11 +291,11 @@ static void rtl92c_dm_ctrl_initgain_by_rssi(struct ieee80211_hw *hw)
} }
if ((dgtbl->rssi_val_min + 10 - dgtbl->back_val) > if ((dgtbl->rssi_val_min + 10 - dgtbl->back_val) >
dgtbl->rx_gain_range_max) dgtbl->rx_gain_max)
dgtbl->cur_igvalue = dgtbl->rx_gain_range_max; dgtbl->cur_igvalue = dgtbl->rx_gain_max;
else if ((dgtbl->rssi_val_min + 10 - else if ((dgtbl->rssi_val_min + 10 -
dgtbl->back_val) < dgtbl->rx_gain_range_min) dgtbl->back_val) < dgtbl->rx_gain_min)
dgtbl->cur_igvalue = dgtbl->rx_gain_range_min; dgtbl->cur_igvalue = dgtbl->rx_gain_min;
else else
dgtbl->cur_igvalue = dgtbl->rssi_val_min + 10 - dgtbl->back_val; dgtbl->cur_igvalue = dgtbl->rssi_val_min + 10 - dgtbl->back_val;
......
...@@ -1415,7 +1415,7 @@ static void _rtl8723ae_read_txpower_info_from_hwpg(struct ieee80211_hw *hw, ...@@ -1415,7 +1415,7 @@ static void _rtl8723ae_read_txpower_info_from_hwpg(struct ieee80211_hw *hw,
} }
for (i = 0; i < 14; i++) { for (i = 0; i < 14; i++) {
RTPRINT(rtlpriv, FINIT, INIT_TxPower, RTPRINT(rtlpriv, FINIT, INIT_TXPOWER,
"RF(%d)-Ch(%d) [CCK / HT40_1S / HT40_2S] = " "RF(%d)-Ch(%d) [CCK / HT40_1S / HT40_2S] = "
"[0x%x / 0x%x / 0x%x]\n", rf_path, i, "[0x%x / 0x%x / 0x%x]\n", rf_path, i,
rtlefuse->txpwrlevel_cck[rf_path][i], rtlefuse->txpwrlevel_cck[rf_path][i],
...@@ -1456,10 +1456,10 @@ static void _rtl8723ae_read_txpower_info_from_hwpg(struct ieee80211_hw *hw, ...@@ -1456,10 +1456,10 @@ static void _rtl8723ae_read_txpower_info_from_hwpg(struct ieee80211_hw *hw,
0xf0) >> 4); 0xf0) >> 4);
} }
RTPRINT(rtlpriv, FINIT, INIT_TxPower, RTPRINT(rtlpriv, FINIT, INIT_TXPOWER,
"RF-%d pwrgroup_ht20[%d] = 0x%x\n", rf_path, i, "RF-%d pwrgroup_ht20[%d] = 0x%x\n", rf_path, i,
rtlefuse->pwrgroup_ht20[rf_path][i]); rtlefuse->pwrgroup_ht20[rf_path][i]);
RTPRINT(rtlpriv, FINIT, INIT_TxPower, RTPRINT(rtlpriv, FINIT, INIT_TXPOWER,
"RF-%d pwrgroup_ht40[%d] = 0x%x\n", rf_path, i, "RF-%d pwrgroup_ht40[%d] = 0x%x\n", rf_path, i,
rtlefuse->pwrgroup_ht40[rf_path][i]); rtlefuse->pwrgroup_ht40[rf_path][i]);
} }
...@@ -1499,19 +1499,19 @@ static void _rtl8723ae_read_txpower_info_from_hwpg(struct ieee80211_hw *hw, ...@@ -1499,19 +1499,19 @@ static void _rtl8723ae_read_txpower_info_from_hwpg(struct ieee80211_hw *hw,
rtlefuse->txpwr_legacyhtdiff[RF90_PATH_A][7]; rtlefuse->txpwr_legacyhtdiff[RF90_PATH_A][7];
for (i = 0; i < 14; i++) for (i = 0; i < 14; i++)
RTPRINT(rtlpriv, FINIT, INIT_TxPower, RTPRINT(rtlpriv, FINIT, INIT_TXPOWER,
"RF-A Ht20 to HT40 Diff[%d] = 0x%x\n", i, "RF-A Ht20 to HT40 Diff[%d] = 0x%x\n", i,
rtlefuse->txpwr_ht20diff[RF90_PATH_A][i]); rtlefuse->txpwr_ht20diff[RF90_PATH_A][i]);
for (i = 0; i < 14; i++) for (i = 0; i < 14; i++)
RTPRINT(rtlpriv, FINIT, INIT_TxPower, RTPRINT(rtlpriv, FINIT, INIT_TXPOWER,
"RF-A Legacy to Ht40 Diff[%d] = 0x%x\n", i, "RF-A Legacy to Ht40 Diff[%d] = 0x%x\n", i,
rtlefuse->txpwr_legacyhtdiff[RF90_PATH_A][i]); rtlefuse->txpwr_legacyhtdiff[RF90_PATH_A][i]);
for (i = 0; i < 14; i++) for (i = 0; i < 14; i++)
RTPRINT(rtlpriv, FINIT, INIT_TxPower, RTPRINT(rtlpriv, FINIT, INIT_TXPOWER,
"RF-B Ht20 to HT40 Diff[%d] = 0x%x\n", i, "RF-B Ht20 to HT40 Diff[%d] = 0x%x\n", i,
rtlefuse->txpwr_ht20diff[RF90_PATH_B][i]); rtlefuse->txpwr_ht20diff[RF90_PATH_B][i]);
for (i = 0; i < 14; i++) for (i = 0; i < 14; i++)
RTPRINT(rtlpriv, FINIT, INIT_TxPower, RTPRINT(rtlpriv, FINIT, INIT_TXPOWER,
"RF-B Legacy to HT40 Diff[%d] = 0x%x\n", i, "RF-B Legacy to HT40 Diff[%d] = 0x%x\n", i,
rtlefuse->txpwr_legacyhtdiff[RF90_PATH_B][i]); rtlefuse->txpwr_legacyhtdiff[RF90_PATH_B][i]);
...@@ -1519,14 +1519,14 @@ static void _rtl8723ae_read_txpower_info_from_hwpg(struct ieee80211_hw *hw, ...@@ -1519,14 +1519,14 @@ static void _rtl8723ae_read_txpower_info_from_hwpg(struct ieee80211_hw *hw,
rtlefuse->eeprom_regulatory = (hwinfo[RF_OPTION1] & 0x7); rtlefuse->eeprom_regulatory = (hwinfo[RF_OPTION1] & 0x7);
else else
rtlefuse->eeprom_regulatory = 0; rtlefuse->eeprom_regulatory = 0;
RTPRINT(rtlpriv, FINIT, INIT_TxPower, RTPRINT(rtlpriv, FINIT, INIT_TXPOWER,
"eeprom_regulatory = 0x%x\n", rtlefuse->eeprom_regulatory); "eeprom_regulatory = 0x%x\n", rtlefuse->eeprom_regulatory);
if (!autoload_fail) if (!autoload_fail)
rtlefuse->eeprom_tssi[RF90_PATH_A] = hwinfo[EEPROM_TSSI_A]; rtlefuse->eeprom_tssi[RF90_PATH_A] = hwinfo[EEPROM_TSSI_A];
else else
rtlefuse->eeprom_tssi[RF90_PATH_A] = EEPROM_DEFAULT_TSSI; rtlefuse->eeprom_tssi[RF90_PATH_A] = EEPROM_DEFAULT_TSSI;
RTPRINT(rtlpriv, FINIT, INIT_TxPower, RTPRINT(rtlpriv, FINIT, INIT_TXPOWER,
"TSSI_A = 0x%x, TSSI_B = 0x%x\n", "TSSI_A = 0x%x, TSSI_B = 0x%x\n",
rtlefuse->eeprom_tssi[RF90_PATH_A], rtlefuse->eeprom_tssi[RF90_PATH_A],
rtlefuse->eeprom_tssi[RF90_PATH_B]); rtlefuse->eeprom_tssi[RF90_PATH_B]);
...@@ -1541,7 +1541,7 @@ static void _rtl8723ae_read_txpower_info_from_hwpg(struct ieee80211_hw *hw, ...@@ -1541,7 +1541,7 @@ static void _rtl8723ae_read_txpower_info_from_hwpg(struct ieee80211_hw *hw,
rtlefuse->apk_thermalmeterignore = true; rtlefuse->apk_thermalmeterignore = true;
rtlefuse->thermalmeter[0] = rtlefuse->eeprom_thermalmeter; rtlefuse->thermalmeter[0] = rtlefuse->eeprom_thermalmeter;
RTPRINT(rtlpriv, FINIT, INIT_TxPower, RTPRINT(rtlpriv, FINIT, INIT_TXPOWER,
"thermalmeter = 0x%x\n", rtlefuse->eeprom_thermalmeter); "thermalmeter = 0x%x\n", rtlefuse->eeprom_thermalmeter);
} }
...@@ -1749,19 +1749,7 @@ static void _rtl8723ae_hal_customized_behavior(struct ieee80211_hw *hw) ...@@ -1749,19 +1749,7 @@ static void _rtl8723ae_hal_customized_behavior(struct ieee80211_hw *hw)
struct rtl_pci_priv *pcipriv = rtl_pcipriv(hw); struct rtl_pci_priv *pcipriv = rtl_pcipriv(hw);
struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw));
switch (rtlhal->oem_id) { pcipriv->ledctl.led_opendrain = true;
case RT_CID_819x_HP:
pcipriv->ledctl.led_opendrain = true;
break;
case RT_CID_819x_Lenovo:
case RT_CID_DEFAULT:
case RT_CID_TOSHIBA:
case RT_CID_CCX:
case RT_CID_819x_Acer:
case RT_CID_WHQL:
default:
break;
}
RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG,
"RT Customized ID: 0x%02X\n", rtlhal->oem_id); "RT Customized ID: 0x%02X\n", rtlhal->oem_id);
} }
......
...@@ -54,8 +54,9 @@ void rtl8723ae_sw_led_on(struct ieee80211_hw *hw, struct rtl_led *pled) ...@@ -54,8 +54,9 @@ void rtl8723ae_sw_led_on(struct ieee80211_hw *hw, struct rtl_led *pled)
case LED_PIN_GPIO0: case LED_PIN_GPIO0:
break; break;
case LED_PIN_LED0: case LED_PIN_LED0:
ledcfg &= ~BIT(6);
rtl_write_byte(rtlpriv, rtl_write_byte(rtlpriv,
REG_LEDCFG2, (ledcfg & 0xf0) | BIT(5) | BIT(6)); REG_LEDCFG2, (ledcfg & 0xf0) | BIT(5));
break; break;
case LED_PIN_LED1: case LED_PIN_LED1:
rtl_write_byte(rtlpriv, REG_LEDCFG2, (ledcfg & 0x0f) | BIT(5)); rtl_write_byte(rtlpriv, REG_LEDCFG2, (ledcfg & 0x0f) | BIT(5));
...@@ -84,16 +85,21 @@ void rtl8723ae_sw_led_off(struct ieee80211_hw *hw, struct rtl_led *pled) ...@@ -84,16 +85,21 @@ void rtl8723ae_sw_led_off(struct ieee80211_hw *hw, struct rtl_led *pled)
break; break;
case LED_PIN_LED0: case LED_PIN_LED0:
ledcfg &= 0xf0; ledcfg &= 0xf0;
if (pcipriv->ledctl.led_opendrain) if (pcipriv->ledctl.led_opendrain) {
ledcfg &= 0x90;
rtl_write_byte(rtlpriv, REG_LEDCFG2, (ledcfg|BIT(3)));
ledcfg = rtl_read_byte(rtlpriv, REG_MAC_PINMUX_CFG);
ledcfg &= 0xFE;
rtl_write_byte(rtlpriv, REG_MAC_PINMUX_CFG, ledcfg);
} else {
ledcfg &= ~BIT(6);
rtl_write_byte(rtlpriv, REG_LEDCFG2, rtl_write_byte(rtlpriv, REG_LEDCFG2,
(ledcfg | BIT(1) | BIT(5) | BIT(6))); (ledcfg | BIT(3) | BIT(5)));
else }
rtl_write_byte(rtlpriv, REG_LEDCFG2,
(ledcfg | BIT(3) | BIT(5) | BIT(6)));
break; break;
case LED_PIN_LED1: case LED_PIN_LED1:
ledcfg &= 0x0f; ledcfg = rtl_read_byte(rtlpriv, REG_LEDCFG1) & 0x10;
rtl_write_byte(rtlpriv, REG_LEDCFG2, (ledcfg | BIT(3))); rtl_write_byte(rtlpriv, REG_LEDCFG1, (ledcfg | BIT(3)));
break; break;
default: default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
......
...@@ -305,7 +305,7 @@ static struct rtl_hal_cfg rtl8723ae_hal_cfg = { ...@@ -305,7 +305,7 @@ static struct rtl_hal_cfg rtl8723ae_hal_cfg = {
.maps[RTL_IMR_TXFOVW] = PHIMR_TXFOVW, .maps[RTL_IMR_TXFOVW] = PHIMR_TXFOVW,
.maps[RTL_IMR_PSTIMEOUT] = PHIMR_PSTIMEOUT, .maps[RTL_IMR_PSTIMEOUT] = PHIMR_PSTIMEOUT,
.maps[RTL_IMR_BcnInt] = PHIMR_BCNDMAINT0, .maps[RTL_IMR_BCNINT] = PHIMR_BCNDMAINT0,
.maps[RTL_IMR_RXFOVW] = PHIMR_RXFOVW, .maps[RTL_IMR_RXFOVW] = PHIMR_RXFOVW,
.maps[RTL_IMR_RDU] = PHIMR_RDU, .maps[RTL_IMR_RDU] = PHIMR_RDU,
.maps[RTL_IMR_ATIMEND] = PHIMR_ATIMEND_E, .maps[RTL_IMR_ATIMEND] = PHIMR_ATIMEND_E,
......
...@@ -99,12 +99,36 @@ ...@@ -99,12 +99,36 @@
#define CHANNEL_GROUP_MAX_5G 9 #define CHANNEL_GROUP_MAX_5G 9
#define CHANNEL_MAX_NUMBER_2G 14 #define CHANNEL_MAX_NUMBER_2G 14
#define AVG_THERMAL_NUM 8 #define AVG_THERMAL_NUM 8
#define AVG_THERMAL_NUM_88E 4
#define MAX_TID_COUNT 9 #define MAX_TID_COUNT 9
/* for early mode */ /* for early mode */
#define FCS_LEN 4 #define FCS_LEN 4
#define EM_HDR_LEN 8 #define EM_HDR_LEN 8
#define MAX_TX_COUNT 4
#define MAX_RF_PATH 4
#define MAX_CHNL_GROUP_24G 6
#define MAX_CHNL_GROUP_5G 14
struct txpower_info_2g {
u8 index_cck_base[MAX_RF_PATH][MAX_CHNL_GROUP_24G];
u8 index_bw40_base[MAX_RF_PATH][MAX_CHNL_GROUP_24G];
/*If only one tx, only BW20 and OFDM are used.*/
u8 cck_diff[MAX_RF_PATH][MAX_TX_COUNT];
u8 ofdm_diff[MAX_RF_PATH][MAX_TX_COUNT];
u8 bw20_diff[MAX_RF_PATH][MAX_TX_COUNT];
u8 bw40_diff[MAX_RF_PATH][MAX_TX_COUNT];
};
struct txpower_info_5g {
u8 index_bw40_base[MAX_RF_PATH][MAX_CHNL_GROUP_5G];
/*If only one tx, only BW20, OFDM, BW80 and BW160 are used.*/
u8 ofdm_diff[MAX_RF_PATH][MAX_TX_COUNT];
u8 bw20_diff[MAX_RF_PATH][MAX_TX_COUNT];
u8 bw40_diff[MAX_RF_PATH][MAX_TX_COUNT];
};
enum intf_type { enum intf_type {
INTF_PCI = 0, INTF_PCI = 0,
INTF_USB = 1, INTF_USB = 1,
...@@ -499,7 +523,7 @@ enum rtl_var_map { ...@@ -499,7 +523,7 @@ enum rtl_var_map {
RTL_IMR_TIMEOUT1, /*Timeout interrupt 1 */ RTL_IMR_TIMEOUT1, /*Timeout interrupt 1 */
RTL_IMR_TXFOVW, /*Transmit FIFO Overflow */ RTL_IMR_TXFOVW, /*Transmit FIFO Overflow */
RTL_IMR_PSTIMEOUT, /*Power save time out interrupt */ RTL_IMR_PSTIMEOUT, /*Power save time out interrupt */
RTL_IMR_BcnInt, /*Beacon DMA Interrupt 0 */ RTL_IMR_BCNINT, /*Beacon DMA Interrupt 0 */
RTL_IMR_RXFOVW, /*Receive FIFO Overflow */ RTL_IMR_RXFOVW, /*Receive FIFO Overflow */
RTL_IMR_RDU, /*Receive Descriptor Unavailable */ RTL_IMR_RDU, /*Receive Descriptor Unavailable */
RTL_IMR_ATIMEND, /*For 92C,ATIM Window End Interrupt */ RTL_IMR_ATIMEND, /*For 92C,ATIM Window End Interrupt */
...@@ -514,7 +538,7 @@ enum rtl_var_map { ...@@ -514,7 +538,7 @@ enum rtl_var_map {
RTL_IMR_VIDOK, /*AC_VI DMA OK Interrupt */ RTL_IMR_VIDOK, /*AC_VI DMA OK Interrupt */
RTL_IMR_VODOK, /*AC_VO DMA Interrupt */ RTL_IMR_VODOK, /*AC_VO DMA Interrupt */
RTL_IMR_ROK, /*Receive DMA OK Interrupt */ RTL_IMR_ROK, /*Receive DMA OK Interrupt */
RTL_IBSS_INT_MASKS, /*(RTL_IMR_BcnInt | RTL_IMR_TBDOK | RTL_IBSS_INT_MASKS, /*(RTL_IMR_BCNINT | RTL_IMR_TBDOK |
* RTL_IMR_TBDER) */ * RTL_IMR_TBDER) */
RTL_IMR_C2HCMD, /*fw interrupt*/ RTL_IMR_C2HCMD, /*fw interrupt*/
...@@ -959,7 +983,7 @@ struct rtl_phy { ...@@ -959,7 +983,7 @@ struct rtl_phy {
/* Dual mac */ /* Dual mac */
bool need_iqk; bool need_iqk;
struct iqk_matrix_regs iqk_matrix_regsetting[IQK_MATRIX_SETTINGS_NUM]; struct iqk_matrix_regs iqk_matrix[IQK_MATRIX_SETTINGS_NUM];
bool rfpi_enable; bool rfpi_enable;
...@@ -1278,6 +1302,29 @@ struct rtl_security { ...@@ -1278,6 +1302,29 @@ struct rtl_security {
u8 *pairwise_key; u8 *pairwise_key;
}; };
#define ASSOCIATE_ENTRY_NUM 33
struct fast_ant_training {
u8 bssid[6];
u8 antsel_rx_keep_0;
u8 antsel_rx_keep_1;
u8 antsel_rx_keep_2;
u32 ant_sum[7];
u32 ant_cnt[7];
u32 ant_ave[7];
u8 fat_state;
u32 train_idx;
u8 antsel_a[ASSOCIATE_ENTRY_NUM];
u8 antsel_b[ASSOCIATE_ENTRY_NUM];
u8 antsel_c[ASSOCIATE_ENTRY_NUM];
u32 main_ant_sum[ASSOCIATE_ENTRY_NUM];
u32 aux_ant_sum[ASSOCIATE_ENTRY_NUM];
u32 main_ant_cnt[ASSOCIATE_ENTRY_NUM];
u32 aux_ant_cnt[ASSOCIATE_ENTRY_NUM];
u8 rx_idle_ant;
bool becomelinked;
};
struct rtl_dm { struct rtl_dm {
/*PHY status for Dynamic Management */ /*PHY status for Dynamic Management */
long entry_min_undec_sm_pwdb; long entry_min_undec_sm_pwdb;
...@@ -1314,9 +1361,24 @@ struct rtl_dm { ...@@ -1314,9 +1361,24 @@ struct rtl_dm {
bool disable_tx_int; bool disable_tx_int;
char ofdm_index[2]; char ofdm_index[2];
char cck_index; char cck_index;
char delta_power_index;
char delta_power_index_last;
char power_index_offset;
/*88e tx power tracking*/
u8 swing_idx_ofdm[2];
u8 swing_idx_ofdm_cur;
u8 swing_idx_ofdm_base;
bool swing_flag_ofdm;
u8 swing_idx_cck;
u8 swing_idx_cck_cur;
u8 swing_idx_cck_base;
bool swing_flag_cck;
/* DMSP */ /* DMSP */
bool supp_phymode_switch; bool supp_phymode_switch;
struct fast_ant_training fat_table;
}; };
#define EFUSE_MAX_LOGICAL_SIZE 256 #define EFUSE_MAX_LOGICAL_SIZE 256
...@@ -1349,6 +1411,9 @@ struct rtl_efuse { ...@@ -1349,6 +1411,9 @@ struct rtl_efuse {
u8 external_pa; u8 external_pa;
u8 dev_addr[6]; u8 dev_addr[6];
u8 wowlan_enable;
u8 antenna_div_cfg;
u8 antenna_div_type;
bool txpwr_fromeprom; bool txpwr_fromeprom;
u8 eeprom_crystalcap; u8 eeprom_crystalcap;
...@@ -1404,14 +1469,12 @@ struct rtl_ps_ctl { ...@@ -1404,14 +1469,12 @@ struct rtl_ps_ctl {
bool rfchange_inprogress; bool rfchange_inprogress;
bool swrf_processing; bool swrf_processing;
bool hwradiooff; bool hwradiooff;
/* /*
* just for PCIE ASPM * just for PCIE ASPM
* If it supports ASPM, Offset[560h] = 0x40, * If it supports ASPM, Offset[560h] = 0x40,
* otherwise Offset[560h] = 0x00. * otherwise Offset[560h] = 0x00.
* */ * */
bool support_aspm; bool support_aspm;
bool support_backdoor; bool support_backdoor;
/*for LPS */ /*for LPS */
...@@ -1472,7 +1535,7 @@ struct rtl_stats { ...@@ -1472,7 +1535,7 @@ struct rtl_stats {
s8 rssi; s8 rssi;
u8 signal; u8 signal;
u8 noise; u8 noise;
u16 rate; /*in 100 kbps */ u8 rate; /* hw desc rate */
u8 received_channel; u8 received_channel;
u8 control; u8 control;
u8 mask; u8 mask;
...@@ -1514,8 +1577,16 @@ struct rtl_stats { ...@@ -1514,8 +1577,16 @@ struct rtl_stats {
bool packet_toself; bool packet_toself;
bool packet_beacon; /*for rssi */ bool packet_beacon; /*for rssi */
char cck_adc_pwdb[4]; /*for rx path selection */ char cck_adc_pwdb[4]; /*for rx path selection */
u8 packet_report_type;
u32 macid;
u8 wake_match;
u32 bt_rx_rssi_percentage;
u32 macid_valid_entry[2];
}; };
struct rt_link_detect { struct rt_link_detect {
/* count for roaming */ /* count for roaming */
u32 bcn_rx_inperiod; u32 bcn_rx_inperiod;
...@@ -1568,7 +1639,8 @@ struct rtl_tcb_desc { ...@@ -1568,7 +1639,8 @@ struct rtl_tcb_desc {
/* early mode */ /* early mode */
u8 empkt_num; u8 empkt_num;
/* The max value by HW */ /* The max value by HW */
u32 empkt_len[5]; u32 empkt_len[10];
bool btx_enable_sw_calc_duration;
}; };
struct rtl_hal_ops { struct rtl_hal_ops {
...@@ -1781,7 +1853,6 @@ struct rtl_works { ...@@ -1781,7 +1853,6 @@ struct rtl_works {
struct timer_list dualmac_easyconcurrent_retrytimer; struct timer_list dualmac_easyconcurrent_retrytimer;
struct timer_list fw_clockoff_timer; struct timer_list fw_clockoff_timer;
struct timer_list fast_antenna_training_timer; struct timer_list fast_antenna_training_timer;
/*task */ /*task */
struct tasklet_struct irq_tasklet; struct tasklet_struct irq_tasklet;
struct tasklet_struct irq_prepare_bcn_tasklet; struct tasklet_struct irq_prepare_bcn_tasklet;
...@@ -1866,10 +1937,12 @@ struct dig_t { ...@@ -1866,10 +1937,12 @@ struct dig_t {
char back_val; char back_val;
char back_range_max; char back_range_max;
char back_range_min; char back_range_min;
u8 rx_gain_range_max; u8 rx_gain_max;
u8 rx_gain_range_min; u8 rx_gain_min;
u8 min_undec_pwdb_for_dm; u8 min_undec_pwdb_for_dm;
u8 rssi_val_min; u8 rssi_val_min;
u8 pre_cck_cca_thres;
u8 cur_cck_cca_thres;
u8 pre_cck_pd_state; u8 pre_cck_pd_state;
u8 cur_cck_pd_state; u8 cur_cck_pd_state;
u8 pre_cck_fa_state; u8 pre_cck_fa_state;
...@@ -1891,6 +1964,13 @@ struct dig_t { ...@@ -1891,6 +1964,13 @@ struct dig_t {
u8 backoff_enable_flag; u8 backoff_enable_flag;
char backoffval_range_max; char backoffval_range_max;
char backoffval_range_min; char backoffval_range_min;
u8 dig_min_0;
u8 dig_min_1;
bool media_connect_0;
bool media_connect_1;
u32 antdiv_rssi_max;
u32 rssi_max;
}; };
struct rtl_global_var { struct rtl_global_var {
...@@ -2228,6 +2308,7 @@ value to host byte ordering.*/ ...@@ -2228,6 +2308,7 @@ value to host byte ordering.*/
#define WLAN_FC_GET_TYPE(fc) (le16_to_cpu(fc) & IEEE80211_FCTL_FTYPE) #define WLAN_FC_GET_TYPE(fc) (le16_to_cpu(fc) & IEEE80211_FCTL_FTYPE)
#define WLAN_FC_GET_STYPE(fc) (le16_to_cpu(fc) & IEEE80211_FCTL_STYPE) #define WLAN_FC_GET_STYPE(fc) (le16_to_cpu(fc) & IEEE80211_FCTL_STYPE)
#define WLAN_FC_MORE_DATA(fc) (le16_to_cpu(fc) & IEEE80211_FCTL_MOREDATA) #define WLAN_FC_MORE_DATA(fc) (le16_to_cpu(fc) & IEEE80211_FCTL_MOREDATA)
#define rtl_dm(rtlpriv) (&((rtlpriv)->dm))
#define RT_RF_OFF_LEVL_ASPM BIT(0) /*PCI ASPM */ #define RT_RF_OFF_LEVL_ASPM BIT(0) /*PCI ASPM */
#define RT_RF_OFF_LEVL_CLK_REQ BIT(1) /*PCI clock request */ #define RT_RF_OFF_LEVL_CLK_REQ BIT(1) /*PCI clock request */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment