mirror of
https://github.com/lwfinger/rtl8188eu.git
synced 2025-05-08 14:33:05 +00:00
rtl8188eu: Fix some sparse warnings
The driver did not work on PowerPC, which is big endian. This patch fixes all the sparse warnings concerning improper use of __le16 and __le32 variables. Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
This commit is contained in:
parent
77e8b5de91
commit
7c7f632ac7
25 changed files with 502 additions and 684 deletions
|
@ -72,9 +72,12 @@ typedef void * RT_TIMER_CALL_BACK;
|
|||
#define FALSE false
|
||||
|
||||
|
||||
#define SET_TX_DESC_ANTSEL_A_88E(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+8, 24, 1, __Value)
|
||||
#define SET_TX_DESC_ANTSEL_B_88E(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+8, 25, 1, __Value)
|
||||
#define SET_TX_DESC_ANTSEL_C_88E(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+28, 29, 1, __Value)
|
||||
#define SET_TX_DESC_ANTSEL_A_88E(__pTxDesc, __Value) \
|
||||
SET_BITS_TO_LE_4BYTE(__pTxDesc+8, 24, 1, __Value)
|
||||
#define SET_TX_DESC_ANTSEL_B_88E(__pTxDesc, __Value) \
|
||||
SET_BITS_TO_LE_4BYTE(__pTxDesc+8, 25, 1, __Value)
|
||||
#define SET_TX_DESC_ANTSEL_C_88E(__pTxDesc, __Value) \
|
||||
SET_BITS_TO_LE_4BYTE(__pTxDesc+28, 29, 1, __Value)
|
||||
|
||||
//define useless flag to avoid compile warning
|
||||
#define USE_WORKITEM 0
|
||||
|
|
|
@ -30,6 +30,7 @@
|
|||
#include <rtw_ioctl_set.h>
|
||||
|
||||
#include <rtl8188e_hal.h>
|
||||
#include <rtl8188e_cmd.h>
|
||||
|
||||
#define CONFIG_H2C_EF
|
||||
|
||||
|
@ -170,38 +171,6 @@ exit:
|
|||
return ret;
|
||||
}
|
||||
|
||||
u8 rtl8192c_h2c_msg_hdl(struct adapter *padapter, unsigned char *pbuf)
|
||||
{
|
||||
u8 ElementID, CmdLen;
|
||||
u8 *pCmdBuffer;
|
||||
struct cmd_msg_parm *pcmdmsg;
|
||||
|
||||
if(!pbuf)
|
||||
return H2C_PARAMETERS_ERROR;
|
||||
|
||||
pcmdmsg = (struct cmd_msg_parm*)pbuf;
|
||||
ElementID = pcmdmsg->eid;
|
||||
CmdLen = pcmdmsg->sz;
|
||||
pCmdBuffer = pcmdmsg->buf;
|
||||
|
||||
FillH2CCmd_88E(padapter, ElementID, CmdLen, pCmdBuffer);
|
||||
|
||||
return H2C_SUCCESS;
|
||||
}
|
||||
/*
|
||||
#if defined(CONFIG_AUTOSUSPEND) && defined(SUPPORT_HW_RFOFF_DETECTED)
|
||||
u8 rtl8192c_set_FwSelectSuspend_cmd(struct adapter *padapter ,u8 bfwpoll, u16 period)
|
||||
{
|
||||
u8 res=_SUCCESS;
|
||||
struct H2C_SS_RFOFF_PARAM param;
|
||||
DBG_8192C("==>%s bfwpoll(%x)\n",__FUNCTION__,bfwpoll);
|
||||
param.gpio_period = period;//Polling GPIO_11 period time
|
||||
param.ROFOn = (true == bfwpoll)?1:0;
|
||||
FillH2CCmd_88E(padapter, SELECTIVE_SUSPEND_ROF_CMD, sizeof(param), (u8*)(¶m));
|
||||
return res;
|
||||
}
|
||||
#endif //CONFIG_AUTOSUSPEND && SUPPORT_HW_RFOFF_DETECTED
|
||||
*/
|
||||
u8 rtl8188e_set_rssi_cmd(struct adapter*padapter, u8 *param)
|
||||
{
|
||||
u8 res=_SUCCESS;
|
||||
|
@ -213,9 +182,6 @@ u8 rtl8188e_set_rssi_cmd(struct adapter*padapter, u8 *param)
|
|||
DBG_8192C("==>%s fw dont support RA \n",__FUNCTION__);
|
||||
res=_FAIL;
|
||||
}
|
||||
|
||||
;
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
|
@ -226,20 +192,18 @@ u8 rtl8188e_set_raid_cmd(struct adapter*padapter, u32 mask)
|
|||
HAL_DATA_TYPE *pHalData = GET_HAL_DATA(padapter);
|
||||
;
|
||||
if(pHalData->fw_ractrl == true){
|
||||
__le32 lmask;
|
||||
|
||||
_rtw_memset(buf, 0, 3);
|
||||
mask = cpu_to_le32( mask );
|
||||
_rtw_memcpy(buf, &mask, 3);
|
||||
lmask = cpu_to_le32( mask );
|
||||
_rtw_memcpy(buf, &lmask, 3);
|
||||
|
||||
FillH2CCmd_88E(padapter, H2C_DM_MACID_CFG, 3, buf);
|
||||
}else{
|
||||
DBG_8192C("==>%s fw dont support RA \n",__FUNCTION__);
|
||||
res=_FAIL;
|
||||
}
|
||||
|
||||
;
|
||||
|
||||
return res;
|
||||
|
||||
}
|
||||
|
||||
//bitmap[0:27] = tx_rate_bitmap
|
||||
|
@ -354,10 +318,10 @@ void rtl8188e_set_FwPwrMode_cmd(struct adapter *padapter, u8 Mode)
|
|||
;
|
||||
}
|
||||
|
||||
void rtl8188e_set_FwMediaStatus_cmd(struct adapter *padapter, u16 mstatus_rpt )
|
||||
void rtl8188e_set_FwMediaStatus_cmd(struct adapter *padapter, __le16 mstatus_rpt )
|
||||
{
|
||||
u8 opmode,macid;
|
||||
u16 mst_rpt = cpu_to_le16 (mstatus_rpt);
|
||||
u16 mst_rpt = le16_to_cpu(mstatus_rpt);
|
||||
u32 reg_macid_no_link = REG_MACID_NO_LINK_0;
|
||||
opmode = (u8) mst_rpt;
|
||||
macid = (u8)(mst_rpt >> 8) ;
|
||||
|
@ -383,11 +347,11 @@ void rtl8188e_set_FwMediaStatus_cmd(struct adapter *padapter, u16 mstatus_rpt )
|
|||
|
||||
}
|
||||
|
||||
void ConstructBeacon(struct adapter *padapter, u8 *pframe, u32 *pLength)
|
||||
static void ConstructBeacon(struct adapter *padapter, u8 *pframe, u32 *pLength)
|
||||
{
|
||||
struct rtw_ieee80211_hdr *pwlanhdr;
|
||||
u16 *fctrl;
|
||||
u32 rate_len, pktlen;
|
||||
__le16 *fctrl;
|
||||
u32 rate_len, pktlen;
|
||||
struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
|
||||
struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
|
||||
WLAN_BSSID_EX *cur_network = &(pmlmeinfo->network);
|
||||
|
@ -485,11 +449,11 @@ _ConstructBeacon:
|
|||
|
||||
}
|
||||
|
||||
void ConstructPSPoll(struct adapter *padapter, u8 *pframe, u32 *pLength)
|
||||
static void ConstructPSPoll(struct adapter *padapter, u8 *pframe, u32 *pLength)
|
||||
{
|
||||
struct rtw_ieee80211_hdr *pwlanhdr;
|
||||
u16 *fctrl;
|
||||
u32 pktlen;
|
||||
__le16 *fctrl;
|
||||
u32 pktlen;
|
||||
struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
|
||||
struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
|
||||
|
||||
|
@ -515,7 +479,7 @@ void ConstructPSPoll(struct adapter *padapter, u8 *pframe, u32 *pLength)
|
|||
*pLength = 16;
|
||||
}
|
||||
|
||||
void ConstructNullFunctionData(
|
||||
static void ConstructNullFunctionData(
|
||||
struct adapter *padapter,
|
||||
u8 *pframe,
|
||||
u32 *pLength,
|
||||
|
@ -526,8 +490,8 @@ void ConstructNullFunctionData(
|
|||
u8 bForcePowerSave)
|
||||
{
|
||||
struct rtw_ieee80211_hdr *pwlanhdr;
|
||||
u16 *fctrl;
|
||||
u32 pktlen;
|
||||
__le16 *fctrl;
|
||||
u32 pktlen;
|
||||
struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
|
||||
struct wlan_network *cur_network = &pmlmepriv->cur_network;
|
||||
struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
|
||||
|
@ -588,46 +552,6 @@ void ConstructNullFunctionData(
|
|||
*pLength = pktlen;
|
||||
}
|
||||
|
||||
void ConstructProbeRsp(struct adapter *padapter, u8 *pframe, u32 *pLength, u8 *StaAddr, BOOLEAN bHideSSID)
|
||||
{
|
||||
struct rtw_ieee80211_hdr *pwlanhdr;
|
||||
u16 *fctrl;
|
||||
u8 *mac, *bssid;
|
||||
u32 pktlen;
|
||||
struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
|
||||
struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
|
||||
WLAN_BSSID_EX *cur_network = &(pmlmeinfo->network);
|
||||
|
||||
|
||||
//DBG_871X("%s\n", __FUNCTION__);
|
||||
|
||||
pwlanhdr = (struct rtw_ieee80211_hdr *)pframe;
|
||||
|
||||
mac = myid(&(padapter->eeprompriv));
|
||||
bssid = cur_network->MacAddress;
|
||||
|
||||
fctrl = &(pwlanhdr->frame_ctl);
|
||||
*(fctrl) = 0;
|
||||
_rtw_memcpy(pwlanhdr->addr1, StaAddr, ETH_ALEN);
|
||||
_rtw_memcpy(pwlanhdr->addr2, mac, ETH_ALEN);
|
||||
_rtw_memcpy(pwlanhdr->addr3, bssid, ETH_ALEN);
|
||||
|
||||
SetSeqNum(pwlanhdr, 0);
|
||||
SetFrameSubType(fctrl, WIFI_PROBERSP);
|
||||
|
||||
pktlen = sizeof(struct rtw_ieee80211_hdr_3addr);
|
||||
pframe += pktlen;
|
||||
|
||||
if(cur_network->IELength>MAX_IE_SZ)
|
||||
return;
|
||||
|
||||
_rtw_memcpy(pframe, cur_network->IEs, cur_network->IELength);
|
||||
pframe += cur_network->IELength;
|
||||
pktlen += cur_network->IELength;
|
||||
|
||||
*pLength = pktlen;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_WOWLAN
|
||||
//
|
||||
// Description:
|
||||
|
@ -786,7 +710,7 @@ static void ConstructARPResponse(
|
|||
}
|
||||
#endif
|
||||
|
||||
void rtl8188e_set_FwRsvdPage_cmd(struct adapter *padapter, PRSVDPAGE_LOC rsvdpageloc)
|
||||
static void rtl8188e_set_FwRsvdPage_cmd(struct adapter *padapter, PRSVDPAGE_LOC rsvdpageloc)
|
||||
{
|
||||
u8 u1H2CRsvdPageParm[H2C_8188E_RSVDPAGE_LOC_LEN]={0};
|
||||
u8 u1H2CAoacRsvdPageParm[H2C_8188E_AOAC_RSVDPAGE_LOC_LEN]={0};
|
||||
|
|
|
@ -166,7 +166,7 @@ static void Init_ODM_ComInfo_88E(struct adapter *Adapter)
|
|||
ODM_CmnInfoInit(pDM_Odm,ODM_CMNINFO_FAB_VER,fab_ver);
|
||||
ODM_CmnInfoInit(pDM_Odm,ODM_CMNINFO_CUT_VER,cut_ver);
|
||||
|
||||
ODM_CmnInfoInit(pDM_Odm, ODM_CMNINFO_MP_TEST_CHIP,IS_NORMAL_CHIP(pHalData->VersionID));
|
||||
ODM_CmnInfoInit(pDM_Odm, ODM_CMNINFO_MP_TEST_CHIP,IS_NORMAL_CHIP(pHalData->VersionID));
|
||||
|
||||
ODM_CmnInfoInit(pDM_Odm,ODM_CMNINFO_PATCH_ID,pHalData->CustomerID);
|
||||
// ODM_CMNINFO_BINHCT_TEST only for MP Team
|
||||
|
|
|
@ -2987,14 +2987,11 @@ Hal_EfuseParseIDCode88E(
|
|||
|
||||
|
||||
// Checl 0x8129 again for making sure autoload status!!
|
||||
EEPROMId = le16_to_cpu(*((u16*)hwinfo));
|
||||
if (EEPROMId != RTL_EEPROM_ID)
|
||||
{
|
||||
EEPROMId = le16_to_cpu(*((__le16*)hwinfo));
|
||||
if (EEPROMId != RTL_EEPROM_ID) {
|
||||
DBG_8192C("EEPROM ID(%#x) is invalid!!\n", EEPROMId);
|
||||
pEEPROM->bautoload_fail_flag = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
pEEPROM->bautoload_fail_flag = false;
|
||||
}
|
||||
|
||||
|
|
|
@ -190,70 +190,66 @@ void update_recvframe_attrib_88e(
|
|||
|
||||
//phdr = &precvframe->u.hdr;
|
||||
|
||||
report.rxdw0 = le32_to_cpu(prxstat->rxdw0);
|
||||
report.rxdw1 = le32_to_cpu(prxstat->rxdw1);
|
||||
report.rxdw2 = le32_to_cpu(prxstat->rxdw2);
|
||||
report.rxdw3 = le32_to_cpu(prxstat->rxdw3);
|
||||
report.rxdw4 = le32_to_cpu(prxstat->rxdw4);
|
||||
report.rxdw5 = le32_to_cpu(prxstat->rxdw5);
|
||||
report.rxdw0 = prxstat->rxdw0;
|
||||
report.rxdw1 = prxstat->rxdw1;
|
||||
report.rxdw2 = prxstat->rxdw2;
|
||||
report.rxdw3 = prxstat->rxdw3;
|
||||
report.rxdw4 = prxstat->rxdw4;
|
||||
report.rxdw5 = prxstat->rxdw5;
|
||||
|
||||
prxreport = (PRXREPORT)&report;
|
||||
|
||||
pattrib = &precvframe->u.hdr.attrib;
|
||||
_rtw_memset(pattrib, 0, sizeof(struct rx_pkt_attrib));
|
||||
|
||||
pattrib->crc_err = (u8)((report.rxdw0 >> 14) & 0x1);;//(u8)prxreport->crc32;
|
||||
pattrib->crc_err = (u8)((le32_to_cpu(report.rxdw0) >> 14) & 0x1);;//(u8)prxreport->crc32;
|
||||
|
||||
// update rx report to recv_frame attribute
|
||||
pattrib->pkt_rpt_type = (u8)((report.rxdw3 >> 14) & 0x3);//prxreport->rpt_sel;
|
||||
pattrib->pkt_rpt_type = (u8)((le32_to_cpu(report.rxdw3) >> 14) & 0x3);//prxreport->rpt_sel;
|
||||
|
||||
if(pattrib->pkt_rpt_type == NORMAL_RX)//Normal rx packet
|
||||
{
|
||||
pattrib->pkt_len = (u16)(report.rxdw0 &0x00003fff);//(u16)prxreport->pktlen;
|
||||
pattrib->drvinfo_sz = (u8)((report.rxdw0 >> 16) & 0xf) * 8;//(u8)(prxreport->drvinfosize << 3);
|
||||
pattrib->pkt_len = (u16)(le32_to_cpu(report.rxdw0) &0x00003fff);//(u16)prxreport->pktlen;
|
||||
pattrib->drvinfo_sz = (u8)((le32_to_cpu(report.rxdw0) >> 16) & 0xf) * 8;//(u8)(prxreport->drvinfosize << 3);
|
||||
|
||||
pattrib->physt = (u8)((report.rxdw0 >> 26) & 0x1);//(u8)prxreport->physt;
|
||||
pattrib->physt = (u8)((le32_to_cpu(report.rxdw0) >> 26) & 0x1);//(u8)prxreport->physt;
|
||||
|
||||
pattrib->bdecrypted = (report.rxdw0 & BIT(27))? 0:1;//(u8)(prxreport->swdec ? 0 : 1);
|
||||
pattrib->encrypt = (u8)((report.rxdw0 >> 20) & 0x7);//(u8)prxreport->security;
|
||||
pattrib->bdecrypted = (le32_to_cpu(report.rxdw0) & BIT(27))? 0:1;//(u8)(prxreport->swdec ? 0 : 1);
|
||||
pattrib->encrypt = (u8)((le32_to_cpu(report.rxdw0) >> 20) & 0x7);//(u8)prxreport->security;
|
||||
|
||||
pattrib->qos = (u8)((report.rxdw0 >> 23) & 0x1);//(u8)prxreport->qos;
|
||||
pattrib->priority = (u8)((report.rxdw1 >> 8) & 0xf);//(u8)prxreport->tid;
|
||||
pattrib->qos = (u8)((le32_to_cpu(report.rxdw0) >> 23) & 0x1);//(u8)prxreport->qos;
|
||||
pattrib->priority = (u8)((le32_to_cpu(report.rxdw1) >> 8) & 0xf);//(u8)prxreport->tid;
|
||||
|
||||
pattrib->amsdu = (u8)((report.rxdw1 >> 13) & 0x1);//(u8)prxreport->amsdu;
|
||||
pattrib->amsdu = (u8)((le32_to_cpu(report.rxdw1) >> 13) & 0x1);//(u8)prxreport->amsdu;
|
||||
|
||||
pattrib->seq_num = (u16)(report.rxdw2 & 0x00000fff);//(u16)prxreport->seq;
|
||||
pattrib->frag_num = (u8)((report.rxdw2 >> 12) & 0xf);//(u8)prxreport->frag;
|
||||
pattrib->mfrag = (u8)((report.rxdw1 >> 27) & 0x1);//(u8)prxreport->mf;
|
||||
pattrib->mdata = (u8)((report.rxdw1 >> 26) & 0x1);//(u8)prxreport->md;
|
||||
pattrib->seq_num = (u16)(le32_to_cpu(report.rxdw2) & 0x00000fff);//(u16)prxreport->seq;
|
||||
pattrib->frag_num = (u8)((le32_to_cpu(report.rxdw2) >> 12) & 0xf);//(u8)prxreport->frag;
|
||||
pattrib->mfrag = (u8)((le32_to_cpu(report.rxdw1) >> 27) & 0x1);//(u8)prxreport->mf;
|
||||
pattrib->mdata = (u8)((le32_to_cpu(report.rxdw1) >> 26) & 0x1);//(u8)prxreport->md;
|
||||
|
||||
pattrib->mcs_rate = (u8)(report.rxdw3 & 0x3f);//(u8)prxreport->rxmcs;
|
||||
pattrib->rxht = (u8)((report.rxdw3 >> 6) & 0x1);//(u8)prxreport->rxht;
|
||||
pattrib->mcs_rate = (u8)(le32_to_cpu(report.rxdw3) & 0x3f);//(u8)prxreport->rxmcs;
|
||||
pattrib->rxht = (u8)((le32_to_cpu(report.rxdw3) >> 6) & 0x1);//(u8)prxreport->rxht;
|
||||
|
||||
pattrib->icv_err = (u8)((report.rxdw0 >> 15) & 0x1);//(u8)prxreport->icverr;
|
||||
pattrib->shift_sz = (u8)((report.rxdw0 >> 24) & 0x3);
|
||||
pattrib->icv_err = (u8)((le32_to_cpu(report.rxdw0) >> 15) & 0x1);//(u8)prxreport->icverr;
|
||||
pattrib->shift_sz = (u8)((le32_to_cpu(report.rxdw0) >> 24) & 0x3);
|
||||
|
||||
}
|
||||
else if(pattrib->pkt_rpt_type == TX_REPORT1)//CCX
|
||||
{
|
||||
} else if(pattrib->pkt_rpt_type == TX_REPORT1) {//CCX
|
||||
pattrib->pkt_len = TX_RPT1_PKT_LEN;
|
||||
pattrib->drvinfo_sz = 0;
|
||||
}
|
||||
else if(pattrib->pkt_rpt_type == TX_REPORT2)// TX RPT
|
||||
{
|
||||
pattrib->pkt_len =(u16)(report.rxdw0 & 0x3FF);//Rx length[9:0]
|
||||
} else if(pattrib->pkt_rpt_type == TX_REPORT2) { // TX RPT
|
||||
pattrib->pkt_len =(u16)(le32_to_cpu(report.rxdw0) & 0x3FF);//Rx length[9:0]
|
||||
pattrib->drvinfo_sz = 0;
|
||||
|
||||
//
|
||||
// Get TX report MAC ID valid.
|
||||
//
|
||||
pattrib->MacIDValidEntry[0] = report.rxdw4;
|
||||
pattrib->MacIDValidEntry[1] = report.rxdw5;
|
||||
pattrib->MacIDValidEntry[0] = le32_to_cpu(report.rxdw4);
|
||||
pattrib->MacIDValidEntry[1] = le32_to_cpu(report.rxdw5);
|
||||
|
||||
}
|
||||
else if(pattrib->pkt_rpt_type == HIS_REPORT)// USB HISR RPT
|
||||
{
|
||||
pattrib->pkt_len = (u16)(report.rxdw0 &0x00003fff);//(u16)prxreport->pktlen;
|
||||
pattrib->pkt_len = (u16)(le32_to_cpu(report.rxdw0) &0x00003fff);//(u16)prxreport->pktlen;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -47,7 +47,7 @@ void rtl8188eu_free_xmit_priv(struct adapter *padapter)
|
|||
{
|
||||
}
|
||||
|
||||
u8 urb_zero_packet_chk(struct adapter *padapter, int sz)
|
||||
static u8 urb_zero_packet_chk(struct adapter *padapter, int sz)
|
||||
{
|
||||
u8 blnSetTxDescOffset;
|
||||
HAL_DATA_TYPE *pHalData = GET_HAL_DATA(padapter);
|
||||
|
@ -56,7 +56,7 @@ u8 urb_zero_packet_chk(struct adapter *padapter, int sz)
|
|||
return blnSetTxDescOffset;
|
||||
}
|
||||
|
||||
void rtl8188eu_cal_txdesc_chksum(struct tx_desc *ptxdesc)
|
||||
static void rtl8188eu_cal_txdesc_chksum(struct tx_desc *ptxdesc)
|
||||
{
|
||||
u16 *usPtr = (u16*)ptxdesc;
|
||||
u32 count = 16; // (32 bytes / 2 bytes per XOR) => 16 times
|
||||
|
@ -67,7 +67,7 @@ void rtl8188eu_cal_txdesc_chksum(struct tx_desc *ptxdesc)
|
|||
ptxdesc->txdw7 &= cpu_to_le32(0xffff0000);
|
||||
|
||||
for(index = 0 ; index < count ; index++){
|
||||
checksum = checksum ^ le16_to_cpu(*(usPtr + index));
|
||||
checksum = checksum ^ le16_to_cpu(*(__le16 *)(usPtr + index));
|
||||
}
|
||||
|
||||
ptxdesc->txdw7 |= cpu_to_le32(0x0000ffff&checksum);
|
||||
|
@ -126,44 +126,39 @@ void rtl8188e_fill_fake_txdesc(
|
|||
rtl8188eu_cal_txdesc_chksum(ptxdesc);
|
||||
}
|
||||
|
||||
void fill_txdesc_sectype(struct pkt_attrib *pattrib, struct tx_desc *ptxdesc)
|
||||
static void fill_txdesc_sectype(struct pkt_attrib *pattrib, struct tx_desc *ptxdesc)
|
||||
{
|
||||
if ((pattrib->encrypt > 0) && !pattrib->bswenc)
|
||||
{
|
||||
switch (pattrib->encrypt)
|
||||
{
|
||||
//SEC_TYPE : 0:NO_ENC,1:WEP40/TKIP,2:WAPI,3:AES
|
||||
case _WEP40_:
|
||||
case _WEP104_:
|
||||
ptxdesc->txdw1 |= cpu_to_le32((0x01<<SEC_TYPE_SHT)&0x00c00000);
|
||||
ptxdesc->txdw2 |= cpu_to_le32(0x7 << AMPDU_DENSITY_SHT);
|
||||
break;
|
||||
case _TKIP_:
|
||||
case _TKIP_WTMIC_:
|
||||
ptxdesc->txdw1 |= cpu_to_le32((0x01<<SEC_TYPE_SHT)&0x00c00000);
|
||||
ptxdesc->txdw2 |= cpu_to_le32(0x7 << AMPDU_DENSITY_SHT);
|
||||
break;
|
||||
if ((pattrib->encrypt > 0) && !pattrib->bswenc) {
|
||||
switch (pattrib->encrypt) {
|
||||
//SEC_TYPE : 0:NO_ENC,1:WEP40/TKIP,2:WAPI,3:AES
|
||||
case _WEP40_:
|
||||
case _WEP104_:
|
||||
ptxdesc->txdw1 |= cpu_to_le32((0x01<<SEC_TYPE_SHT)&0x00c00000);
|
||||
ptxdesc->txdw2 |= cpu_to_le32(0x7 << AMPDU_DENSITY_SHT);
|
||||
break;
|
||||
case _TKIP_:
|
||||
case _TKIP_WTMIC_:
|
||||
ptxdesc->txdw1 |= cpu_to_le32((0x01<<SEC_TYPE_SHT)&0x00c00000);
|
||||
ptxdesc->txdw2 |= cpu_to_le32(0x7 << AMPDU_DENSITY_SHT);
|
||||
break;
|
||||
#ifdef CONFIG_WAPI_SUPPORT
|
||||
case _SMS4_:
|
||||
ptxdesc->txdw1 |= cpu_to_le32((0x02<<SEC_TYPE_SHT)&0x00c00000);
|
||||
ptxdesc->txdw2 |= cpu_to_le32(0x7 << AMPDU_DENSITY_SHT);
|
||||
break;
|
||||
case _SMS4_:
|
||||
ptxdesc->txdw1 |= cpu_to_le32((0x02<<SEC_TYPE_SHT)&0x00c00000);
|
||||
ptxdesc->txdw2 |= cpu_to_le32(0x7 << AMPDU_DENSITY_SHT);
|
||||
break;
|
||||
#endif
|
||||
case _AES_:
|
||||
ptxdesc->txdw1 |= cpu_to_le32((0x03<<SEC_TYPE_SHT)&0x00c00000);
|
||||
ptxdesc->txdw2 |= cpu_to_le32(0x7 << AMPDU_DENSITY_SHT);
|
||||
break;
|
||||
case _NO_PRIVACY_:
|
||||
default:
|
||||
break;
|
||||
|
||||
case _AES_:
|
||||
ptxdesc->txdw1 |= cpu_to_le32((0x03<<SEC_TYPE_SHT)&0x00c00000);
|
||||
ptxdesc->txdw2 |= cpu_to_le32(0x7 << AMPDU_DENSITY_SHT);
|
||||
break;
|
||||
case _NO_PRIVACY_:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void fill_txdesc_vcs(struct pkt_attrib *pattrib, u32 *pdw)
|
||||
static void fill_txdesc_vcs(struct pkt_attrib *pattrib, __le32 *pdw)
|
||||
{
|
||||
//DBG_8192C("cvs_mode=%d\n", pattrib->vcs_mode);
|
||||
|
||||
|
@ -200,7 +195,7 @@ void fill_txdesc_vcs(struct pkt_attrib *pattrib, u32 *pdw)
|
|||
}
|
||||
}
|
||||
|
||||
void fill_txdesc_phy(struct pkt_attrib *pattrib, u32 *pdw)
|
||||
static void fill_txdesc_phy(struct pkt_attrib *pattrib, __le32 *pdw)
|
||||
{
|
||||
//DBG_8192C("bwmode=%d, ch_off=%d\n", pattrib->bwmode, pattrib->ch_offset);
|
||||
|
||||
|
@ -307,15 +302,8 @@ if (padapter->registrypriv.mp_mode == 0)
|
|||
|
||||
if(pattrib->ampdu_en==true){
|
||||
ptxdesc->txdw2 |= cpu_to_le32(AGG_EN);//AGG EN
|
||||
|
||||
//SET_TX_DESC_MAX_AGG_NUM_88E(pDesc, 0x1F);
|
||||
//SET_TX_DESC_MCSG1_MAX_LEN_88E(pDesc, 0x6);
|
||||
//SET_TX_DESC_MCSG2_MAX_LEN_88E(pDesc, 0x6);
|
||||
//SET_TX_DESC_MCSG3_MAX_LEN_88E(pDesc, 0x6);
|
||||
//SET_TX_DESC_MCS7_SGI_MAX_LEN_88E(pDesc, 0x6);
|
||||
ptxdesc->txdw6 = 0x6666f800;
|
||||
}
|
||||
else{
|
||||
ptxdesc->txdw6 = cpu_to_le32(0x6666f800);
|
||||
} else{
|
||||
ptxdesc->txdw2 |= cpu_to_le32(AGG_BK);//AGG BK
|
||||
}
|
||||
|
||||
|
|
|
@ -2064,23 +2064,19 @@ Hal_EfuseParsePIDVID_8188EU(
|
|||
if( !AutoLoadFail )
|
||||
{
|
||||
// VID, PID
|
||||
pHalData->EEPROMVID = EF2Byte( *(u16 *)&hwinfo[EEPROM_VID_88EU] );
|
||||
pHalData->EEPROMPID = EF2Byte( *(u16 *)&hwinfo[EEPROM_PID_88EU] );
|
||||
pHalData->EEPROMVID = EF2BYTE(*(__le16 *)&hwinfo[EEPROM_VID_88EU]);
|
||||
pHalData->EEPROMPID = EF2BYTE(*(__le16 *)&hwinfo[EEPROM_PID_88EU]);
|
||||
|
||||
// Customer ID, 0x00 and 0xff are reserved for Realtek.
|
||||
pHalData->EEPROMCustomerID = *(u8 *)&hwinfo[EEPROM_CUSTOMERID_88E];
|
||||
pHalData->EEPROMSubCustomerID = EEPROM_Default_SubCustomerID;
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
pHalData->EEPROMVID = EEPROM_Default_VID;
|
||||
pHalData->EEPROMPID = EEPROM_Default_PID;
|
||||
|
||||
// Customer ID, 0x00 and 0xff are reserved for Realtek.
|
||||
pHalData->EEPROMCustomerID = EEPROM_Default_CustomerID;
|
||||
pHalData->EEPROMSubCustomerID = EEPROM_Default_SubCustomerID;
|
||||
|
||||
}
|
||||
|
||||
DBG_871X("VID = 0x%04X, PID = 0x%04X\n", pHalData->EEPROMVID, pHalData->EEPROMPID);
|
||||
|
@ -3736,80 +3732,80 @@ void SetHwReg8188EU(struct adapter *Adapter, u8 variable, u8* val)
|
|||
|
||||
poidparam = (struct wowlan_ioctl_param *)val;
|
||||
switch (poidparam->subcode){
|
||||
case WOWLAN_ENABLE:
|
||||
DBG_871X_LEVEL(_drv_always_, "WOWLAN_ENABLE\n");
|
||||
case WOWLAN_ENABLE:
|
||||
DBG_871X_LEVEL(_drv_always_, "WOWLAN_ENABLE\n");
|
||||
|
||||
SetFwRelatedForWoWLAN8188ES(Adapter, true);
|
||||
SetFwRelatedForWoWLAN8188ES(Adapter, true);
|
||||
|
||||
//Set Pattern
|
||||
//if(adapter_to_pwrctl(Adapter)->wowlan_pattern==true)
|
||||
// rtw_wowlan_reload_pattern(Adapter);
|
||||
//Set Pattern
|
||||
//if(adapter_to_pwrctl(Adapter)->wowlan_pattern==true)
|
||||
// rtw_wowlan_reload_pattern(Adapter);
|
||||
|
||||
//RX DMA stop
|
||||
DBG_871X_LEVEL(_drv_always_, "Pause DMA\n");
|
||||
rtw_write32(Adapter,REG_RXPKT_NUM,(rtw_read32(Adapter,REG_RXPKT_NUM)|RW_RELEASE_EN));
|
||||
do{
|
||||
if((rtw_read32(Adapter, REG_RXPKT_NUM)&RXDMA_IDLE)) {
|
||||
DBG_871X_LEVEL(_drv_always_, "RX_DMA_IDLE is true\n");
|
||||
break;
|
||||
} else {
|
||||
// If RX_DMA is not idle, receive one pkt from DMA
|
||||
DBG_871X_LEVEL(_drv_always_, "RX_DMA_IDLE is not true\n");
|
||||
}
|
||||
}while(trycnt--);
|
||||
if(trycnt ==0)
|
||||
DBG_871X_LEVEL(_drv_always_, "Stop RX DMA failed...... \n");
|
||||
|
||||
//Set WOWLAN H2C command.
|
||||
DBG_871X_LEVEL(_drv_always_, "Set WOWLan cmd\n");
|
||||
rtl8188es_set_wowlan_cmd(Adapter, 1);
|
||||
|
||||
mstatus = rtw_read8(Adapter, REG_WOW_CTRL);
|
||||
trycnt = 10;
|
||||
|
||||
while(!(mstatus&BIT1) && trycnt>1) {
|
||||
mstatus = rtw_read8(Adapter, REG_WOW_CTRL);
|
||||
DBG_871X_LEVEL(_drv_always_, "Loop index: %d :0x%02x\n", trycnt, mstatus);
|
||||
trycnt --;
|
||||
rtw_msleep_os(2);
|
||||
//RX DMA stop
|
||||
DBG_871X_LEVEL(_drv_always_, "Pause DMA\n");
|
||||
rtw_write32(Adapter,REG_RXPKT_NUM,(rtw_read32(Adapter,REG_RXPKT_NUM)|RW_RELEASE_EN));
|
||||
do{
|
||||
if((rtw_read32(Adapter, REG_RXPKT_NUM)&RXDMA_IDLE)) {
|
||||
DBG_871X_LEVEL(_drv_always_, "RX_DMA_IDLE is true\n");
|
||||
break;
|
||||
} else {
|
||||
// If RX_DMA is not idle, receive one pkt from DMA
|
||||
DBG_871X_LEVEL(_drv_always_, "RX_DMA_IDLE is not true\n");
|
||||
}
|
||||
}while(trycnt--);
|
||||
if(trycnt ==0)
|
||||
DBG_871X_LEVEL(_drv_always_, "Stop RX DMA failed...... \n");
|
||||
|
||||
adapter_to_pwrctl(Adapter)->wowlan_wake_reason = rtw_read8(Adapter, REG_WOWLAN_WAKE_REASON);
|
||||
DBG_871X_LEVEL(_drv_always_, "wowlan_wake_reason: 0x%02x\n",
|
||||
adapter_to_pwrctl(Adapter)->wowlan_wake_reason);
|
||||
//Set WOWLAN H2C command.
|
||||
DBG_871X_LEVEL(_drv_always_, "Set WOWLan cmd\n");
|
||||
rtl8188es_set_wowlan_cmd(Adapter, 1);
|
||||
|
||||
/* Invoid SE0 reset signal during suspending*/
|
||||
rtw_write8(Adapter, REG_RSV_CTRL, 0x20);
|
||||
rtw_write8(Adapter, REG_RSV_CTRL, 0x60);
|
||||
mstatus = rtw_read8(Adapter, REG_WOW_CTRL);
|
||||
trycnt = 10;
|
||||
|
||||
//rtw_msleep_os(10);
|
||||
break;
|
||||
case WOWLAN_DISABLE:
|
||||
DBG_871X_LEVEL(_drv_always_, "WOWLAN_DISABLE\n");
|
||||
trycnt = 10;
|
||||
rtl8188es_set_wowlan_cmd(Adapter, 0);
|
||||
while(!(mstatus&BIT1) && trycnt>1) {
|
||||
mstatus = rtw_read8(Adapter, REG_WOW_CTRL);
|
||||
DBG_871X_LEVEL(_drv_info_, "%s mstatus:0x%02x\n", __func__, mstatus);
|
||||
|
||||
while(mstatus&BIT1 && trycnt>1) {
|
||||
mstatus = rtw_read8(Adapter, REG_WOW_CTRL);
|
||||
DBG_871X_LEVEL(_drv_always_, "Loop index: %d :0x%02x\n", trycnt, mstatus);
|
||||
trycnt --;
|
||||
rtw_msleep_os(2);
|
||||
}
|
||||
|
||||
if (mstatus & BIT1)
|
||||
printk("System did not release RX_DMA\n");
|
||||
else
|
||||
SetFwRelatedForWoWLAN8188ES(Adapter, false);
|
||||
|
||||
DBG_871X_LEVEL(_drv_always_, "Loop index: %d :0x%02x\n", trycnt, mstatus);
|
||||
trycnt --;
|
||||
rtw_msleep_os(2);
|
||||
if(!(adapter_to_pwrctl(Adapter)->wowlan_wake_reason & FWDecisionDisconnect))
|
||||
rtl8188e_set_FwJoinBssReport_cmd(Adapter, 1);
|
||||
//rtw_msleep_os(10);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
adapter_to_pwrctl(Adapter)->wowlan_wake_reason = rtw_read8(Adapter, REG_WOWLAN_WAKE_REASON);
|
||||
DBG_871X_LEVEL(_drv_always_, "wowlan_wake_reason: 0x%02x\n",
|
||||
adapter_to_pwrctl(Adapter)->wowlan_wake_reason);
|
||||
|
||||
/* Invoid SE0 reset signal during suspending*/
|
||||
rtw_write8(Adapter, REG_RSV_CTRL, 0x20);
|
||||
rtw_write8(Adapter, REG_RSV_CTRL, 0x60);
|
||||
|
||||
//rtw_msleep_os(10);
|
||||
break;
|
||||
case WOWLAN_DISABLE:
|
||||
DBG_871X_LEVEL(_drv_always_, "WOWLAN_DISABLE\n");
|
||||
trycnt = 10;
|
||||
rtl8188es_set_wowlan_cmd(Adapter, 0);
|
||||
mstatus = rtw_read8(Adapter, REG_WOW_CTRL);
|
||||
DBG_871X_LEVEL(_drv_info_, "%s mstatus:0x%02x\n", __func__, mstatus);
|
||||
|
||||
while(mstatus&BIT1 && trycnt>1) {
|
||||
mstatus = rtw_read8(Adapter, REG_WOW_CTRL);
|
||||
DBG_871X_LEVEL(_drv_always_, "Loop index: %d :0x%02x\n", trycnt, mstatus);
|
||||
trycnt --;
|
||||
rtw_msleep_os(2);
|
||||
}
|
||||
|
||||
if (mstatus & BIT1)
|
||||
printk("System did not release RX_DMA\n");
|
||||
else
|
||||
SetFwRelatedForWoWLAN8188ES(Adapter, false);
|
||||
|
||||
rtw_msleep_os(2);
|
||||
if(!(adapter_to_pwrctl(Adapter)->wowlan_wake_reason & FWDecisionDisconnect))
|
||||
rtl8188e_set_FwJoinBssReport_cmd(Adapter, 1);
|
||||
//rtw_msleep_os(10);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -3827,7 +3823,7 @@ void SetHwReg8188EU(struct adapter *Adapter, u8 variable, u8* val)
|
|||
#endif
|
||||
case HW_VAR_H2C_MEDIA_STATUS_RPT:
|
||||
{
|
||||
rtl8188e_set_FwMediaStatus_cmd(Adapter , (*(u16 *)val));
|
||||
rtl8188e_set_FwMediaStatus_cmd(Adapter, (*(__le16 *)val));
|
||||
}
|
||||
break;
|
||||
case HW_VAR_BCN_VALID:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue