d2443c53ee
The bssdscpt.h header file contains definitions that are not actually used for anything. Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi> Acked-by: Pavel Machek <pavel@ucw.cz> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
271 lines
8.3 KiB
C
271 lines
8.3 KiB
C
//==================================================================
|
|
// MTO.H
|
|
//
|
|
// Revision history
|
|
//=================================
|
|
// 20030110 UN20 Pete Chao
|
|
// Initial Release
|
|
//
|
|
// Copyright (c) 2003 Winbond Electronics Corp. All rights reserved.
|
|
//==================================================================
|
|
#ifndef __MTO_H__
|
|
#define __MTO_H__
|
|
|
|
#include <linux/types.h>
|
|
|
|
struct wbsoft_priv;
|
|
|
|
#define MTO_DEFAULT_TH_CNT 5
|
|
#define MTO_DEFAULT_TH_SQ3 112 //OLD IS 13 reference JohnXu
|
|
#define MTO_DEFAULT_TH_IDLE_SLOT 15
|
|
#define MTO_DEFAULT_TH_PR_INTERF 30
|
|
#define MTO_DEFAULT_TMR_AGING 25 // unit: slot time 10 reference JohnXu
|
|
#define MTO_DEFAULT_TMR_PERIODIC 5 // unit: slot time
|
|
|
|
#define MTO_ANTENNA_DIVERSITY_OFF 0
|
|
#define MTO_ANTENNA_DIVERSITY_ON 1
|
|
|
|
// LA20040210_DTO kevin
|
|
//#define MTO_PREAMBLE_LONG 0
|
|
//#define MTO_PREAMBLE_SHORT 1
|
|
#define MTO_PREAMBLE_LONG WLAN_PREAMBLE_TYPE_LONG
|
|
#define MTO_PREAMBLE_SHORT WLAN_PREAMBLE_TYPE_SHORT
|
|
|
|
typedef enum {
|
|
TOGGLE_STATE_IDLE = 0,
|
|
TOGGLE_STATE_WAIT0 = 1,
|
|
TOGGLE_STATE_WAIT1 = 2,
|
|
TOGGLE_STATE_MAKEDESISION = 3,
|
|
TOGGLE_STATE_BKOFF = 4
|
|
} TOGGLE_STATE;
|
|
|
|
typedef enum {
|
|
RATE_CHGSTATE_IDLE = 0,
|
|
RATE_CHGSTATE_CALCULATE = 1,
|
|
RATE_CHGSTATE_BACKOFF = 2
|
|
} TX_RATE_REDUCTION_STATE;
|
|
|
|
//============================================================================
|
|
// struct _MTOParameters --
|
|
//
|
|
// Defines the parameters used in the MAC Throughput Optimization algorithm
|
|
//============================================================================
|
|
typedef struct _MTO_PARAMETERS
|
|
{
|
|
u8 Th_Fixant;
|
|
u8 Th_Cnt;
|
|
u8 Th_SQ3;
|
|
u8 Th_IdleSlot;
|
|
|
|
u16 Tmr_Aging;
|
|
u8 Th_PrInterf;
|
|
u8 Tmr_Periodic;
|
|
|
|
//--------- wkchen added -------------
|
|
u32 TxFlowCount; //to judge what kind the tx flow(sparse or busy) is
|
|
//------------------------------------------------
|
|
|
|
//--------- DTO threshold parameters -------------
|
|
u16 DTO_PeriodicCheckCycle;
|
|
u16 DTO_RssiThForAntDiv;
|
|
|
|
u16 DTO_TxCountThForCalcNewRate;
|
|
u16 DTO_TxRateIncTh;
|
|
|
|
u16 DTO_TxRateDecTh;
|
|
u16 DTO_TxRateEqTh;
|
|
|
|
u16 DTO_TxRateBackOff;
|
|
u16 DTO_TxRetryRateReduce;
|
|
|
|
u16 DTO_TxPowerIndex; //0 ~ 31
|
|
u16 reserved_1;
|
|
//------------------------------------------------
|
|
|
|
u8 PowerChangeEnable;
|
|
u8 AntDiversityEnable;
|
|
u8 Ant_mac;
|
|
u8 Ant_div;
|
|
|
|
u8 CCA_Mode;
|
|
u8 CCA_Mode_Setup;
|
|
u8 Preamble_Type;
|
|
u8 PreambleChangeEnable;
|
|
|
|
u8 DataRateLevel;
|
|
u8 DataRateChangeEnable;
|
|
u8 FragThresholdLevel;
|
|
u8 FragThresholdChangeEnable;
|
|
|
|
u16 RTSThreshold;
|
|
u16 RTSThreshold_Setup;
|
|
|
|
u32 AvgIdleSlot;
|
|
u32 Pr_Interf;
|
|
u32 AvgGapBtwnInterf;
|
|
|
|
u8 RTSChangeEnable;
|
|
u8 Ant_sel;
|
|
u8 aging_timeout;
|
|
u8 reserved_2;
|
|
|
|
u32 Cnt_Ant[2];
|
|
u32 SQ_Ant[2];
|
|
|
|
// 20040510 remove from globe vairable
|
|
u32 TmrCnt;
|
|
u32 BackoffTmr;
|
|
TOGGLE_STATE ToggleState;
|
|
TX_RATE_REDUCTION_STATE TxRateReductionState;
|
|
|
|
u8 Last_Rate;
|
|
u8 Co_efficent;
|
|
u8 FallbackRateLevel;
|
|
u8 OfdmRateLevel;
|
|
|
|
u8 RatePolicy;
|
|
u8 reserved_3[3];
|
|
|
|
// For RSSI turning
|
|
s32 RSSI_high;
|
|
s32 RSSI_low;
|
|
|
|
} MTO_PARAMETERS, *PMTO_PARAMETERS;
|
|
|
|
|
|
#define MTO_DATA() (adapter->sMtoPara)
|
|
#define MTO_HAL() (&adapter->sHwData)
|
|
#define MTO_SET_PREAMBLE_TYPE(x) // 20040511 Turbo mark LM_PREAMBLE_TYPE(&pcore_data->lm_data) = (x)
|
|
#define MTO_ENABLE (adapter->sLocalPara.TxRateMode == RATE_AUTO)
|
|
#define MTO_TXPOWER_FROM_EEPROM (adapter->sHwData.PowerIndexFromEEPROM)
|
|
#define LOCAL_ANTENNA_NO() (adapter->sLocalPara.bAntennaNo)
|
|
#define LOCAL_IS_CONNECTED() (adapter->sLocalPara.wConnectedSTAindex != 0)
|
|
#define MTO_INITTXRATE_MODE (adapter->sHwData.SoftwareSet&0x2) //bit 1
|
|
// 20040510 Turbo add
|
|
#define MTO_TMR_CNT() MTO_DATA().TmrCnt
|
|
#define MTO_TOGGLE_STATE() MTO_DATA().ToggleState
|
|
#define MTO_TX_RATE_REDUCTION_STATE() MTO_DATA().TxRateReductionState
|
|
#define MTO_BACKOFF_TMR() MTO_DATA().BackoffTmr
|
|
#define MTO_LAST_RATE() MTO_DATA().Last_Rate
|
|
#define MTO_CO_EFFICENT() MTO_DATA().Co_efficent
|
|
|
|
#define MTO_TH_CNT() MTO_DATA().Th_Cnt
|
|
#define MTO_TH_SQ3() MTO_DATA().Th_SQ3
|
|
#define MTO_TH_IDLE_SLOT() MTO_DATA().Th_IdleSlot
|
|
#define MTO_TH_PR_INTERF() MTO_DATA().Th_PrInterf
|
|
|
|
#define MTO_TMR_AGING() MTO_DATA().Tmr_Aging
|
|
#define MTO_TMR_PERIODIC() MTO_DATA().Tmr_Periodic
|
|
|
|
#define MTO_POWER_CHANGE_ENABLE() MTO_DATA().PowerChangeEnable
|
|
#define MTO_ANT_DIVERSITY_ENABLE() adapter->sLocalPara.boAntennaDiversity
|
|
#define MTO_ANT_MAC() MTO_DATA().Ant_mac
|
|
#define MTO_ANT_DIVERSITY() MTO_DATA().Ant_div
|
|
#define MTO_CCA_MODE() MTO_DATA().CCA_Mode
|
|
#define MTO_CCA_MODE_SETUP() MTO_DATA().CCA_Mode_Setup
|
|
#define MTO_PREAMBLE_TYPE() MTO_DATA().Preamble_Type
|
|
#define MTO_PREAMBLE_CHANGE_ENABLE() MTO_DATA().PreambleChangeEnable
|
|
|
|
#define MTO_RATE_LEVEL() MTO_DATA().DataRateLevel
|
|
#define MTO_OFDM_RATE_LEVEL() MTO_DATA().OfdmRateLevel
|
|
#define MTO_RATE_CHANGE_ENABLE() MTO_DATA().DataRateChangeEnable
|
|
#define MTO_FRAG_TH_LEVEL() MTO_DATA().FragThresholdLevel
|
|
#define MTO_FRAG_CHANGE_ENABLE() MTO_DATA().FragThresholdChangeEnable
|
|
#define MTO_RTS_THRESHOLD() MTO_DATA().RTSThreshold
|
|
#define MTO_RTS_CHANGE_ENABLE() MTO_DATA().RTSChangeEnable
|
|
#define MTO_RTS_THRESHOLD_SETUP() MTO_DATA().RTSThreshold_Setup
|
|
|
|
#define MTO_AVG_IDLE_SLOT() MTO_DATA().AvgIdleSlot
|
|
#define MTO_PR_INTERF() MTO_DATA().Pr_Interf
|
|
#define MTO_AVG_GAP_BTWN_INTERF() MTO_DATA().AvgGapBtwnInterf
|
|
|
|
#define MTO_ANT_SEL() MTO_DATA().Ant_sel
|
|
#define MTO_CNT_ANT(x) MTO_DATA().Cnt_Ant[(x)]
|
|
#define MTO_SQ_ANT(x) MTO_DATA().SQ_Ant[(x)]
|
|
#define MTO_AGING_TIMEOUT() MTO_DATA().aging_timeout
|
|
|
|
|
|
#define MTO_TXFLOWCOUNT() MTO_DATA().TxFlowCount
|
|
//--------- DTO threshold parameters -------------
|
|
#define MTOPARA_PERIODIC_CHECK_CYCLE() MTO_DATA().DTO_PeriodicCheckCycle
|
|
#define MTOPARA_RSSI_TH_FOR_ANTDIV() MTO_DATA().DTO_RssiThForAntDiv
|
|
#define MTOPARA_TXCOUNT_TH_FOR_CALC_RATE() MTO_DATA().DTO_TxCountThForCalcNewRate
|
|
#define MTOPARA_TXRATE_INC_TH() MTO_DATA().DTO_TxRateIncTh
|
|
#define MTOPARA_TXRATE_DEC_TH() MTO_DATA().DTO_TxRateDecTh
|
|
#define MTOPARA_TXRATE_EQ_TH() MTO_DATA().DTO_TxRateEqTh
|
|
#define MTOPARA_TXRATE_BACKOFF() MTO_DATA().DTO_TxRateBackOff
|
|
#define MTOPARA_TXRETRYRATE_REDUCE() MTO_DATA().DTO_TxRetryRateReduce
|
|
#define MTOPARA_TXPOWER_INDEX() MTO_DATA().DTO_TxPowerIndex
|
|
//------------------------------------------------
|
|
|
|
|
|
extern u16 MTO_Frag_Th_Tbl[];
|
|
|
|
#define MTO_DATA_RATE() MTO_Data_Rate_Tbl[MTO_RATE_LEVEL()]
|
|
#define MTO_FRAG_TH() MTO_Frag_Th_Tbl[MTO_FRAG_TH_LEVEL()]
|
|
|
|
typedef struct {
|
|
u8 tx_rate;
|
|
u8 tx_retry_rate;
|
|
} TXRETRY_REC;
|
|
|
|
typedef struct _STATISTICS_INFO {
|
|
u32 Rate54M;
|
|
u32 Rate48M;
|
|
u32 Rate36M;
|
|
u32 Rate24M;
|
|
u32 Rate18M;
|
|
u32 Rate12M;
|
|
u32 Rate9M;
|
|
u32 Rate6M;
|
|
u32 Rate11MS;
|
|
u32 Rate11ML;
|
|
u32 Rate55MS;
|
|
u32 Rate55ML;
|
|
u32 Rate2MS;
|
|
u32 Rate2ML;
|
|
u32 Rate1M;
|
|
u32 Rate54MOK;
|
|
u32 Rate48MOK;
|
|
u32 Rate36MOK;
|
|
u32 Rate24MOK;
|
|
u32 Rate18MOK;
|
|
u32 Rate12MOK;
|
|
u32 Rate9MOK;
|
|
u32 Rate6MOK;
|
|
u32 Rate11MSOK;
|
|
u32 Rate11MLOK;
|
|
u32 Rate55MSOK;
|
|
u32 Rate55MLOK;
|
|
u32 Rate2MSOK;
|
|
u32 Rate2MLOK;
|
|
u32 Rate1MOK;
|
|
u32 SQ3;
|
|
s32 RSSIAVG;
|
|
s32 RSSIMAX;
|
|
s32 TXRATE;
|
|
s32 TxRetryRate;
|
|
s32 BSS_PK_CNT;
|
|
s32 NIDLESLOT;
|
|
s32 SLOT_CNT;
|
|
s32 INTERF_CNT;
|
|
s32 GAP_CNT;
|
|
s32 DS_EVM;
|
|
s32 RcvBeaconNum;
|
|
s32 RXRATE;
|
|
s32 RxBytes;
|
|
s32 TxBytes;
|
|
s32 Antenna;
|
|
} STATISTICS_INFO, *PSTATISTICS_INFO;
|
|
|
|
extern void MTO_Init(struct wbsoft_priv *);
|
|
extern void MTO_PeriodicTimerExpired(struct wbsoft_priv *);
|
|
extern void MTO_SetDTORateRange(struct wbsoft_priv *, u8 *, u8);
|
|
extern u8 MTO_GetTxRate(struct wbsoft_priv *adapter, u32 fpdu_len);
|
|
extern u8 MTO_GetTxFallbackRate(struct wbsoft_priv *adapter);
|
|
extern void MTO_SetTxCount(struct wbsoft_priv *adapter, u8 t0, u8 index);
|
|
|
|
#endif //__MTO_H__
|
|
|
|
|