From 53ebbdd11aa799e178b2b90818f0e0f9c3dddb6b Mon Sep 17 00:00:00 2001 From: Christian B Date: Wed, 20 Dec 2017 08:04:30 +0100 Subject: [PATCH] Code cleanup --- hal/rtl8814a/rtl8814a_cmd.c | 304 +++++++++++++++--------------------- 1 file changed, 125 insertions(+), 179 deletions(-) diff --git a/hal/rtl8814a/rtl8814a_cmd.c b/hal/rtl8814a/rtl8814a_cmd.c index ef9e01f..48c8d9b 100644 --- a/hal/rtl8814a/rtl8814a_cmd.c +++ b/hal/rtl8814a/rtl8814a_cmd.c @@ -39,14 +39,14 @@ static u8 _is_fw_read_cmd_down(_adapter* padapter, u8 msgbox_num) //RTW_INFO(" _is_fw_read_cmd_down ,reg_1cc(%x),msg_box(%d)...\n",rtw_read8(padapter,REG_HMETFR),msgbox_num); - do{ + do { valid = rtw_read8(padapter,REG_HMETFR) & BIT(msgbox_num); - if(0 == valid ){ + if (0 == valid ){ read_down = _TRUE; } else rtw_msleep_os(1); - }while( (!read_down) && (retry_cnts--)); + } while( (!read_down) && (retry_cnts--)); return read_down; @@ -74,12 +74,11 @@ s32 FillH2CCmd_8814(PADAPTER padapter, u8 ElementID, u32 CmdLen, u8 *pCmdBuffer) u32 h2c_cmd_ex = 0; s32 ret = _FAIL; - padapter = GET_PRIMARY_ADAPTER(padapter); + padapter = GET_PRIMARY_ADAPTER(padapter); pHalData = GET_HAL_DATA(padapter); - - if(padapter->bFWReady == _FALSE) - { + + if(padapter->bFWReady == _FALSE) { //RTW_INFO("FillH2CCmd_8814(): return H2C cmd because fw is not ready\n"); return ret; } @@ -97,29 +96,28 @@ s32 FillH2CCmd_8814(PADAPTER padapter, u8 ElementID, u32 CmdLen, u8 *pCmdBuffer) goto exit; //pay attention to if race condition happened in H2C cmd setting. - do{ + do { h2c_box_num = pHalData->LastHMEBoxNum; - if(!_is_fw_read_cmd_down(padapter, h2c_box_num)){ + if (!_is_fw_read_cmd_down(padapter, h2c_box_num)){ RTW_INFO(" fw read cmd failed...\n"); goto exit; } *(u8*)(&h2c_cmd) = ElementID; - if(CmdLen<=3) - { + if(CmdLen<=3) { _rtw_memcpy((u8*)(&h2c_cmd)+1, pCmdBuffer, CmdLen ); } - else{ + else { _rtw_memcpy((u8*)(&h2c_cmd)+1, pCmdBuffer,3); - ext_cmd_len = CmdLen-3; + ext_cmd_len = CmdLen-3; _rtw_memcpy((u8*)(&h2c_cmd_ex), pCmdBuffer+3,ext_cmd_len ); //Write Ext command msgbox_ex_addr = REG_HMEBOX_EXT0_8814A + (h2c_box_num *RTL8814_EX_MESSAGE_BOX_SIZE); #ifdef CONFIG_H2C_EF - for(cmd_idx=0;cmd_idxLastHMEBoxNum ,CmdLen,msgbox_addr,h2c_cmd,msgbox_ex_addr,h2c_cmd_ex); pHalData->LastHMEBoxNum = (h2c_box_num+1) % RTL8814_MAX_H2C_BOX_NUMS; - - }while(0); + + } while(0); ret = _SUCCESS; exit: - _exit_critical_mutex(&(adapter_to_dvobj(padapter)->h2c_fwcmd_mutex), NULL); + _exit_critical_mutex(&(adapter_to_dvobj(padapter)->h2c_fwcmd_mutex), NULL); return ret; } @@ -170,7 +168,7 @@ void rtl8814_fw_update_beacon_cmd(_adapter *padapter) { u8 param[2] = {0}; u16 txpktbuf_bndy; - + SET_8814A_H2CCMD_BCNHWSEQ_EN(param, 1); SET_8814A_H2CCMD_BCNHWSEQ_BCN_NUMBER(param, 0); SET_8814A_H2CCMD_BCNHWSEQ_HWSEQ(param, 1); @@ -181,7 +179,7 @@ void rtl8814_fw_update_beacon_cmd(_adapter *padapter) FillH2CCmd_8814(padapter, 0xC2, 2, param); else FillH2CCmd_8814(padapter, H2C_BCNHWSEQ, 2, param); - + /*RTW_INFO("%s, %d, correct beacon HW sequence, FirmwareVersion=%d, H2C_BCNHWSEQ=%d\n", __func__, __LINE__, GET_HAL_DATA(padapter)->FirmwareVersion, H2C_BCNHWSEQ);*/ } @@ -194,29 +192,27 @@ u8 Get_VHT_ENI( { u8 Ret = 0; - if(WirelessMode == WIRELESS_11_24AC) - { - if(ratr_bitmap & 0xfff00000) // Mix , 2SS + if (WirelessMode == WIRELESS_11_24AC) { + if (ratr_bitmap & 0xfff00000) // Mix , 2SS Ret = 3; else // Mix, 1SS Ret = 2; } - else if(WirelessMode == WIRELESS_11_5AC) - { + else if (WirelessMode == WIRELESS_11_5AC) { Ret = 1; // VHT } return (Ret << 4); } -BOOLEAN -Get_RA_ShortGI_8814( +BOOLEAN +Get_RA_ShortGI_8814( PADAPTER Adapter, struct sta_info *psta, u8 shortGIrate, u32 ratr_bitmap ) -{ +{ BOOLEAN bShortGI; struct mlme_ext_priv *pmlmeext = &Adapter->mlmeextpriv; struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); @@ -224,13 +220,13 @@ Get_RA_ShortGI_8814( bShortGI = shortGIrate; #ifdef CONFIG_80211AC_VHT - if( bShortGI && + if ( bShortGI && IsSupportedVHT(psta->wireless_mode) && (pmlmeinfo->assoc_AP_vendor == HT_IOT_PEER_REALTEK_JAGUAR_CCUTAP) && TEST_FLAG(psta->vhtpriv.ldpc_cap, LDPC_VHT_ENABLE_TX) ) { - if(ratr_bitmap & 0xC0000000) + if (ratr_bitmap & 0xC0000000) bShortGI = _FALSE; } #endif //CONFIG_80211AC_VHT @@ -245,19 +241,17 @@ Set_RA_LDPC_8814( BOOLEAN bLDPC ) { - if(psta == NULL) + if (psta == NULL) return; #ifdef CONFIG_80211AC_VHT - if(psta->wireless_mode == WIRELESS_11_5AC) - { - if(bLDPC && TEST_FLAG(psta->vhtpriv.ldpc_cap, LDPC_VHT_CAP_TX)) + if (psta->wireless_mode == WIRELESS_11_5AC) { + if (bLDPC && TEST_FLAG(psta->vhtpriv.ldpc_cap, LDPC_VHT_CAP_TX)) SET_FLAG(psta->vhtpriv.ldpc_cap, LDPC_VHT_ENABLE_TX); else CLEAR_FLAG(psta->vhtpriv.ldpc_cap, LDPC_VHT_ENABLE_TX); } - else if(IsSupportedHT(psta->wireless_mode) || IsSupportedVHT(psta->wireless_mode)) - { - if(bLDPC && TEST_FLAG(psta->htpriv.ldpc_cap, LDPC_HT_CAP_TX)) + else if(IsSupportedHT(psta->wireless_mode) || IsSupportedVHT(psta->wireless_mode)) { + if (bLDPC && TEST_FLAG(psta->htpriv.ldpc_cap, LDPC_HT_CAP_TX)) SET_FLAG(psta->htpriv.ldpc_cap, LDPC_HT_ENABLE_TX); else CLEAR_FLAG(psta->htpriv.ldpc_cap, LDPC_HT_ENABLE_TX); @@ -270,33 +264,31 @@ Set_RA_LDPC_8814( } -u8 +u8 Get_RA_LDPC_8814( struct sta_info *psta ) -{ +{ u8 bLDPC = 0; if (psta != NULL) { - if(psta->mac_id == 1) { + if (psta->mac_id == 1) { bLDPC = 0; } else { #ifdef CONFIG_80211AC_VHT - if(IsSupportedVHT(psta->wireless_mode)) + if (IsSupportedVHT(psta->wireless_mode)) { - if(TEST_FLAG(psta->vhtpriv.ldpc_cap, LDPC_VHT_CAP_TX)) + if (TEST_FLAG(psta->vhtpriv.ldpc_cap, LDPC_VHT_CAP_TX)) bLDPC = 1; else bLDPC = 0; - } - else if(IsSupportedHT(psta->wireless_mode)) - { - if(TEST_FLAG(psta->htpriv.ldpc_cap, LDPC_HT_CAP_TX)) + } + else if (IsSupportedHT(psta->wireless_mode)) { + if (TEST_FLAG(psta->htpriv.ldpc_cap, LDPC_HT_CAP_TX)) bLDPC =1; else bLDPC =0; - } - else + } else #endif bLDPC = 0; } @@ -326,29 +318,27 @@ void rtl8814_set_raid_cmd(PADAPTER padapter, u64 bitmap, u8* arg, u8 bw) } - if(pHalData->fw_ractrl == _TRUE) - { + if (pHalData->fw_ractrl == _TRUE) { u8 H2CCommand[7] ={0}; shortGIrate = Get_RA_ShortGI_8814(padapter, psta, shortGIrate, bitmap); - + H2CCommand[0] = macid; H2CCommand[1] = (raid & 0x1F) | (shortGIrate?0x80:0x00) ; H2CCommand[2] = (psta->bw_mode & 0x3) |Get_RA_LDPC_8814(psta) |Get_VHT_ENI(0, psta->wireless_mode, bitmap); //DisableTXPowerTraining - if(pHalData->bDisableTXPowerTraining){ + if (pHalData->bDisableTXPowerTraining) { H2CCommand[2] |= BIT6; RTW_INFO("%s,Disable PWT by driver\n",__FUNCTION__); - } - else{ + } else { PDM_ODM_T pDM_OutSrc = &pHalData->odmpriv; - - if(pDM_OutSrc->bDisablePowerTraining){ + + if (pDM_OutSrc->bDisablePowerTraining){ H2CCommand[2] |= BIT6; RTW_INFO("%s, Disable PWT by DM\n",__FUNCTION__); } - } + } H2CCommand[3] = (u8)(bitmap & 0x000000ff); H2CCommand[4] = (u8)((bitmap & 0x0000ff00) >>8); @@ -360,11 +350,11 @@ void rtl8814_set_raid_cmd(PADAPTER padapter, u64 bitmap, u8* arg, u8 bw) FillH2CCmd_8814(padapter, H2C_MACID_CFG, 7, H2CCommand); - // For 3SS rate, extend H2C cmd + // For 3SS rate, extend H2C cmd H2CCommand[3] = (u8)((bitmap>>32) & 0x000000ff); H2CCommand[4] = (u8)(((bitmap>>32) & 0x0000ff00) >>8); FillH2CCmd_8814(padapter, H2C_RA_MASK_3SS, 5, H2CCommand); - + } if (shortGIrate==_TRUE) @@ -408,11 +398,9 @@ void rtl8814_set_FwPwrMode_cmd(PADAPTER padapter, u8 PSMode) break; } - if (Mode > PS_MODE_ACTIVE) - { + if (Mode > PS_MODE_ACTIVE) { #ifdef CONFIG_BT_COEXIST - if ((rtw_btcoex_IsBtControlLps(padapter) == _TRUE) && (_TRUE == pHalData->EEPROMBluetoothCoexist)) - { + if ((rtw_btcoex_IsBtControlLps(padapter) == _TRUE) && (_TRUE == pHalData->EEPROMBluetoothCoexist)) { PowerState = rtw_btcoex_RpwmVal(padapter); pwrModeByte5 = rtw_btcoex_LpsVal(padapter); } @@ -426,16 +414,14 @@ void rtl8814_set_FwPwrMode_cmd(PADAPTER padapter, u8 PSMode) #ifdef CONFIG_EXT_CLK Mode |= BIT(7);//supporting 26M XTAL CLK_Request feature. #endif //CONFIG_EXT_CLK - } - else - { + } else { PowerState = 0x0C;// AllON(0x0C), RFON(0x04), RFOFF(0x00) pwrModeByte5 = 0x40; } // 0: Active, 1: LPS, 2: WMMPS SET_8814A_H2CCMD_PWRMODE_PARM_MODE(u1H2CSetPwrMode, Mode); - + // 0:Min, 1:Max , 2:User define SET_8814A_H2CCMD_PWRMODE_PARM_RLBM(u1H2CSetPwrMode, RLBM); @@ -508,8 +494,7 @@ void ConstructBeacon(_adapter *padapter, u8 *pframe, u32 *pLength) pframe += 2; pktlen += 2; - if( (pmlmeinfo->state&0x03) == WIFI_FW_AP_STATE) - { + if ( (pmlmeinfo->state&0x03) == WIFI_FW_AP_STATE) { //RTW_INFO("ie len=%d\n", cur_network->IELength); pktlen += cur_network->IELength - sizeof(NDIS_802_11_FIXED_IEs); _rtw_memcpy(pframe, cur_network->IEs+sizeof(NDIS_802_11_FIXED_IEs), pktlen); @@ -529,8 +514,7 @@ void ConstructBeacon(_adapter *padapter, u8 *pframe, u32 *pLength) // DS parameter set pframe = rtw_set_ie(pframe, _DSSET_IE_, 1, (unsigned char *)&(cur_network->Configuration.DSConfig), &pktlen); - if( (pmlmeinfo->state&0x03) == WIFI_FW_ADHOC_STATE) - { + if ( (pmlmeinfo->state&0x03) == WIFI_FW_ADHOC_STATE) { u32 ATIMWindow; // IBSS Parameter Set... //ATIMWindow = cur->Configuration.ATIMWindow; @@ -543,8 +527,7 @@ void ConstructBeacon(_adapter *padapter, u8 *pframe, u32 *pLength) // EXTERNDED SUPPORTED RATE - if (rate_len > 8) - { + if (rate_len > 8) { pframe = rtw_set_ie(pframe, _EXT_SUPPORTEDRATES_IE_, (rate_len - 8), (cur_network->SupportedRates + 8), &pktlen); } @@ -553,8 +536,7 @@ void ConstructBeacon(_adapter *padapter, u8 *pframe, u32 *pLength) _ConstructBeacon: - if ((pktlen + TXDESC_SIZE) > 512) - { + if ((pktlen + TXDESC_SIZE) > 512) { RTW_INFO("beacon frame too large\n"); return; } @@ -620,8 +602,7 @@ void ConstructNullFunctionData( fctrl = &pwlanhdr->frame_ctl; *(fctrl) = 0; - if (bForcePowerSave) - { + if (bForcePowerSave) { SetPwrMgt(fctrl); } @@ -678,7 +659,6 @@ void ConstructProbeRsp(_adapter *padapter, u8 *pframe, u32 *pLength, u8 *StaAddr struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); WLAN_BSSID_EX *cur_network = &(pmlmeinfo->network); - //RTW_INFO("%s\n", __FUNCTION__); pwlanhdr = (struct rtw_ieee80211_hdr *)pframe; @@ -698,7 +678,7 @@ void ConstructProbeRsp(_adapter *padapter, u8 *pframe, u32 *pLength, u8 *StaAddr pktlen = sizeof(struct rtw_ieee80211_hdr_3addr); pframe += pktlen; - if(cur_network->IELength>MAX_IE_SZ) + if (cur_network->IELength>MAX_IE_SZ) return; _rtw_memcpy(pframe, cur_network->IEs, cur_network->IELength); @@ -758,8 +738,7 @@ static void ConstructGTKResponse( //------------------------------------------------------------------------- // Qos Header: leave space for it if necessary. //------------------------------------------------------------------------- - if(pStaQos->CurrentQosMode > QOS_DISABLE) - { + if(pStaQos->CurrentQosMode > QOS_DISABLE) { SET_80211_HDR_QOS_EN(pGTKRspPkt, 1); PlatformZeroMemory(&(Buffer[*pLength]), sQoSCtlLng); *pLength += sQoSCtlLng; @@ -777,8 +756,8 @@ static void ConstructGTKResponse( EncryptionHeadOverhead = 4; break; case _TKIP_: - EncryptionHeadOverhead = 8; - break; + EncryptionHeadOverhead = 8; + break; case _AES_: EncryptionHeadOverhead = 8; break; @@ -790,29 +769,28 @@ static void ConstructGTKResponse( default: EncryptionHeadOverhead = 0; } - - if(EncryptionHeadOverhead > 0) - { + + if (EncryptionHeadOverhead > 0) { _rtw_memset(&(pframe[*pLength]), 0,EncryptionHeadOverhead); *pLength += EncryptionHeadOverhead; //SET_80211_HDR_WEP(pGTKRspPkt, 1); //Suggested by CCW. //GTK's privacy bit is done by FW //SetPrivacy(fctrl); - } + } #endif //1 //------------------------------------------------------------------------- // Frame Body. //------------------------------------------------------------------------- - pGTKRspPkt = (u8*)(pframe+ *pLength); + pGTKRspPkt = (u8*)(pframe+ *pLength); // LLC header - _rtw_memcpy(pGTKRspPkt, LLCHeader, 8); + _rtw_memcpy(pGTKRspPkt, LLCHeader, 8); *pLength += 8; // GTK element pGTKRspPkt += 8; - + //GTK frame body after LLC, part 1 - _rtw_memcpy(pGTKRspPkt, GTKbody_a, 11); + _rtw_memcpy(pGTKRspPkt, GTKbody_a, 11); *pLength += 11; pGTKRspPkt += 11; //GTK frame body after LLC, part 2 @@ -833,8 +811,7 @@ CheckFwRsvdPageContent( HAL_DATA_TYPE* pHalData = GET_HAL_DATA(Adapter); u32 MaxBcnPageNum; - if(pHalData->FwRsvdPageStartOffset != 0) - { + if(pHalData->FwRsvdPageStartOffset != 0) { /*MaxBcnPageNum = PageNum_128(pMgntInfo->MaxBeaconSize); RT_ASSERT((MaxBcnPageNum <= pHalData->FwRsvdPageStartOffset), ("CheckFwRsvdPageContent(): The reserved page content has been"\ @@ -855,21 +832,17 @@ GetTxBufferRsvdPageNum8814(_adapter *Adapter, bool bWoWLANBoundary) u8 RsvdPageNum=0; u16 TxPageBndy= LAST_ENTRY_OF_TX_PKT_BUFFER_8814A; // default reseved 1 page for the IC type which is undefined. - if(bWoWLANBoundary) - { + if(bWoWLANBoundary) { rtw_hal_get_def_var(Adapter, HAL_DEF_TX_PAGE_BOUNDARY_WOWLAN, (u8 *)&TxPageBndy); - } - else - { + } else { rtw_hal_get_def_var(Adapter, HAL_DEF_TX_PAGE_BOUNDARY, (u8 *)&TxPageBndy); } - + RsvdPageNum = LAST_ENTRY_OF_TX_PKT_BUFFER_8814A -TxPageBndy + 1; return RsvdPageNum; } - void rtl8814_set_FwJoinBssReport_cmd(PADAPTER padapter, u8 mstatus) { HAL_DATA_TYPE *pHalData = GET_HAL_DATA(padapter); @@ -882,8 +855,7 @@ void rtl8814_set_FwJoinBssReport_cmd(PADAPTER padapter, u8 mstatus) RTW_INFO("%s mstatus(%x)\n", __FUNCTION__,mstatus); - if(mstatus == 1) - { + if(mstatus == 1) { // We should set AID, correct TSF, HW seq enable before set JoinBssReport to Fw in 88/92C. // Suggested by filen. Added by tynli. rtw_write16(padapter, REG_BCN_PSR_RPT, (0xC000|pmlmeinfo->aid)); @@ -897,7 +869,7 @@ void rtl8814_set_FwJoinBssReport_cmd(PADAPTER padapter, u8 mstatus) pHalData->RegCR_1 |= BIT0; rtw_write8(padapter, REG_CR+1, pHalData->RegCR_1); /*RTW_INFO("%s-%d: enable SW BCN, REG_CR=0x%x\n", __func__, __LINE__, rtw_read32(padapter, REG_CR));*/ - + // Disable Hw protection for a time which revserd for Hw sending beacon. // Fix download reserved page packet fail that access collision with the protection time. // 2010.05.11. Added by tynli. @@ -905,9 +877,8 @@ void rtl8814_set_FwJoinBssReport_cmd(PADAPTER padapter, u8 mstatus) //SetBcnCtrlReg(padapter, BIT4, 0); rtw_write8(padapter, REG_BCN_CTRL, rtw_read8(padapter, REG_BCN_CTRL)&(~BIT(3))); rtw_write8(padapter, REG_BCN_CTRL, rtw_read8(padapter, REG_BCN_CTRL)|BIT(4)); - - if(pHalData->RegFwHwTxQCtrl&BIT6) - { + + if(pHalData->RegFwHwTxQCtrl&BIT6) { RTW_INFO("HalDownloadRSVDPage(): There is an Adapter is sending beacon.\n"); bSendBeacon = _TRUE; } @@ -920,22 +891,20 @@ void rtl8814_set_FwJoinBssReport_cmd(PADAPTER padapter, u8 mstatus) rtw_hal_set_hwreg(padapter, HW_VAR_BCN_VALID, NULL); DLBcnCount = 0; poll = 0; - do - { + do { // download rsvd page. rtw_hal_set_fw_rsvd_page(padapter, _FALSE); DLBcnCount++; - do - { + do { rtw_yield_os(); //rtw_mdelay_os(10); // check rsvd page download OK. rtw_hal_get_hwreg(padapter, HW_VAR_BCN_VALID, (u8*)(&bcn_valid)); poll++; } while (!bcn_valid && (poll%10) != 0 && !RTW_CANNOT_RUN(padapter)); - + } while (!bcn_valid && DLBcnCount <= 100 && !RTW_CANNOT_RUN(padapter)); - + //RT_ASSERT(bcn_valid, ("HalDownloadRSVDPage88ES(): 1 Download RSVD page failed!\n")); if (RTW_CANNOT_RUN(padapter)) ; @@ -955,21 +924,17 @@ void rtl8814_set_FwJoinBssReport_cmd(PADAPTER padapter, u8 mstatus) // the beacon TCB in the following code. 2011.11.23. by tynli. // //if(bcn_valid && padapter->bEnterPnpSleep) - if(0) - { - if(bSendBeacon) - { + if(0) { + if(bSendBeacon) { rtw_hal_set_hwreg(padapter, HW_VAR_BCN_VALID, NULL); DLBcnCount = 0; poll = 0; - do - { + do { //SetFwRsvdPagePkt_8812(padapter, _TRUE); rtw_hal_set_fw_rsvd_page(padapter, _TRUE); DLBcnCount++; - - do - { + + do { rtw_yield_os(); //rtw_mdelay_os(10); // check rsvd page download OK. @@ -977,7 +942,7 @@ void rtl8814_set_FwJoinBssReport_cmd(PADAPTER padapter, u8 mstatus) poll++; } while (!bcn_valid && (poll%10) != 0 && !RTW_CANNOT_RUN(padapter)); } while (!bcn_valid && DLBcnCount <= 100 && !RTW_CANNOT_RUN(padapter)); - + //RT_ASSERT(bcn_valid, ("HalDownloadRSVDPage(): 2 Download RSVD page failed!\n")); if (RTW_CANNOT_RUN(padapter)) ; @@ -996,11 +961,10 @@ void rtl8814_set_FwJoinBssReport_cmd(PADAPTER padapter, u8 mstatus) // To make sure that if there exists an adapter which would like to send beacon. // If exists, the origianl value of 0x422[6] will be 1, we should check this to - // prevent from setting 0x422[6] to 0 after download reserved page, or it will cause + // prevent from setting 0x422[6] to 0 after download reserved page, or it will cause // the beacon cannot be sent by HW. // 2010.06.23. Added by tynli. - if(bSendBeacon) - { + if(bSendBeacon) { rtw_write8(padapter, REG_FWHW_TXQ_CTRL+2, (pHalData->RegFwHwTxQCtrl|BIT6)); pHalData->RegFwHwTxQCtrl |= BIT6; } @@ -1008,13 +972,12 @@ void rtl8814_set_FwJoinBssReport_cmd(PADAPTER padapter, u8 mstatus) // // Update RSVD page location H2C to Fw. // - if(bcn_valid) - { + if(bcn_valid) { rtw_hal_set_hwreg(padapter, HW_VAR_BCN_VALID, NULL); RTW_INFO("Set RSVD page location to Fw.\n"); //FillH2CCmd88E(Adapter, H2C_88E_RSVDPAGE, H2C_RSVDPAGE_LOC_LENGTH, pMgntInfo->u1RsvdPageLoc); } - + // Do not enable HW DMA BCN or it will cause Pcie interface hang by timing issue. 2011.11.24. by tynli. //if(!padapter->bEnterPnpSleep) { @@ -1047,18 +1010,16 @@ void rtl8814_set_p2p_ps_offload_cmd(_adapter* padapter, u8 p2p_ps_state) case P2P_PS_ENABLE: RTW_INFO("P2P_PS_ENABLE \n"); // update CTWindow value. - if( pwdinfo->ctwindow > 0 ) - { + if( pwdinfo->ctwindow > 0 ) { SET_8814A_H2CCMD_P2P_PS_OFFLOAD_CTWINDOW_EN(p2p_ps_offload, 1); - rtw_write8(padapter, REG_P2P_CTWIN, pwdinfo->ctwindow); + rtw_write8(padapter, REG_P2P_CTWIN, pwdinfo->ctwindow); } // hw only support 2 set of NoA - for( i=0 ; inoa_num ; i++) - { + for ( i = 0 ; inoa_num ; i++) { // To control the register setting for which NOA rtw_write8(padapter, REG_NOA_DESC_SEL, (i << 4)); - if(i == 0) { + if (i == 0) { SET_8814A_H2CCMD_P2P_PS_OFFLOAD_NOA0_EN(p2p_ps_offload, 1); } else { SET_8814A_H2CCMD_P2P_PS_OFFLOAD_NOA1_EN(p2p_ps_offload, 1); @@ -1078,21 +1039,17 @@ void rtl8814_set_p2p_ps_offload_cmd(_adapter* padapter, u8 p2p_ps_state) rtw_write8(padapter, REG_NOA_DESC_COUNT, pwdinfo->noa_count[i]); } - if( (pwdinfo->opp_ps == 1) || (pwdinfo->noa_num > 0) ) - { + if( (pwdinfo->opp_ps == 1) || (pwdinfo->noa_num > 0) ) { // rst p2p circuit: reg 0x5F0 rtw_write8(padapter, REG_P2P_RST_8814A, BIT(0)); //rst p2p 0 circuit NOA 0 SET_8814A_H2CCMD_P2P_PS_OFFLOAD_ENABLE(p2p_ps_offload, 1); - if(pwdinfo->role == P2P_ROLE_GO) - { + if (pwdinfo->role == P2P_ROLE_GO) { // 1: Owner, 0: Client SET_8814A_H2CCMD_P2P_PS_OFFLOAD_ROLE(p2p_ps_offload, 1); SET_8814A_H2CCMD_P2P_PS_OFFLOAD_ALLSTASLEEP(p2p_ps_offload, 0); - } - else - { + } else { // 1: Owner, 0: Client SET_8814A_H2CCMD_P2P_PS_OFFLOAD_ROLE(p2p_ps_offload, 0); } @@ -1125,7 +1082,7 @@ void rtl8814_set_p2p_ps_offload_cmd(_adapter* padapter, u8 p2p_ps_state) ask FW to Reset sync register at Beacon early interrupt */ u8 rtl8814_reset_tsf(_adapter *padapter, u8 reset_port ) -{ +{ u8 buf[2]; u8 res=_SUCCESS; @@ -1180,7 +1137,7 @@ static void rtl8814_set_FwRsvdPage_cmd(PADAPTER padapter, PRSVDPAGE_LOC rsvdpage SET_H2CCMD_RSVDPAGE_LOC_NULL_DATA(u1H2CRsvdPageParm, rsvdpageloc->LocNullData); SET_H2CCMD_RSVDPAGE_LOC_QOS_NULL_DATA(u1H2CRsvdPageParm, rsvdpageloc->LocQosNull); SET_H2CCMD_RSVDPAGE_LOC_BT_QOS_NULL_DATA(u1H2CRsvdPageParm, rsvdpageloc->LocBTQosNull); - + RTW_INFO_DUMP("u1H2CRsvdPageParm:", u1H2CRsvdPageParm, H2C_RSVDPAGE_LOC_LEN); FillH2CCmd_8814(padapter, H2C_RSVD_PAGE, H2C_RSVDPAGE_LOC_LEN, u1H2CRsvdPageParm); } @@ -1191,7 +1148,7 @@ static void rtl8814_set_FwAoacRsvdPage_cmd(PADAPTER padapter, PRSVDPAGE_LOC rsvd struct pwrctrl_priv *pwrpriv = adapter_to_pwrctl(padapter); struct mlme_priv *pmlmepriv = &padapter->mlmepriv; u8 res = 0, count = 0; -#ifdef CONFIG_WOWLAN +#ifdef CONFIG_WOWLAN u8 u1H2CAoacRsvdPageParm[H2C_AOAC_RSVDPAGE_LOC_LEN]={0}; RTW_INFO("8192EAOACRsvdPageLoc: RWC=%d ArpRsp=%d NbrAdv=%d GtkRsp=%d GtkInfo=%d ProbeReq=%d NetworkList=%d\n", @@ -1258,7 +1215,7 @@ void rtl8814_iqk_done(_adapter* padapter) { HAL_DATA_TYPE *pHalData = GET_HAL_DATA(padapter); struct submit_ctx *iqk_sctx = &pHalData->iqk_sctx; - + rtw_sctx_done(&iqk_sctx); } @@ -1299,7 +1256,7 @@ C2HTxFeedbackHandler_8814( s32 _C2HContentParsing8814( IN PADAPTER Adapter, - IN u8 c2hCmdId, + IN u8 c2hCmdId, IN u8 c2hCmdLen, IN u8 *tmpBuf ) @@ -1402,7 +1359,7 @@ C2HPacketHandler_8814( c2hCmdSeq = Buffer[1]; c2hCmdLen = Length -2; tmpBuf = Buffer+2; - + //RTW_INFO("[C2H packet], c2hCmdId=0x%x, c2hCmdSeq=0x%x, c2hCmdLen=%d\n", c2hCmdId, c2hCmdSeq, c2hCmdLen); #ifdef CONFIG_BT_COEXIST @@ -1424,7 +1381,7 @@ C2HPacketHandler_8814( #endif /* CONFIG_BT_COEXIST */ { /* handle directly */ -#ifdef CONFIG_BEAMFORMING +#ifdef CONFIG_BEAMFORMING if (c2hCmdId == C2H_TXBF) { /* enqueue */ c2h_evt = (struct c2h_evt_hdr_88xx *)rtw_zmalloc(16); @@ -1465,16 +1422,14 @@ void ConstructBtNullFunctionData( pwlanhdr = (struct rtw_ieee80211_hdr*)pframe; - if (NULL == StaAddr) - { + if (NULL == StaAddr) { _rtw_memcpy(bssid, adapter_mac_addr(padapter), ETH_ALEN); StaAddr = bssid; } - + fctrl = &pwlanhdr->frame_ctl; *(fctrl) = 0; - if (bForcePowerSave) - { + if (bForcePowerSave) { SetPwrMgt(fctrl); } @@ -1509,7 +1464,7 @@ void ConstructBtNullFunctionData( static void SetFwRsvdPagePkt_BTCoex(PADAPTER padapter) { PHAL_DATA_TYPE pHalData; - struct xmit_frame *pcmdframe; + struct xmit_frame *pcmdframe; struct pkt_attrib *pattrib; struct xmit_priv *pxmitpriv; struct mlme_ext_priv *pmlmeext; @@ -1554,10 +1509,9 @@ static void SetFwRsvdPagePkt_BTCoex(PADAPTER padapter) // When we count the first page size, we need to reserve description size for the RSVD // packet, it will be filled in front of the packet in TXPKTBUF. CurtPktPageNum = (u8)PageNum(TxDescLen + BeaconLength, PageSize); - + //If we don't add 1 more page, the WOWLAN function has a problem. Baron thinks it's a bug of firmware - if (CurtPktPageNum == 1) - { + if (CurtPktPageNum == 1) { CurtPktPageNum += 1; } TotalPageNum += CurtPktPageNum; @@ -1565,13 +1519,12 @@ static void SetFwRsvdPagePkt_BTCoex(PADAPTER padapter) BufIndex += (CurtPktPageNum*PageSize); // Jump to lastest page - if (BufIndex < (MaxRsvdPageBufSize - PageSize)) - { + if (BufIndex < (MaxRsvdPageBufSize - PageSize)) { BufIndex = TxDescOffset + (MaxRsvdPageBufSize - PageSize); TotalPageNum = BCNQ_PAGE_NUM_8814-1; - + } - + //3 (6) BT Qos null data RsvdPageLoc.LocBTQosNull = TotalPageNum; ConstructBtNullFunctionData( @@ -1582,7 +1535,7 @@ static void SetFwRsvdPagePkt_BTCoex(PADAPTER padapter) _TRUE, 0, 0, _FALSE); rtl8814a_fill_fake_txdesc(padapter, &ReservedPagePacket[BufIndex-TxDescLen], BTQosNullLength, _FALSE, _TRUE, _FALSE); - //RTW_INFO("%s(): HW_VAR_SET_TX_CMD: BT QOS NULL DATA %p %d\n", + //RTW_INFO("%s(): HW_VAR_SET_TX_CMD: BT QOS NULL DATA %p %d\n", // __FUNCTION__, &ReservedPagePacket[BufIndex-TxDescLen], (BTQosNullLength+TxDescLen)); CurtPktPageNum = (u8)PageNum(TxDescLen + BTQosNullLength,PageSize); @@ -1590,14 +1543,11 @@ static void SetFwRsvdPagePkt_BTCoex(PADAPTER padapter) TotalPageNum += CurtPktPageNum; TotalPacketLen = BufIndex + BTQosNullLength; - if(TotalPacketLen > MaxRsvdPageBufSize) - { + if(TotalPacketLen > MaxRsvdPageBufSize) { RTW_INFO("%s(): ERROR: The rsvd page size is not enough!!TotalPacketLen %d, MaxRsvdPageBufSize %d\n",__FUNCTION__, TotalPacketLen,MaxRsvdPageBufSize); goto error; - } - else - { + } else { // update attribute pattrib = &pcmdframe->attrib; update_mgntframe_attrib(padapter, pattrib); @@ -1611,13 +1561,13 @@ static void SetFwRsvdPagePkt_BTCoex(PADAPTER padapter) } RTW_INFO("%s: Set RSVD page location to Fw ,TotalPacketLen(%d), TotalPageNum(%d)\n", __FUNCTION__,TotalPacketLen,TotalPageNum); - if(check_fwstate(pmlmepriv, _FW_LINKED)) { + if (check_fwstate(pmlmepriv, _FW_LINKED)) { rtl8814_set_FwRsvdPage_cmd(padapter, &RsvdPageLoc); #ifdef CONFIG_WOWLAN rtl8814_set_FwAoacRsvdPage_cmd(padapter, &RsvdPageLoc); #endif - } - + } + return; error: @@ -1673,24 +1623,22 @@ void rtl8812a_download_BTCoex_AP_mode_rsvd_page(PADAPTER padapter) DLBcnCount = 0; poll = 0; - do - { + do { SetFwRsvdPagePkt_BTCoex(padapter); DLBcnCount++; - do - { + do { rtw_yield_os(); //rtw_mdelay_os(10); // check rsvd page download OK. rtw_hal_get_hwreg(padapter, HW_VAR_BCN_VALID, (u8*)(&bcn_valid)); poll++; } while (!bcn_valid && (poll%10) != 0 && !RTW_CANNOT_RUN(padapter)); - + } while (!bcn_valid && DLBcnCount <= 100 && !RTW_CANNOT_RUN(padapter)); if (RTW_CANNOT_RUN(padapter)) ; - else if(!bcn_valid) + else if (!bcn_valid) RTW_INFO(ADPT_FMT": 1 DL RSVD page failed! DLBcnCount:%u, poll:%u\n", ADPT_ARG(padapter) ,DLBcnCount, poll); else { @@ -1711,8 +1659,7 @@ void rtl8812a_download_BTCoex_AP_mode_rsvd_page(PADAPTER padapter) // prevent from setting 0x422[6] to 0 after download reserved page, or it will cause // the beacon cannot be sent by HW. // 2010.06.23. Added by tynli. - if(bRecover) - { + if (bRecover) { rtw_write8(padapter, REG_FWHW_TXQ_CTRL+2, pHalData->RegFwHwTxQCtrl | BIT(6)); pHalData->RegFwHwTxQCtrl |= BIT(6); } @@ -1727,4 +1674,3 @@ void rtl8812a_download_BTCoex_AP_mode_rsvd_page(PADAPTER padapter) } #endif // CONFIG_BT_COEXIST -