mirror of
https://github.com/RinCat/RTL88x2BU-Linux-Driver.git
synced 2026-01-19 10:26:35 +00:00
Update to 5.6.1.5
This commit is contained in:
220
hal/hal_com.c
220
hal/hal_com.c
@@ -2002,6 +2002,49 @@ exit:
|
||||
}
|
||||
#endif /* RTW_PER_CMD_SUPPORT_FW */
|
||||
|
||||
#ifdef CONFIG_LPS_ACK
|
||||
#define GET_C2H_LPS_STATUS_RPT_GET_ACTION(_data) LE_BITS_TO_1BYTE(((u8 *)(_data)), 0, 8)
|
||||
#define GET_C2H_LPS_STATUS_RPT_GET_STATUS_CODE(_data) LE_BITS_TO_1BYTE(((u8 *)(_data)) + 1, 0, 8)
|
||||
#define DBG_LPS_STATUS_RPT 0
|
||||
|
||||
int c2h_lps_status_rpt(PADAPTER adapter, u8 *data, u8 len)
|
||||
{
|
||||
struct pwrctrl_priv *pwrpriv = adapter_to_pwrctl(adapter);
|
||||
struct submit_ctx *lps_sctx = &pwrpriv->lps_ack_sctx;
|
||||
u8 action = 0;
|
||||
s8 status_code = 0;
|
||||
int ret = _FAIL;
|
||||
|
||||
if (len < LPS_STATUS_RPT_LEN) {
|
||||
RTW_WARN("%s len(%u) < %d\n", __func__, len, LPS_STATUS_RPT_LEN);
|
||||
goto exit;
|
||||
}
|
||||
|
||||
action = GET_C2H_LPS_STATUS_RPT_GET_ACTION(data);
|
||||
status_code = GET_C2H_LPS_STATUS_RPT_GET_STATUS_CODE(data);
|
||||
|
||||
/* action=0: report force leave null data status */
|
||||
switch (action) {
|
||||
case 0:
|
||||
pwrpriv->lps_ack_status = status_code;
|
||||
|
||||
if (DBG_LPS_STATUS_RPT)
|
||||
RTW_INFO("=== [C2H LPS Action(%d)] LPS Status Code:%d ===\n", action, status_code);
|
||||
|
||||
break;
|
||||
default:
|
||||
RTW_INFO("UnKnown Action(%d) for C2H LPS RPT\n", action);
|
||||
break;
|
||||
}
|
||||
|
||||
rtw_sctx_done(&lps_sctx);
|
||||
ret = _SUCCESS;
|
||||
|
||||
exit:
|
||||
return ret;
|
||||
}
|
||||
#endif /* CONFIG_LPS_ACK */
|
||||
|
||||
void rtw_hal_update_sta_wset(_adapter *adapter, struct sta_info *psta)
|
||||
{
|
||||
u8 w_set = 0;
|
||||
@@ -4574,7 +4617,7 @@ void rtw_hal_set_FwAoacRsvdPage_cmd(PADAPTER padapter, PRSVDPAGE_LOC rsvdpageloc
|
||||
}
|
||||
#ifdef CONFIG_PNO_SUPPORT
|
||||
else {
|
||||
|
||||
#ifndef RTW_HALMAC
|
||||
if (!pwrpriv->wowlan_in_resume) {
|
||||
RTW_INFO("NLO_INFO=%d\n", rsvdpageloc->LocPNOInfo);
|
||||
_rtw_memset(&u1H2CAoacRsvdPageParm, 0,
|
||||
@@ -4586,6 +4629,7 @@ void rtw_hal_set_FwAoacRsvdPage_cmd(PADAPTER padapter, PRSVDPAGE_LOC rsvdpageloc
|
||||
H2C_AOAC_RSVDPAGE_LOC_LEN,
|
||||
u1H2CAoacRsvdPageParm);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
#endif /* CONFIG_PNO_SUPPORT */
|
||||
#endif /* CONFIG_WOWLAN */
|
||||
@@ -4966,6 +5010,7 @@ static u8 rtw_hal_check_wow_ctrl(_adapter *adapter, u8 chk_type)
|
||||
#ifdef CONFIG_PNO_SUPPORT
|
||||
static u8 rtw_hal_check_pno_enabled(_adapter *adapter)
|
||||
{
|
||||
#ifndef RTW_HALMAC
|
||||
struct pwrctrl_priv *ppwrpriv = adapter_to_pwrctl(adapter);
|
||||
u8 res = 0, count = 0;
|
||||
u8 ret = _FALSE;
|
||||
@@ -4986,6 +5031,9 @@ static u8 rtw_hal_check_pno_enabled(_adapter *adapter)
|
||||
RTW_INFO("cmd: 0x81 REG_PNO_STATUS: ret(%d)\n", ret);
|
||||
}
|
||||
return ret;
|
||||
#else
|
||||
return _TRUE;
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -5592,6 +5640,7 @@ static u8 rtw_hal_set_global_info_cmd(_adapter *adapter, u8 group_alg, u8 pairwi
|
||||
static u8 rtw_hal_set_scan_offload_info_cmd(_adapter *adapter,
|
||||
PRSVDPAGE_LOC rsvdpageloc, u8 enable)
|
||||
{
|
||||
#ifndef RTW_HALMAC
|
||||
struct pwrctrl_priv *pwrpriv = adapter_to_pwrctl(adapter);
|
||||
struct hal_ops *pHalFunc = &adapter->hal_func;
|
||||
|
||||
@@ -5616,6 +5665,28 @@ static u8 rtw_hal_set_scan_offload_info_cmd(_adapter *adapter,
|
||||
H2C_D0_SCAN_OFFLOAD_INFO,
|
||||
H2C_SCAN_OFFLOAD_CTRL_LEN,
|
||||
u1H2CScanOffloadInfoParm);
|
||||
#else
|
||||
struct pwrctrl_priv *pwrpriv = adapter_to_pwrctl(adapter);
|
||||
u8 ret = 0;
|
||||
|
||||
u8 u1H2CNLOINFOInfoParm[H2C_NLO_INFO_LEN] = {0};
|
||||
|
||||
RTW_INFO("%s: loc_nlo_info: %d enable %d\n", __func__,
|
||||
rsvdpageloc->LocPNOInfo, enable);
|
||||
|
||||
SET_H2CCMD_NLO_FUN_EN(u1H2CNLOINFOInfoParm, enable);
|
||||
#ifdef CONFIG_LPS_LCLK
|
||||
SET_H2CCMD_NLO_PS_32K(u1H2CNLOINFOInfoParm, enable); //32K
|
||||
#endif
|
||||
SET_H2CCMD_NLO_LOC_NLO_INFO(u1H2CNLOINFOInfoParm,
|
||||
rsvdpageloc->LocPNOInfo);
|
||||
|
||||
ret = rtw_hal_fill_h2c_cmd(adapter,
|
||||
H2C_NLO_INFO,
|
||||
H2C_NLO_INFO_LEN,
|
||||
u1H2CNLOINFOInfoParm);
|
||||
#endif
|
||||
|
||||
return ret;
|
||||
}
|
||||
#endif /* CONFIG_PNO_SUPPORT */
|
||||
@@ -5632,15 +5703,15 @@ void rtw_hal_set_fw_wow_related_cmd(_adapter *padapter, u8 enable)
|
||||
u8 ret = _SUCCESS;
|
||||
|
||||
if(pregistry->suspend_type == FW_IPS_DISABLE_BBRF &&
|
||||
!check_fwstate(pmlmepriv, _FW_LINKED))
|
||||
!check_fwstate(pmlmepriv, _FW_LINKED))
|
||||
no_wake = 1;
|
||||
|
||||
RTW_PRINT("+%s()+: enable=%d\n", __func__, enable);
|
||||
RTW_PRINT("+%s()+: enable=%d\n", __func__, enable);
|
||||
|
||||
rtw_hal_set_wowlan_ctrl_cmd(padapter, enable, _FALSE);
|
||||
rtw_hal_set_wowlan_ctrl_cmd(padapter, enable, _FALSE);
|
||||
|
||||
if (enable) {
|
||||
if(!no_wake)
|
||||
if(!no_wake && !ppwrpriv->wowlan_pno_enable)
|
||||
rtw_hal_set_global_info_cmd(padapter,
|
||||
psecpriv->dot118021XGrpPrivacy,
|
||||
psecpriv->dot11PrivacyAlgrthm);
|
||||
@@ -8061,7 +8132,7 @@ static void rtw_hal_construct_ndp_info(_adapter *padapter,
|
||||
#endif /* CONFIG_IPV6 */
|
||||
|
||||
#ifdef CONFIG_PNO_SUPPORT
|
||||
static void rtw_hal_construct_ProbeReq(_adapter *padapter, u8 *pframe,
|
||||
void rtw_hal_construct_ProbeReq(_adapter *padapter, u8 *pframe,
|
||||
u32 *pLength, pno_ssid_t *ssid)
|
||||
{
|
||||
struct rtw_ieee80211_hdr *pwlanhdr;
|
||||
@@ -8127,6 +8198,11 @@ static void rtw_hal_construct_PNO_info(_adapter *padapter,
|
||||
pPnoInfoPkt += 3;
|
||||
_rtw_memcpy(pPnoInfoPkt, &pwrctl->pnlo_info->fast_scan_period, 1);
|
||||
|
||||
#ifdef RTW_HALMAC
|
||||
_rtw_memset(pPnoInfoPkt, 0xA5A5A5A5, 4);
|
||||
pPnoInfoPkt += 12;
|
||||
#else
|
||||
|
||||
pPnoInfoPkt += 4;
|
||||
_rtw_memcpy(pPnoInfoPkt, &pwrctl->pnlo_info->fast_scan_iterations, 4);
|
||||
|
||||
@@ -8134,6 +8210,7 @@ static void rtw_hal_construct_PNO_info(_adapter *padapter,
|
||||
_rtw_memcpy(pPnoInfoPkt, &pwrctl->pnlo_info->slow_scan_period, 4);
|
||||
|
||||
pPnoInfoPkt += 4;
|
||||
#endif
|
||||
_rtw_memcpy(pPnoInfoPkt, &pwrctl->pnlo_info->ssid_length, MAX_PNO_LIST_COUNT);
|
||||
|
||||
pPnoInfoPkt += MAX_PNO_LIST_COUNT;
|
||||
@@ -8147,12 +8224,18 @@ static void rtw_hal_construct_PNO_info(_adapter *padapter,
|
||||
|
||||
pPnoInfoPkt += MAX_HIDDEN_AP;
|
||||
|
||||
#ifdef RTW_HALMAC
|
||||
*pLength += 72;
|
||||
pPnoInfoPkt = pframe + 72;
|
||||
#else
|
||||
|
||||
/*
|
||||
SSID is located at 128th Byte in NLO info Page
|
||||
*/
|
||||
|
||||
*pLength += 128;
|
||||
pPnoInfoPkt = pframe + 128;
|
||||
#endif
|
||||
|
||||
for (i = 0; i < pwrctl->pnlo_info->ssid_num ; i++) {
|
||||
_rtw_memcpy(pPnoInfoPkt, &pwrctl->pno_ssid_list->node[i].SSID,
|
||||
@@ -8658,9 +8741,8 @@ void rtw_hal_set_wow_fw_rsvd_page(_adapter *adapter, u8 *pframe, u16 index,
|
||||
#endif
|
||||
} else {
|
||||
#ifdef CONFIG_PNO_SUPPORT
|
||||
if (pwrctl->wowlan_in_resume == _FALSE &&
|
||||
pwrctl->pno_inited == _TRUE) {
|
||||
|
||||
if (pwrctl->pno_inited == _TRUE) {
|
||||
#ifndef RTW_HALMAC
|
||||
/* Broadcast Probe Request */
|
||||
rsvd_page_loc->LocProbePacket = *page_num;
|
||||
|
||||
@@ -8686,7 +8768,7 @@ void rtw_hal_set_wow_fw_rsvd_page(_adapter *adapter, u8 *pframe, u16 index,
|
||||
#ifdef DBG_RSVD_PAGE_CFG
|
||||
RSVD_PAGE_CFG("WOW-ProbeReq", CurtPktPageNum, *page_num, 0);
|
||||
#endif
|
||||
|
||||
#endif
|
||||
/* Hidden SSID Probe Request */
|
||||
ssid_num = pwrctl->pnlo_info->hidden_ssid_num;
|
||||
|
||||
@@ -8728,7 +8810,7 @@ void rtw_hal_set_wow_fw_rsvd_page(_adapter *adapter, u8 *pframe, u16 index,
|
||||
#ifdef DBG_RSVD_PAGE_CFG
|
||||
RSVD_PAGE_CFG("WOW-PNOInfo", CurtPktPageNum, *page_num, 0);
|
||||
#endif
|
||||
|
||||
#ifndef RTW_HALMAC
|
||||
/* Scan Info Page */
|
||||
rsvd_page_loc->LocScanInfo = *page_num;
|
||||
RTW_INFO("LocScanInfo: %d\n", rsvd_page_loc->LocScanInfo);
|
||||
@@ -8743,6 +8825,8 @@ void rtw_hal_set_wow_fw_rsvd_page(_adapter *adapter, u8 *pframe, u16 index,
|
||||
#ifdef DBG_RSVD_PAGE_CFG
|
||||
RSVD_PAGE_CFG("WOW-ScanInfo", CurtPktPageNum, *page_num, *total_pkt_len);
|
||||
#endif
|
||||
#endif
|
||||
*total_pkt_len = index;
|
||||
}
|
||||
#endif /* CONFIG_PNO_SUPPORT */
|
||||
}
|
||||
@@ -9588,7 +9672,7 @@ static void rtw_hal_wow_enable(_adapter *adapter)
|
||||
rtw_hal_backup_rate(adapter);
|
||||
|
||||
rtw_hal_fw_dl(adapter, _TRUE);
|
||||
if(no_wake)
|
||||
if(no_wake && !pwrctl->wowlan_pno_enable)
|
||||
media_status_rpt = RT_MEDIA_DISCONNECT;
|
||||
else
|
||||
media_status_rpt = RT_MEDIA_CONNECT;
|
||||
@@ -9605,16 +9689,20 @@ static void rtw_hal_wow_enable(_adapter *adapter)
|
||||
if (res == _FAIL)
|
||||
RTW_PRINT("[WARNING] pause RX DMA fail\n");
|
||||
|
||||
#ifndef CONFIG_WOW_PATTERN_HW_CAM
|
||||
/* Reconfig RX_FF Boundary */
|
||||
rtw_hal_set_wow_rxff_boundary(adapter, _TRUE);
|
||||
if (pwrctl->wowlan_pno_enable) {
|
||||
#ifdef CONFIG_FW_MULTI_PORT_SUPPORT
|
||||
rtw_hal_set_default_port_id_cmd(adapter, 0);
|
||||
#endif
|
||||
} else {
|
||||
#ifndef CONFIG_WOW_PATTERN_HW_CAM
|
||||
/* Reconfig RX_FF Boundary */
|
||||
rtw_hal_set_wow_rxff_boundary(adapter, _TRUE);
|
||||
#endif
|
||||
|
||||
/* redownload wow pattern */
|
||||
if(!no_wake)
|
||||
rtw_hal_dl_pattern(adapter, 1);
|
||||
/* redownload wow pattern */
|
||||
if(!no_wake)
|
||||
rtw_hal_dl_pattern(adapter, 1);
|
||||
|
||||
if (!pwrctl->wowlan_pno_enable) {
|
||||
psta = rtw_get_stainfo(&adapter->stapriv, get_bssid(pmlmepriv));
|
||||
|
||||
if (psta != NULL) {
|
||||
@@ -9651,6 +9739,12 @@ static void rtw_hal_wow_enable(_adapter *adapter)
|
||||
|
||||
RTW_PRINT("wowlan_wake_reason: 0x%02x\n",
|
||||
pwrctl->wowlan_wake_reason);
|
||||
|
||||
#if defined(RTW_HALMAC) && defined(CONFIG_PNO_SUPPORT)
|
||||
if(pwrctl->wowlan_pno_enable)
|
||||
rtw_halmac_pno_scanoffload(adapter->dvobj, 1);
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_GTK_OL_DBG
|
||||
dump_sec_cam(RTW_DBGDUMP, adapter);
|
||||
dump_sec_cam_cache(RTW_DBGDUMP, adapter);
|
||||
@@ -9736,10 +9830,17 @@ static void rtw_hal_wow_disable(_adapter *adapter)
|
||||
|
||||
RTW_PRINT("%s, WOWLAN_DISABLE\n", __func__);
|
||||
|
||||
if(registry_par->suspend_type == FW_IPS_DISABLE_BBRF && !check_fwstate(pmlmepriv, _FW_LINKED)) {
|
||||
if(registry_par->suspend_type == FW_IPS_DISABLE_BBRF
|
||||
&& !check_fwstate(pmlmepriv, _FW_LINKED)
|
||||
&& !pwrctl->wowlan_pno_enable) {
|
||||
RTW_INFO("FW_IPS_DISABLE_BBRF resume\n");
|
||||
return;
|
||||
}
|
||||
|
||||
#if defined(RTW_HALMAC) && defined(CONFIG_PNO_SUPPORT)
|
||||
if(pwrctl->wowlan_pno_enable)
|
||||
rtw_halmac_pno_scanoffload(adapter->dvobj, 0);
|
||||
#endif
|
||||
|
||||
if (!pwrctl->wowlan_pno_enable) {
|
||||
psta = rtw_get_stainfo(&adapter->stapriv, get_bssid(pmlmepriv));
|
||||
@@ -9772,34 +9873,36 @@ static void rtw_hal_wow_disable(_adapter *adapter)
|
||||
RTW_INFO("[Error]%s: disable WOW cmd fail\n!!", __func__);
|
||||
rtw_hal_force_enable_rxdma(adapter);
|
||||
}
|
||||
if (pwrctl->wowlan_pno_enable) {
|
||||
rtw_hal_release_rx_dma(adapter);
|
||||
} else {
|
||||
rtw_hal_gate_bb(adapter, _TRUE);
|
||||
|
||||
rtw_hal_gate_bb(adapter, _TRUE);
|
||||
res = rtw_hal_pause_rx_dma(adapter);
|
||||
if (res == _FAIL)
|
||||
RTW_PRINT("[WARNING] pause RX DMA fail\n");
|
||||
|
||||
res = rtw_hal_pause_rx_dma(adapter);
|
||||
if (res == _FAIL)
|
||||
RTW_PRINT("[WARNING] pause RX DMA fail\n");
|
||||
/* clean HW pattern match */
|
||||
rtw_hal_dl_pattern(adapter, 0);
|
||||
|
||||
/* clean HW pattern match */
|
||||
rtw_hal_dl_pattern(adapter, 0);
|
||||
#ifndef CONFIG_WOW_PATTERN_HW_CAM
|
||||
/* config RXFF boundary to original */
|
||||
rtw_hal_set_wow_rxff_boundary(adapter, _FALSE);
|
||||
#endif
|
||||
rtw_hal_release_rx_dma(adapter);
|
||||
|
||||
#ifndef CONFIG_WOW_PATTERN_HW_CAM
|
||||
/* config RXFF boundary to original */
|
||||
rtw_hal_set_wow_rxff_boundary(adapter, _FALSE);
|
||||
#endif
|
||||
rtw_hal_release_rx_dma(adapter);
|
||||
#if defined(CONFIG_RTL8188E)
|
||||
if (IS_HARDWARE_TYPE_8188E(adapter))
|
||||
rtw_hal_enable_tx_report(adapter);
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_RTL8188E)
|
||||
if (IS_HARDWARE_TYPE_8188E(adapter))
|
||||
rtw_hal_enable_tx_report(adapter);
|
||||
#endif
|
||||
|
||||
if ((pwrctl->wowlan_wake_reason != RX_DISASSOC) &&
|
||||
(pwrctl->wowlan_wake_reason != RX_DEAUTH) &&
|
||||
(pwrctl->wowlan_wake_reason != FW_DECISION_DISCONNECT)) {
|
||||
rtw_hal_get_aoac_rpt(adapter);
|
||||
rtw_hal_update_sw_security_info(adapter);
|
||||
if ((pwrctl->wowlan_wake_reason != RX_DISASSOC) &&
|
||||
(pwrctl->wowlan_wake_reason != RX_DEAUTH) &&
|
||||
(pwrctl->wowlan_wake_reason != FW_DECISION_DISCONNECT)) {
|
||||
rtw_hal_get_aoac_rpt(adapter);
|
||||
rtw_hal_update_sw_security_info(adapter);
|
||||
}
|
||||
}
|
||||
|
||||
rtw_hal_fw_dl(adapter, _FALSE);
|
||||
|
||||
#ifdef CONFIG_GPIO_WAKEUP
|
||||
@@ -11493,13 +11596,33 @@ s32 rtw_hal_set_wifi_btc_port_id_cmd(_adapter *adapter)
|
||||
}
|
||||
#endif
|
||||
|
||||
#define LPS_ACTIVE_TIMEOUT 10 /*number of times*/
|
||||
#define LPS_ACTIVE_TIMEOUT 50 /*number of times*/
|
||||
void rtw_lps_state_chk(_adapter *adapter, u8 ps_mode)
|
||||
{
|
||||
if (ps_mode == PS_MODE_ACTIVE) {
|
||||
u8 ps_ready = _FALSE;
|
||||
s8 leave_wait_count = LPS_ACTIVE_TIMEOUT;
|
||||
struct pwrctrl_priv *pwrpriv = adapter_to_pwrctl(adapter);
|
||||
struct mlme_ext_priv *pmlmeext = &adapter->mlmeextpriv;
|
||||
struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
|
||||
struct sta_priv *pstapriv = &adapter->stapriv;
|
||||
struct sta_info *psta = NULL;
|
||||
u8 ps_ready = _FALSE;
|
||||
s8 leave_wait_count = LPS_ACTIVE_TIMEOUT;
|
||||
|
||||
if (ps_mode == PS_MODE_ACTIVE) {
|
||||
#ifdef CONFIG_LPS_ACK
|
||||
if (rtw_sctx_wait(&pwrpriv->lps_ack_sctx, __func__)) {
|
||||
if (pwrpriv->lps_ack_status > 0) {
|
||||
psta = rtw_get_stainfo(pstapriv, pmlmeinfo->network.MacAddress);
|
||||
if (psta != NULL) {
|
||||
if(issue_nulldata(adapter, psta->cmn.mac_addr, PS_MODE_ACTIVE, 3, 1) == _FAIL)
|
||||
RTW_INFO(FUNC_ADPT_FMT" LPS state sync not yet finished.\n", FUNC_ADPT_ARG(adapter));
|
||||
}
|
||||
}
|
||||
} else {
|
||||
RTW_WARN("LPS sctx query timeout, operation abort!!\n");
|
||||
return;
|
||||
}
|
||||
pwrpriv->lps_ack_status = -1;
|
||||
#else
|
||||
do {
|
||||
if ((rtw_read8(adapter, REG_TCR) & BIT_PWRBIT_OW_EN) == 0) {
|
||||
ps_ready = _TRUE;
|
||||
@@ -11509,9 +11632,10 @@ void rtw_lps_state_chk(_adapter *adapter, u8 ps_mode)
|
||||
} while (leave_wait_count--);
|
||||
|
||||
if (ps_ready == _FALSE) {
|
||||
RTW_ERR(FUNC_ADPT_FMT" PS_MODE_ACTIVE check failed\n", FUNC_ADPT_ARG(adapter));
|
||||
rtw_warn_on(1);
|
||||
RTW_WARN(FUNC_ADPT_FMT" Power Bit Control is still in HW!\n", FUNC_ADPT_ARG(adapter));
|
||||
return;
|
||||
}
|
||||
#endif /* CONFIG_LPS_ACK */
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -74,6 +74,7 @@ typedef enum _C2H_EVT {
|
||||
#ifdef RTW_PER_CMD_SUPPORT_FW
|
||||
C2H_PER_RATE_RPT = 0x2c,
|
||||
#endif
|
||||
C2H_LPS_STATUS_RPT = 0x32,
|
||||
C2H_DEFEATURE_RSVD = 0xFD,
|
||||
C2H_EXTEND = 0xff,
|
||||
} C2H_EVT;
|
||||
@@ -120,4 +121,10 @@ int c2h_customer_str_rpt_2_hdl(_adapter *adapter, u8 *data, u8 len);
|
||||
int c2h_per_rate_rpt_hdl(_adapter *adapter, u8 *data, u8 len);
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_LPS_ACK
|
||||
/* C2H_LPS_STATUS_RPT, 0x32 */
|
||||
#define LPS_STATUS_RPT_LEN 2
|
||||
int c2h_lps_status_rpt(PADAPTER adapter, u8 *data, u8 len);
|
||||
#endif /* CONFIG_LPS_ACK */
|
||||
|
||||
#endif /* __COMMON_C2H_H__ */
|
||||
|
||||
@@ -1068,6 +1068,11 @@ s32 c2h_handler(_adapter *adapter, u8 id, u8 seq, u8 plen, u8 *payload)
|
||||
case C2H_PER_RATE_RPT:
|
||||
c2h_per_rate_rpt_hdl(adapter, payload, plen);
|
||||
break;
|
||||
#endif
|
||||
#ifdef CONFIG_LPS_ACK
|
||||
case C2H_LPS_STATUS_RPT:
|
||||
c2h_lps_status_rpt(adapter, payload, plen);
|
||||
break;
|
||||
#endif
|
||||
case C2H_EXTEND:
|
||||
sub_id = payload[0];
|
||||
|
||||
@@ -952,6 +952,12 @@ void halrf_support_ability_debug(void *dm_void, char input[][16], u32 *_used,
|
||||
"04. (( %s ))HAL_RF_TXGAPK\n",
|
||||
((rf->rf_supportability & HAL_RF_TXGAPK) ? ("V") :
|
||||
(".")));
|
||||
#if (RTL8192F_SUPPORT == 1)
|
||||
PDM_SNPF(out_len, used, output + used, out_len - used,
|
||||
"07. (( %s ))HAL_2GBAND_SHIFT\n",
|
||||
((rf->rf_supportability & HAL_2GBAND_SHIFT) ? ("V") :
|
||||
(".")));
|
||||
#endif
|
||||
} else {
|
||||
if (dm_value[1] == 1) /* enable */
|
||||
rf->rf_supportability |= BIT(dm_value[0]);
|
||||
@@ -968,6 +974,48 @@ void halrf_support_ability_debug(void *dm_void, char input[][16], u32 *_used,
|
||||
*_out_len = out_len;
|
||||
}
|
||||
|
||||
void halrf_support_band_shift_debug(void *dm_void, char input[][16], u32 *_used,
|
||||
char *output, u32 *_out_len)
|
||||
{
|
||||
struct dm_struct *dm = (struct dm_struct *)dm_void;
|
||||
struct _hal_rf_ *rf = &dm->rf_table;
|
||||
//u32 band_value[2] = {00};
|
||||
u32 dm_value[10] = {0};
|
||||
u32 used = *_used;
|
||||
u32 out_len = *_out_len;
|
||||
u8 i;
|
||||
|
||||
#if (RTL8192F_SUPPORT == 1)
|
||||
for (i = 0; i < 7; i++)
|
||||
if (input[i + 1])
|
||||
PHYDM_SSCANF(input[i + 2], DCMD_DECIMAL, &dm_value[i]);
|
||||
|
||||
if (!(rf->rf_supportability & HAL_2GBAND_SHIFT)) {
|
||||
PDM_SNPF(out_len, used, output + used, out_len - used,
|
||||
"\nCurr-RF_supportability[07. (( . ))HAL_2GBAND_SHIFT]\nNo RF Band Shift,default: 2.4G!\n");
|
||||
} else {
|
||||
if (dm_value[0] == 01) {
|
||||
rf->rf_shift_band = HAL_RF_2P3;
|
||||
PDM_SNPF(out_len, used, output + used, out_len - used,
|
||||
"\n[rf_shift_band] = %d\nRF Band Shift to 2.3G!\n",
|
||||
rf->rf_shift_band);
|
||||
} else if (dm_value[0] == 02) {
|
||||
rf->rf_shift_band = HAL_RF_2P5;
|
||||
PDM_SNPF(out_len, used, output + used, out_len - used,
|
||||
"\n[rf_shift_band] = %d\nRF Band Shift to 2.5G!\n",
|
||||
rf->rf_shift_band);
|
||||
} else {
|
||||
rf->rf_shift_band = HAL_RF_2P4;
|
||||
PDM_SNPF(out_len, used, output + used, out_len - used,
|
||||
"\n[rf_shift_band] = %d\nNo RF Band Shift,default: 2.4G!\n",
|
||||
rf->rf_shift_band);
|
||||
}
|
||||
}
|
||||
*_used = used;
|
||||
*_out_len = out_len;
|
||||
#endif
|
||||
}
|
||||
|
||||
void halrf_cmn_info_init(void *dm_void, enum halrf_cmninfo_init cmn_info,
|
||||
u32 value)
|
||||
{
|
||||
@@ -1134,6 +1182,18 @@ void halrf_supportability_init_mp(void *dm_void)
|
||||
0;
|
||||
break;
|
||||
#endif
|
||||
#if (RTL8192F_SUPPORT == 1)
|
||||
case ODM_RTL8192F:
|
||||
rf->rf_supportability =
|
||||
HAL_RF_TX_PWR_TRACK |
|
||||
HAL_RF_IQK |
|
||||
HAL_RF_LCK |
|
||||
HAL_2GBAND_SHIFT |
|
||||
/*@HAL_RF_DPK |*/
|
||||
/*@HAL_RF_TXGAPK |*/
|
||||
0;
|
||||
break;
|
||||
#endif
|
||||
#if (RTL8195B_SUPPORT == 1)
|
||||
case ODM_RTL8195B:
|
||||
rf->rf_supportability =
|
||||
@@ -1209,6 +1269,18 @@ void halrf_supportability_init(void *dm_void)
|
||||
0;
|
||||
break;
|
||||
#endif
|
||||
#if (RTL8192F_SUPPORT == 1)
|
||||
case ODM_RTL8192F:
|
||||
rf->rf_supportability =
|
||||
HAL_RF_TX_PWR_TRACK |
|
||||
HAL_RF_IQK |
|
||||
HAL_RF_LCK |
|
||||
HAL_2GBAND_SHIFT |
|
||||
/*@HAL_RF_DPK |*/
|
||||
/*@HAL_RF_TXGAPK |*/
|
||||
0;
|
||||
break;
|
||||
#endif
|
||||
#if (RTL8195B_SUPPORT == 1)
|
||||
case ODM_RTL8195B:
|
||||
rf->rf_supportability =
|
||||
|
||||
@@ -371,6 +371,7 @@ enum halrf_func_idx { /*F_XXX = PHYDM XXX function*/
|
||||
RF03_DPK = 3,
|
||||
RF04_TXGAPK = 4,
|
||||
RF05_DACK = 5,
|
||||
RF07_2GBAND_SHIFT = 7
|
||||
};
|
||||
|
||||
enum halrf_ability {
|
||||
@@ -379,7 +380,14 @@ enum halrf_ability {
|
||||
HAL_RF_LCK = BIT(RF02_LCK),
|
||||
HAL_RF_DPK = BIT(RF03_DPK),
|
||||
HAL_RF_TXGAPK = BIT(RF04_TXGAPK),
|
||||
HAL_RF_DACK = BIT(RF05_DACK)
|
||||
HAL_RF_DACK = BIT(RF05_DACK),
|
||||
HAL_2GBAND_SHIFT = BIT(RF07_2GBAND_SHIFT)
|
||||
};
|
||||
|
||||
enum halrf_shift_band {
|
||||
HAL_RF_2P4 = 0,
|
||||
HAL_RF_2P3 = 1,
|
||||
HAL_RF_2P5 = 2
|
||||
};
|
||||
|
||||
enum halrf_dbg_comp {
|
||||
@@ -430,6 +438,7 @@ struct _hal_rf_ {
|
||||
|
||||
/*update*/
|
||||
u32 rf_supportability;
|
||||
u8 rf_shift_band;
|
||||
|
||||
u8 eeprom_thermal;
|
||||
u8 dpk_en; /*Enable Function DPK OFF/ON = 0/1*/
|
||||
@@ -468,6 +477,8 @@ u8 halrf_match_iqk_version(void *dm_void);
|
||||
|
||||
void halrf_support_ability_debug(void *dm_void, char input[][16], u32 *_used,
|
||||
char *output, u32 *_out_len);
|
||||
void halrf_support_band_shift_debug(void *dm_void, char input[][16], u32 *_used,
|
||||
char *output, u32 *_out_len);
|
||||
|
||||
void halrf_cmn_info_init(void *dm_void, enum halrf_cmninfo_init cmn_info,
|
||||
u32 value);
|
||||
|
||||
@@ -139,6 +139,7 @@ enum halrf_CMD_ID {
|
||||
HALRF_IQK_INFO,
|
||||
HALRF_IQK,
|
||||
HALRF_IQK_DEBUG,
|
||||
HAL_BAND_SHIFT,
|
||||
};
|
||||
|
||||
struct halrf_command halrf_cmd_ary[] = {
|
||||
@@ -149,6 +150,7 @@ struct halrf_command halrf_cmd_ary[] = {
|
||||
{"iqk_info", HALRF_IQK_INFO},
|
||||
{"iqk", HALRF_IQK},
|
||||
{"iqk_dbg", HALRF_IQK_DEBUG},
|
||||
{"band_shift", HAL_BAND_SHIFT},
|
||||
};
|
||||
|
||||
void halrf_cmd_parser(void *dm_void, char input[][16], u32 *_used, char *output,
|
||||
@@ -192,6 +194,10 @@ void halrf_cmd_parser(void *dm_void, char input[][16], u32 *_used, char *output,
|
||||
halrf_support_ability_debug(dm, &input[0], &used, output,
|
||||
&out_len);
|
||||
break;
|
||||
case HAL_BAND_SHIFT:
|
||||
halrf_support_band_shift_debug(dm, &input[0], &used, output,
|
||||
&out_len);
|
||||
break;
|
||||
case HALRF_DBG_COMP:
|
||||
halrf_debug_trace(dm, &input[0], &used, output, &out_len);
|
||||
break;
|
||||
|
||||
@@ -318,13 +318,13 @@ void _iqk_restore_rf_8822b(struct dm_struct *dm, u32 *backup_rf_reg,
|
||||
odm_set_rf_reg(dm, RF_PATH_B, RF_0xef, MASK20BITS, 0x0);
|
||||
/*0xdf[4]=0*/
|
||||
_iqk_rf_set_check_8822b(dm, RF_PATH_A, 0xdf,
|
||||
RF_backup[0][RF_PATH_A] & (!BIT(4)));
|
||||
RF_backup[0][RF_PATH_A] & (~BIT(4)));
|
||||
_iqk_rf_set_check_8822b(dm, RF_PATH_B, 0xdf,
|
||||
RF_backup[0][RF_PATH_B] & (!BIT(4)));
|
||||
RF_backup[0][RF_PATH_B] & (~BIT(4)));
|
||||
|
||||
#if 0
|
||||
/*odm_set_rf_reg(dm, RF_PATH_A, RF_0xdf, MASK20BITS, RF_backup[0][RF_PATH_A] & (!BIT(4)));*/
|
||||
/*odm_set_rf_reg(dm, RF_PATH_B, RF_0xdf, MASK20BITS, RF_backup[0][RF_PATH_B] & (!BIT(4)));*/
|
||||
/*odm_set_rf_reg(dm, RF_PATH_A, RF_0xdf, MASK20BITS, RF_backup[0][RF_PATH_A] & (~BIT(4)));*/
|
||||
/*odm_set_rf_reg(dm, RF_PATH_B, RF_0xdf, MASK20BITS, RF_backup[0][RF_PATH_B] & (~BIT(4)));*/
|
||||
#endif
|
||||
|
||||
for (i = 1; i < RF_REG_NUM_8822B; i++) {
|
||||
@@ -443,11 +443,11 @@ void _iqk_reload_iqk_setting_8822b(struct dm_struct *dm, u8 ch,
|
||||
odm_write_4byte(dm, 0x1bd8, data);
|
||||
}
|
||||
if (idx == 0) {
|
||||
report = !(iqk->iqk_fail_report[ch][path][idx]);
|
||||
report = ~(iqk->iqk_fail_report[ch][path][idx]);
|
||||
odm_set_bb_reg(dm, iqk_apply[path],
|
||||
BIT(0), report);
|
||||
} else {
|
||||
report = !(iqk->iqk_fail_report[ch][path][idx]);
|
||||
report = ~(iqk->iqk_fail_report[ch][path][idx]);
|
||||
odm_set_bb_reg(dm, iqk_apply[path],
|
||||
BIT(10), report);
|
||||
}
|
||||
@@ -528,7 +528,7 @@ void _iqk_rf_setting_8822b(struct dm_struct *dm)
|
||||
/*0xdf:B11 = 1,B4 = 0, B1 = 1*/
|
||||
tmp = odm_get_rf_reg(dm, (enum rf_path)path,
|
||||
RF_0xdf, MASK20BITS);
|
||||
tmp = (tmp & (!BIT(4))) | BIT(1) | BIT(11);
|
||||
tmp = (tmp & (~BIT(4))) | BIT(1) | BIT(11);
|
||||
_iqk_rf_set_check_8822b(dm, (enum rf_path)path, 0xdf, tmp);
|
||||
#if 0
|
||||
/*odm_set_rf_reg(dm, (enum rf_path)path, RF_0xdf, MASK20BITS, tmp);*/
|
||||
|
||||
@@ -2809,6 +2809,11 @@ void odm_cancel_all_timers(struct dm_struct *dm)
|
||||
#if (defined(CONFIG_PHYDM_ANTENNA_DIVERSITY))
|
||||
odm_ant_div_timers(dm, CANCEL_ANTDIV_TIMMER);
|
||||
#endif
|
||||
#ifdef PHYDM_TDMA_DIG_SUPPORT
|
||||
#ifdef IS_USE_NEW_TDMA
|
||||
phydm_tdma_dig_timers(dm, CANCEL_TDMA_DIG_TIMMER);
|
||||
#endif
|
||||
#endif
|
||||
#ifdef CONFIG_ADAPTIVE_SOML
|
||||
phydm_adaptive_soml_timers(dm, CANCEL_SOML_TIMMER);
|
||||
#endif
|
||||
@@ -2837,6 +2842,11 @@ void odm_release_all_timers(struct dm_struct *dm)
|
||||
#if (defined(CONFIG_PHYDM_ANTENNA_DIVERSITY))
|
||||
odm_ant_div_timers(dm, RELEASE_ANTDIV_TIMMER);
|
||||
#endif
|
||||
#ifdef PHYDM_TDMA_DIG_SUPPORT
|
||||
#ifdef IS_USE_NEW_TDMA
|
||||
phydm_tdma_dig_timers(dm, RELEASE_TDMA_DIG_TIMMER);
|
||||
#endif
|
||||
#endif
|
||||
#ifdef CONFIG_ADAPTIVE_SOML
|
||||
phydm_adaptive_soml_timers(dm, RELEASE_SOML_TIMMER);
|
||||
#endif
|
||||
|
||||
@@ -250,7 +250,7 @@ void phydm_fahm_set_th_by_igi(void *dm_void, u8 igi)
|
||||
odm_set_bb_reg(dm, R_0x970, MASKDWORD, val);
|
||||
val = BYTE_2_DWORD(f_th[7], f_th[6], f_th[5], f_th[4]);
|
||||
odm_set_bb_reg(dm, R_0x974, MASKDWORD, val);
|
||||
BYTE_2_DWORD(0, f_th[10], f_th[9], f_th[8]);
|
||||
val = BYTE_2_DWORD(0, f_th[10], f_th[9], f_th[8]);
|
||||
odm_set_bb_reg(dm, R_0x978, 0xffffff, val);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -776,9 +776,9 @@ void phydm_dig_init(void *dm_void)
|
||||
|
||||
#ifdef PHYDM_TDMA_DIG_SUPPORT
|
||||
#if (DM_ODM_SUPPORT_TYPE & (ODM_WIN | ODM_CE))
|
||||
dm->original_dig_restore = true;
|
||||
dm->tdma_dig_timer_ms = DIG_TIMER_MS;
|
||||
dm->tdma_dig_state_number = DIG_NUM_OF_TDMA_STATES;
|
||||
dm->original_dig_restore = true;
|
||||
dm->tdma_dig_state_number = DIG_NUM_OF_TDMA_STATES;
|
||||
dm->tdma_dig_timer_ms = DIG_TIMER_MS;
|
||||
#endif
|
||||
#endif
|
||||
#ifdef CFG_DIG_DAMPING_CHK
|
||||
@@ -1666,9 +1666,9 @@ void phydm_tdma_dig_timer_check(void *dm_void)
|
||||
dig_t->tdma_dig_cnt == dig_t->pre_tdma_dig_cnt) {
|
||||
if (dm->support_ability & ODM_BB_DIG) {
|
||||
#ifdef IS_USE_NEW_TDMA
|
||||
if (dm->support_ic_type &
|
||||
(ODM_RTL8198F | ODM_RTL8814B | ODM_RTL8822B |
|
||||
ODM_RTL8812F)) {
|
||||
if (dm->support_ic_type & (ODM_RTL8198F | ODM_RTL8814B |
|
||||
ODM_RTL8812F | ODM_RTL8822B | ODM_RTL8192F |
|
||||
ODM_RTL8821C)) {
|
||||
PHYDM_DBG(dm, DBG_DIG,
|
||||
"Check fail, Restart timer\n\n");
|
||||
phydm_false_alarm_counter_reset(dm);
|
||||
@@ -1676,7 +1676,7 @@ void phydm_tdma_dig_timer_check(void *dm_void)
|
||||
dm->tdma_dig_timer_ms);
|
||||
} else {
|
||||
PHYDM_DBG(dm, DBG_DIG,
|
||||
"Not 98F/14B/12F no SW timer\n");
|
||||
"Not 98F/14B/12F/22B/92F/21C no SW timer\n");
|
||||
}
|
||||
#else
|
||||
/*@if interrupt mask info is got.*/
|
||||
@@ -1724,12 +1724,12 @@ void phydm_tdma_dig(void *dm_void)
|
||||
u32 reg_c50 = 0;
|
||||
|
||||
#if (RTL8198F_SUPPORT || RTL8814B_SUPPORT || RTL8812F_SUPPORT ||\
|
||||
RTL8822B_SUPPORT)
|
||||
RTL8822B_SUPPORT || RTL8192F_SUPPORT || RTL8821C_SUPPORT)
|
||||
#ifdef IS_USE_NEW_TDMA
|
||||
if (dm->support_ic_type &
|
||||
(ODM_RTL8198F | ODM_RTL8814B | ODM_RTL8812F |
|
||||
ODM_RTL8822B)) {
|
||||
PHYDM_DBG(dm, DBG_DIG, "98F/14B/12F, new tdma\n");
|
||||
(ODM_RTL8198F | ODM_RTL8814B | ODM_RTL8812F | ODM_RTL8822B |
|
||||
ODM_RTL8192F | ODM_RTL8821C)) {
|
||||
PHYDM_DBG(dm, DBG_DIG, "98F/14B/12F/22B/92F/21C, new tdma\n");
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
@@ -1940,6 +1940,25 @@ void phydm_false_alarm_counter_reset(void *dm_void)
|
||||
dig_t->fa_end_timestamp = timestamp;
|
||||
}
|
||||
|
||||
void phydm_tdma_dig_para_upd(void *dm_void, enum upd_type type, u8 input)
|
||||
{
|
||||
struct dm_struct *dm = (struct dm_struct *)dm_void;
|
||||
|
||||
switch (type) {
|
||||
case ENABLE_TDMA:
|
||||
dm->original_dig_restore = !((boolean)input);
|
||||
break;
|
||||
case MODE_DECISION:
|
||||
if (input == MODE_PERFORMANCE)
|
||||
dm->tdma_dig_state_number = DIG_NUM_OF_TDMA_STATES + 2;
|
||||
else if (input == MODE_COVERAGE)
|
||||
dm->tdma_dig_state_number = DIG_NUM_OF_TDMA_STATES;
|
||||
else
|
||||
dm->tdma_dig_state_number = DIG_NUM_OF_TDMA_STATES;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef IS_USE_NEW_TDMA
|
||||
void phydm_tdma_dig_timers(void *dm_void, u8 state)
|
||||
{
|
||||
@@ -2009,24 +2028,6 @@ u8 get_new_igi_bound(struct dm_struct *dm, u8 igi, u32 fa_cnt, u8 *rx_gain_max,
|
||||
#endif
|
||||
#endif
|
||||
PHYDM_DBG(dm, DBG_DIG, "First connect: foce IGI=0x%x\n", igi);
|
||||
} else if (dm->is_linked) {
|
||||
PHYDM_DBG(dm, DBG_DIG, "Adjust IGI @ linked\n");
|
||||
/* @4 Abnormal # beacon case */
|
||||
/*#if (DM_ODM_SUPPORT_TYPE & (ODM_WIN | ODM_CE))
|
||||
*if (dm->phy_dbg_info.num_qry_beacon_pkt < 5 &&
|
||||
*fa_cnt < DM_DIG_FA_TH1 && dm->bsta_state &&
|
||||
*dm->support_ic_type != ODM_RTL8723D) {
|
||||
*rx_gain_min = 0x1c;
|
||||
*igi = *rx_gain_min;
|
||||
*PHYDM_DBG(dm, DBG_DIG, "Beacon_num=%d,force igi=0x%x\n",
|
||||
*dm->phy_dbg_info.num_qry_beacon_pkt, igi);
|
||||
* } else {
|
||||
*igi = phydm_new_igi_by_fa(dm, igi, fa_cnt, step);
|
||||
*}
|
||||
*#else
|
||||
*igi = phydm_new_igi_by_fa(dm, igi, fa_cnt, step);
|
||||
*#endif
|
||||
*/
|
||||
} else {
|
||||
/* @2 Before link */
|
||||
PHYDM_DBG(dm, DBG_DIG, "Adjust IGI before link\n");
|
||||
|
||||
@@ -92,6 +92,17 @@ enum phydm_dig_mode {
|
||||
PHYDM_DIG_COVERAGE_MODE = 1,
|
||||
};
|
||||
|
||||
#ifdef PHYDM_TDMA_DIG_SUPPORT
|
||||
enum upd_type {
|
||||
ENABLE_TDMA,
|
||||
MODE_DECISION
|
||||
};
|
||||
|
||||
enum tdma_opmode {
|
||||
MODE_PERFORMANCE = 1,
|
||||
MODE_COVERAGE = 2
|
||||
};
|
||||
|
||||
#ifdef IS_USE_NEW_TDMA
|
||||
enum tdma_dig_timer {
|
||||
INIT_TDMA_DIG_TIMMER,
|
||||
@@ -105,6 +116,7 @@ enum tdma_dig_state {
|
||||
NORMAL_DIG = 2
|
||||
};
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/*@--------------------Define Struct-----------------------------------*/
|
||||
#ifdef CFG_DIG_DAMPING_CHK
|
||||
@@ -145,7 +157,8 @@ struct phydm_dig_struct {
|
||||
u16 fa_th[3];
|
||||
#if (RTL8822B_SUPPORT || RTL8197F_SUPPORT || RTL8821C_SUPPORT ||\
|
||||
RTL8198F_SUPPORT || RTL8192F_SUPPORT || RTL8195B_SUPPORT ||\
|
||||
RTL8822C_SUPPORT || RTL8814B_SUPPORT || RTL8721D_SUPPORT)
|
||||
RTL8822C_SUPPORT || RTL8814B_SUPPORT || RTL8721D_SUPPORT ||\
|
||||
RTL8812F_SUPPORT || RTL8197G_SUPPORT)
|
||||
u8 rf_gain_idx;
|
||||
u8 agc_table_idx;
|
||||
u8 big_jump_lmt[16];
|
||||
@@ -291,6 +304,8 @@ void phydm_false_alarm_counter_acc(void *dm_void, boolean rssi_dump_en);
|
||||
|
||||
void phydm_false_alarm_counter_acc_reset(void *dm_void);
|
||||
|
||||
void phydm_tdma_dig_para_upd(void *dm_void, enum upd_type type, u8 input);
|
||||
|
||||
#ifdef IS_USE_NEW_TDMA
|
||||
void phydm_tdma_dig_timers(void *dm_void, u8 state);
|
||||
|
||||
|
||||
@@ -51,12 +51,13 @@
|
||||
|
||||
/*@#define PHYDM_TDMA_DIG_SUPPORT*/
|
||||
|
||||
#if (RTL8822B_SUPPORT)
|
||||
/*#define IS_USE_NEW_TDMA*/
|
||||
#if (RTL8822B_SUPPORT || RTL8192F_SUPPORT || RTL8821C_SUPPORT)
|
||||
#ifdef CONFIG_TDMADIG
|
||||
#define PHYDM_TDMA_DIG_SUPPORT
|
||||
#ifdef PHYDM_TDMA_DIG_SUPPORT
|
||||
#define IS_USE_NEW_TDMA /*new tdma dig test*/
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if (RTL8814B_SUPPORT)
|
||||
|
||||
@@ -411,6 +411,9 @@ rtw_phydm_cfg_phy_para(
|
||||
#endif
|
||||
|
||||
#if (RTL8192F_SUPPORT == 1)
|
||||
#if (DM_ODM_SUPPORT_TYPE == ODM_CE)
|
||||
#include "rtl8192f_hal.h"/*need to before rf.h*/
|
||||
#endif
|
||||
#include "rtl8192f/halhwimg8192f_mac.h"
|
||||
#include "rtl8192f/halhwimg8192f_rf.h"
|
||||
#include "rtl8192f/halhwimg8192f_bb.h"
|
||||
@@ -422,9 +425,6 @@ rtw_phydm_cfg_phy_para(
|
||||
#if (DM_ODM_SUPPORT_TYPE == ODM_AP)
|
||||
#include "halrf/rtl8192f/halrf_dpk_8192f.h"
|
||||
#endif
|
||||
#if (DM_ODM_SUPPORT_TYPE == ODM_CE)
|
||||
#include "rtl8192f_hal.h"
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if (RTL8721D_SUPPORT == 1)
|
||||
|
||||
@@ -23,12 +23,10 @@
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/*Image2HeaderVersion: R3 1.4.5*/
|
||||
/*Image2HeaderVersion: R3 1.5.3*/
|
||||
#include "mp_precomp.h"
|
||||
#include "../phydm_precomp.h"
|
||||
|
||||
#define D_S_SIZE DELTA_SWINGIDX_SIZE
|
||||
|
||||
#if (RTL8822B_SUPPORT == 1)
|
||||
static boolean
|
||||
check_positive(struct dm_struct *dm,
|
||||
@@ -10190,7 +10188,7 @@ odm_read_and_config_mp_8822b_agc_tab(struct dm_struct *dm)
|
||||
u32
|
||||
odm_get_version_mp_8822b_agc_tab(void)
|
||||
{
|
||||
return 112;
|
||||
return 113;
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
@@ -11756,7 +11754,7 @@ odm_read_and_config_mp_8822b_phy_reg(struct dm_struct *dm)
|
||||
u32
|
||||
odm_get_version_mp_8822b_phy_reg(void)
|
||||
{
|
||||
return 112;
|
||||
return 113;
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/*Image2HeaderVersion: R3 1.4.5*/
|
||||
/*Image2HeaderVersion: R3 1.5.3*/
|
||||
#if (RTL8822B_SUPPORT == 1)
|
||||
#ifndef __INC_MP_BB_HW_IMG_8822B_H
|
||||
#define __INC_MP_BB_HW_IMG_8822B_H
|
||||
|
||||
@@ -23,12 +23,10 @@
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/*Image2HeaderVersion: R3 1.4.5*/
|
||||
/*Image2HeaderVersion: R3 1.5.3*/
|
||||
#include "mp_precomp.h"
|
||||
#include "../phydm_precomp.h"
|
||||
|
||||
#define D_S_SIZE DELTA_SWINGIDX_SIZE
|
||||
|
||||
#if (RTL8822B_SUPPORT == 1)
|
||||
static boolean
|
||||
check_positive(struct dm_struct *dm,
|
||||
@@ -311,7 +309,7 @@ odm_read_and_config_mp_8822b_mac_reg(struct dm_struct *dm)
|
||||
u32
|
||||
odm_get_version_mp_8822b_mac_reg(void)
|
||||
{
|
||||
return 112;
|
||||
return 113;
|
||||
}
|
||||
|
||||
#endif /* end of HWIMG_SUPPORT*/
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/*Image2HeaderVersion: R3 1.4.5*/
|
||||
/*Image2HeaderVersion: R3 1.5.3*/
|
||||
#if (RTL8822B_SUPPORT == 1)
|
||||
#ifndef __INC_MP_MAC_HW_IMG_8822B_H
|
||||
#define __INC_MP_MAC_HW_IMG_8822B_H
|
||||
|
||||
@@ -23,11 +23,12 @@
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/*Image2HeaderVersion: R3 1.4.5*/
|
||||
/*Image2HeaderVersion: R3 1.5.3*/
|
||||
#include "mp_precomp.h"
|
||||
#include "../phydm_precomp.h"
|
||||
|
||||
#define D_S_SIZE DELTA_SWINGIDX_SIZE
|
||||
#define D_ST_SIZE DELTA_SWINTSSI_SIZE
|
||||
|
||||
#if (RTL8822B_SUPPORT == 1)
|
||||
static boolean
|
||||
@@ -4409,6 +4410,29 @@ const u32 array_mp_8822b_radioa[] = {
|
||||
0x03F, 0x00000039,
|
||||
0x033, 0x0000000A,
|
||||
0x03F, 0x0000003C,
|
||||
0x9300000c, 0x00000000, 0x40000000, 0x00000000,
|
||||
0x033, 0x00000000,
|
||||
0x03F, 0x0005142C,
|
||||
0x033, 0x00000001,
|
||||
0x03F, 0x0005144B,
|
||||
0x033, 0x00000002,
|
||||
0x03F, 0x0005144E,
|
||||
0x033, 0x00000003,
|
||||
0x03F, 0x00051C69,
|
||||
0x033, 0x00000004,
|
||||
0x03F, 0x00051C6C,
|
||||
0x033, 0x00000005,
|
||||
0x03F, 0x00051CE8,
|
||||
0x033, 0x00000006,
|
||||
0x03F, 0x00051CEB,
|
||||
0x033, 0x00000007,
|
||||
0x03F, 0x00051CEE,
|
||||
0x033, 0x00000008,
|
||||
0x03F, 0x00051CF1,
|
||||
0x033, 0x00000009,
|
||||
0x03F, 0x00051CF4,
|
||||
0x033, 0x0000000A,
|
||||
0x03F, 0x00051CF7,
|
||||
0x93000012, 0x00000000, 0x40000000, 0x00000000,
|
||||
0x033, 0x00000000,
|
||||
0x03F, 0x00000002,
|
||||
@@ -4672,6 +4696,7 @@ const u32 array_mp_8822b_radioa[] = {
|
||||
0x0B0, 0x000FF0FC,
|
||||
0x0C4, 0x00081402,
|
||||
0x0CC, 0x00082000,
|
||||
0x059, 0x00020000,
|
||||
|
||||
};
|
||||
|
||||
@@ -4738,7 +4763,7 @@ odm_read_and_config_mp_8822b_radioa(struct dm_struct *dm)
|
||||
u32
|
||||
odm_get_version_mp_8822b_radioa(void)
|
||||
{
|
||||
return 112;
|
||||
return 113;
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
@@ -8631,7 +8656,7 @@ const u32 array_mp_8822b_radiob[] = {
|
||||
0x033, 0x00000004,
|
||||
0x03F, 0x00051CA8,
|
||||
0x033, 0x00000005,
|
||||
0x03F, 0x00051CAB,
|
||||
0x03F, 0x00051CE8,
|
||||
0x033, 0x00000006,
|
||||
0x03F, 0x00051CEB,
|
||||
0x033, 0x00000007,
|
||||
@@ -8829,6 +8854,7 @@ const u32 array_mp_8822b_radiob[] = {
|
||||
0x03E, 0x00005934,
|
||||
0x03F, 0x0005AFCF,
|
||||
0x0EF, 0x00000000,
|
||||
0x059, 0x00020000,
|
||||
|
||||
};
|
||||
|
||||
@@ -8895,7 +8921,7 @@ odm_read_and_config_mp_8822b_radiob(struct dm_struct *dm)
|
||||
u32
|
||||
odm_get_version_mp_8822b_radiob(void)
|
||||
{
|
||||
return 112;
|
||||
return 113;
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
@@ -16995,8 +17021,8 @@ odm_read_and_config_mp_8822b_txpwr_lmt_type4(struct dm_struct *dm)
|
||||
|
||||
#ifdef CONFIG_8822B_TYPE5
|
||||
const char *array_mp_8822b_txpwr_lmt_type5[] = {
|
||||
"FCC", "2.4G", "20M", "CCK", "1T", "01", "32",
|
||||
"ETSI", "2.4G", "20M", "CCK", "1T", "01", "28",
|
||||
"FCC", "2.4G", "20M", "CCK", "1T", "01", "30",
|
||||
"ETSI", "2.4G", "20M", "CCK", "1T", "01", "24",
|
||||
"MKK", "2.4G", "20M", "CCK", "1T", "01", "30",
|
||||
"IC", "2.4G", "20M", "CCK", "1T", "01", "32",
|
||||
"KCC", "2.4G", "20M", "CCK", "1T", "01", "34",
|
||||
@@ -17004,7 +17030,7 @@ const char *array_mp_8822b_txpwr_lmt_type5[] = {
|
||||
"CHILE", "2.4G", "20M", "CCK", "1T", "01", "32",
|
||||
"UKRAINE", "2.4G", "20M", "CCK", "1T", "01", "30",
|
||||
"FCC", "2.4G", "20M", "CCK", "1T", "02", "32",
|
||||
"ETSI", "2.4G", "20M", "CCK", "1T", "02", "28",
|
||||
"ETSI", "2.4G", "20M", "CCK", "1T", "02", "24",
|
||||
"MKK", "2.4G", "20M", "CCK", "1T", "02", "30",
|
||||
"IC", "2.4G", "20M", "CCK", "1T", "02", "32",
|
||||
"KCC", "2.4G", "20M", "CCK", "1T", "02", "34",
|
||||
@@ -17012,7 +17038,7 @@ const char *array_mp_8822b_txpwr_lmt_type5[] = {
|
||||
"CHILE", "2.4G", "20M", "CCK", "1T", "02", "32",
|
||||
"UKRAINE", "2.4G", "20M", "CCK", "1T", "02", "30",
|
||||
"FCC", "2.4G", "20M", "CCK", "1T", "03", "32",
|
||||
"ETSI", "2.4G", "20M", "CCK", "1T", "03", "28",
|
||||
"ETSI", "2.4G", "20M", "CCK", "1T", "03", "24",
|
||||
"MKK", "2.4G", "20M", "CCK", "1T", "03", "30",
|
||||
"IC", "2.4G", "20M", "CCK", "1T", "03", "32",
|
||||
"KCC", "2.4G", "20M", "CCK", "1T", "03", "34",
|
||||
@@ -17020,7 +17046,7 @@ const char *array_mp_8822b_txpwr_lmt_type5[] = {
|
||||
"CHILE", "2.4G", "20M", "CCK", "1T", "03", "32",
|
||||
"UKRAINE", "2.4G", "20M", "CCK", "1T", "03", "30",
|
||||
"FCC", "2.4G", "20M", "CCK", "1T", "04", "32",
|
||||
"ETSI", "2.4G", "20M", "CCK", "1T", "04", "28",
|
||||
"ETSI", "2.4G", "20M", "CCK", "1T", "04", "24",
|
||||
"MKK", "2.4G", "20M", "CCK", "1T", "04", "30",
|
||||
"IC", "2.4G", "20M", "CCK", "1T", "04", "32",
|
||||
"KCC", "2.4G", "20M", "CCK", "1T", "04", "34",
|
||||
@@ -17028,7 +17054,7 @@ const char *array_mp_8822b_txpwr_lmt_type5[] = {
|
||||
"CHILE", "2.4G", "20M", "CCK", "1T", "04", "32",
|
||||
"UKRAINE", "2.4G", "20M", "CCK", "1T", "04", "30",
|
||||
"FCC", "2.4G", "20M", "CCK", "1T", "05", "32",
|
||||
"ETSI", "2.4G", "20M", "CCK", "1T", "05", "28",
|
||||
"ETSI", "2.4G", "20M", "CCK", "1T", "05", "24",
|
||||
"MKK", "2.4G", "20M", "CCK", "1T", "05", "30",
|
||||
"IC", "2.4G", "20M", "CCK", "1T", "05", "32",
|
||||
"KCC", "2.4G", "20M", "CCK", "1T", "05", "34",
|
||||
@@ -17036,7 +17062,7 @@ const char *array_mp_8822b_txpwr_lmt_type5[] = {
|
||||
"CHILE", "2.4G", "20M", "CCK", "1T", "05", "32",
|
||||
"UKRAINE", "2.4G", "20M", "CCK", "1T", "05", "30",
|
||||
"FCC", "2.4G", "20M", "CCK", "1T", "06", "32",
|
||||
"ETSI", "2.4G", "20M", "CCK", "1T", "06", "28",
|
||||
"ETSI", "2.4G", "20M", "CCK", "1T", "06", "24",
|
||||
"MKK", "2.4G", "20M", "CCK", "1T", "06", "30",
|
||||
"IC", "2.4G", "20M", "CCK", "1T", "06", "32",
|
||||
"KCC", "2.4G", "20M", "CCK", "1T", "06", "34",
|
||||
@@ -17044,7 +17070,7 @@ const char *array_mp_8822b_txpwr_lmt_type5[] = {
|
||||
"CHILE", "2.4G", "20M", "CCK", "1T", "06", "32",
|
||||
"UKRAINE", "2.4G", "20M", "CCK", "1T", "06", "30",
|
||||
"FCC", "2.4G", "20M", "CCK", "1T", "07", "32",
|
||||
"ETSI", "2.4G", "20M", "CCK", "1T", "07", "28",
|
||||
"ETSI", "2.4G", "20M", "CCK", "1T", "07", "24",
|
||||
"MKK", "2.4G", "20M", "CCK", "1T", "07", "30",
|
||||
"IC", "2.4G", "20M", "CCK", "1T", "07", "32",
|
||||
"KCC", "2.4G", "20M", "CCK", "1T", "07", "34",
|
||||
@@ -17052,7 +17078,7 @@ const char *array_mp_8822b_txpwr_lmt_type5[] = {
|
||||
"CHILE", "2.4G", "20M", "CCK", "1T", "07", "32",
|
||||
"UKRAINE", "2.4G", "20M", "CCK", "1T", "07", "30",
|
||||
"FCC", "2.4G", "20M", "CCK", "1T", "08", "32",
|
||||
"ETSI", "2.4G", "20M", "CCK", "1T", "08", "28",
|
||||
"ETSI", "2.4G", "20M", "CCK", "1T", "08", "24",
|
||||
"MKK", "2.4G", "20M", "CCK", "1T", "08", "30",
|
||||
"IC", "2.4G", "20M", "CCK", "1T", "08", "32",
|
||||
"KCC", "2.4G", "20M", "CCK", "1T", "08", "34",
|
||||
@@ -17060,7 +17086,7 @@ const char *array_mp_8822b_txpwr_lmt_type5[] = {
|
||||
"CHILE", "2.4G", "20M", "CCK", "1T", "08", "32",
|
||||
"UKRAINE", "2.4G", "20M", "CCK", "1T", "08", "30",
|
||||
"FCC", "2.4G", "20M", "CCK", "1T", "09", "32",
|
||||
"ETSI", "2.4G", "20M", "CCK", "1T", "09", "28",
|
||||
"ETSI", "2.4G", "20M", "CCK", "1T", "09", "24",
|
||||
"MKK", "2.4G", "20M", "CCK", "1T", "09", "30",
|
||||
"IC", "2.4G", "20M", "CCK", "1T", "09", "32",
|
||||
"KCC", "2.4G", "20M", "CCK", "1T", "09", "34",
|
||||
@@ -17068,31 +17094,31 @@ const char *array_mp_8822b_txpwr_lmt_type5[] = {
|
||||
"CHILE", "2.4G", "20M", "CCK", "1T", "09", "32",
|
||||
"UKRAINE", "2.4G", "20M", "CCK", "1T", "09", "30",
|
||||
"FCC", "2.4G", "20M", "CCK", "1T", "10", "32",
|
||||
"ETSI", "2.4G", "20M", "CCK", "1T", "10", "28",
|
||||
"ETSI", "2.4G", "20M", "CCK", "1T", "10", "24",
|
||||
"MKK", "2.4G", "20M", "CCK", "1T", "10", "30",
|
||||
"IC", "2.4G", "20M", "CCK", "1T", "10", "32",
|
||||
"KCC", "2.4G", "20M", "CCK", "1T", "10", "34",
|
||||
"ACMA", "2.4G", "20M", "CCK", "1T", "10", "28",
|
||||
"CHILE", "2.4G", "20M", "CCK", "1T", "10", "32",
|
||||
"UKRAINE", "2.4G", "20M", "CCK", "1T", "10", "30",
|
||||
"FCC", "2.4G", "20M", "CCK", "1T", "11", "32",
|
||||
"ETSI", "2.4G", "20M", "CCK", "1T", "11", "28",
|
||||
"FCC", "2.4G", "20M", "CCK", "1T", "11", "30",
|
||||
"ETSI", "2.4G", "20M", "CCK", "1T", "11", "24",
|
||||
"MKK", "2.4G", "20M", "CCK", "1T", "11", "30",
|
||||
"IC", "2.4G", "20M", "CCK", "1T", "11", "32",
|
||||
"KCC", "2.4G", "20M", "CCK", "1T", "11", "34",
|
||||
"ACMA", "2.4G", "20M", "CCK", "1T", "11", "28",
|
||||
"CHILE", "2.4G", "20M", "CCK", "1T", "11", "32",
|
||||
"UKRAINE", "2.4G", "20M", "CCK", "1T", "11", "30",
|
||||
"FCC", "2.4G", "20M", "CCK", "1T", "12", "26",
|
||||
"ETSI", "2.4G", "20M", "CCK", "1T", "12", "28",
|
||||
"FCC", "2.4G", "20M", "CCK", "1T", "12", "24",
|
||||
"ETSI", "2.4G", "20M", "CCK", "1T", "12", "24",
|
||||
"MKK", "2.4G", "20M", "CCK", "1T", "12", "30",
|
||||
"IC", "2.4G", "20M", "CCK", "1T", "12", "26",
|
||||
"KCC", "2.4G", "20M", "CCK", "1T", "12", "34",
|
||||
"ACMA", "2.4G", "20M", "CCK", "1T", "12", "28",
|
||||
"CHILE", "2.4G", "20M", "CCK", "1T", "12", "26",
|
||||
"UKRAINE", "2.4G", "20M", "CCK", "1T", "12", "30",
|
||||
"FCC", "2.4G", "20M", "CCK", "1T", "13", "20",
|
||||
"ETSI", "2.4G", "20M", "CCK", "1T", "13", "28",
|
||||
"FCC", "2.4G", "20M", "CCK", "1T", "13", "18",
|
||||
"ETSI", "2.4G", "20M", "CCK", "1T", "13", "24",
|
||||
"MKK", "2.4G", "20M", "CCK", "1T", "13", "28",
|
||||
"IC", "2.4G", "20M", "CCK", "1T", "13", "20",
|
||||
"KCC", "2.4G", "20M", "CCK", "1T", "13", "34",
|
||||
@@ -17108,95 +17134,95 @@ const char *array_mp_8822b_txpwr_lmt_type5[] = {
|
||||
"CHILE", "2.4G", "20M", "CCK", "1T", "14", "63",
|
||||
"UKRAINE", "2.4G", "20M", "CCK", "1T", "14", "63",
|
||||
"FCC", "2.4G", "20M", "OFDM", "1T", "01", "26",
|
||||
"ETSI", "2.4G", "20M", "OFDM", "1T", "01", "30",
|
||||
"ETSI", "2.4G", "20M", "OFDM", "1T", "01", "24",
|
||||
"MKK", "2.4G", "20M", "OFDM", "1T", "01", "34",
|
||||
"IC", "2.4G", "20M", "OFDM", "1T", "01", "26",
|
||||
"KCC", "2.4G", "20M", "OFDM", "1T", "01", "34",
|
||||
"ACMA", "2.4G", "20M", "OFDM", "1T", "01", "30",
|
||||
"CHILE", "2.4G", "20M", "OFDM", "1T", "01", "26",
|
||||
"UKRAINE", "2.4G", "20M", "OFDM", "1T", "01", "30",
|
||||
"FCC", "2.4G", "20M", "OFDM", "1T", "02", "30",
|
||||
"ETSI", "2.4G", "20M", "OFDM", "1T", "02", "30",
|
||||
"FCC", "2.4G", "20M", "OFDM", "1T", "02", "28",
|
||||
"ETSI", "2.4G", "20M", "OFDM", "1T", "02", "24",
|
||||
"MKK", "2.4G", "20M", "OFDM", "1T", "02", "34",
|
||||
"IC", "2.4G", "20M", "OFDM", "1T", "02", "30",
|
||||
"KCC", "2.4G", "20M", "OFDM", "1T", "02", "34",
|
||||
"ACMA", "2.4G", "20M", "OFDM", "1T", "02", "30",
|
||||
"CHILE", "2.4G", "20M", "OFDM", "1T", "02", "30",
|
||||
"UKRAINE", "2.4G", "20M", "OFDM", "1T", "02", "30",
|
||||
"FCC", "2.4G", "20M", "OFDM", "1T", "03", "32",
|
||||
"ETSI", "2.4G", "20M", "OFDM", "1T", "03", "30",
|
||||
"FCC", "2.4G", "20M", "OFDM", "1T", "03", "30",
|
||||
"ETSI", "2.4G", "20M", "OFDM", "1T", "03", "24",
|
||||
"MKK", "2.4G", "20M", "OFDM", "1T", "03", "34",
|
||||
"IC", "2.4G", "20M", "OFDM", "1T", "03", "32",
|
||||
"KCC", "2.4G", "20M", "OFDM", "1T", "03", "34",
|
||||
"ACMA", "2.4G", "20M", "OFDM", "1T", "03", "30",
|
||||
"CHILE", "2.4G", "20M", "OFDM", "1T", "03", "32",
|
||||
"UKRAINE", "2.4G", "20M", "OFDM", "1T", "03", "30",
|
||||
"FCC", "2.4G", "20M", "OFDM", "1T", "04", "34",
|
||||
"ETSI", "2.4G", "20M", "OFDM", "1T", "04", "30",
|
||||
"FCC", "2.4G", "20M", "OFDM", "1T", "04", "30",
|
||||
"ETSI", "2.4G", "20M", "OFDM", "1T", "04", "24",
|
||||
"MKK", "2.4G", "20M", "OFDM", "1T", "04", "34",
|
||||
"IC", "2.4G", "20M", "OFDM", "1T", "04", "34",
|
||||
"KCC", "2.4G", "20M", "OFDM", "1T", "04", "34",
|
||||
"ACMA", "2.4G", "20M", "OFDM", "1T", "04", "30",
|
||||
"CHILE", "2.4G", "20M", "OFDM", "1T", "04", "34",
|
||||
"UKRAINE", "2.4G", "20M", "OFDM", "1T", "04", "30",
|
||||
"FCC", "2.4G", "20M", "OFDM", "1T", "05", "34",
|
||||
"ETSI", "2.4G", "20M", "OFDM", "1T", "05", "30",
|
||||
"FCC", "2.4G", "20M", "OFDM", "1T", "05", "32",
|
||||
"ETSI", "2.4G", "20M", "OFDM", "1T", "05", "24",
|
||||
"MKK", "2.4G", "20M", "OFDM", "1T", "05", "34",
|
||||
"IC", "2.4G", "20M", "OFDM", "1T", "05", "34",
|
||||
"KCC", "2.4G", "20M", "OFDM", "1T", "05", "34",
|
||||
"ACMA", "2.4G", "20M", "OFDM", "1T", "05", "30",
|
||||
"CHILE", "2.4G", "20M", "OFDM", "1T", "05", "34",
|
||||
"UKRAINE", "2.4G", "20M", "OFDM", "1T", "05", "30",
|
||||
"FCC", "2.4G", "20M", "OFDM", "1T", "06", "34",
|
||||
"ETSI", "2.4G", "20M", "OFDM", "1T", "06", "30",
|
||||
"FCC", "2.4G", "20M", "OFDM", "1T", "06", "32",
|
||||
"ETSI", "2.4G", "20M", "OFDM", "1T", "06", "24",
|
||||
"MKK", "2.4G", "20M", "OFDM", "1T", "06", "34",
|
||||
"IC", "2.4G", "20M", "OFDM", "1T", "06", "34",
|
||||
"KCC", "2.4G", "20M", "OFDM", "1T", "06", "34",
|
||||
"ACMA", "2.4G", "20M", "OFDM", "1T", "06", "30",
|
||||
"CHILE", "2.4G", "20M", "OFDM", "1T", "06", "34",
|
||||
"UKRAINE", "2.4G", "20M", "OFDM", "1T", "06", "30",
|
||||
"FCC", "2.4G", "20M", "OFDM", "1T", "07", "34",
|
||||
"ETSI", "2.4G", "20M", "OFDM", "1T", "07", "30",
|
||||
"FCC", "2.4G", "20M", "OFDM", "1T", "07", "32",
|
||||
"ETSI", "2.4G", "20M", "OFDM", "1T", "07", "24",
|
||||
"MKK", "2.4G", "20M", "OFDM", "1T", "07", "34",
|
||||
"IC", "2.4G", "20M", "OFDM", "1T", "07", "34",
|
||||
"KCC", "2.4G", "20M", "OFDM", "1T", "07", "34",
|
||||
"ACMA", "2.4G", "20M", "OFDM", "1T", "07", "30",
|
||||
"CHILE", "2.4G", "20M", "OFDM", "1T", "07", "34",
|
||||
"UKRAINE", "2.4G", "20M", "OFDM", "1T", "07", "30",
|
||||
"FCC", "2.4G", "20M", "OFDM", "1T", "08", "34",
|
||||
"ETSI", "2.4G", "20M", "OFDM", "1T", "08", "30",
|
||||
"FCC", "2.4G", "20M", "OFDM", "1T", "08", "30",
|
||||
"ETSI", "2.4G", "20M", "OFDM", "1T", "08", "24",
|
||||
"MKK", "2.4G", "20M", "OFDM", "1T", "08", "34",
|
||||
"IC", "2.4G", "20M", "OFDM", "1T", "08", "34",
|
||||
"KCC", "2.4G", "20M", "OFDM", "1T", "08", "34",
|
||||
"ACMA", "2.4G", "20M", "OFDM", "1T", "08", "30",
|
||||
"CHILE", "2.4G", "20M", "OFDM", "1T", "08", "34",
|
||||
"UKRAINE", "2.4G", "20M", "OFDM", "1T", "08", "30",
|
||||
"FCC", "2.4G", "20M", "OFDM", "1T", "09", "32",
|
||||
"ETSI", "2.4G", "20M", "OFDM", "1T", "09", "30",
|
||||
"FCC", "2.4G", "20M", "OFDM", "1T", "09", "30",
|
||||
"ETSI", "2.4G", "20M", "OFDM", "1T", "09", "24",
|
||||
"MKK", "2.4G", "20M", "OFDM", "1T", "09", "34",
|
||||
"IC", "2.4G", "20M", "OFDM", "1T", "09", "32",
|
||||
"KCC", "2.4G", "20M", "OFDM", "1T", "09", "34",
|
||||
"ACMA", "2.4G", "20M", "OFDM", "1T", "09", "30",
|
||||
"CHILE", "2.4G", "20M", "OFDM", "1T", "09", "32",
|
||||
"UKRAINE", "2.4G", "20M", "OFDM", "1T", "09", "30",
|
||||
"FCC", "2.4G", "20M", "OFDM", "1T", "10", "30",
|
||||
"ETSI", "2.4G", "20M", "OFDM", "1T", "10", "30",
|
||||
"FCC", "2.4G", "20M", "OFDM", "1T", "10", "28",
|
||||
"ETSI", "2.4G", "20M", "OFDM", "1T", "10", "24",
|
||||
"MKK", "2.4G", "20M", "OFDM", "1T", "10", "34",
|
||||
"IC", "2.4G", "20M", "OFDM", "1T", "10", "30",
|
||||
"KCC", "2.4G", "20M", "OFDM", "1T", "10", "34",
|
||||
"ACMA", "2.4G", "20M", "OFDM", "1T", "10", "30",
|
||||
"CHILE", "2.4G", "20M", "OFDM", "1T", "10", "30",
|
||||
"UKRAINE", "2.4G", "20M", "OFDM", "1T", "10", "30",
|
||||
"FCC", "2.4G", "20M", "OFDM", "1T", "11", "28",
|
||||
"ETSI", "2.4G", "20M", "OFDM", "1T", "11", "30",
|
||||
"FCC", "2.4G", "20M", "OFDM", "1T", "11", "26",
|
||||
"ETSI", "2.4G", "20M", "OFDM", "1T", "11", "24",
|
||||
"MKK", "2.4G", "20M", "OFDM", "1T", "11", "34",
|
||||
"IC", "2.4G", "20M", "OFDM", "1T", "11", "28",
|
||||
"KCC", "2.4G", "20M", "OFDM", "1T", "11", "34",
|
||||
"ACMA", "2.4G", "20M", "OFDM", "1T", "11", "30",
|
||||
"CHILE", "2.4G", "20M", "OFDM", "1T", "11", "28",
|
||||
"UKRAINE", "2.4G", "20M", "OFDM", "1T", "11", "30",
|
||||
"FCC", "2.4G", "20M", "OFDM", "1T", "12", "22",
|
||||
"ETSI", "2.4G", "20M", "OFDM", "1T", "12", "30",
|
||||
"FCC", "2.4G", "20M", "OFDM", "1T", "12", "20",
|
||||
"ETSI", "2.4G", "20M", "OFDM", "1T", "12", "24",
|
||||
"MKK", "2.4G", "20M", "OFDM", "1T", "12", "34",
|
||||
"IC", "2.4G", "20M", "OFDM", "1T", "12", "22",
|
||||
"KCC", "2.4G", "20M", "OFDM", "1T", "12", "34",
|
||||
@@ -17204,7 +17230,7 @@ const char *array_mp_8822b_txpwr_lmt_type5[] = {
|
||||
"CHILE", "2.4G", "20M", "OFDM", "1T", "12", "22",
|
||||
"UKRAINE", "2.4G", "20M", "OFDM", "1T", "12", "30",
|
||||
"FCC", "2.4G", "20M", "OFDM", "1T", "13", "14",
|
||||
"ETSI", "2.4G", "20M", "OFDM", "1T", "13", "30",
|
||||
"ETSI", "2.4G", "20M", "OFDM", "1T", "13", "24",
|
||||
"MKK", "2.4G", "20M", "OFDM", "1T", "13", "34",
|
||||
"IC", "2.4G", "20M", "OFDM", "1T", "13", "14",
|
||||
"KCC", "2.4G", "20M", "OFDM", "1T", "13", "34",
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/*Image2HeaderVersion: R3 1.4.5*/
|
||||
/*Image2HeaderVersion: R3 1.5.3*/
|
||||
#if (RTL8822B_SUPPORT == 1)
|
||||
#ifndef __INC_MP_RF_HW_IMG_8822B_H
|
||||
#define __INC_MP_RF_HW_IMG_8822B_H
|
||||
|
||||
@@ -2240,9 +2240,6 @@ config_phydm_switch_bandwidth_8822b(struct dm_struct *dm,
|
||||
/* @Modify RX DFIR parameters */
|
||||
phydm_rxdfirpar_by_bw_8822b(dm, bandwidth);
|
||||
|
||||
/* Toggle IGI to let RF enter RX mode */
|
||||
phydm_igi_toggle_8822b(dm);
|
||||
|
||||
/* @Modify CCA parameters */
|
||||
phydm_ccapar_by_rfe_8822b(dm);
|
||||
|
||||
@@ -2263,6 +2260,9 @@ config_phydm_switch_bandwidth_8822b(struct dm_struct *dm,
|
||||
odm_set_bb_reg(dm, R_0x808, MASKBYTE0, (dm->rx_ant_status |
|
||||
(dm->rx_ant_status << 4)));
|
||||
|
||||
/* Toggle IGI to let RF enter RX mode */
|
||||
phydm_igi_toggle_8822b(dm);
|
||||
|
||||
PHYDM_DBG(dm, ODM_PHY_CONFIG, "Success\n");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -29,6 +29,6 @@
|
||||
* You do not need to fill up the version.h anymore,
|
||||
* only the maintenance supervisor fills it before formal release.
|
||||
*/
|
||||
#define RELEASE_DATE_8822B 20181002
|
||||
#define RELEASE_DATE_8822B 20181129
|
||||
#define COMMIT_BY_8822B "BB_Colin"
|
||||
#define RELEASE_VERSION_8822B 112
|
||||
#define RELEASE_VERSION_8822B 113
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -20,17 +20,17 @@
|
||||
|
||||
#ifdef LOAD_FW_HEADER_FROM_DRIVER
|
||||
#if (defined(CONFIG_AP_WOWLAN) || (DM_ODM_SUPPORT_TYPE & (ODM_AP)))
|
||||
extern u8 array_mp_8822b_fw_ap[104720];
|
||||
extern u8 array_mp_8822b_fw_ap[104872];
|
||||
extern u32 array_length_mp_8822b_fw_ap;
|
||||
#endif
|
||||
|
||||
#if (DM_ODM_SUPPORT_TYPE & (ODM_WIN)) || (DM_ODM_SUPPORT_TYPE & (ODM_CE))
|
||||
extern u8 array_mp_8822b_fw_hybrid[173880];
|
||||
extern u8 array_mp_8822b_fw_hybrid[174352];
|
||||
extern u32 array_length_mp_8822b_fw_hybrid;
|
||||
extern u8 array_mp_8822b_fw_nic[153152];
|
||||
extern u8 array_mp_8822b_fw_nic[153424];
|
||||
extern u32 array_length_mp_8822b_fw_nic;
|
||||
#ifdef CONFIG_WOWLAN
|
||||
extern u8 array_mp_8822b_fw_wowlan[84448];
|
||||
extern u8 array_mp_8822b_fw_wowlan[85064];
|
||||
extern u32 array_length_mp_8822b_fw_wowlan;
|
||||
#endif /*CONFIG_WOWLAN*/
|
||||
#endif
|
||||
|
||||
@@ -65,6 +65,7 @@ enum rx_rpt_type {
|
||||
HT_MPDU_OK,
|
||||
HT_MPDU_FAIL,
|
||||
HT_PPDU,
|
||||
HT_FALSE_ALARM,
|
||||
RX_FULL_DROP, /* 10 */
|
||||
FWFF_FULL_DROP,
|
||||
VHT_SU_MPDU_OK = 16, /* 16 */
|
||||
|
||||
@@ -661,6 +661,7 @@ void rtl8822b_c2h_handler_no_io(PADAPTER adapter, u8 *pbuf, u16 length)
|
||||
case C2H_IQK_FINISH:
|
||||
case C2H_MCC:
|
||||
case C2H_BCN_EARLY_RPT:
|
||||
case C2H_LPS_STATUS_RPT:
|
||||
case C2H_EXTEND:
|
||||
/* no I/O, process directly */
|
||||
#ifdef CONFIG_LPS_PWR_TRACKING
|
||||
|
||||
@@ -1567,6 +1567,21 @@ static void hw_var_set_mlme_sitesurvey(PADAPTER adapter, u8 enable)
|
||||
}
|
||||
}
|
||||
|
||||
static void clear_macid_drop(struct _ADAPTER *a)
|
||||
{
|
||||
u16 offset;
|
||||
u32 drop;
|
||||
u8 i;
|
||||
|
||||
|
||||
for (i = 0; i < 4; i++) {
|
||||
offset = REG_MACID_DROP0_8822B + (i * 4);
|
||||
drop = rtw_read32(a, offset);
|
||||
if (drop)
|
||||
rtw_write32(a, offset, 0);
|
||||
}
|
||||
}
|
||||
|
||||
static void hw_var_set_mlme_join(PADAPTER adapter, u8 type)
|
||||
{
|
||||
u8 val8;
|
||||
@@ -1681,6 +1696,10 @@ static void hw_var_set_mlme_join(PADAPTER adapter, u8 type)
|
||||
val16 = BIT_LRL_8822B(RetryLimit) | BIT_SRL_8822B(RetryLimit);
|
||||
rtw_write16(adapter, REG_RETRY_LIMIT_8822B, val16);
|
||||
#endif /* !CONFIG_CONCURRENT_MODE */
|
||||
|
||||
if (type == 0)
|
||||
/* Clear macid drop to avoid lost data frame */
|
||||
clear_macid_drop(adapter);
|
||||
}
|
||||
|
||||
static void hw_var_set_acm_ctrl(PADAPTER adapter, u8 ctrl)
|
||||
|
||||
@@ -529,6 +529,9 @@ void rtl8822b_phy_haldm_watchdog(PADAPTER adapter)
|
||||
struct pwrctrl_priv *pwrpriv = adapter_to_pwrctl(adapter);
|
||||
u8 lps_changed = _FALSE;
|
||||
u8 in_lps = _FALSE;
|
||||
PADAPTER current_lps_iface = NULL, iface = NULL;
|
||||
struct dvobj_priv *dvobj = adapter_to_dvobj(adapter);
|
||||
u8 i = 0;
|
||||
|
||||
#ifdef CONFIG_MP_INCLUDED
|
||||
/* for MP power tracking */
|
||||
@@ -570,9 +573,16 @@ void rtl8822b_phy_haldm_watchdog(PADAPTER adapter)
|
||||
|
||||
#ifdef CONFIG_LPS
|
||||
if (pwrpriv->bLeisurePs && bFwCurrentInPSMode && pwrpriv->pwr_mode != PS_MODE_ACTIVE) {
|
||||
|
||||
for (i = 0; i < dvobj->iface_nums; i++) {
|
||||
iface = dvobj->padapters[i];
|
||||
if (pwrpriv->current_lps_hw_port_id == rtw_hal_get_port(iface))
|
||||
current_lps_iface = iface;
|
||||
}
|
||||
|
||||
lps_changed = _TRUE;
|
||||
in_lps = _TRUE;
|
||||
LPS_Leave(adapter, "LPS_CTRL_PHYDM");
|
||||
LPS_Leave(current_lps_iface, "LPS_CTRL_PHYDM");
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -580,7 +590,7 @@ void rtl8822b_phy_haldm_watchdog(PADAPTER adapter)
|
||||
|
||||
#ifdef CONFIG_LPS
|
||||
if (lps_changed)
|
||||
LPS_Enter(adapter, "LPS_CTRL_PHYDM");
|
||||
LPS_Enter(current_lps_iface, "LPS_CTRL_PHYDM");
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user