mirror of https://gitee.com/openkylin/linux.git
staging: rtl8192su: code cleanup
Signed-off-by: Florian Schilhabel <florian.c.schilhabel@googlemail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
e2e539065f
commit
24fa92c5f7
|
@ -1,3 +1,21 @@
|
|||
/******************************************************************************
|
||||
* Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
* more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along with
|
||||
* this program; if not, write to the Free Software Foundation, Inc.,
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
|
||||
*
|
||||
* The full GNU General Public License is included in this distribution in the
|
||||
* file called LICENSE.
|
||||
*
|
||||
* Contact Information:
|
||||
* wlanfae <wlanfae@realtek.com>
|
||||
******************************************************************************/
|
||||
#ifndef _BATYPE_H_
|
||||
#define _BATYPE_H_
|
||||
|
||||
|
@ -18,14 +36,7 @@
|
|||
#define DELBA_REASON_END_BA 37
|
||||
#define DELBA_REASON_UNKNOWN_BA 38
|
||||
#define DELBA_REASON_TIMEOUT 39
|
||||
/* whether need define BA Action frames here?
|
||||
struct ieee80211_ADDBA_Req{
|
||||
struct ieee80211_header_data header;
|
||||
u8 category;
|
||||
u8
|
||||
} __attribute__ ((packed));
|
||||
*/
|
||||
//Is this need?I put here just to make it easier to define structure BA_RECORD //WB
|
||||
|
||||
typedef union _SEQUENCE_CONTROL{
|
||||
u16 ShortData;
|
||||
struct
|
||||
|
@ -65,5 +76,4 @@ typedef struct _BA_RECORD {
|
|||
SEQUENCE_CONTROL BaStartSeqCtrl;
|
||||
} BA_RECORD, *PBA_RECORD;
|
||||
|
||||
#endif //end _BATYPE_H_
|
||||
|
||||
#endif
|
||||
|
|
|
@ -1,9 +1,21 @@
|
|||
/********************************************************************************************************************************
|
||||
* This file is created to process BA Action Frame. According to 802.11 spec, there are 3 BA action types at all. And as BA is
|
||||
* related to TS, this part need some struture defined in QOS side code. Also TX RX is going to be resturctured, so how to send
|
||||
* ADDBAREQ ADDBARSP and DELBA packet is still on consideration. Temporarily use MANAGE QUEUE instead of Normal Queue.
|
||||
* WB 2008-05-27
|
||||
* *****************************************************************************************************************************/
|
||||
/******************************************************************************
|
||||
* Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
* more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along with
|
||||
* this program; if not, write to the Free Software Foundation, Inc.,
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
|
||||
*
|
||||
* The full GNU General Public License is included in this distribution in the
|
||||
* file called LICENSE.
|
||||
*
|
||||
* Contact Information:
|
||||
* wlanfae <wlanfae@realtek.com>
|
||||
******************************************************************************/
|
||||
#include "ieee80211.h"
|
||||
#include "rtl819x_BA.h"
|
||||
|
||||
|
@ -112,7 +124,6 @@ static struct sk_buff* ieee80211_ADDBA(struct ieee80211_device* ieee, u8* Dst, P
|
|||
u8* tag = NULL;
|
||||
u16 tmp = 0;
|
||||
u16 len = ieee->tx_headroom + 9;
|
||||
//category(1) + action field(1) + Dialog Token(1) + BA Parameter Set(2) + BA Timeout Value(2) + BA Start SeqCtrl(2)(or StatusCode(2))
|
||||
IEEE80211_DEBUG(IEEE80211_DL_TRACE | IEEE80211_DL_BA, "========>%s(), frame(%d) sentd to:%pM, ieee->dev:%p\n", __FUNCTION__, type, Dst, ieee->dev);
|
||||
if (pBA == NULL||ieee == NULL)
|
||||
{
|
||||
|
@ -138,7 +149,6 @@ static struct sk_buff* ieee80211_ADDBA(struct ieee80211_device* ieee, u8* Dst, P
|
|||
|
||||
BAReq->frame_control = cpu_to_le16(IEEE80211_STYPE_MANAGE_ACT); //action frame
|
||||
|
||||
//tag += sizeof( struct ieee80211_hdr_3addr); //move to action field
|
||||
tag = (u8*)skb_put(skb, 9);
|
||||
*tag ++= ACT_CAT_BA;
|
||||
*tag ++= type;
|
||||
|
@ -171,7 +181,6 @@ static struct sk_buff* ieee80211_ADDBA(struct ieee80211_device* ieee, u8* Dst, P
|
|||
|
||||
IEEE80211_DEBUG_DATA(IEEE80211_DL_DATA|IEEE80211_DL_BA, skb->data, skb->len);
|
||||
return skb;
|
||||
//return NULL;
|
||||
}
|
||||
|
||||
/********************************************************************************************************************
|
||||
|
@ -196,7 +205,6 @@ static struct sk_buff* ieee80211_DELBA(
|
|||
struct ieee80211_hdr_3addr* Delba = NULL;
|
||||
u8* tag = NULL;
|
||||
u16 tmp = 0;
|
||||
//len = head len + DELBA Parameter Set(2) + Reason Code(2)
|
||||
u16 len = 6 + ieee->tx_headroom;
|
||||
|
||||
if (net_ratelimit())
|
||||
|
@ -213,7 +221,6 @@ static struct sk_buff* ieee80211_DELBA(
|
|||
IEEE80211_DEBUG(IEEE80211_DL_ERR, "can't alloc skb for ADDBA_REQ\n");
|
||||
return NULL;
|
||||
}
|
||||
// memset(skb->data, 0, len+sizeof( struct ieee80211_hdr_3addr));
|
||||
skb_reserve(skb, ieee->tx_headroom);
|
||||
|
||||
Delba = ( struct ieee80211_hdr_3addr *) skb_put(skb,sizeof( struct ieee80211_hdr_3addr));
|
||||
|
@ -361,8 +368,7 @@ int ieee80211_rx_ADDBAReq( struct ieee80211_device* ieee, struct sk_buff *skb)
|
|||
//some other capability is not ready now.
|
||||
if( (ieee->current_network.qos_data.active == 0) ||
|
||||
(ieee->pHTInfo->bCurrentHTSupport == false) ||
|
||||
(ieee->pHTInfo->IOTAction & HT_IOT_ACT_REJECT_ADDBA_REQ)) //||
|
||||
// (ieee->pStaQos->bEnableRxImmBA == false) )
|
||||
(ieee->pHTInfo->IOTAction & HT_IOT_ACT_REJECT_ADDBA_REQ))
|
||||
{
|
||||
rc = ADDBA_STATUS_REFUSED;
|
||||
IEEE80211_DEBUG(IEEE80211_DL_ERR, "Failed to reply on ADDBA_REQ as some capability is not ready(%d, %d)\n", ieee->current_network.qos_data.active, ieee->pHTInfo->bCurrentHTSupport);
|
||||
|
@ -394,7 +400,6 @@ int ieee80211_rx_ADDBAReq( struct ieee80211_device* ieee, struct sk_buff *skb)
|
|||
goto OnADDBAReq_Fail;
|
||||
}
|
||||
// Admit the ADDBA Request
|
||||
//
|
||||
DeActivateBAEntry(ieee, pBA);
|
||||
pBA->DialogToken = *pDialogToken;
|
||||
pBA->BaParamSet = *pBaParamSet;
|
||||
|
@ -406,7 +411,7 @@ int ieee80211_rx_ADDBAReq( struct ieee80211_device* ieee, struct sk_buff *skb)
|
|||
pBA->BaParamSet.field.BufferSize = 1;
|
||||
else
|
||||
pBA->BaParamSet.field.BufferSize = 32;
|
||||
ActivateBAEntry(ieee, pBA, 0);//pBA->BaTimeoutValue);
|
||||
ActivateBAEntry(ieee, pBA, 0);
|
||||
ieee80211_send_ADDBARsp(ieee, dst, pBA, ADDBA_STATUS_SUCCESS);
|
||||
|
||||
// End of procedure.
|
||||
|
@ -635,7 +640,6 @@ int ieee80211_rx_DELBA(struct ieee80211_device* ieee,struct sk_buff *skb)
|
|||
pTxTs->bAddBaReqInProgress = false;
|
||||
pTxTs->bAddBaReqDelayed = false;
|
||||
del_timer_sync(&pTxTs->TsAddBaTimer);
|
||||
//PlatformCancelTimer(Adapter, &pTxTs->TsAddBaTimer);
|
||||
TxTsDeleteBA(ieee, pTxTs);
|
||||
}
|
||||
return 0;
|
||||
|
|
|
@ -1,3 +1,21 @@
|
|||
/******************************************************************************
|
||||
* Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
* more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along with
|
||||
* this program; if not, write to the Free Software Foundation, Inc.,
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
|
||||
*
|
||||
* The full GNU General Public License is included in this distribution in the
|
||||
* file called LICENSE.
|
||||
*
|
||||
* Contact Information:
|
||||
* wlanfae <wlanfae@realtek.com>
|
||||
******************************************************************************/
|
||||
#ifndef _RTL819XU_HTTYPE_H_
|
||||
#define _RTL819XU_HTTYPE_H_
|
||||
|
||||
|
@ -381,8 +399,7 @@ typedef struct _BSS_HT{
|
|||
u16 bdHTInfoLen;
|
||||
|
||||
HT_SPEC_VER bdHTSpecVer;
|
||||
//HT_CAPABILITY_ELE bdHTCapEle;
|
||||
//HT_INFORMATION_ELE bdHTInfoEle;
|
||||
HT_CHANNEL_WIDTH bdBandWidth;
|
||||
|
||||
u8 bdRT2RTAggregation;
|
||||
u8 bdRT2RTLongSlotTime;
|
||||
|
@ -406,7 +423,7 @@ typedef struct _MIMO_EVM{
|
|||
|
||||
typedef struct _FALSE_ALARM_STATISTICS{
|
||||
u32 Cnt_Parity_Fail;
|
||||
u32 Cnt_Rate_Illegal;
|
||||
u32 Cnt_Rate_Illegal;
|
||||
u32 Cnt_Crc8_fail;
|
||||
u32 Cnt_all;
|
||||
}FALSE_ALARM_STATISTICS, *PFALSE_ALARM_STATISTICS;
|
||||
|
@ -496,9 +513,9 @@ typedef enum _HT_IOT_ACTION{
|
|||
}HT_IOT_ACTION_E, *PHT_IOT_ACTION_E;
|
||||
|
||||
typedef enum _HT_IOT_RAFUNC{
|
||||
HT_IOT_RAFUNC_DISABLE_ALL = 0x00,
|
||||
HT_IOT_RAFUNC_PEER_1R = 0x01,
|
||||
HT_IOT_RAFUNC_TX_AMSDU = 0x02,
|
||||
HT_IOT_RAFUNC_DISABLE_ALL = 0x80,
|
||||
}HT_IOT_RAFUNC, *PHT_IOT_RAFUNC;
|
||||
|
||||
typedef enum _RT_HT_CAP{
|
||||
|
@ -510,5 +527,4 @@ typedef enum _RT_HT_CAP{
|
|||
RT_HT_CAP_USE_92SE = 0x20,
|
||||
}RT_HT_CAPBILITY, *PRT_HT_CAPBILITY;
|
||||
|
||||
#endif //_RTL819XU_HTTYPE_H_
|
||||
|
||||
#endif
|
||||
|
|
|
@ -1,5 +1,22 @@
|
|||
|
||||
//As this function is mainly ported from Windows driver, so leave the name little changed. If any confusion caused, tell me. Created by WB. 2008.05.08
|
||||
/******************************************************************************
|
||||
* Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
* more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along with
|
||||
* this program; if not, write to the Free Software Foundation, Inc.,
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
|
||||
*
|
||||
* The full GNU General Public License is included in this distribution in the
|
||||
* file called LICENSE.
|
||||
*
|
||||
* Contact Information:
|
||||
* wlanfae <wlanfae@realtek.com>
|
||||
******************************************************************************/
|
||||
#include "ieee80211.h"
|
||||
#include "rtl819x_HT.h"
|
||||
u8 MCS_FILTER_ALL[16] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
|
||||
|
@ -32,8 +49,7 @@ u16 MCS_DATA_RATE[2][2][77] =
|
|||
static u8 UNKNOWN_BORADCOM[3] = {0x00, 0x14, 0xbf};
|
||||
static u8 LINKSYSWRT330_LINKSYSWRT300_BROADCOM[3] = {0x00, 0x1a, 0x70};
|
||||
static u8 LINKSYSWRT350_LINKSYSWRT150_BROADCOM[3] = {0x00, 0x1d, 0x7e};
|
||||
static u8 NETGEAR834Bv2_BROADCOM[3] = {0x00, 0x1b, 0x2f};
|
||||
static u8 BELKINF5D8233V1_RALINK[3] = {0x00, 0x17, 0x3f}; //cosa 03202008
|
||||
static u8 BELKINF5D8233V1_RALINK[3] = {0x00, 0x17, 0x3f};
|
||||
static u8 BELKINF5D82334V3_RALINK[3] = {0x00, 0x1c, 0xdf};
|
||||
static u8 PCI_RALINK[3] = {0x00, 0x90, 0xcc};
|
||||
static u8 EDIMAX_RALINK[3] = {0x00, 0x0e, 0x2e};
|
||||
|
@ -41,10 +57,9 @@ static u8 AIRLINK_RALINK[3] = {0x00, 0x18, 0x02};
|
|||
static u8 DLINK_ATHEROS_1[3] = {0x00, 0x1c, 0xf0};
|
||||
static u8 DLINK_ATHEROS_2[3] = {0x00, 0x21, 0x91};
|
||||
static u8 CISCO_BROADCOM[3] = {0x00, 0x17, 0x94};
|
||||
static u8 NETGEAR_BROADCOM[3] = {0x00, 0x1f, 0x33};
|
||||
static u8 LINKSYS_MARVELL_4400N[3] = {0x00, 0x14, 0xa4};
|
||||
// 2008/04/01 MH For Cisco G mode RX TP We need to change FW duration. Should we put the
|
||||
// code in other place??
|
||||
//static u8 WIFI_CISCO_G_AP[3] = {0x00, 0x40, 0x96};
|
||||
|
||||
/********************************************************************************************************************
|
||||
*function: This function update default settings in pHTInfo structure
|
||||
* input: PRT_HIGH_THROUGHPUT pHTInfo
|
||||
|
@ -351,7 +366,6 @@ bool IsHTHalfNmodeAPs(struct ieee80211_device* ieee)
|
|||
else if((memcmp(net->bssid, UNKNOWN_BORADCOM, 3)==0) ||
|
||||
(memcmp(net->bssid, LINKSYSWRT330_LINKSYSWRT300_BROADCOM, 3)==0)||
|
||||
(memcmp(net->bssid, LINKSYSWRT350_LINKSYSWRT150_BROADCOM, 3)==0)||
|
||||
(memcmp(net->bssid, NETGEAR834Bv2_BROADCOM, 3)==0) ||
|
||||
(net->broadcom_cap_exist))
|
||||
retValue = true;
|
||||
else if(net->bssht.bdRT2RTAggregation)
|
||||
|
@ -384,8 +398,7 @@ void HTIOTPeerDetermine(struct ieee80211_device* ieee)
|
|||
pHTInfo->IOTPeer = HT_IOT_PEER_BROADCOM;
|
||||
else if((memcmp(net->bssid, UNKNOWN_BORADCOM, 3)==0) ||
|
||||
(memcmp(net->bssid, LINKSYSWRT330_LINKSYSWRT300_BROADCOM, 3)==0)||
|
||||
(memcmp(net->bssid, LINKSYSWRT350_LINKSYSWRT150_BROADCOM, 3)==0)||
|
||||
(memcmp(net->bssid, NETGEAR834Bv2_BROADCOM, 3)==0) )
|
||||
(memcmp(net->bssid, LINKSYSWRT350_LINKSYSWRT150_BROADCOM, 3)==0))
|
||||
pHTInfo->IOTPeer = HT_IOT_PEER_BROADCOM;
|
||||
else if((memcmp(net->bssid, BELKINF5D8233V1_RALINK, 3)==0) ||
|
||||
(memcmp(net->bssid, BELKINF5D82334V3_RALINK, 3)==0) ||
|
||||
|
@ -398,7 +411,7 @@ void HTIOTPeerDetermine(struct ieee80211_device* ieee)
|
|||
(memcmp(net->bssid, DLINK_ATHEROS_1, 3) == 0)||
|
||||
(memcmp(net->bssid, DLINK_ATHEROS_2, 3) == 0))
|
||||
pHTInfo->IOTPeer = HT_IOT_PEER_ATHEROS;
|
||||
else if(memcmp(net->bssid, CISCO_BROADCOM, 3)==0)
|
||||
else if ((memcmp(net->bssid, CISCO_BROADCOM, 3)==0)||net->cisco_cap_exist)
|
||||
pHTInfo->IOTPeer = HT_IOT_PEER_CISCO;
|
||||
else if ((memcmp(net->bssid, LINKSYS_MARVELL_4400N, 3) == 0) ||
|
||||
net->marvell_cap_exist)
|
||||
|
@ -751,10 +764,11 @@ bool HTIOCActAllowPeerAggOnePacket(struct ieee80211_device* ieee,struct ieee8021
|
|||
{
|
||||
bool retValue = false;
|
||||
PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo;
|
||||
if(pHTInfo->IOTPeer == HT_IOT_PEER_BROADCOM)
|
||||
{
|
||||
if(pHTInfo->IOTPeer == HT_IOT_PEER_MARVELL)
|
||||
if((memcmp(network->bssid, NETGEAR_BROADCOM, 3)==0)
|
||||
&& (network->bssht.bdBandWidth == HT_CHANNEL_WIDTH_20_40))
|
||||
return true;
|
||||
|
||||
}
|
||||
return retValue;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue