Commit | Line | Data |
---|---|---|
75df20e0 LL |
1 | /* |
2 | * ================================================================== | |
3 | * MTO.H | |
4 | * | |
5 | * Copyright (c) 2003 Winbond Electronics Corp. All rights reserved. | |
6 | * ================================================================== | |
7 | */ | |
66101de1 PM |
8 | #ifndef __MTO_H__ |
9 | #define __MTO_H__ | |
10 | ||
80aba536 PE |
11 | #include <linux/types.h> |
12 | ||
64328c87 PE |
13 | struct wbsoft_priv; |
14 | ||
66101de1 PM |
15 | #define MTO_PREAMBLE_LONG WLAN_PREAMBLE_TYPE_LONG |
16 | #define MTO_PREAMBLE_SHORT WLAN_PREAMBLE_TYPE_SHORT | |
17 | ||
75df20e0 | 18 | /* Defines the parameters used in the MAC Throughput Optimization algorithm */ |
a95c69cf | 19 | struct wb35_mto_params { |
75df20e0 | 20 | u32 TxFlowCount; /* to judge what kind the tx flow(sparse or busy) is */ |
66101de1 | 21 | |
75df20e0 LL |
22 | /* --------- DTO threshold parameters ------------- */ |
23 | u16 DTO_PeriodicCheckCycle; | |
24 | u16 DTO_RssiThForAntDiv; | |
66101de1 | 25 | |
75df20e0 LL |
26 | u16 DTO_TxCountThForCalcNewRate; |
27 | u16 DTO_TxRateIncTh; | |
66101de1 | 28 | |
75df20e0 LL |
29 | u16 DTO_TxRateDecTh; |
30 | u16 DTO_TxRateEqTh; | |
66101de1 | 31 | |
75df20e0 LL |
32 | u16 DTO_TxRateBackOff; |
33 | u16 DTO_TxRetryRateReduce; | |
66101de1 | 34 | |
75df20e0 LL |
35 | u16 DTO_TxPowerIndex; /* 0 ~ 31 */ |
36 | u16 reserved_1; | |
37 | /* ------------------------------------------------ */ | |
66101de1 | 38 | |
75df20e0 LL |
39 | u8 PowerChangeEnable; |
40 | u8 AntDiversityEnable; | |
41 | u8 CCA_Mode; | |
42 | u8 CCA_Mode_Setup; | |
43 | u8 Preamble_Type; | |
44 | u8 PreambleChangeEnable; | |
66101de1 | 45 | |
75df20e0 LL |
46 | u8 DataRateLevel; |
47 | u8 DataRateChangeEnable; | |
48 | u8 FragThresholdLevel; | |
49 | u8 FragThresholdChangeEnable; | |
66101de1 | 50 | |
75df20e0 LL |
51 | u16 RTSThreshold; |
52 | u16 RTSThreshold_Setup; | |
66101de1 | 53 | |
75df20e0 LL |
54 | u32 AvgIdleSlot; |
55 | u32 Pr_Interf; | |
56 | u32 AvgGapBtwnInterf; | |
66101de1 | 57 | |
75df20e0 LL |
58 | u8 RTSChangeEnable; |
59 | u8 Ant_sel; | |
60 | u8 aging_timeout; | |
61 | u8 reserved_2; | |
66101de1 | 62 | |
75df20e0 LL |
63 | u32 Cnt_Ant[2]; |
64 | u32 SQ_Ant[2]; | |
66101de1 | 65 | |
75df20e0 LL |
66 | u8 FallbackRateLevel; |
67 | u8 OfdmRateLevel; | |
66101de1 | 68 | |
75df20e0 LL |
69 | u8 RatePolicy; |
70 | u8 reserved_3[3]; | |
66101de1 | 71 | |
75df20e0 LL |
72 | /* For RSSI turning */ |
73 | s32 RSSI_high; | |
74 | s32 RSSI_low; | |
a95c69cf | 75 | }; |
66101de1 PM |
76 | |
77 | ||
75df20e0 LL |
78 | #define MTO_DATA() (adapter->sMtoPara) |
79 | #define MTO_HAL() (&adapter->sHwData) | |
80 | #define MTO_SET_PREAMBLE_TYPE(x) /* Turbo mark LM_PREAMBLE_TYPE(&pcore_data->lm_data) = (x) */ | |
81 | #define MTO_ENABLE (adapter->sLocalPara.TxRateMode == RATE_AUTO) | |
82 | #define MTO_TXPOWER_FROM_EEPROM (adapter->sHwData.PowerIndexFromEEPROM) | |
83 | #define LOCAL_ANTENNA_NO() (adapter->sLocalPara.bAntennaNo) | |
84 | #define LOCAL_IS_CONNECTED() (adapter->sLocalPara.wConnectedSTAindex != 0) | |
85 | #define MTO_INITTXRATE_MODE (adapter->sHwData.SoftwareSet&0x2) /* bit 1 */ | |
66101de1 | 86 | |
75df20e0 LL |
87 | #define MTO_POWER_CHANGE_ENABLE() MTO_DATA().PowerChangeEnable |
88 | #define MTO_CCA_MODE() MTO_DATA().CCA_Mode | |
89 | #define MTO_CCA_MODE_SETUP() MTO_DATA().CCA_Mode_Setup | |
90 | #define MTO_PREAMBLE_TYPE() MTO_DATA().Preamble_Type | |
91 | #define MTO_PREAMBLE_CHANGE_ENABLE() MTO_DATA().PreambleChangeEnable | |
66101de1 | 92 | |
75df20e0 | 93 | #define MTO_RATE_LEVEL() MTO_DATA().DataRateLevel |
66101de1 | 94 | #define MTO_OFDM_RATE_LEVEL() MTO_DATA().OfdmRateLevel |
75df20e0 LL |
95 | #define MTO_RATE_CHANGE_ENABLE() MTO_DATA().DataRateChangeEnable |
96 | #define MTO_FRAG_TH_LEVEL() MTO_DATA().FragThresholdLevel | |
97 | #define MTO_FRAG_CHANGE_ENABLE() MTO_DATA().FragThresholdChangeEnable | |
98 | #define MTO_RTS_THRESHOLD() MTO_DATA().RTSThreshold | |
99 | #define MTO_RTS_CHANGE_ENABLE() MTO_DATA().RTSChangeEnable | |
100 | #define MTO_RTS_THRESHOLD_SETUP() MTO_DATA().RTSThreshold_Setup | |
66101de1 | 101 | |
75df20e0 LL |
102 | #define MTO_AVG_IDLE_SLOT() MTO_DATA().AvgIdleSlot |
103 | #define MTO_PR_INTERF() MTO_DATA().Pr_Interf | |
104 | #define MTO_AVG_GAP_BTWN_INTERF() MTO_DATA().AvgGapBtwnInterf | |
66101de1 | 105 | |
75df20e0 LL |
106 | #define MTO_CNT_ANT(x) MTO_DATA().Cnt_Ant[(x)] |
107 | #define MTO_SQ_ANT(x) MTO_DATA().SQ_Ant[(x)] | |
108 | #define MTO_AGING_TIMEOUT() MTO_DATA().aging_timeout | |
66101de1 | 109 | |
75df20e0 | 110 | #define MTO_TXFLOWCOUNT() MTO_DATA().TxFlowCount |
66101de1 | 111 | |
75df20e0 | 112 | /* --------- DTO threshold parameters ------------- */ |
66101de1 PM |
113 | #define MTOPARA_PERIODIC_CHECK_CYCLE() MTO_DATA().DTO_PeriodicCheckCycle |
114 | #define MTOPARA_RSSI_TH_FOR_ANTDIV() MTO_DATA().DTO_RssiThForAntDiv | |
115 | #define MTOPARA_TXCOUNT_TH_FOR_CALC_RATE() MTO_DATA().DTO_TxCountThForCalcNewRate | |
116 | #define MTOPARA_TXRATE_INC_TH() MTO_DATA().DTO_TxRateIncTh | |
117 | #define MTOPARA_TXRATE_DEC_TH() MTO_DATA().DTO_TxRateDecTh | |
118 | #define MTOPARA_TXRATE_EQ_TH() MTO_DATA().DTO_TxRateEqTh | |
119 | #define MTOPARA_TXRATE_BACKOFF() MTO_DATA().DTO_TxRateBackOff | |
120 | #define MTOPARA_TXRETRYRATE_REDUCE() MTO_DATA().DTO_TxRetryRateReduce | |
121 | #define MTOPARA_TXPOWER_INDEX() MTO_DATA().DTO_TxPowerIndex | |
75df20e0 | 122 | /* ------------------------------------------------ */ |
66101de1 PM |
123 | |
124 | ||
75df20e0 | 125 | extern u16 MTO_Frag_Th_Tbl[]; |
66101de1 | 126 | |
75df20e0 LL |
127 | #define MTO_DATA_RATE() MTO_Data_Rate_Tbl[MTO_RATE_LEVEL()] |
128 | #define MTO_FRAG_TH() MTO_Frag_Th_Tbl[MTO_FRAG_TH_LEVEL()] | |
66101de1 | 129 | |
64328c87 PE |
130 | extern void MTO_Init(struct wbsoft_priv *); |
131 | extern void MTO_PeriodicTimerExpired(struct wbsoft_priv *); | |
132 | extern void MTO_SetDTORateRange(struct wbsoft_priv *, u8 *, u8); | |
57a94443 PE |
133 | extern u8 MTO_GetTxRate(struct wbsoft_priv *adapter, u32 fpdu_len); |
134 | extern u8 MTO_GetTxFallbackRate(struct wbsoft_priv *adapter); | |
135 | extern void MTO_SetTxCount(struct wbsoft_priv *adapter, u8 t0, u8 index); | |
64328c87 | 136 | |
75df20e0 | 137 | #endif /* __MTO_H__ */ |
66101de1 | 138 |