diff options
author | Nick Kossifidis <mick@madwifi-project.org> | 2009-02-08 23:12:58 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2009-02-13 13:44:49 -0500 |
commit | e8f055f0c3ba226ca599c14c2e5fe829f6f57cbb (patch) | |
tree | 02479a6c4aaa388b13866f0fb596433630863083 /drivers/net/wireless/ath5k/attach.c | |
parent | a406c139091902acebafb2462b64ba498901e820 (diff) |
ath5k: Update reset code
* Update reset and sync with HALs
* Clean up eeprom settings and tweaking of initvals and
put them on separate functions
* Set/Restore 32KHz ref clk operation
* Add some more documentation
TODO: Spur mitigation, tpc, half/quarter rate, compression etc
v2: Address comments from Bob and Felix and fix RSSI threshold bug
introduced on the first version of the patch
Signed-off-by: Nick Kossifidis <mickflemm@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/ath5k/attach.c')
-rw-r--r-- | drivers/net/wireless/ath5k/attach.c | 16 |
1 files changed, 2 insertions, 14 deletions
diff --git a/drivers/net/wireless/ath5k/attach.c b/drivers/net/wireless/ath5k/attach.c index a3f07a4ebf41..05bc5cb44e88 100644 --- a/drivers/net/wireless/ath5k/attach.c +++ b/drivers/net/wireless/ath5k/attach.c | |||
@@ -169,7 +169,6 @@ struct ath5k_hw *ath5k_hw_attach(struct ath5k_softc *sc, u8 mac_version) | |||
169 | ah->ah_single_chip = false; | 169 | ah->ah_single_chip = false; |
170 | ah->ah_radio_2ghz_revision = ath5k_hw_radio_revision(ah, | 170 | ah->ah_radio_2ghz_revision = ath5k_hw_radio_revision(ah, |
171 | CHANNEL_2GHZ); | 171 | CHANNEL_2GHZ); |
172 | ah->ah_phy_spending = AR5K_PHY_SPENDING_RF5111; | ||
173 | break; | 172 | break; |
174 | case AR5K_SREV_RAD_5112: | 173 | case AR5K_SREV_RAD_5112: |
175 | case AR5K_SREV_RAD_2112: | 174 | case AR5K_SREV_RAD_2112: |
@@ -177,38 +176,31 @@ struct ath5k_hw *ath5k_hw_attach(struct ath5k_softc *sc, u8 mac_version) | |||
177 | ah->ah_single_chip = false; | 176 | ah->ah_single_chip = false; |
178 | ah->ah_radio_2ghz_revision = ath5k_hw_radio_revision(ah, | 177 | ah->ah_radio_2ghz_revision = ath5k_hw_radio_revision(ah, |
179 | CHANNEL_2GHZ); | 178 | CHANNEL_2GHZ); |
180 | ah->ah_phy_spending = AR5K_PHY_SPENDING_RF5112; | ||
181 | break; | 179 | break; |
182 | case AR5K_SREV_RAD_2413: | 180 | case AR5K_SREV_RAD_2413: |
183 | ah->ah_radio = AR5K_RF2413; | 181 | ah->ah_radio = AR5K_RF2413; |
184 | ah->ah_single_chip = true; | 182 | ah->ah_single_chip = true; |
185 | ah->ah_phy_spending = AR5K_PHY_SPENDING_RF2413; | ||
186 | break; | 183 | break; |
187 | case AR5K_SREV_RAD_5413: | 184 | case AR5K_SREV_RAD_5413: |
188 | ah->ah_radio = AR5K_RF5413; | 185 | ah->ah_radio = AR5K_RF5413; |
189 | ah->ah_single_chip = true; | 186 | ah->ah_single_chip = true; |
190 | ah->ah_phy_spending = AR5K_PHY_SPENDING_RF5413; | ||
191 | break; | 187 | break; |
192 | case AR5K_SREV_RAD_2316: | 188 | case AR5K_SREV_RAD_2316: |
193 | ah->ah_radio = AR5K_RF2316; | 189 | ah->ah_radio = AR5K_RF2316; |
194 | ah->ah_single_chip = true; | 190 | ah->ah_single_chip = true; |
195 | ah->ah_phy_spending = AR5K_PHY_SPENDING_RF2316; | ||
196 | break; | 191 | break; |
197 | case AR5K_SREV_RAD_2317: | 192 | case AR5K_SREV_RAD_2317: |
198 | ah->ah_radio = AR5K_RF2317; | 193 | ah->ah_radio = AR5K_RF2317; |
199 | ah->ah_single_chip = true; | 194 | ah->ah_single_chip = true; |
200 | ah->ah_phy_spending = AR5K_PHY_SPENDING_RF2317; | ||
201 | break; | 195 | break; |
202 | case AR5K_SREV_RAD_5424: | 196 | case AR5K_SREV_RAD_5424: |
203 | if (ah->ah_mac_version == AR5K_SREV_AR2425 || | 197 | if (ah->ah_mac_version == AR5K_SREV_AR2425 || |
204 | ah->ah_mac_version == AR5K_SREV_AR2417){ | 198 | ah->ah_mac_version == AR5K_SREV_AR2417){ |
205 | ah->ah_radio = AR5K_RF2425; | 199 | ah->ah_radio = AR5K_RF2425; |
206 | ah->ah_single_chip = true; | 200 | ah->ah_single_chip = true; |
207 | ah->ah_phy_spending = AR5K_PHY_SPENDING_RF2425; | ||
208 | } else { | 201 | } else { |
209 | ah->ah_radio = AR5K_RF5413; | 202 | ah->ah_radio = AR5K_RF5413; |
210 | ah->ah_single_chip = true; | 203 | ah->ah_single_chip = true; |
211 | ah->ah_phy_spending = AR5K_PHY_SPENDING_RF5413; | ||
212 | } | 204 | } |
213 | break; | 205 | break; |
214 | default: | 206 | default: |
@@ -227,29 +219,25 @@ struct ath5k_hw *ath5k_hw_attach(struct ath5k_softc *sc, u8 mac_version) | |||
227 | ah->ah_radio = AR5K_RF2425; | 219 | ah->ah_radio = AR5K_RF2425; |
228 | ah->ah_single_chip = true; | 220 | ah->ah_single_chip = true; |
229 | ah->ah_radio_5ghz_revision = AR5K_SREV_RAD_2425; | 221 | ah->ah_radio_5ghz_revision = AR5K_SREV_RAD_2425; |
230 | ah->ah_phy_spending = AR5K_PHY_SPENDING_RF2425; | ||
231 | } else if (srev == AR5K_SREV_AR5213A && | 222 | } else if (srev == AR5K_SREV_AR5213A && |
232 | ah->ah_phy_revision == AR5K_SREV_PHY_2112B) { | 223 | ah->ah_phy_revision == AR5K_SREV_PHY_5212B) { |
233 | ah->ah_radio = AR5K_RF5112; | 224 | ah->ah_radio = AR5K_RF5112; |
234 | ah->ah_single_chip = false; | 225 | ah->ah_single_chip = false; |
235 | ah->ah_radio_5ghz_revision = AR5K_SREV_RAD_2112B; | 226 | ah->ah_radio_5ghz_revision = AR5K_SREV_RAD_5112B; |
236 | } else if (ah->ah_mac_version == (AR5K_SREV_AR2415 >> 4)) { | 227 | } else if (ah->ah_mac_version == (AR5K_SREV_AR2415 >> 4)) { |
237 | ah->ah_radio = AR5K_RF2316; | 228 | ah->ah_radio = AR5K_RF2316; |
238 | ah->ah_single_chip = true; | 229 | ah->ah_single_chip = true; |
239 | ah->ah_radio_5ghz_revision = AR5K_SREV_RAD_2316; | 230 | ah->ah_radio_5ghz_revision = AR5K_SREV_RAD_2316; |
240 | ah->ah_phy_spending = AR5K_PHY_SPENDING_RF2316; | ||
241 | } else if (ah->ah_mac_version == (AR5K_SREV_AR5414 >> 4) || | 231 | } else if (ah->ah_mac_version == (AR5K_SREV_AR5414 >> 4) || |
242 | ah->ah_phy_revision == AR5K_SREV_PHY_5413) { | 232 | ah->ah_phy_revision == AR5K_SREV_PHY_5413) { |
243 | ah->ah_radio = AR5K_RF5413; | 233 | ah->ah_radio = AR5K_RF5413; |
244 | ah->ah_single_chip = true; | 234 | ah->ah_single_chip = true; |
245 | ah->ah_radio_5ghz_revision = AR5K_SREV_RAD_5413; | 235 | ah->ah_radio_5ghz_revision = AR5K_SREV_RAD_5413; |
246 | ah->ah_phy_spending = AR5K_PHY_SPENDING_RF5413; | ||
247 | } else if (ah->ah_mac_version == (AR5K_SREV_AR2414 >> 4) || | 236 | } else if (ah->ah_mac_version == (AR5K_SREV_AR2414 >> 4) || |
248 | ah->ah_phy_revision == AR5K_SREV_PHY_2413) { | 237 | ah->ah_phy_revision == AR5K_SREV_PHY_2413) { |
249 | ah->ah_radio = AR5K_RF2413; | 238 | ah->ah_radio = AR5K_RF2413; |
250 | ah->ah_single_chip = true; | 239 | ah->ah_single_chip = true; |
251 | ah->ah_radio_5ghz_revision = AR5K_SREV_RAD_2413; | 240 | ah->ah_radio_5ghz_revision = AR5K_SREV_RAD_2413; |
252 | ah->ah_phy_spending = AR5K_PHY_SPENDING_RF2413; | ||
253 | } else { | 241 | } else { |
254 | ATH5K_ERR(sc, "Couldn't identify radio revision.\n"); | 242 | ATH5K_ERR(sc, "Couldn't identify radio revision.\n"); |
255 | ret = -ENODEV; | 243 | ret = -ENODEV; |