Lines Matching +full:reg +full:- +full:5 +full:ah
2 * Copyright (c) 2004-2008 Reyk Floeter <reyk@openbsd.org>
3 * Copyright (c) 2006-2008 Nick Kossifidis <mickflemm@gmail.com>
4 * Copyright (c) 2007-2008 Jiri Slaby <jirislaby@gmail.com>
25 #include "reg.h"
33 int ath5k_hw_set_capabilities(struct ath5k_hw *ah) in ath5k_hw_set_capabilities() argument
35 struct ath5k_capabilities *caps = &ah->ah_capabilities; in ath5k_hw_set_capabilities()
39 ee_header = caps->cap_eeprom.ee_header; in ath5k_hw_set_capabilities()
41 if (ah->ah_version == AR5K_AR5210) { in ath5k_hw_set_capabilities()
44 * (The AR5110 only supports the middle 5GHz band) in ath5k_hw_set_capabilities()
46 caps->cap_range.range_5ghz_min = 5120; in ath5k_hw_set_capabilities()
47 caps->cap_range.range_5ghz_max = 5430; in ath5k_hw_set_capabilities()
48 caps->cap_range.range_2ghz_min = 0; in ath5k_hw_set_capabilities()
49 caps->cap_range.range_2ghz_max = 0; in ath5k_hw_set_capabilities()
52 __set_bit(AR5K_MODE_11A, caps->cap_mode); in ath5k_hw_set_capabilities()
59 * XXX numbers (2312MHz is channel -19). Of course, this in ath5k_hw_set_capabilities()
69 if (ath_is_49ghz_allowed(caps->cap_eeprom.ee_regdomain)) in ath5k_hw_set_capabilities()
70 caps->cap_range.range_5ghz_min = 4920; in ath5k_hw_set_capabilities()
72 caps->cap_range.range_5ghz_min = 5005; in ath5k_hw_set_capabilities()
73 caps->cap_range.range_5ghz_max = 6100; in ath5k_hw_set_capabilities()
76 __set_bit(AR5K_MODE_11A, caps->cap_mode); in ath5k_hw_set_capabilities()
83 ah->ah_version != AR5K_AR5211)) { in ath5k_hw_set_capabilities()
85 caps->cap_range.range_2ghz_min = 2412; in ath5k_hw_set_capabilities()
86 caps->cap_range.range_2ghz_max = 2732; in ath5k_hw_set_capabilities()
91 if (!caps->cap_needs_2GHz_ovr) { in ath5k_hw_set_capabilities()
94 caps->cap_mode); in ath5k_hw_set_capabilities()
97 ah->ah_version != AR5K_AR5211) in ath5k_hw_set_capabilities()
99 caps->cap_mode); in ath5k_hw_set_capabilities()
104 if ((ah->ah_radio_5ghz_revision & 0xf0) == AR5K_SREV_RAD_2112) in ath5k_hw_set_capabilities()
105 __clear_bit(AR5K_MODE_11A, caps->cap_mode); in ath5k_hw_set_capabilities()
108 if (ah->ah_version == AR5K_AR5210) in ath5k_hw_set_capabilities()
109 caps->cap_queues.q_tx_num = AR5K_NUM_TX_QUEUES_NOQCU; in ath5k_hw_set_capabilities()
111 caps->cap_queues.q_tx_num = AR5K_NUM_TX_QUEUES; in ath5k_hw_set_capabilities()
114 if (ah->ah_mac_srev >= AR5K_SREV_AR5213A) in ath5k_hw_set_capabilities()
115 caps->cap_has_phyerr_counters = true; in ath5k_hw_set_capabilities()
117 caps->cap_has_phyerr_counters = false; in ath5k_hw_set_capabilities()
120 if (ah->ah_version == AR5K_AR5212) in ath5k_hw_set_capabilities()
121 caps->cap_has_mrr_support = true; in ath5k_hw_set_capabilities()
123 caps->cap_has_mrr_support = false; in ath5k_hw_set_capabilities()
133 int ath5k_hw_enable_pspoll(struct ath5k_hw *ah, u8 *bssid, in ath5k_hw_enable_pspoll() argument
136 if (ah->ah_version == AR5K_AR5210) { in ath5k_hw_enable_pspoll()
137 AR5K_REG_DISABLE_BITS(ah, AR5K_STA_ID1, in ath5k_hw_enable_pspoll()
142 return -EIO; in ath5k_hw_enable_pspoll()
145 int ath5k_hw_disable_pspoll(struct ath5k_hw *ah) in ath5k_hw_disable_pspoll() argument
147 if (ah->ah_version == AR5K_AR5210) { in ath5k_hw_disable_pspoll()
148 AR5K_REG_ENABLE_BITS(ah, AR5K_STA_ID1, in ath5k_hw_disable_pspoll()
153 return -EIO; in ath5k_hw_disable_pspoll()