Staging: rtl8192su/ieee80211: move rtl8192su specific code out from ieee80211.h
Move rtl8192su specific code out from ieee80211.h to ieee80211_r8192s.h. Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
f59d012790
commit
c0593dd934
2 changed files with 437 additions and 432 deletions
|
@ -45,135 +45,6 @@
|
||||||
#define KEY_TYPE_CCMP 0x4
|
#define KEY_TYPE_CCMP 0x4
|
||||||
#define KEY_TYPE_WEP104 0x5
|
#define KEY_TYPE_WEP104 0x5
|
||||||
|
|
||||||
/* added for rtl819x tx procedure */
|
|
||||||
#define MAX_QUEUE_SIZE 0x10
|
|
||||||
|
|
||||||
/* 8190 queue mapping */
|
|
||||||
enum {
|
|
||||||
BK_QUEUE = 0,
|
|
||||||
BE_QUEUE = 1,
|
|
||||||
VI_QUEUE = 2,
|
|
||||||
VO_QUEUE = 3,
|
|
||||||
HCCA_QUEUE = 4,
|
|
||||||
TXCMD_QUEUE = 5,
|
|
||||||
MGNT_QUEUE = 6,
|
|
||||||
HIGH_QUEUE = 7,
|
|
||||||
BEACON_QUEUE = 8,
|
|
||||||
|
|
||||||
LOW_QUEUE = BE_QUEUE,
|
|
||||||
NORMAL_QUEUE = MGNT_QUEUE
|
|
||||||
};
|
|
||||||
|
|
||||||
#define SWRF_TIMEOUT 50
|
|
||||||
|
|
||||||
/* LEAP related */
|
|
||||||
/* Flag byte: byte 8, numbered from 0. */
|
|
||||||
#define IE_CISCO_FLAG_POSITION 0x08
|
|
||||||
#define SUPPORT_CKIP_MIC 0x08 /* bit3 */
|
|
||||||
#define SUPPORT_CKIP_PK 0x10 /* bit4 */
|
|
||||||
|
|
||||||
/* defined for skb cb field, at most 28 byte */
|
|
||||||
typedef struct cb_desc {
|
|
||||||
/* Tx Desc Related flags (8-9) */
|
|
||||||
u8 bLastIniPkt:1;
|
|
||||||
u8 bCmdOrInit:1;
|
|
||||||
u8 bFirstSeg:1;
|
|
||||||
u8 bLastSeg:1;
|
|
||||||
u8 bEncrypt:1;
|
|
||||||
u8 bTxDisableRateFallBack:1;
|
|
||||||
u8 bTxUseDriverAssingedRate:1;
|
|
||||||
u8 bHwSec:1; /* indicate whether use Hw security */
|
|
||||||
|
|
||||||
u8 reserved1;
|
|
||||||
|
|
||||||
/* Tx Firmware Relaged flags (10-11)*/
|
|
||||||
u8 bCTSEnable:1;
|
|
||||||
u8 bRTSEnable:1;
|
|
||||||
u8 bUseShortGI:1;
|
|
||||||
u8 bUseShortPreamble:1;
|
|
||||||
u8 bTxEnableFwCalcDur:1;
|
|
||||||
u8 bAMPDUEnable:1;
|
|
||||||
u8 bRTSSTBC:1;
|
|
||||||
u8 RTSSC:1;
|
|
||||||
|
|
||||||
u8 bRTSBW:1;
|
|
||||||
u8 bPacketBW:1;
|
|
||||||
u8 bRTSUseShortPreamble:1;
|
|
||||||
u8 bRTSUseShortGI:1;
|
|
||||||
u8 bMulticast:1;
|
|
||||||
u8 bBroadcast:1;
|
|
||||||
u8 drv_agg_enable:1;
|
|
||||||
u8 reserved2:1;
|
|
||||||
|
|
||||||
/* Tx Desc related element(12-19) */
|
|
||||||
u8 rata_index;
|
|
||||||
u8 queue_index;
|
|
||||||
u16 txbuf_size;
|
|
||||||
u8 RATRIndex;
|
|
||||||
u8 reserved6;
|
|
||||||
u8 reserved7;
|
|
||||||
u8 reserved8;
|
|
||||||
|
|
||||||
/* Tx firmware related element(20-27) */
|
|
||||||
u8 data_rate;
|
|
||||||
u8 rts_rate;
|
|
||||||
u8 ampdu_factor;
|
|
||||||
u8 ampdu_density;
|
|
||||||
u8 DrvAggrNum;
|
|
||||||
u16 pkt_size;
|
|
||||||
u8 reserved12;
|
|
||||||
} cb_desc, *pcb_desc;
|
|
||||||
|
|
||||||
enum {
|
|
||||||
MGN_1M = 0x02,
|
|
||||||
MGN_2M = 0x04,
|
|
||||||
MGN_5_5M = 0x0b,
|
|
||||||
MGN_11M = 0x16,
|
|
||||||
|
|
||||||
MGN_6M = 0x0c,
|
|
||||||
MGN_9M = 0x12,
|
|
||||||
MGN_12M = 0x18,
|
|
||||||
MGN_18M = 0x24,
|
|
||||||
MGN_24M = 0x30,
|
|
||||||
MGN_36M = 0x48,
|
|
||||||
MGN_48M = 0x60,
|
|
||||||
MGN_54M = 0x6c,
|
|
||||||
|
|
||||||
MGN_MCS0 = 0x80,
|
|
||||||
MGN_MCS1 = 0x81,
|
|
||||||
MGN_MCS2 = 0x82,
|
|
||||||
MGN_MCS3 = 0x83,
|
|
||||||
MGN_MCS4 = 0x84,
|
|
||||||
MGN_MCS5 = 0x85,
|
|
||||||
MGN_MCS6 = 0x86,
|
|
||||||
MGN_MCS7 = 0x87,
|
|
||||||
MGN_MCS8 = 0x88,
|
|
||||||
MGN_MCS9 = 0x89,
|
|
||||||
MGN_MCS10 = 0x8a,
|
|
||||||
MGN_MCS11 = 0x8b,
|
|
||||||
MGN_MCS12 = 0x8c,
|
|
||||||
MGN_MCS13 = 0x8d,
|
|
||||||
MGN_MCS14 = 0x8e,
|
|
||||||
MGN_MCS15 = 0x8f,
|
|
||||||
|
|
||||||
MGN_MCS0_SG = 0x90,
|
|
||||||
MGN_MCS1_SG = 0x91,
|
|
||||||
MGN_MCS2_SG = 0x92,
|
|
||||||
MGN_MCS3_SG = 0x93,
|
|
||||||
MGN_MCS4_SG = 0x94,
|
|
||||||
MGN_MCS5_SG = 0x95,
|
|
||||||
MGN_MCS6_SG = 0x96,
|
|
||||||
MGN_MCS7_SG = 0x97,
|
|
||||||
MGN_MCS8_SG = 0x98,
|
|
||||||
MGN_MCS9_SG = 0x99,
|
|
||||||
MGN_MCS10_SG = 0x9a,
|
|
||||||
MGN_MCS11_SG = 0x9b,
|
|
||||||
MGN_MCS12_SG = 0x9c,
|
|
||||||
MGN_MCS13_SG = 0x9d,
|
|
||||||
MGN_MCS14_SG = 0x9e,
|
|
||||||
MGN_MCS15_SG = 0x9f,
|
|
||||||
};
|
|
||||||
|
|
||||||
#define aSifsTime (((priv->ieee80211->current_network.mode == IEEE_A) || \
|
#define aSifsTime (((priv->ieee80211->current_network.mode == IEEE_A) || \
|
||||||
(priv->ieee80211->current_network.mode == IEEE_N_24G) || \
|
(priv->ieee80211->current_network.mode == IEEE_N_24G) || \
|
||||||
(priv->ieee80211->current_network.mode == IEEE_N_5G)) \
|
(priv->ieee80211->current_network.mode == IEEE_N_5G)) \
|
||||||
|
@ -296,62 +167,6 @@ typedef struct ieee_param {
|
||||||
/* QOS control */
|
/* QOS control */
|
||||||
#define IEEE80211_QCTL_TID 0x000F
|
#define IEEE80211_QCTL_TID 0x000F
|
||||||
|
|
||||||
#define FC_QOS_BIT BIT7
|
|
||||||
|
|
||||||
#define IsDataFrame(pdu) (((pdu[0] & 0x0C) == 0x08) ? true : false)
|
|
||||||
#define IsLegacyDataFrame(pdu) (IsDataFrame(pdu) && (!(pdu[0] & FC_QOS_BIT)))
|
|
||||||
#define IsQoSDataFrame(pframe) \
|
|
||||||
((*(u16 *)pframe & (IEEE80211_STYPE_QOS_DATA | IEEE80211_FTYPE_DATA)) \
|
|
||||||
== (IEEE80211_STYPE_QOS_DATA | IEEE80211_FTYPE_DATA))
|
|
||||||
|
|
||||||
#define Frame_Order(pframe) (*(u16 *)pframe & IEEE80211_FCTL_ORDER)
|
|
||||||
|
|
||||||
#define SN_LESS(a, b) (((a - b) & 0x800) != 0)
|
|
||||||
#define SN_EQUAL(a, b) (a == b)
|
|
||||||
|
|
||||||
#define MAX_DEV_ADDR_SIZE 8
|
|
||||||
|
|
||||||
enum {
|
|
||||||
/* ACT_CATEGORY */
|
|
||||||
ACT_CAT_QOS = 1,
|
|
||||||
ACT_CAT_DLS = 2,
|
|
||||||
ACT_CAT_BA = 3,
|
|
||||||
ACT_CAT_HT = 7,
|
|
||||||
ACT_CAT_WMM = 17,
|
|
||||||
|
|
||||||
/* TS_ACTION */
|
|
||||||
ACT_ADDTSREQ = 0,
|
|
||||||
ACT_ADDTSRSP = 1,
|
|
||||||
ACT_DELTS = 2,
|
|
||||||
ACT_SCHEDULE = 3,
|
|
||||||
|
|
||||||
/* BA_ACTION */
|
|
||||||
ACT_ADDBAREQ = 0,
|
|
||||||
ACT_ADDBARSP = 1,
|
|
||||||
ACT_DELBA = 2,
|
|
||||||
};
|
|
||||||
|
|
||||||
/* InitialGainOpType */
|
|
||||||
enum {
|
|
||||||
IG_Backup = 0,
|
|
||||||
IG_Restore,
|
|
||||||
IG_Max
|
|
||||||
};
|
|
||||||
|
|
||||||
typedef enum _LED_CTL_MODE {
|
|
||||||
LED_CTL_POWER_ON = 1,
|
|
||||||
LED_CTL_LINK = 2,
|
|
||||||
LED_CTL_NO_LINK = 3,
|
|
||||||
LED_CTL_TX = 4,
|
|
||||||
LED_CTL_RX = 5,
|
|
||||||
LED_CTL_SITE_SURVEY = 6,
|
|
||||||
LED_CTL_POWER_OFF = 7,
|
|
||||||
LED_CTL_START_TO_LINK = 8,
|
|
||||||
LED_CTL_START_WPS = 9,
|
|
||||||
LED_CTL_STOP_WPS = 10,
|
|
||||||
LED_CTL_START_WPS_BOTTON = 11,
|
|
||||||
} LED_CTL_MODE;
|
|
||||||
|
|
||||||
/* debug macros */
|
/* debug macros */
|
||||||
#define CONFIG_IEEE80211_DEBUG
|
#define CONFIG_IEEE80211_DEBUG
|
||||||
#ifdef CONFIG_IEEE80211_DEBUG
|
#ifdef CONFIG_IEEE80211_DEBUG
|
||||||
|
@ -918,18 +733,6 @@ struct ieee80211_rxb {
|
||||||
u8 src[ETH_ALEN];
|
u8 src[ETH_ALEN];
|
||||||
}__attribute__((packed));
|
}__attribute__((packed));
|
||||||
|
|
||||||
typedef union _frameqos {
|
|
||||||
u16 shortdata;
|
|
||||||
u8 chardata[2];
|
|
||||||
struct {
|
|
||||||
u16 tid:4;
|
|
||||||
u16 eosp:1;
|
|
||||||
u16 ack_policy:2;
|
|
||||||
u16 reserved:1;
|
|
||||||
u16 txop:8;
|
|
||||||
}field;
|
|
||||||
} frameqos;
|
|
||||||
|
|
||||||
/* SWEEP TABLE ENTRIES NUMBER */
|
/* SWEEP TABLE ENTRIES NUMBER */
|
||||||
#define MAX_SWEEP_TAB_ENTRIES 42
|
#define MAX_SWEEP_TAB_ENTRIES 42
|
||||||
#define MAX_SWEEP_TAB_ENTRIES_PER_PACKET 7
|
#define MAX_SWEEP_TAB_ENTRIES_PER_PACKET 7
|
||||||
|
@ -1066,16 +869,6 @@ static inline const char *eap_get_type(int type)
|
||||||
return ((u32)type >= ARRAY_SIZE(eap_types)) ? "Unknown" : eap_types[type];
|
return ((u32)type >= ARRAY_SIZE(eap_types)) ? "Unknown" : eap_types[type];
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline u8 Frame_QoSTID(u8 *buf)
|
|
||||||
{
|
|
||||||
struct ieee80211_hdr_3addr *hdr = (struct ieee80211_hdr_3addr *)buf;
|
|
||||||
u16 fc = le16_to_cpu(hdr->frame_ctl);
|
|
||||||
|
|
||||||
return (u8)((frameqos *)(buf +
|
|
||||||
(((fc & IEEE80211_FCTL_TODS) &&
|
|
||||||
(fc & IEEE80211_FCTL_FROMDS)) ? 30 : 24)))->field.tid;
|
|
||||||
}
|
|
||||||
|
|
||||||
struct eapol {
|
struct eapol {
|
||||||
u8 snap[6];
|
u8 snap[6];
|
||||||
u16 ethertype;
|
u16 ethertype;
|
||||||
|
@ -1196,12 +989,6 @@ struct ether_header {
|
||||||
#define ETHERTYPE_IP 0x0800 /* IP protocol */
|
#define ETHERTYPE_IP 0x0800 /* IP protocol */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
enum {
|
|
||||||
ERP_NonERPpresent = 1,
|
|
||||||
ERP_UseProtection = 2,
|
|
||||||
ERP_BarkerPreambleMode = 4,
|
|
||||||
};
|
|
||||||
|
|
||||||
struct ieee80211_network {
|
struct ieee80211_network {
|
||||||
/* These entries are used to identify a unique network */
|
/* These entries are used to identify a unique network */
|
||||||
u8 bssid[ETH_ALEN];
|
u8 bssid[ETH_ALEN];
|
||||||
|
@ -1337,129 +1124,6 @@ typedef struct tx_pending_t{
|
||||||
struct ieee80211_txb *txb;
|
struct ieee80211_txb *txb;
|
||||||
}tx_pending_t;
|
}tx_pending_t;
|
||||||
|
|
||||||
struct bandwidth_autoswitch {
|
|
||||||
long threshold_20Mhzto40Mhz;
|
|
||||||
long threshold_40Mhzto20Mhz;
|
|
||||||
bool bforced_tx20Mhz;
|
|
||||||
bool bautoswitch_enable;
|
|
||||||
};
|
|
||||||
|
|
||||||
#define REORDER_WIN_SIZE 128
|
|
||||||
#define REORDER_ENTRY_NUM 128
|
|
||||||
typedef struct _RX_REORDER_ENTRY
|
|
||||||
{
|
|
||||||
struct list_head List;
|
|
||||||
u16 SeqNum;
|
|
||||||
struct ieee80211_rxb* prxb;
|
|
||||||
} RX_REORDER_ENTRY, *PRX_REORDER_ENTRY;
|
|
||||||
|
|
||||||
typedef enum _Fsync_State{
|
|
||||||
Default_Fsync,
|
|
||||||
HW_Fsync,
|
|
||||||
SW_Fsync
|
|
||||||
} Fsync_State;
|
|
||||||
|
|
||||||
/* Power save mode configured. */
|
|
||||||
typedef enum _RT_PS_MODE {
|
|
||||||
eActive, /* Active/Continuous access. */
|
|
||||||
eMaxPs, /* Max power save mode. */
|
|
||||||
eFastPs /* Fast power save mode. */
|
|
||||||
} RT_PS_MODE;
|
|
||||||
|
|
||||||
typedef enum _IPS_CALLBACK_FUNCION {
|
|
||||||
IPS_CALLBACK_NONE = 0,
|
|
||||||
IPS_CALLBACK_MGNT_LINK_REQUEST = 1,
|
|
||||||
IPS_CALLBACK_JOIN_REQUEST = 2,
|
|
||||||
} IPS_CALLBACK_FUNCION;
|
|
||||||
|
|
||||||
typedef enum _RT_JOIN_ACTION {
|
|
||||||
RT_JOIN_INFRA = 1,
|
|
||||||
RT_JOIN_IBSS = 2,
|
|
||||||
RT_START_IBSS = 3,
|
|
||||||
RT_NO_ACTION = 4,
|
|
||||||
} RT_JOIN_ACTION;
|
|
||||||
|
|
||||||
struct ibss_parms {
|
|
||||||
u16 atimWin;
|
|
||||||
};
|
|
||||||
|
|
||||||
/* Max num of support rates element: 8, Max num of ext. support rate: 255. */
|
|
||||||
#define MAX_NUM_RATES 264
|
|
||||||
|
|
||||||
typedef enum _RT_RF_POWER_STATE {
|
|
||||||
eRfOn,
|
|
||||||
eRfSleep,
|
|
||||||
eRfOff
|
|
||||||
} RT_RF_POWER_STATE;
|
|
||||||
|
|
||||||
struct rt_power_save_control {
|
|
||||||
/* Inactive Power Save (IPS): disable RF when disconnected */
|
|
||||||
bool bInactivePs;
|
|
||||||
bool bIPSModeBackup;
|
|
||||||
bool bHaltAdapterClkRQ;
|
|
||||||
bool bSwRfProcessing;
|
|
||||||
RT_RF_POWER_STATE eInactivePowerState;
|
|
||||||
struct work_struct InactivePsWorkItem;
|
|
||||||
struct timer_list InactivePsTimer;
|
|
||||||
|
|
||||||
/* return point for join action */
|
|
||||||
IPS_CALLBACK_FUNCION ReturnPoint;
|
|
||||||
|
|
||||||
/* Recored Parameters for rescheduled JoinRequest */
|
|
||||||
bool bTmpBssDesc;
|
|
||||||
RT_JOIN_ACTION tmpJoinAction;
|
|
||||||
struct ieee80211_network tmpBssDesc;
|
|
||||||
|
|
||||||
/* Recored Parameters for rescheduled MgntLinkRequest */
|
|
||||||
bool bTmpScanOnly;
|
|
||||||
bool bTmpActiveScan;
|
|
||||||
bool bTmpFilterHiddenAP;
|
|
||||||
bool bTmpUpdateParms;
|
|
||||||
u8 tmpSsidBuf[33];
|
|
||||||
OCTET_STRING tmpSsid2Scan;
|
|
||||||
bool bTmpSsid2Scan;
|
|
||||||
u8 tmpNetworkType;
|
|
||||||
u8 tmpChannelNumber;
|
|
||||||
u16 tmpBcnPeriod;
|
|
||||||
u8 tmpDtimPeriod;
|
|
||||||
u16 tmpmCap;
|
|
||||||
OCTET_STRING tmpSuppRateSet;
|
|
||||||
u8 tmpSuppRateBuf[MAX_NUM_RATES];
|
|
||||||
bool bTmpSuppRate;
|
|
||||||
struct ibss_parms tmpIbpm;
|
|
||||||
bool bTmpIbpm;
|
|
||||||
|
|
||||||
/* Leisre Poswer Save: disable RF if connected but traffic isn't busy */
|
|
||||||
bool bLeisurePs;
|
|
||||||
u32 PowerProfile;
|
|
||||||
u8 LpsIdleCount;
|
|
||||||
u8 RegMaxLPSAwakeIntvl;
|
|
||||||
u8 LPSAwakeIntvl;
|
|
||||||
|
|
||||||
/* RF OFF Level */
|
|
||||||
u32 CurPsLevel;
|
|
||||||
u32 RegRfPsLevel;
|
|
||||||
|
|
||||||
/* Fw Control LPS */
|
|
||||||
bool bFwCtrlLPS;
|
|
||||||
u8 FWCtrlPSMode;
|
|
||||||
|
|
||||||
/* Record if there is a link request in IPS RF off progress. */
|
|
||||||
bool LinkReqInIPSRFOffPgs;
|
|
||||||
/*
|
|
||||||
* To make sure that connect info should be executed, so we set the
|
|
||||||
* bit to filter the link info which comes after the connect info.
|
|
||||||
*/
|
|
||||||
bool BufConnectinfoBefore;
|
|
||||||
};
|
|
||||||
|
|
||||||
enum {
|
|
||||||
RF_CHANGE_BY_SW = BIT31,
|
|
||||||
RF_CHANGE_BY_HW = BIT30,
|
|
||||||
RF_CHANGE_BY_PS = BIT29,
|
|
||||||
RF_CHANGE_BY_IPS = BIT28,
|
|
||||||
};
|
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
COUNTRY_CODE_FCC = 0,
|
COUNTRY_CODE_FCC = 0,
|
||||||
COUNTRY_CODE_IC = 1,
|
COUNTRY_CODE_IC = 1,
|
||||||
|
@ -1474,47 +1138,7 @@ enum {
|
||||||
COUNTRY_CODE_GLOBAL_DOMAIN
|
COUNTRY_CODE_GLOBAL_DOMAIN
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Firmware related CMD IO. */
|
#include "ieee80211_r8192s.h"
|
||||||
typedef enum _FW_CMD_IO_TYPE {
|
|
||||||
FW_CMD_DIG_ENABLE = 0, /* for DIG DM */
|
|
||||||
FW_CMD_DIG_DISABLE = 1,
|
|
||||||
FW_CMD_DIG_HALT = 2,
|
|
||||||
FW_CMD_DIG_RESUME = 3,
|
|
||||||
FW_CMD_HIGH_PWR_ENABLE = 4, /* for High Power DM */
|
|
||||||
FW_CMD_HIGH_PWR_DISABLE = 5,
|
|
||||||
FW_CMD_RA_RESET = 6, /* for Rate adaptive DM */
|
|
||||||
FW_CMD_RA_ACTIVE = 7,
|
|
||||||
FW_CMD_RA_REFRESH_N = 8,
|
|
||||||
FW_CMD_RA_REFRESH_BG = 9,
|
|
||||||
FW_CMD_IQK_ENABLE = 10, /* for FW supported IQK */
|
|
||||||
FW_CMD_TXPWR_TRACK_ENABLE = 11, /* Tx power tracking switch */
|
|
||||||
FW_CMD_TXPWR_TRACK_DISABLE = 12,/* Tx power tracking switch */
|
|
||||||
FW_CMD_PAUSE_DM_BY_SCAN = 13,
|
|
||||||
FW_CMD_RESUME_DM_BY_SCAN = 14,
|
|
||||||
FW_CMD_MID_HIGH_PWR_ENABLE = 15,
|
|
||||||
/* indicate firmware that driver enters LPS, for PS-Poll hardware bug */
|
|
||||||
FW_CMD_LPS_ENTER = 16,
|
|
||||||
/* indicate firmware that driver leave LPS */
|
|
||||||
FW_CMD_LPS_LEAVE = 17,
|
|
||||||
} FW_CMD_IO_TYPE;
|
|
||||||
|
|
||||||
#define RT_MAX_LD_SLOT_NUM 10
|
|
||||||
struct rt_link_detect {
|
|
||||||
u32 NumRecvBcnInPeriod;
|
|
||||||
u32 NumRecvDataInPeriod;
|
|
||||||
|
|
||||||
/* number of Rx beacon / CheckForHang_period to determine link status */
|
|
||||||
u32 RxBcnNum[RT_MAX_LD_SLOT_NUM];
|
|
||||||
/* number of Rx data / CheckForHang_period to determine link status */
|
|
||||||
u32 RxDataNum[RT_MAX_LD_SLOT_NUM];
|
|
||||||
/* number of CheckForHang period to determine link status */
|
|
||||||
u16 SlotNum;
|
|
||||||
u16 SlotIndex;
|
|
||||||
|
|
||||||
u32 NumTxOkInPeriod;
|
|
||||||
u32 NumRxOkInPeriod;
|
|
||||||
bool bBusyTraffic;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct ieee80211_device {
|
struct ieee80211_device {
|
||||||
struct net_device *dev;
|
struct net_device *dev;
|
||||||
|
@ -2241,61 +1865,6 @@ extern int ieee80211_wx_get_rts(struct ieee80211_device *ieee,
|
||||||
struct iw_request_info *info,
|
struct iw_request_info *info,
|
||||||
union iwreq_data *wrqu, char *extra);
|
union iwreq_data *wrqu, char *extra);
|
||||||
|
|
||||||
/* HT */
|
|
||||||
#define MAX_RECEIVE_BUFFER_SIZE 9100
|
|
||||||
extern void HTDebugHTCapability(u8 *CapIE, u8 *TitleString);
|
|
||||||
extern void HTDebugHTInfo(u8 *InfoIE, u8 *TitleString);
|
|
||||||
|
|
||||||
extern void HTSetConnectBwMode(struct ieee80211_device *ieee,
|
|
||||||
HT_CHANNEL_WIDTH Bandwidth,
|
|
||||||
HT_EXTCHNL_OFFSET Offset);
|
|
||||||
extern void HTUpdateDefaultSetting(struct ieee80211_device *ieee);
|
|
||||||
extern void HTConstructCapabilityElement(struct ieee80211_device *ieee,
|
|
||||||
u8 *posHTCap, u8 *len, u8 isEncrypt);
|
|
||||||
extern void HTConstructInfoElement(struct ieee80211_device *ieee,
|
|
||||||
u8 *posHTInfo, u8 *len, u8 isEncrypt);
|
|
||||||
extern void HTConstructRT2RTAggElement(struct ieee80211_device *ieee,
|
|
||||||
u8 *posRT2RTAgg, u8 *len);
|
|
||||||
extern void HTOnAssocRsp(struct ieee80211_device *ieee);
|
|
||||||
extern void HTInitializeHTInfo(struct ieee80211_device *ieee);
|
|
||||||
extern void HTInitializeBssDesc(PBSS_HT pBssHT);
|
|
||||||
extern void HTResetSelfAndSavePeerSetting(struct ieee80211_device *ieee,
|
|
||||||
struct ieee80211_network *pNetwork);
|
|
||||||
extern void HTUpdateSelfAndPeerSetting(struct ieee80211_device *ieee,
|
|
||||||
struct ieee80211_network *pNetwork);
|
|
||||||
extern u8 HTGetHighestMCSRate(struct ieee80211_device *ieee, u8 *pMCSRateSet,
|
|
||||||
u8 *pMCSFilter);
|
|
||||||
extern u8 MCS_FILTER_ALL[];
|
|
||||||
extern u16 MCS_DATA_RATE[2][2][77] ;
|
|
||||||
extern u8 HTCCheck(struct ieee80211_device *ieee, u8 *pFrame);
|
|
||||||
extern void HTResetIOTSetting(PRT_HIGH_THROUGHPUT pHTInfo);
|
|
||||||
extern bool IsHTHalfNmodeAPs(struct ieee80211_device *ieee);
|
|
||||||
extern u16 HTHalfMcsToDataRate(struct ieee80211_device *ieee, u8 nMcsRate);
|
|
||||||
extern u16 HTMcsToDataRate(struct ieee80211_device *ieee, u8 nMcsRate);
|
|
||||||
extern u16 TxCountToDataRate(struct ieee80211_device *ieee, u8 nDataRate);
|
|
||||||
extern int ieee80211_rx_ADDBAReq(struct ieee80211_device *ieee,
|
|
||||||
struct sk_buff *skb);
|
|
||||||
extern int ieee80211_rx_ADDBARsp(struct ieee80211_device *ieee,
|
|
||||||
struct sk_buff *skb);
|
|
||||||
extern int ieee80211_rx_DELBA(struct ieee80211_device *ieee,
|
|
||||||
struct sk_buff *skb);
|
|
||||||
extern void TsInitAddBA(struct ieee80211_device *ieee, PTX_TS_RECORD pTS,
|
|
||||||
u8 Policy, u8 bOverwritePending);
|
|
||||||
extern void TsInitDelBA(struct ieee80211_device *ieee,
|
|
||||||
PTS_COMMON_INFO pTsCommonInfo, TR_SELECT TxRxSelect);
|
|
||||||
extern void BaSetupTimeOut(unsigned long data);
|
|
||||||
extern void TxBaInactTimeout(unsigned long data);
|
|
||||||
extern void RxBaInactTimeout(unsigned long data);
|
|
||||||
extern void ResetBaEntry( PBA_RECORD pBA);
|
|
||||||
extern bool GetTs(struct ieee80211_device *ieee, PTS_COMMON_INFO *ppTS,
|
|
||||||
u8 *Addr, u8 TID, TR_SELECT TxRxSelect, /* Rx:1, Tx:0 */
|
|
||||||
bool bAddNewTs);
|
|
||||||
extern void TSInitialize(struct ieee80211_device *ieee);
|
|
||||||
extern void TsStartAddBaProcess(struct ieee80211_device *ieee,
|
|
||||||
PTX_TS_RECORD pTxTS);
|
|
||||||
extern void RemovePeerTS(struct ieee80211_device *ieee, u8 *Addr);
|
|
||||||
extern void RemoveAllTS(struct ieee80211_device *ieee);
|
|
||||||
|
|
||||||
extern void ieee80211_softmac_scan_syncro(struct ieee80211_device *ieee);
|
extern void ieee80211_softmac_scan_syncro(struct ieee80211_device *ieee);
|
||||||
|
|
||||||
extern const long ieee80211_wlan_frequencies[];
|
extern const long ieee80211_wlan_frequencies[];
|
||||||
|
|
436
drivers/staging/rtl8192su/ieee80211/ieee80211_r8192s.h
Normal file
436
drivers/staging/rtl8192su/ieee80211/ieee80211_r8192s.h
Normal file
|
@ -0,0 +1,436 @@
|
||||||
|
#ifndef __IEEE80211_R8192S_H
|
||||||
|
#define __IEEE80211_R8192S_H
|
||||||
|
|
||||||
|
/* added for rtl819x tx procedure */
|
||||||
|
#define MAX_QUEUE_SIZE 0x10
|
||||||
|
|
||||||
|
/* 8190 queue mapping */
|
||||||
|
enum {
|
||||||
|
BK_QUEUE = 0,
|
||||||
|
BE_QUEUE = 1,
|
||||||
|
VI_QUEUE = 2,
|
||||||
|
VO_QUEUE = 3,
|
||||||
|
HCCA_QUEUE = 4,
|
||||||
|
TXCMD_QUEUE = 5,
|
||||||
|
MGNT_QUEUE = 6,
|
||||||
|
HIGH_QUEUE = 7,
|
||||||
|
BEACON_QUEUE = 8,
|
||||||
|
|
||||||
|
LOW_QUEUE = BE_QUEUE,
|
||||||
|
NORMAL_QUEUE = MGNT_QUEUE
|
||||||
|
};
|
||||||
|
|
||||||
|
#define SWRF_TIMEOUT 50
|
||||||
|
|
||||||
|
/* LEAP related */
|
||||||
|
/* Flag byte: byte 8, numbered from 0. */
|
||||||
|
#define IE_CISCO_FLAG_POSITION 0x08
|
||||||
|
#define SUPPORT_CKIP_MIC 0x08 /* bit3 */
|
||||||
|
#define SUPPORT_CKIP_PK 0x10 /* bit4 */
|
||||||
|
|
||||||
|
/* defined for skb cb field, at most 28 byte */
|
||||||
|
typedef struct cb_desc {
|
||||||
|
/* Tx Desc Related flags (8-9) */
|
||||||
|
u8 bLastIniPkt:1;
|
||||||
|
u8 bCmdOrInit:1;
|
||||||
|
u8 bFirstSeg:1;
|
||||||
|
u8 bLastSeg:1;
|
||||||
|
u8 bEncrypt:1;
|
||||||
|
u8 bTxDisableRateFallBack:1;
|
||||||
|
u8 bTxUseDriverAssingedRate:1;
|
||||||
|
u8 bHwSec:1; /* indicate whether use Hw security */
|
||||||
|
|
||||||
|
u8 reserved1;
|
||||||
|
|
||||||
|
/* Tx Firmware Relaged flags (10-11) */
|
||||||
|
u8 bCTSEnable:1;
|
||||||
|
u8 bRTSEnable:1;
|
||||||
|
u8 bUseShortGI:1;
|
||||||
|
u8 bUseShortPreamble:1;
|
||||||
|
u8 bTxEnableFwCalcDur:1;
|
||||||
|
u8 bAMPDUEnable:1;
|
||||||
|
u8 bRTSSTBC:1;
|
||||||
|
u8 RTSSC:1;
|
||||||
|
|
||||||
|
u8 bRTSBW:1;
|
||||||
|
u8 bPacketBW:1;
|
||||||
|
u8 bRTSUseShortPreamble:1;
|
||||||
|
u8 bRTSUseShortGI:1;
|
||||||
|
u8 bMulticast:1;
|
||||||
|
u8 bBroadcast:1;
|
||||||
|
u8 drv_agg_enable:1;
|
||||||
|
u8 reserved2:1;
|
||||||
|
|
||||||
|
/* Tx Desc related element(12-19) */
|
||||||
|
u8 rata_index;
|
||||||
|
u8 queue_index;
|
||||||
|
u16 txbuf_size;
|
||||||
|
u8 RATRIndex;
|
||||||
|
u8 reserved6;
|
||||||
|
u8 reserved7;
|
||||||
|
u8 reserved8;
|
||||||
|
|
||||||
|
/* Tx firmware related element(20-27) */
|
||||||
|
u8 data_rate;
|
||||||
|
u8 rts_rate;
|
||||||
|
u8 ampdu_factor;
|
||||||
|
u8 ampdu_density;
|
||||||
|
u8 DrvAggrNum;
|
||||||
|
u16 pkt_size;
|
||||||
|
u8 reserved12;
|
||||||
|
} cb_desc, *pcb_desc;
|
||||||
|
|
||||||
|
enum {
|
||||||
|
MGN_1M = 0x02,
|
||||||
|
MGN_2M = 0x04,
|
||||||
|
MGN_5_5M = 0x0b,
|
||||||
|
MGN_11M = 0x16,
|
||||||
|
|
||||||
|
MGN_6M = 0x0c,
|
||||||
|
MGN_9M = 0x12,
|
||||||
|
MGN_12M = 0x18,
|
||||||
|
MGN_18M = 0x24,
|
||||||
|
MGN_24M = 0x30,
|
||||||
|
MGN_36M = 0x48,
|
||||||
|
MGN_48M = 0x60,
|
||||||
|
MGN_54M = 0x6c,
|
||||||
|
|
||||||
|
MGN_MCS0 = 0x80,
|
||||||
|
MGN_MCS1 = 0x81,
|
||||||
|
MGN_MCS2 = 0x82,
|
||||||
|
MGN_MCS3 = 0x83,
|
||||||
|
MGN_MCS4 = 0x84,
|
||||||
|
MGN_MCS5 = 0x85,
|
||||||
|
MGN_MCS6 = 0x86,
|
||||||
|
MGN_MCS7 = 0x87,
|
||||||
|
MGN_MCS8 = 0x88,
|
||||||
|
MGN_MCS9 = 0x89,
|
||||||
|
MGN_MCS10 = 0x8a,
|
||||||
|
MGN_MCS11 = 0x8b,
|
||||||
|
MGN_MCS12 = 0x8c,
|
||||||
|
MGN_MCS13 = 0x8d,
|
||||||
|
MGN_MCS14 = 0x8e,
|
||||||
|
MGN_MCS15 = 0x8f,
|
||||||
|
|
||||||
|
MGN_MCS0_SG = 0x90,
|
||||||
|
MGN_MCS1_SG = 0x91,
|
||||||
|
MGN_MCS2_SG = 0x92,
|
||||||
|
MGN_MCS3_SG = 0x93,
|
||||||
|
MGN_MCS4_SG = 0x94,
|
||||||
|
MGN_MCS5_SG = 0x95,
|
||||||
|
MGN_MCS6_SG = 0x96,
|
||||||
|
MGN_MCS7_SG = 0x97,
|
||||||
|
MGN_MCS8_SG = 0x98,
|
||||||
|
MGN_MCS9_SG = 0x99,
|
||||||
|
MGN_MCS10_SG = 0x9a,
|
||||||
|
MGN_MCS11_SG = 0x9b,
|
||||||
|
MGN_MCS12_SG = 0x9c,
|
||||||
|
MGN_MCS13_SG = 0x9d,
|
||||||
|
MGN_MCS14_SG = 0x9e,
|
||||||
|
MGN_MCS15_SG = 0x9f,
|
||||||
|
};
|
||||||
|
|
||||||
|
#define FC_QOS_BIT BIT7
|
||||||
|
|
||||||
|
#define IsDataFrame(pdu) (((pdu[0] & 0x0C) == 0x08) ? true : false)
|
||||||
|
#define IsLegacyDataFrame(pdu) (IsDataFrame(pdu) && (!(pdu[0] & FC_QOS_BIT)))
|
||||||
|
#define IsQoSDataFrame(pframe) \
|
||||||
|
((*(u16 *)pframe & (IEEE80211_STYPE_QOS_DATA | IEEE80211_FTYPE_DATA)) \
|
||||||
|
== (IEEE80211_STYPE_QOS_DATA | IEEE80211_FTYPE_DATA))
|
||||||
|
|
||||||
|
#define Frame_Order(pframe) (*(u16 *)pframe & IEEE80211_FCTL_ORDER)
|
||||||
|
|
||||||
|
#define SN_LESS(a, b) (((a - b) & 0x800) != 0)
|
||||||
|
#define SN_EQUAL(a, b) (a == b)
|
||||||
|
|
||||||
|
#define MAX_DEV_ADDR_SIZE 8
|
||||||
|
|
||||||
|
enum {
|
||||||
|
/* ACT_CATEGORY */
|
||||||
|
ACT_CAT_QOS = 1,
|
||||||
|
ACT_CAT_DLS = 2,
|
||||||
|
ACT_CAT_BA = 3,
|
||||||
|
ACT_CAT_HT = 7,
|
||||||
|
ACT_CAT_WMM = 17,
|
||||||
|
|
||||||
|
/* TS_ACTION */
|
||||||
|
ACT_ADDTSREQ = 0,
|
||||||
|
ACT_ADDTSRSP = 1,
|
||||||
|
ACT_DELTS = 2,
|
||||||
|
ACT_SCHEDULE = 3,
|
||||||
|
|
||||||
|
/* BA_ACTION */
|
||||||
|
ACT_ADDBAREQ = 0,
|
||||||
|
ACT_ADDBARSP = 1,
|
||||||
|
ACT_DELBA = 2,
|
||||||
|
};
|
||||||
|
|
||||||
|
/* InitialGainOpType */
|
||||||
|
enum {
|
||||||
|
IG_Backup = 0,
|
||||||
|
IG_Restore,
|
||||||
|
IG_Max
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef enum _LED_CTL_MODE {
|
||||||
|
LED_CTL_POWER_ON = 1,
|
||||||
|
LED_CTL_LINK = 2,
|
||||||
|
LED_CTL_NO_LINK = 3,
|
||||||
|
LED_CTL_TX = 4,
|
||||||
|
LED_CTL_RX = 5,
|
||||||
|
LED_CTL_SITE_SURVEY = 6,
|
||||||
|
LED_CTL_POWER_OFF = 7,
|
||||||
|
LED_CTL_START_TO_LINK = 8,
|
||||||
|
LED_CTL_START_WPS = 9,
|
||||||
|
LED_CTL_STOP_WPS = 10,
|
||||||
|
LED_CTL_START_WPS_BOTTON = 11,
|
||||||
|
} LED_CTL_MODE;
|
||||||
|
|
||||||
|
typedef union _frameqos {
|
||||||
|
u16 shortdata;
|
||||||
|
u8 chardata[2];
|
||||||
|
struct {
|
||||||
|
u16 tid:4;
|
||||||
|
u16 eosp:1;
|
||||||
|
u16 ack_policy:2;
|
||||||
|
u16 reserved:1;
|
||||||
|
u16 txop:8;
|
||||||
|
} field;
|
||||||
|
} frameqos;
|
||||||
|
|
||||||
|
static inline u8 Frame_QoSTID(u8 *buf)
|
||||||
|
{
|
||||||
|
struct ieee80211_hdr_3addr *hdr = (struct ieee80211_hdr_3addr *)buf;
|
||||||
|
u16 fc = le16_to_cpu(hdr->frame_ctl);
|
||||||
|
|
||||||
|
return (u8)((frameqos *)(buf +
|
||||||
|
(((fc & IEEE80211_FCTL_TODS) &&
|
||||||
|
(fc & IEEE80211_FCTL_FROMDS)) ? 30 : 24)))->field.tid;
|
||||||
|
}
|
||||||
|
|
||||||
|
enum {
|
||||||
|
ERP_NonERPpresent = 1,
|
||||||
|
ERP_UseProtection = 2,
|
||||||
|
ERP_BarkerPreambleMode = 4,
|
||||||
|
};
|
||||||
|
|
||||||
|
struct bandwidth_autoswitch {
|
||||||
|
long threshold_20Mhzto40Mhz;
|
||||||
|
long threshold_40Mhzto20Mhz;
|
||||||
|
bool bforced_tx20Mhz;
|
||||||
|
bool bautoswitch_enable;
|
||||||
|
};
|
||||||
|
|
||||||
|
#define REORDER_WIN_SIZE 128
|
||||||
|
#define REORDER_ENTRY_NUM 128
|
||||||
|
typedef struct _RX_REORDER_ENTRY {
|
||||||
|
struct list_head List;
|
||||||
|
u16 SeqNum;
|
||||||
|
struct ieee80211_rxb *prxb;
|
||||||
|
} RX_REORDER_ENTRY, *PRX_REORDER_ENTRY;
|
||||||
|
|
||||||
|
typedef enum _Fsync_State{
|
||||||
|
Default_Fsync,
|
||||||
|
HW_Fsync,
|
||||||
|
SW_Fsync
|
||||||
|
} Fsync_State;
|
||||||
|
|
||||||
|
/* Power save mode configured. */
|
||||||
|
typedef enum _RT_PS_MODE {
|
||||||
|
eActive, /* Active/Continuous access. */
|
||||||
|
eMaxPs, /* Max power save mode. */
|
||||||
|
eFastPs /* Fast power save mode. */
|
||||||
|
} RT_PS_MODE;
|
||||||
|
|
||||||
|
typedef enum _IPS_CALLBACK_FUNCION {
|
||||||
|
IPS_CALLBACK_NONE = 0,
|
||||||
|
IPS_CALLBACK_MGNT_LINK_REQUEST = 1,
|
||||||
|
IPS_CALLBACK_JOIN_REQUEST = 2,
|
||||||
|
} IPS_CALLBACK_FUNCION;
|
||||||
|
|
||||||
|
typedef enum _RT_JOIN_ACTION {
|
||||||
|
RT_JOIN_INFRA = 1,
|
||||||
|
RT_JOIN_IBSS = 2,
|
||||||
|
RT_START_IBSS = 3,
|
||||||
|
RT_NO_ACTION = 4,
|
||||||
|
} RT_JOIN_ACTION;
|
||||||
|
|
||||||
|
struct ibss_parms {
|
||||||
|
u16 atimWin;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Max num of support rates element: 8, Max num of ext. support rate: 255. */
|
||||||
|
#define MAX_NUM_RATES 264
|
||||||
|
|
||||||
|
typedef enum _RT_RF_POWER_STATE {
|
||||||
|
eRfOn,
|
||||||
|
eRfSleep,
|
||||||
|
eRfOff
|
||||||
|
} RT_RF_POWER_STATE;
|
||||||
|
|
||||||
|
struct rt_power_save_control {
|
||||||
|
/* Inactive Power Save (IPS): disable RF when disconnected */
|
||||||
|
bool bInactivePs;
|
||||||
|
bool bIPSModeBackup;
|
||||||
|
bool bHaltAdapterClkRQ;
|
||||||
|
bool bSwRfProcessing;
|
||||||
|
RT_RF_POWER_STATE eInactivePowerState;
|
||||||
|
struct work_struct InactivePsWorkItem;
|
||||||
|
struct timer_list InactivePsTimer;
|
||||||
|
|
||||||
|
/* return point for join action */
|
||||||
|
IPS_CALLBACK_FUNCION ReturnPoint;
|
||||||
|
|
||||||
|
/* Recored Parameters for rescheduled JoinRequest */
|
||||||
|
bool bTmpBssDesc;
|
||||||
|
RT_JOIN_ACTION tmpJoinAction;
|
||||||
|
struct ieee80211_network tmpBssDesc;
|
||||||
|
|
||||||
|
/* Recored Parameters for rescheduled MgntLinkRequest */
|
||||||
|
bool bTmpScanOnly;
|
||||||
|
bool bTmpActiveScan;
|
||||||
|
bool bTmpFilterHiddenAP;
|
||||||
|
bool bTmpUpdateParms;
|
||||||
|
u8 tmpSsidBuf[33];
|
||||||
|
OCTET_STRING tmpSsid2Scan;
|
||||||
|
bool bTmpSsid2Scan;
|
||||||
|
u8 tmpNetworkType;
|
||||||
|
u8 tmpChannelNumber;
|
||||||
|
u16 tmpBcnPeriod;
|
||||||
|
u8 tmpDtimPeriod;
|
||||||
|
u16 tmpmCap;
|
||||||
|
OCTET_STRING tmpSuppRateSet;
|
||||||
|
u8 tmpSuppRateBuf[MAX_NUM_RATES];
|
||||||
|
bool bTmpSuppRate;
|
||||||
|
struct ibss_parms tmpIbpm;
|
||||||
|
bool bTmpIbpm;
|
||||||
|
|
||||||
|
/* Leisre Poswer Save: disable RF if connected but traffic isn't busy */
|
||||||
|
bool bLeisurePs;
|
||||||
|
u32 PowerProfile;
|
||||||
|
u8 LpsIdleCount;
|
||||||
|
u8 RegMaxLPSAwakeIntvl;
|
||||||
|
u8 LPSAwakeIntvl;
|
||||||
|
|
||||||
|
/* RF OFF Level */
|
||||||
|
u32 CurPsLevel;
|
||||||
|
u32 RegRfPsLevel;
|
||||||
|
|
||||||
|
/* Fw Control LPS */
|
||||||
|
bool bFwCtrlLPS;
|
||||||
|
u8 FWCtrlPSMode;
|
||||||
|
|
||||||
|
/* Record if there is a link request in IPS RF off progress. */
|
||||||
|
bool LinkReqInIPSRFOffPgs;
|
||||||
|
/*
|
||||||
|
* To make sure that connect info should be executed, so we set the
|
||||||
|
* bit to filter the link info which comes after the connect info.
|
||||||
|
*/
|
||||||
|
bool BufConnectinfoBefore;
|
||||||
|
};
|
||||||
|
|
||||||
|
enum {
|
||||||
|
RF_CHANGE_BY_SW = BIT31,
|
||||||
|
RF_CHANGE_BY_HW = BIT30,
|
||||||
|
RF_CHANGE_BY_PS = BIT29,
|
||||||
|
RF_CHANGE_BY_IPS = BIT28,
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Firmware related CMD IO. */
|
||||||
|
typedef enum _FW_CMD_IO_TYPE {
|
||||||
|
FW_CMD_DIG_ENABLE = 0, /* for DIG DM */
|
||||||
|
FW_CMD_DIG_DISABLE = 1,
|
||||||
|
FW_CMD_DIG_HALT = 2,
|
||||||
|
FW_CMD_DIG_RESUME = 3,
|
||||||
|
FW_CMD_HIGH_PWR_ENABLE = 4, /* for High Power DM */
|
||||||
|
FW_CMD_HIGH_PWR_DISABLE = 5,
|
||||||
|
FW_CMD_RA_RESET = 6, /* for Rate adaptive DM */
|
||||||
|
FW_CMD_RA_ACTIVE = 7,
|
||||||
|
FW_CMD_RA_REFRESH_N = 8,
|
||||||
|
FW_CMD_RA_REFRESH_BG = 9,
|
||||||
|
FW_CMD_IQK_ENABLE = 10, /* for FW supported IQK */
|
||||||
|
FW_CMD_TXPWR_TRACK_ENABLE = 11, /* Tx power tracking switch */
|
||||||
|
FW_CMD_TXPWR_TRACK_DISABLE = 12,/* Tx power tracking switch */
|
||||||
|
FW_CMD_PAUSE_DM_BY_SCAN = 13,
|
||||||
|
FW_CMD_RESUME_DM_BY_SCAN = 14,
|
||||||
|
FW_CMD_MID_HIGH_PWR_ENABLE = 15,
|
||||||
|
/* indicate firmware that driver enters LPS, for PS-Poll hardware bug */
|
||||||
|
FW_CMD_LPS_ENTER = 16,
|
||||||
|
/* indicate firmware that driver leave LPS */
|
||||||
|
FW_CMD_LPS_LEAVE = 17,
|
||||||
|
} FW_CMD_IO_TYPE;
|
||||||
|
|
||||||
|
#define RT_MAX_LD_SLOT_NUM 10
|
||||||
|
struct rt_link_detect {
|
||||||
|
u32 NumRecvBcnInPeriod;
|
||||||
|
u32 NumRecvDataInPeriod;
|
||||||
|
|
||||||
|
/* number of Rx beacon / CheckForHang_period to determine link status */
|
||||||
|
u32 RxBcnNum[RT_MAX_LD_SLOT_NUM];
|
||||||
|
/* number of Rx data / CheckForHang_period to determine link status */
|
||||||
|
u32 RxDataNum[RT_MAX_LD_SLOT_NUM];
|
||||||
|
/* number of CheckForHang period to determine link status */
|
||||||
|
u16 SlotNum;
|
||||||
|
u16 SlotIndex;
|
||||||
|
|
||||||
|
u32 NumTxOkInPeriod;
|
||||||
|
u32 NumRxOkInPeriod;
|
||||||
|
bool bBusyTraffic;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* HT */
|
||||||
|
#define MAX_RECEIVE_BUFFER_SIZE 9100
|
||||||
|
extern void HTDebugHTCapability(u8 *CapIE, u8 *TitleString);
|
||||||
|
extern void HTDebugHTInfo(u8 *InfoIE, u8 *TitleString);
|
||||||
|
|
||||||
|
extern void HTSetConnectBwMode(struct ieee80211_device *ieee,
|
||||||
|
HT_CHANNEL_WIDTH Bandwidth,
|
||||||
|
HT_EXTCHNL_OFFSET Offset);
|
||||||
|
extern void HTUpdateDefaultSetting(struct ieee80211_device *ieee);
|
||||||
|
extern void HTConstructCapabilityElement(struct ieee80211_device *ieee,
|
||||||
|
u8 *posHTCap, u8 *len, u8 isEncrypt);
|
||||||
|
extern void HTConstructInfoElement(struct ieee80211_device *ieee,
|
||||||
|
u8 *posHTInfo, u8 *len, u8 isEncrypt);
|
||||||
|
extern void HTConstructRT2RTAggElement(struct ieee80211_device *ieee,
|
||||||
|
u8 *posRT2RTAgg, u8 *len);
|
||||||
|
extern void HTOnAssocRsp(struct ieee80211_device *ieee);
|
||||||
|
extern void HTInitializeHTInfo(struct ieee80211_device *ieee);
|
||||||
|
extern void HTInitializeBssDesc(PBSS_HT pBssHT);
|
||||||
|
extern void HTResetSelfAndSavePeerSetting(struct ieee80211_device *ieee,
|
||||||
|
struct ieee80211_network *pNetwork);
|
||||||
|
extern void HTUpdateSelfAndPeerSetting(struct ieee80211_device *ieee,
|
||||||
|
struct ieee80211_network *pNetwork);
|
||||||
|
extern u8 HTGetHighestMCSRate(struct ieee80211_device *ieee, u8 *pMCSRateSet,
|
||||||
|
u8 *pMCSFilter);
|
||||||
|
extern u8 MCS_FILTER_ALL[];
|
||||||
|
extern u16 MCS_DATA_RATE[2][2][77] ;
|
||||||
|
extern u8 HTCCheck(struct ieee80211_device *ieee, u8 *pFrame);
|
||||||
|
extern void HTResetIOTSetting(PRT_HIGH_THROUGHPUT pHTInfo);
|
||||||
|
extern bool IsHTHalfNmodeAPs(struct ieee80211_device *ieee);
|
||||||
|
extern u16 HTHalfMcsToDataRate(struct ieee80211_device *ieee, u8 nMcsRate);
|
||||||
|
extern u16 HTMcsToDataRate(struct ieee80211_device *ieee, u8 nMcsRate);
|
||||||
|
extern u16 TxCountToDataRate(struct ieee80211_device *ieee, u8 nDataRate);
|
||||||
|
extern int ieee80211_rx_ADDBAReq(struct ieee80211_device *ieee,
|
||||||
|
struct sk_buff *skb);
|
||||||
|
extern int ieee80211_rx_ADDBARsp(struct ieee80211_device *ieee,
|
||||||
|
struct sk_buff *skb);
|
||||||
|
extern int ieee80211_rx_DELBA(struct ieee80211_device *ieee,
|
||||||
|
struct sk_buff *skb);
|
||||||
|
extern void TsInitAddBA(struct ieee80211_device *ieee, PTX_TS_RECORD pTS,
|
||||||
|
u8 Policy, u8 bOverwritePending);
|
||||||
|
extern void TsInitDelBA(struct ieee80211_device *ieee,
|
||||||
|
PTS_COMMON_INFO pTsCommonInfo, TR_SELECT TxRxSelect);
|
||||||
|
extern void BaSetupTimeOut(unsigned long data);
|
||||||
|
extern void TxBaInactTimeout(unsigned long data);
|
||||||
|
extern void RxBaInactTimeout(unsigned long data);
|
||||||
|
extern void ResetBaEntry(PBA_RECORD pBA);
|
||||||
|
extern bool GetTs(struct ieee80211_device *ieee, PTS_COMMON_INFO *ppTS,
|
||||||
|
u8 *Addr, u8 TID, TR_SELECT TxRxSelect, /* Rx:1, Tx:0 */
|
||||||
|
bool bAddNewTs);
|
||||||
|
extern void TSInitialize(struct ieee80211_device *ieee);
|
||||||
|
extern void TsStartAddBaProcess(struct ieee80211_device *ieee,
|
||||||
|
PTX_TS_RECORD pTxTS);
|
||||||
|
extern void RemovePeerTS(struct ieee80211_device *ieee, u8 *Addr);
|
||||||
|
extern void RemoveAllTS(struct ieee80211_device *ieee);
|
||||||
|
|
||||||
|
#endif /* __IEEE80211_R8192S_H */
|
Loading…
Add table
Reference in a new issue