-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Split the core header files into manageable pieces. Signed-off-by: Sujith <Sujith.Manoharan@atheros.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
- Loading branch information
Sujith
authored and
John W. Linville
committed
Feb 13, 2009
1 parent
fa8419d
commit 394cf0a
Showing
26 changed files
with
2,733 additions
and
2,754 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,111 @@ | ||
/* | ||
* Copyright (c) 2008 Atheros Communications Inc. | ||
* | ||
* Permission to use, copy, modify, and/or distribute this software for any | ||
* purpose with or without fee is hereby granted, provided that the above | ||
* copyright notice and this permission notice appear in all copies. | ||
* | ||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | ||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | ||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | ||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | ||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | ||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | ||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | ||
*/ | ||
|
||
#ifndef ANI_H | ||
#define ANI_H | ||
|
||
#define HAL_PROCESS_ANI 0x00000001 | ||
#define ATH9K_RSSI_EP_MULTIPLIER (1<<7) | ||
|
||
#define DO_ANI(ah) ((AH5416(ah)->ah_procPhyErr & HAL_PROCESS_ANI)) | ||
|
||
#define HAL_EP_RND(x, mul) \ | ||
((((x)%(mul)) >= ((mul)/2)) ? ((x) + ((mul) - 1)) / (mul) : (x)/(mul)) | ||
#define BEACON_RSSI(ahp) \ | ||
HAL_EP_RND(ahp->ah_stats.ast_nodestats.ns_avgbrssi, \ | ||
ATH9K_RSSI_EP_MULTIPLIER) | ||
|
||
#define ATH9K_ANI_OFDM_TRIG_HIGH 500 | ||
#define ATH9K_ANI_OFDM_TRIG_LOW 200 | ||
#define ATH9K_ANI_CCK_TRIG_HIGH 200 | ||
#define ATH9K_ANI_CCK_TRIG_LOW 100 | ||
#define ATH9K_ANI_NOISE_IMMUNE_LVL 4 | ||
#define ATH9K_ANI_USE_OFDM_WEAK_SIG true | ||
#define ATH9K_ANI_CCK_WEAK_SIG_THR false | ||
#define ATH9K_ANI_SPUR_IMMUNE_LVL 7 | ||
#define ATH9K_ANI_FIRSTEP_LVL 0 | ||
#define ATH9K_ANI_RSSI_THR_HIGH 40 | ||
#define ATH9K_ANI_RSSI_THR_LOW 7 | ||
#define ATH9K_ANI_PERIOD 100 | ||
|
||
#define HAL_NOISE_IMMUNE_MAX 4 | ||
#define HAL_SPUR_IMMUNE_MAX 7 | ||
#define HAL_FIRST_STEP_MAX 2 | ||
|
||
enum ath9k_ani_cmd { | ||
ATH9K_ANI_PRESENT = 0x1, | ||
ATH9K_ANI_NOISE_IMMUNITY_LEVEL = 0x2, | ||
ATH9K_ANI_OFDM_WEAK_SIGNAL_DETECTION = 0x4, | ||
ATH9K_ANI_CCK_WEAK_SIGNAL_THR = 0x8, | ||
ATH9K_ANI_FIRSTEP_LEVEL = 0x10, | ||
ATH9K_ANI_SPUR_IMMUNITY_LEVEL = 0x20, | ||
ATH9K_ANI_MODE = 0x40, | ||
ATH9K_ANI_PHYERR_RESET = 0x80, | ||
ATH9K_ANI_ALL = 0xff | ||
}; | ||
|
||
struct ath9k_mib_stats { | ||
u32 ackrcv_bad; | ||
u32 rts_bad; | ||
u32 rts_good; | ||
u32 fcs_bad; | ||
u32 beacons; | ||
}; | ||
|
||
struct ath9k_node_stats { | ||
u32 ns_avgbrssi; | ||
u32 ns_avgrssi; | ||
u32 ns_avgtxrssi; | ||
u32 ns_avgtxrate; | ||
}; | ||
|
||
struct ar5416Stats { | ||
u32 ast_ani_niup; | ||
u32 ast_ani_nidown; | ||
u32 ast_ani_spurup; | ||
u32 ast_ani_spurdown; | ||
u32 ast_ani_ofdmon; | ||
u32 ast_ani_ofdmoff; | ||
u32 ast_ani_cckhigh; | ||
u32 ast_ani_ccklow; | ||
u32 ast_ani_stepup; | ||
u32 ast_ani_stepdown; | ||
u32 ast_ani_ofdmerrs; | ||
u32 ast_ani_cckerrs; | ||
u32 ast_ani_reset; | ||
u32 ast_ani_lzero; | ||
u32 ast_ani_lneg; | ||
struct ath9k_mib_stats ast_mibstats; | ||
struct ath9k_node_stats ast_nodestats; | ||
}; | ||
#define ah_mibStats ah_stats.ast_mibstats | ||
|
||
void ath9k_ani_reset(struct ath_hal *ah); | ||
void ath9k_hw_ani_monitor(struct ath_hal *ah, | ||
const struct ath9k_node_stats *stats, | ||
struct ath9k_channel *chan); | ||
bool ath9k_hw_phycounters(struct ath_hal *ah); | ||
void ath9k_enable_mib_counters(struct ath_hal *ah); | ||
void ath9k_hw_disable_mib_counters(struct ath_hal *ah); | ||
u32 ath9k_hw_GetMibCycleCountsPct(struct ath_hal *ah, u32 *rxc_pcnt, | ||
u32 *rxf_pcnt, u32 *txf_pcnt); | ||
void ath9k_hw_procmibevent(struct ath_hal *ah, | ||
const struct ath9k_node_stats *stats); | ||
void ath9k_hw_ani_setup(struct ath_hal *ah); | ||
void ath9k_hw_ani_attach(struct ath_hal *ah); | ||
void ath9k_hw_ani_detach(struct ath_hal *ah); | ||
|
||
#endif /* ANI_H */ |
Oops, something went wrong.