Merge pull request #163 from cloudswei/ctlframe_injection
[open-ath9k-htc-firmware.git] / target_firmware / wlan / ratectrl11n.h
index fa44f7ceb5afc8035fae64628063a77183f68346..ccd6f77ea4712c05e8e567639cc231fc7d6236e2 100755 (executable)
@@ -1,9 +1,38 @@
 /*
- * Copyright (c) 2000-2002 Atheros Communications, Inc., All Rights Reserved
+ * Copyright (c) 2013 Qualcomm Atheros, Inc.
+ * All rights reserved.
  *
- * Definitions for core driver
- * This is a common header file for all platforms and operating systems.
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted (subject to the limitations in the
+ * disclaimer below) provided that the following conditions are met:
+ *
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the
+ *    distribution.
+ *
+ *  * Neither the name of Qualcomm Atheros nor the names of its
+ *    contributors may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ *
+ * NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE
+ * GRANTED BY THIS LICENSE.  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
+ * HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+ * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
+
 #ifndef _RATECTRL11N_H_
 #define _RATECTRL11N_H_
 
@@ -11,8 +40,8 @@
  * used only in 20 mode. If both 20/40 bits are enabled
  * then that rate can be used for both 20 and 40 mode */
 
-#define TRUE_20                0x2     
-#define TRUE_40        0x4     
+#define TRUE_20                0x2
+#define TRUE_40        0x4
 #define TRUE_2040      (TRUE_20|TRUE_40)
 #define TRUE_ALL_11N   (TRUE_2040|TRUE)
 
@@ -33,19 +62,19 @@ typedef enum {
 #define WLAN_RC_PHY_DS(_phy)   ((_phy == WLAN_RC_PHY_HT_20_DS)         \
                                 || (_phy == WLAN_RC_PHY_HT_40_DS)      \
                                 || (_phy == WLAN_RC_PHY_HT_20_DS_HGI)  \
-                                || (_phy == WLAN_RC_PHY_HT_40_DS_HGI))   
+                                || (_phy == WLAN_RC_PHY_HT_40_DS_HGI))
 #define WLAN_RC_PHY_40(_phy)   ((_phy == WLAN_RC_PHY_HT_40_SS)         \
                                 || (_phy == WLAN_RC_PHY_HT_40_DS)      \
                                 || (_phy == WLAN_RC_PHY_HT_40_SS_HGI)  \
-                                || (_phy == WLAN_RC_PHY_HT_40_DS_HGI))   
+                                || (_phy == WLAN_RC_PHY_HT_40_DS_HGI))
 #define WLAN_RC_PHY_20(_phy)   ((_phy == WLAN_RC_PHY_HT_20_SS)         \
                                 || (_phy == WLAN_RC_PHY_HT_20_DS)      \
                                 || (_phy == WLAN_RC_PHY_HT_20_SS_HGI)  \
-                                || (_phy == WLAN_RC_PHY_HT_20_DS_HGI))   
+                                || (_phy == WLAN_RC_PHY_HT_20_DS_HGI))
 #define WLAN_RC_PHY_SGI(_phy)  ((_phy == WLAN_RC_PHY_HT_20_SS_HGI)      \
                                 || (_phy == WLAN_RC_PHY_HT_20_DS_HGI)   \
                                 || (_phy == WLAN_RC_PHY_HT_40_SS_HGI)   \
-                                || (_phy == WLAN_RC_PHY_HT_40_DS_HGI))   
+                                || (_phy == WLAN_RC_PHY_HT_40_DS_HGI))
 
 #define WLAN_RC_PHY_HT(_phy)    (_phy >= WLAN_RC_PHY_HT_20_SS)
 
@@ -73,7 +102,7 @@ typedef enum {
 #define WLAN_RC_WEP_TKIP_FLAG   (0x100)
 
 /* Index into the rate table */
-#define INIT_RATE_MAX_20       23              
+#define INIT_RATE_MAX_20       23
 #define INIT_RATE_MAX_40       40
 
 /*
@@ -100,7 +129,7 @@ typedef struct {
        A_BOOL    validSingleStream;/* Valid for use in rate control for single stream operation */
 #ifdef MAGPIE_MERLIN
        A_BOOL    validSTBC;        /* Valid for use in rate control for single stream operation */
-#endif    
+#endif
        WLAN_PHY  phy;              /* CCK/OFDM/TURBO/XR */
        A_UINT32  rateKbps;         /* Rate in Kbits per second */
        A_UINT32  userRateKbps;     /* User rate in KBits per second */
@@ -128,23 +157,9 @@ typedef struct {
        rc11n_info_t     info[];
 } RATE_TABLE_11N;
 
-/*
- *  Update the SIB's rate control information
- *
- *  This should be called when the supported rates change
- *  (e.g. SME operation, wireless mode change)
- *
- *  It will determine which rates are valid for use.
- */
-void rcSibUpdate_11n(struct ath_softc_tgt *,
-                    struct ath_node_target *,
-                    A_UINT32 capflag, 
-                    A_BOOL keepState,
-                    struct ieee80211_rate *rs);
-
 /*
  * Determines and returns the new Tx rate index.
- */ 
+ */
 void rcRateFind_11n(struct ath_softc_tgt *sc,
                    struct ath_node_target *an,
                    int numTries,
@@ -168,9 +183,4 @@ void rcUpdate_11n(struct ath_softc_tgt *sc,
                  int nBad,
                  int sh_lo_retry);
 
-void ath_tx_status_update_rate(struct ath_softc_tgt *sc,
-                              struct ath_rc_series rcs[],
-                              int series,
-                              WMI_TXSTATUS_EVENT *txs);
-
 #endif /* _RATECTRL11N_H_ */