123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 |
- /*
- * ==================================================================
- * MTO.H
- *
- * Copyright (c) 2003 Winbond Electronics Corp. All rights reserved.
- * ==================================================================
- */
- #ifndef __MTO_H__
- #define __MTO_H__
- #include <linux/types.h>
- struct wbsoft_priv;
- #define MTO_PREAMBLE_LONG WLAN_PREAMBLE_TYPE_LONG
- #define MTO_PREAMBLE_SHORT WLAN_PREAMBLE_TYPE_SHORT
- /* Defines the parameters used in the MAC Throughput Optimization algorithm */
- struct wb35_mto_params {
- 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 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];
- u8 FallbackRateLevel;
- u8 OfdmRateLevel;
- u8 RatePolicy;
- u8 reserved_3[3];
- /* For RSSI turning */
- s32 RSSI_high;
- s32 RSSI_low;
- };
- #define MTO_DATA() (adapter->sMtoPara)
- #define MTO_HAL() (&adapter->sHwData)
- #define MTO_SET_PREAMBLE_TYPE(x) /* 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 */
- #define MTO_POWER_CHANGE_ENABLE() MTO_DATA().PowerChangeEnable
- #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_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()]
- 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__ */
|