staging: vt6656: IFRFbWriteEmbedded use ARRAY_SIZE
[cascardo/linux.git] / drivers / staging / vt6656 / datarate.h
1 /*
2  * Copyright (c) 1996, 2003 VIA Networking Technologies, Inc.
3  * All rights reserved.
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation; either version 2 of the License, or
8  * (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License along
16  * with this program; if not, write to the Free Software Foundation, Inc.,
17  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18  *
19  *
20  * File: datarate.h
21  *
22  * Purpose: Handles the auto fallback & data rates functions
23  *
24  * Author: Lyndon Chen
25  *
26  * Date: July 16, 2002
27  *
28  */
29 #ifndef __DATARATE_H__
30 #define __DATARATE_H__
31
32 #define FALLBACK_PKT_COLLECT_TR_H  50   /* pkts */
33 #define FALLBACK_PKT_COLLECT_TR_L  10   /* pkts */
34 #define FALLBACK_POLL_SECOND       5    /* 5 sec */
35 #define FALLBACK_RECOVER_SECOND    30   /* 30 sec */
36 #define FALLBACK_THRESHOLD         15   /* percent */
37 #define UPGRADE_THRESHOLD          5    /* percent */
38 #define UPGRADE_CNT_THRD           3    /* times */
39 #define RETRY_TIMES_THRD_H         2    /* times */
40 #define RETRY_TIMES_THRD_L         1    /* times */
41
42 #define RATE_1M         0
43 #define RATE_2M         1
44 #define RATE_5M         2
45 #define RATE_11M        3
46 #define RATE_6M         4
47 #define RATE_9M         5
48 #define RATE_12M        6
49 #define RATE_18M        7
50 #define RATE_24M        8
51 #define RATE_36M        9
52 #define RATE_48M       10
53 #define RATE_54M       11
54 #define RATE_AUTO      12
55
56 void RATEvParseMaxRate(struct vnt_private *, PWLAN_IE_SUPP_RATES pItemRates,
57         PWLAN_IE_SUPP_RATES pItemExtRates, int bUpdateBasicRate,
58         u16 *pwMaxBasicRate, u16 *pwMaxSuppRate, u16 *pwSuppRate,
59         u8 *pbyTopCCKRate, u8 *pbyTopOFDMRate);
60
61 void RATEvTxRateFallBack(struct vnt_private *pDevice,
62         PKnownNodeDB psNodeDBTable);
63
64 u8
65 RATEuSetIE(
66      PWLAN_IE_SUPP_RATES pSrcRates,
67      PWLAN_IE_SUPP_RATES pDstRates,
68      unsigned int                uRateLen
69     );
70
71 u16
72 RATEwGetRateIdx(
73      u8 byRate
74     );
75
76 #endif /* __DATARATE_H__ */