diff options
author | Florian Schilhabel <florian.c.schilhabel@googlemail.com> | 2010-07-14 08:46:35 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2010-07-22 14:58:03 -0400 |
commit | 47790cb22612290ee6c1c4d9f3e65fa6d2e01845 (patch) | |
tree | c4723fc77a89f05bd757f55bad714d8c9e5e7d89 /drivers/staging/rtl8192su | |
parent | 24fa92c5f7545c82d98482c11b474b8c25577c36 (diff) |
staging: rtl8192su: more code cleanup
Signed-off-by: Florian Schilhabel <florian.c.schilhabel@googlemail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/staging/rtl8192su')
-rw-r--r-- | drivers/staging/rtl8192su/ieee80211/rtl819x_Qos.h | 88 | ||||
-rw-r--r-- | drivers/staging/rtl8192su/ieee80211/rtl819x_TS.h | 23 | ||||
-rw-r--r-- | drivers/staging/rtl8192su/ieee80211/rtl819x_TSProc.c | 41 |
3 files changed, 64 insertions, 88 deletions
diff --git a/drivers/staging/rtl8192su/ieee80211/rtl819x_Qos.h b/drivers/staging/rtl8192su/ieee80211/rtl819x_Qos.h index d4565ecc7ab..928062f3571 100644 --- a/drivers/staging/rtl8192su/ieee80211/rtl819x_Qos.h +++ b/drivers/staging/rtl8192su/ieee80211/rtl819x_Qos.h | |||
@@ -1,3 +1,21 @@ | |||
1 | /****************************************************************************** | ||
2 | * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved. | ||
3 | * | ||
4 | * This program is distributed in the hope that it will be useful, but WITHOUT | ||
5 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||
6 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | ||
7 | * more details. | ||
8 | * | ||
9 | * You should have received a copy of the GNU General Public License along with | ||
10 | * this program; if not, write to the Free Software Foundation, Inc., | ||
11 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | ||
12 | * | ||
13 | * The full GNU General Public License is included in this distribution in the | ||
14 | * file called LICENSE. | ||
15 | * | ||
16 | * Contact Information: | ||
17 | * wlanfae <wlanfae@realtek.com> | ||
18 | ******************************************************************************/ | ||
1 | #ifndef __INC_QOS_TYPE_H | 19 | #ifndef __INC_QOS_TYPE_H |
2 | #define __INC_QOS_TYPE_H | 20 | #define __INC_QOS_TYPE_H |
3 | 21 | ||
@@ -36,18 +54,6 @@ | |||
36 | 54 | ||
37 | #define MAX_WMMELE_LENGTH 64 | 55 | #define MAX_WMMELE_LENGTH 64 |
38 | 56 | ||
39 | // | ||
40 | // QoS mode. | ||
41 | // enum 0, 1, 2, 4: since we can use the OR(|) operation. | ||
42 | // | ||
43 | // QOS_MODE is redefined for enum can't be ++, | under C++ compiler, 2006.05.17, by rcnjko. | ||
44 | //typedef enum _QOS_MODE{ | ||
45 | // QOS_DISABLE = 0, | ||
46 | // QOS_WMM = 1, | ||
47 | // QOS_EDCA = 2, | ||
48 | // QOS_HCCA = 4, | ||
49 | //}QOS_MODE,*PQOS_MODE; | ||
50 | // | ||
51 | typedef u32 QOS_MODE, *PQOS_MODE; | 57 | typedef u32 QOS_MODE, *PQOS_MODE; |
52 | #define QOS_DISABLE 0 | 58 | #define QOS_DISABLE 0 |
53 | #define QOS_WMM 1 | 59 | #define QOS_WMM 1 |
@@ -219,19 +225,6 @@ typedef union _QOS_INFO_FIELD{ | |||
219 | 225 | ||
220 | }QOS_INFO_FIELD, *PQOS_INFO_FIELD; | 226 | }QOS_INFO_FIELD, *PQOS_INFO_FIELD; |
221 | 227 | ||
222 | // | ||
223 | // ACI to AC coding. | ||
224 | // Ref: WMM spec 2.2.2: WME Parameter Element, p.13. | ||
225 | // | ||
226 | // AC_CODING is redefined for enum can't be ++, | under C++ compiler, 2006.05.17, by rcnjko. | ||
227 | //typedef enum _AC_CODING{ | ||
228 | // AC0_BE = 0, // ACI: 0x00 // Best Effort | ||
229 | // AC1_BK = 1, // ACI: 0x01 // Background | ||
230 | // AC2_VI = 2, // ACI: 0x10 // Video | ||
231 | // AC3_VO = 3, // ACI: 0x11 // Voice | ||
232 | // AC_MAX = 4, // Max: define total number; Should not to be used as a real enum. | ||
233 | //}AC_CODING,*PAC_CODING; | ||
234 | // | ||
235 | typedef u32 AC_CODING; | 228 | typedef u32 AC_CODING; |
236 | #define AC0_BE 0 // ACI: 0x00 // Best Effort | 229 | #define AC0_BE 0 // ACI: 0x00 // Best Effort |
237 | #define AC1_BK 1 // ACI: 0x01 // Background | 230 | #define AC1_BK 1 // ACI: 0x01 // Background |
@@ -252,7 +245,7 @@ typedef union _ACI_AIFSN{ | |||
252 | u8 ACM:1; | 245 | u8 ACM:1; |
253 | u8 ACI:2; | 246 | u8 ACI:2; |
254 | u8 Reserved:1; | 247 | u8 Reserved:1; |
255 | }f; // Field | 248 | }f; |
256 | }ACI_AIFSN, *PACI_AIFSN; | 249 | }ACI_AIFSN, *PACI_AIFSN; |
257 | 250 | ||
258 | // | 251 | // |
@@ -265,7 +258,7 @@ typedef union _ECW{ | |||
265 | { | 258 | { |
266 | u8 ECWmin:4; | 259 | u8 ECWmin:4; |
267 | u8 ECWmax:4; | 260 | u8 ECWmax:4; |
268 | }f; // Field | 261 | }f; |
269 | }ECW, *PECW; | 262 | }ECW, *PECW; |
270 | 263 | ||
271 | // | 264 | // |
@@ -281,7 +274,7 @@ typedef union _AC_PARAM{ | |||
281 | ACI_AIFSN AciAifsn; | 274 | ACI_AIFSN AciAifsn; |
282 | ECW Ecw; | 275 | ECW Ecw; |
283 | u16 TXOPLimit; | 276 | u16 TXOPLimit; |
284 | }f; // Field | 277 | }f; |
285 | }AC_PARAM, *PAC_PARAM; | 278 | }AC_PARAM, *PAC_PARAM; |
286 | 279 | ||
287 | 280 | ||
@@ -354,7 +347,7 @@ typedef union _TSPEC_BODY{ | |||
354 | u32 MinPhyRate; | 347 | u32 MinPhyRate; |
355 | u16 SurplusBandwidthAllowance; | 348 | u16 SurplusBandwidthAllowance; |
356 | u16 MediumTime; | 349 | u16 MediumTime; |
357 | } f; // Field | 350 | } f; |
358 | }TSPEC_BODY, *PTSPEC_BODY; | 351 | }TSPEC_BODY, *PTSPEC_BODY; |
359 | 352 | ||
360 | 353 | ||
@@ -384,7 +377,6 @@ typedef enum _ACM_METHOD{ | |||
384 | 377 | ||
385 | 378 | ||
386 | typedef struct _ACM{ | 379 | typedef struct _ACM{ |
387 | // u8 RegEnableACM; | ||
388 | u64 UsedTime; | 380 | u64 UsedTime; |
389 | u64 MediumTime; | 381 | u64 MediumTime; |
390 | u8 HwAcmCtl; // TRUE: UsedTime exceed => Do NOT USE this AC. It wll be written to ACM_CONTROL(0xBF BIT 0/1/2 in 8185B). | 382 | u8 HwAcmCtl; // TRUE: UsedTime exceed => Do NOT USE this AC. It wll be written to ACM_CONTROL(0xBF BIT 0/1/2 in 8185B). |
@@ -404,10 +396,6 @@ typedef u8 AC_UAPSD, *PAC_UAPSD; | |||
404 | #define GET_BE_UAPSD(_apsd) ((_apsd) & BIT3) | 396 | #define GET_BE_UAPSD(_apsd) ((_apsd) & BIT3) |
405 | #define SET_BE_UAPSD(_apsd) ((_apsd) |= BIT3) | 397 | #define SET_BE_UAPSD(_apsd) ((_apsd) |= BIT3) |
406 | 398 | ||
407 | |||
408 | //typedef struct _TCLASS{ | ||
409 | // TODO | ||
410 | //} TCLASS, *PTCLASS; | ||
411 | typedef union _QOS_TCLAS{ | 399 | typedef union _QOS_TCLAS{ |
412 | 400 | ||
413 | struct _TYPE_GENERAL{ | 401 | struct _TYPE_GENERAL{ |
@@ -459,32 +447,12 @@ typedef union _QOS_TCLAS{ | |||
459 | } TYPE2_8021Q; | 447 | } TYPE2_8021Q; |
460 | } QOS_TCLAS, *PQOS_TCLAS; | 448 | } QOS_TCLAS, *PQOS_TCLAS; |
461 | 449 | ||
462 | //typedef struct _WMM_TSTREAM{ | ||
463 | // | ||
464 | //- TSPEC | ||
465 | //- AC (which to mapping) | ||
466 | //} WMM_TSTREAM, *PWMM_TSTREAM; | ||
467 | typedef struct _QOS_TSTREAM{ | 450 | typedef struct _QOS_TSTREAM{ |
468 | u8 AC; | 451 | u8 AC; |
469 | WMM_TSPEC TSpec; | 452 | WMM_TSPEC TSpec; |
470 | QOS_TCLAS TClass; | 453 | QOS_TCLAS TClass; |
471 | } QOS_TSTREAM, *PQOS_TSTREAM; | 454 | } QOS_TSTREAM, *PQOS_TSTREAM; |
472 | 455 | ||
473 | //typedef struct _U_APSD{ | ||
474 | //- TriggerEnable [4] | ||
475 | //- MaxSPLength | ||
476 | //- HighestAcBuffered | ||
477 | //} U_APSD, *PU_APSD; | ||
478 | |||
479 | //joseph TODO: | ||
480 | // UAPSD function should be implemented by 2 data structure | ||
481 | // "Qos control field" and "Qos info field" | ||
482 | //typedef struct _QOS_UAPSD{ | ||
483 | // u8 bTriggerEnable[4]; | ||
484 | // u8 MaxSPLength; | ||
485 | // u8 HighestBufAC; | ||
486 | //} QOS_UAPSD, *PQOS_APSD; | ||
487 | |||
488 | //---------------------------------------------------------------------------- | 456 | //---------------------------------------------------------------------------- |
489 | // 802.11 Management frame Status Code field | 457 | // 802.11 Management frame Status Code field |
490 | //---------------------------------------------------------------------------- | 458 | //---------------------------------------------------------------------------- |
@@ -498,7 +466,6 @@ typedef struct _OCTET_STRING{ | |||
498 | // Ref: DOT11_QOS in 8185 code. [def. in QoS_mp.h] | 466 | // Ref: DOT11_QOS in 8185 code. [def. in QoS_mp.h] |
499 | // | 467 | // |
500 | typedef struct _STA_QOS{ | 468 | typedef struct _STA_QOS{ |
501 | //DECLARE_RT_OBJECT(STA_QOS); | ||
502 | u8 WMMIEBuf[MAX_WMMELE_LENGTH]; | 469 | u8 WMMIEBuf[MAX_WMMELE_LENGTH]; |
503 | u8* WMMIE; | 470 | u8* WMMIE; |
504 | 471 | ||
@@ -565,18 +532,9 @@ typedef struct _BSS_QOS{ | |||
565 | AC_PARAM AcParameter[4]; | 532 | AC_PARAM AcParameter[4]; |
566 | }BSS_QOS, *PBSS_QOS; | 533 | }BSS_QOS, *PBSS_QOS; |
567 | 534 | ||
568 | |||
569 | // | ||
570 | // Ref: sQoSCtlLng and QoSCtl definition in 8185 QoS code. | ||
571 | //#define QoSCtl (( (Adapter->bRegQoS) && (Adapter->dot11QoS.QoSMode &(QOS_EDCA|QOS_HCCA)) ) ?sQoSCtlLng:0) | ||
572 | // | ||
573 | #define sQoSCtlLng 2 | 535 | #define sQoSCtlLng 2 |
574 | #define QOS_CTRL_LEN(_QosMode) ((_QosMode > QOS_DISABLE)? sQoSCtlLng : 0) | 536 | #define QOS_CTRL_LEN(_QosMode) ((_QosMode > QOS_DISABLE)? sQoSCtlLng : 0) |
575 | 537 | ||
576 | |||
577 | //Added by joseph | ||
578 | //UP Mapping to AC, using in MgntQuery_SequenceNumber() and maybe for DSCP | ||
579 | //#define UP2AC(up) ((up<3)?((up==0)?1:0):(up>>1)) | ||
580 | #define IsACValid(ac) ((ac<=7 )?true:false ) | 538 | #define IsACValid(ac) ((ac<=7 )?true:false ) |
581 | 539 | ||
582 | #endif // #ifndef __INC_QOS_TYPE_H | 540 | #endif |
diff --git a/drivers/staging/rtl8192su/ieee80211/rtl819x_TS.h b/drivers/staging/rtl8192su/ieee80211/rtl819x_TS.h index baaac2149de..a07b2344a6f 100644 --- a/drivers/staging/rtl8192su/ieee80211/rtl819x_TS.h +++ b/drivers/staging/rtl8192su/ieee80211/rtl819x_TS.h | |||
@@ -1,3 +1,21 @@ | |||
1 | /****************************************************************************** | ||
2 | * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved. | ||
3 | * | ||
4 | * This program is distributed in the hope that it will be useful, but WITHOUT | ||
5 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||
6 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | ||
7 | * more details. | ||
8 | * | ||
9 | * You should have received a copy of the GNU General Public License along with | ||
10 | * this program; if not, write to the Free Software Foundation, Inc., | ||
11 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | ||
12 | * | ||
13 | * The full GNU General Public License is included in this distribution in the | ||
14 | * file called LICENSE. | ||
15 | * | ||
16 | * Contact Information: | ||
17 | * wlanfae <wlanfae@realtek.com> | ||
18 | ******************************************************************************/ | ||
1 | #ifndef _TSTYPE_H_ | 19 | #ifndef _TSTYPE_H_ |
2 | #define _TSTYPE_H_ | 20 | #define _TSTYPE_H_ |
3 | #include "rtl819x_Qos.h" | 21 | #include "rtl819x_Qos.h" |
@@ -30,10 +48,10 @@ typedef struct _TX_TS_RECORD{ | |||
30 | u16 TxCurSeq; | 48 | u16 TxCurSeq; |
31 | BA_RECORD TxPendingBARecord; // For BA Originator | 49 | BA_RECORD TxPendingBARecord; // For BA Originator |
32 | BA_RECORD TxAdmittedBARecord; // For BA Originator | 50 | BA_RECORD TxAdmittedBARecord; // For BA Originator |
33 | // QOS_DL_RECORD DLRecord; | ||
34 | u8 bAddBaReqInProgress; | 51 | u8 bAddBaReqInProgress; |
35 | u8 bAddBaReqDelayed; | 52 | u8 bAddBaReqDelayed; |
36 | u8 bUsingBa; | 53 | u8 bUsingBa; |
54 | u8 bDisable_AddBa; | ||
37 | struct timer_list TsAddBaTimer; | 55 | struct timer_list TsAddBaTimer; |
38 | u8 num; | 56 | u8 num; |
39 | } TX_TS_RECORD, *PTX_TS_RECORD; | 57 | } TX_TS_RECORD, *PTX_TS_RECORD; |
@@ -48,9 +66,6 @@ typedef struct _RX_TS_RECORD { | |||
48 | u16 RxLastSeqNum; | 66 | u16 RxLastSeqNum; |
49 | u8 RxLastFragNum; | 67 | u8 RxLastFragNum; |
50 | u8 num; | 68 | u8 num; |
51 | // QOS_DL_RECORD DLRecord; | ||
52 | } RX_TS_RECORD, *PRX_TS_RECORD; | 69 | } RX_TS_RECORD, *PRX_TS_RECORD; |
53 | 70 | ||
54 | |||
55 | #endif | 71 | #endif |
56 | |||
diff --git a/drivers/staging/rtl8192su/ieee80211/rtl819x_TSProc.c b/drivers/staging/rtl8192su/ieee80211/rtl819x_TSProc.c index de143ecae5f..7ffc06ca89a 100644 --- a/drivers/staging/rtl8192su/ieee80211/rtl819x_TSProc.c +++ b/drivers/staging/rtl8192su/ieee80211/rtl819x_TSProc.c | |||
@@ -1,3 +1,21 @@ | |||
1 | /****************************************************************************** | ||
2 | * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved. | ||
3 | * | ||
4 | * This program is distributed in the hope that it will be useful, but WITHOUT | ||
5 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||
6 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | ||
7 | * more details. | ||
8 | * | ||
9 | * You should have received a copy of the GNU General Public License along with | ||
10 | * this program; if not, write to the Free Software Foundation, Inc., | ||
11 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | ||
12 | * | ||
13 | * The full GNU General Public License is included in this distribution in the | ||
14 | * file called LICENSE. | ||
15 | * | ||
16 | * Contact Information: | ||
17 | * wlanfae <wlanfae@realtek.com> | ||
18 | ******************************************************************************/ | ||
1 | #include "ieee80211.h" | 19 | #include "ieee80211.h" |
2 | #include <linux/etherdevice.h> | 20 | #include <linux/etherdevice.h> |
3 | #include <linux/slab.h> | 21 | #include <linux/slab.h> |
@@ -29,7 +47,6 @@ void RxPktPendingTimeout(unsigned long data) | |||
29 | 47 | ||
30 | PRX_REORDER_ENTRY pReorderEntry = NULL; | 48 | PRX_REORDER_ENTRY pReorderEntry = NULL; |
31 | 49 | ||
32 | //u32 flags = 0; | ||
33 | unsigned long flags = 0; | 50 | unsigned long flags = 0; |
34 | struct ieee80211_rxb *stats_IndicateArray[REORDER_WIN_SIZE]; | 51 | struct ieee80211_rxb *stats_IndicateArray[REORDER_WIN_SIZE]; |
35 | u8 index = 0; | 52 | u8 index = 0; |
@@ -37,7 +54,6 @@ void RxPktPendingTimeout(unsigned long data) | |||
37 | 54 | ||
38 | 55 | ||
39 | spin_lock_irqsave(&(ieee->reorder_spinlock), flags); | 56 | spin_lock_irqsave(&(ieee->reorder_spinlock), flags); |
40 | //PlatformAcquireSpinLock(Adapter, RT_RX_SPINLOCK); | ||
41 | IEEE80211_DEBUG(IEEE80211_DL_REORDER,"==================>%s()\n",__FUNCTION__); | 57 | IEEE80211_DEBUG(IEEE80211_DL_REORDER,"==================>%s()\n",__FUNCTION__); |
42 | if(pRxTs->RxTimeoutIndicateSeq != 0xffff) | 58 | if(pRxTs->RxTimeoutIndicateSeq != 0xffff) |
43 | { | 59 | { |
@@ -72,7 +88,6 @@ void RxPktPendingTimeout(unsigned long data) | |||
72 | 88 | ||
73 | if(index>0) | 89 | if(index>0) |
74 | { | 90 | { |
75 | // Set RxTimeoutIndicateSeq to 0xffff to indicate no pending packets in buffer now. | ||
76 | pRxTs->RxTimeoutIndicateSeq = 0xffff; | 91 | pRxTs->RxTimeoutIndicateSeq = 0xffff; |
77 | 92 | ||
78 | // Indicate packets | 93 | // Indicate packets |
@@ -82,6 +97,7 @@ void RxPktPendingTimeout(unsigned long data) | |||
82 | return; | 97 | return; |
83 | } | 98 | } |
84 | ieee80211_indicate_packets(ieee, stats_IndicateArray, index); | 99 | ieee80211_indicate_packets(ieee, stats_IndicateArray, index); |
100 | bPktInBuf = false; | ||
85 | } | 101 | } |
86 | 102 | ||
87 | if(bPktInBuf && (pRxTs->RxTimeoutIndicateSeq==0xffff)) | 103 | if(bPktInBuf && (pRxTs->RxTimeoutIndicateSeq==0xffff)) |
@@ -126,6 +142,7 @@ void ResetTxTsEntry(PTX_TS_RECORD pTS) | |||
126 | pTS->bAddBaReqInProgress = false; | 142 | pTS->bAddBaReqInProgress = false; |
127 | pTS->bAddBaReqDelayed = false; | 143 | pTS->bAddBaReqDelayed = false; |
128 | pTS->bUsingBa = false; | 144 | pTS->bUsingBa = false; |
145 | pTS->bDisable_AddBa = false; | ||
129 | ResetBaEntry(&pTS->TxAdmittedBARecord); //For BA Originator | 146 | ResetBaEntry(&pTS->TxAdmittedBARecord); //For BA Originator |
130 | ResetBaEntry(&pTS->TxPendingBARecord); | 147 | ResetBaEntry(&pTS->TxPendingBARecord); |
131 | } | 148 | } |
@@ -212,7 +229,6 @@ void TSInitialize(struct ieee80211_device *ieee) | |||
212 | } | 229 | } |
213 | // Initialize unused Rx Reorder List. | 230 | // Initialize unused Rx Reorder List. |
214 | INIT_LIST_HEAD(&ieee->RxReorder_Unused_List); | 231 | INIT_LIST_HEAD(&ieee->RxReorder_Unused_List); |
215 | //#ifdef TO_DO_LIST | ||
216 | for(count = 0; count < REORDER_ENTRY_NUM; count++) | 232 | for(count = 0; count < REORDER_ENTRY_NUM; count++) |
217 | { | 233 | { |
218 | list_add_tail( &pRxReorderEntry->List,&ieee->RxReorder_Unused_List); | 234 | list_add_tail( &pRxReorderEntry->List,&ieee->RxReorder_Unused_List); |
@@ -220,7 +236,6 @@ void TSInitialize(struct ieee80211_device *ieee) | |||
220 | break; | 236 | break; |
221 | pRxReorderEntry = &ieee->RxReorderEntry[count+1]; | 237 | pRxReorderEntry = &ieee->RxReorderEntry[count+1]; |
222 | } | 238 | } |
223 | //#endif | ||
224 | 239 | ||
225 | } | 240 | } |
226 | 241 | ||
@@ -236,7 +251,6 @@ void AdmitTS(struct ieee80211_device *ieee, PTS_COMMON_INFO pTsCommonInfo, u32 I | |||
236 | 251 | ||
237 | PTS_COMMON_INFO SearchAdmitTRStream(struct ieee80211_device *ieee, u8* Addr, u8 TID, TR_SELECT TxRxSelect) | 252 | PTS_COMMON_INFO SearchAdmitTRStream(struct ieee80211_device *ieee, u8* Addr, u8 TID, TR_SELECT TxRxSelect) |
238 | { | 253 | { |
239 | //DIRECTION_VALUE dir; | ||
240 | u8 dir; | 254 | u8 dir; |
241 | bool search_dir[4] = {0, 0, 0, 0}; | 255 | bool search_dir[4] = {0, 0, 0, 0}; |
242 | struct list_head* psearch_list; //FIXME | 256 | struct list_head* psearch_list; //FIXME |
@@ -282,18 +296,15 @@ PTS_COMMON_INFO SearchAdmitTRStream(struct ieee80211_device *ieee, u8* Addr, u8 | |||
282 | else | 296 | else |
283 | psearch_list = &ieee->Rx_TS_Admit_List; | 297 | psearch_list = &ieee->Rx_TS_Admit_List; |
284 | 298 | ||
285 | //for(dir = DIR_UP; dir <= DIR_BI_DIR; dir++) | ||
286 | for(dir = 0; dir <= DIR_BI_DIR; dir++) | 299 | for(dir = 0; dir <= DIR_BI_DIR; dir++) |
287 | { | 300 | { |
288 | if(search_dir[dir] ==false ) | 301 | if(search_dir[dir] ==false ) |
289 | continue; | 302 | continue; |
290 | list_for_each_entry(pRet, psearch_list, List){ | 303 | list_for_each_entry(pRet, psearch_list, List){ |
291 | // IEEE80211_DEBUG(IEEE80211_DL_TS, "ADD:%pM, TID:%d, dir:%d\n", pRet->Addr, pRet->TSpec.f.TSInfo.field.ucTSID, pRet->TSpec.f.TSInfo.field.ucDirection); | ||
292 | if (memcmp(pRet->Addr, Addr, 6) == 0) | 304 | if (memcmp(pRet->Addr, Addr, 6) == 0) |
293 | if (pRet->TSpec.f.TSInfo.field.ucTSID == TID) | 305 | if (pRet->TSpec.f.TSInfo.field.ucTSID == TID) |
294 | if(pRet->TSpec.f.TSInfo.field.ucDirection == dir) | 306 | if(pRet->TSpec.f.TSInfo.field.ucDirection == dir) |
295 | { | 307 | { |
296 | // printk("Bingo! got it\n"); | ||
297 | break; | 308 | break; |
298 | } | 309 | } |
299 | 310 | ||
@@ -352,10 +363,9 @@ bool GetTs( | |||
352 | // | 363 | // |
353 | if(is_broadcast_ether_addr(Addr) || is_multicast_ether_addr(Addr)) | 364 | if(is_broadcast_ether_addr(Addr) || is_multicast_ether_addr(Addr)) |
354 | { | 365 | { |
355 | IEEE80211_DEBUG(IEEE80211_DL_ERR, "get TS for Broadcast or Multicast\n"); | 366 | IEEE80211_DEBUG(IEEE80211_DL_ERR, "ERR! get TS for Broadcast or Multicast\n"); |
356 | return false; | 367 | return false; |
357 | } | 368 | } |
358 | |||
359 | if (ieee->current_network.qos_data.supported == 0) | 369 | if (ieee->current_network.qos_data.supported == 0) |
360 | UP = 0; | 370 | UP = 0; |
361 | else | 371 | else |
@@ -363,7 +373,7 @@ bool GetTs( | |||
363 | // In WMM case: we use 4 TID only | 373 | // In WMM case: we use 4 TID only |
364 | if (!IsACValid(TID)) | 374 | if (!IsACValid(TID)) |
365 | { | 375 | { |
366 | IEEE80211_DEBUG(IEEE80211_DL_ERR, " in %s(), TID(%d) is not valid\n", __FUNCTION__, TID); | 376 | IEEE80211_DEBUG(IEEE80211_DL_ERR, "ERR! in %s(), TID(%d) is not valid\n", __FUNCTION__, TID); |
367 | return false; | 377 | return false; |
368 | } | 378 | } |
369 | 379 | ||
@@ -478,7 +488,6 @@ void RemoveTsEntry( | |||
478 | TR_SELECT TxRxSelect | 488 | TR_SELECT TxRxSelect |
479 | ) | 489 | ) |
480 | { | 490 | { |
481 | //u32 flags = 0; | ||
482 | unsigned long flags = 0; | 491 | unsigned long flags = 0; |
483 | del_timer_sync(&pTs->SetupTimer); | 492 | del_timer_sync(&pTs->SetupTimer); |
484 | del_timer_sync(&pTs->InactTimer); | 493 | del_timer_sync(&pTs->InactTimer); |
@@ -486,7 +495,6 @@ void RemoveTsEntry( | |||
486 | 495 | ||
487 | if(TxRxSelect == RX_DIR) | 496 | if(TxRxSelect == RX_DIR) |
488 | { | 497 | { |
489 | //#ifdef TO_DO_LIST | ||
490 | PRX_REORDER_ENTRY pRxReorderEntry; | 498 | PRX_REORDER_ENTRY pRxReorderEntry; |
491 | PRX_TS_RECORD pRxTS = (PRX_TS_RECORD)pTs; | 499 | PRX_TS_RECORD pRxTS = (PRX_TS_RECORD)pTs; |
492 | if(timer_pending(&pRxTS->RxPktPendingTimer)) | 500 | if(timer_pending(&pRxTS->RxPktPendingTimer)) |
@@ -494,9 +502,7 @@ void RemoveTsEntry( | |||
494 | 502 | ||
495 | while(!list_empty(&pRxTS->RxPendingPktList)) | 503 | while(!list_empty(&pRxTS->RxPendingPktList)) |
496 | { | 504 | { |
497 | // PlatformAcquireSpinLock(Adapter, RT_RX_SPINLOCK); | ||
498 | spin_lock_irqsave(&(ieee->reorder_spinlock), flags); | 505 | spin_lock_irqsave(&(ieee->reorder_spinlock), flags); |
499 | //pRxReorderEntry = list_entry(&pRxTS->RxPendingPktList.prev,RX_REORDER_ENTRY,List); | ||
500 | pRxReorderEntry = (PRX_REORDER_ENTRY)list_entry(pRxTS->RxPendingPktList.prev,RX_REORDER_ENTRY,List); | 506 | pRxReorderEntry = (PRX_REORDER_ENTRY)list_entry(pRxTS->RxPendingPktList.prev,RX_REORDER_ENTRY,List); |
501 | list_del_init(&pRxReorderEntry->List); | 507 | list_del_init(&pRxReorderEntry->List); |
502 | { | 508 | { |
@@ -514,11 +520,8 @@ void RemoveTsEntry( | |||
514 | prxb = NULL; | 520 | prxb = NULL; |
515 | } | 521 | } |
516 | list_add_tail(&pRxReorderEntry->List,&ieee->RxReorder_Unused_List); | 522 | list_add_tail(&pRxReorderEntry->List,&ieee->RxReorder_Unused_List); |
517 | //PlatformReleaseSpinLock(Adapter, RT_RX_SPINLOCK); | ||
518 | spin_unlock_irqrestore(&(ieee->reorder_spinlock), flags); | 523 | spin_unlock_irqrestore(&(ieee->reorder_spinlock), flags); |
519 | } | 524 | } |
520 | |||
521 | //#endif | ||
522 | } | 525 | } |
523 | else | 526 | else |
524 | { | 527 | { |