diff options
Diffstat (limited to 'drivers/net/wireless/ath/ath5k/attach.c')
-rw-r--r-- | drivers/net/wireless/ath/ath5k/attach.c | 31 |
1 files changed, 15 insertions, 16 deletions
diff --git a/drivers/net/wireless/ath/ath5k/attach.c b/drivers/net/wireless/ath/ath5k/attach.c index 14dc52e4b50a..f8a6b380d96d 100644 --- a/drivers/net/wireless/ath/ath5k/attach.c +++ b/drivers/net/wireless/ath/ath5k/attach.c | |||
@@ -59,7 +59,7 @@ static int ath5k_hw_post(struct ath5k_hw *ah) | |||
59 | cur_val = ath5k_hw_reg_read(ah, cur_reg); | 59 | cur_val = ath5k_hw_reg_read(ah, cur_reg); |
60 | 60 | ||
61 | if (cur_val != var_pattern) { | 61 | if (cur_val != var_pattern) { |
62 | ATH5K_ERR(ah->ah_sc, "POST Failed !!!\n"); | 62 | ATH5K_ERR(ah, "POST Failed !!!\n"); |
63 | return -EAGAIN; | 63 | return -EAGAIN; |
64 | } | 64 | } |
65 | 65 | ||
@@ -74,7 +74,7 @@ static int ath5k_hw_post(struct ath5k_hw *ah) | |||
74 | cur_val = ath5k_hw_reg_read(ah, cur_reg); | 74 | cur_val = ath5k_hw_reg_read(ah, cur_reg); |
75 | 75 | ||
76 | if (cur_val != var_pattern) { | 76 | if (cur_val != var_pattern) { |
77 | ATH5K_ERR(ah->ah_sc, "POST Failed !!!\n"); | 77 | ATH5K_ERR(ah, "POST Failed !!!\n"); |
78 | return -EAGAIN; | 78 | return -EAGAIN; |
79 | } | 79 | } |
80 | 80 | ||
@@ -95,19 +95,18 @@ static int ath5k_hw_post(struct ath5k_hw *ah) | |||
95 | /** | 95 | /** |
96 | * ath5k_hw_init - Check if hw is supported and init the needed structs | 96 | * ath5k_hw_init - Check if hw is supported and init the needed structs |
97 | * | 97 | * |
98 | * @sc: The &struct ath5k_softc we got from the driver's init_softc function | 98 | * @ah: The &struct ath5k_hw we got from the driver's init_softc function |
99 | * | 99 | * |
100 | * Check if the device is supported, perform a POST and initialize the needed | 100 | * Check if the device is supported, perform a POST and initialize the needed |
101 | * structs. Returns -ENOMEM if we don't have memory for the needed structs, | 101 | * structs. Returns -ENOMEM if we don't have memory for the needed structs, |
102 | * -ENODEV if the device is not supported or prints an error msg if something | 102 | * -ENODEV if the device is not supported or prints an error msg if something |
103 | * else went wrong. | 103 | * else went wrong. |
104 | */ | 104 | */ |
105 | int ath5k_hw_init(struct ath5k_softc *sc) | 105 | int ath5k_hw_init(struct ath5k_hw *ah) |
106 | { | 106 | { |
107 | static const u8 zero_mac[ETH_ALEN] = { }; | 107 | static const u8 zero_mac[ETH_ALEN] = { }; |
108 | struct ath5k_hw *ah = sc->ah; | ||
109 | struct ath_common *common = ath5k_hw_common(ah); | 108 | struct ath_common *common = ath5k_hw_common(ah); |
110 | struct pci_dev *pdev = sc->pdev; | 109 | struct pci_dev *pdev = ah->pdev; |
111 | struct ath5k_eeprom_info *ee; | 110 | struct ath5k_eeprom_info *ee; |
112 | int ret; | 111 | int ret; |
113 | u32 srev; | 112 | u32 srev; |
@@ -123,8 +122,8 @@ int ath5k_hw_init(struct ath5k_softc *sc) | |||
123 | ah->ah_retry_long = AR5K_INIT_RETRY_LONG; | 122 | ah->ah_retry_long = AR5K_INIT_RETRY_LONG; |
124 | ah->ah_ant_mode = AR5K_ANTMODE_DEFAULT; | 123 | ah->ah_ant_mode = AR5K_ANTMODE_DEFAULT; |
125 | ah->ah_noise_floor = -95; /* until first NF calibration is run */ | 124 | ah->ah_noise_floor = -95; /* until first NF calibration is run */ |
126 | sc->ani_state.ani_mode = ATH5K_ANI_MODE_AUTO; | 125 | ah->ani_state.ani_mode = ATH5K_ANI_MODE_AUTO; |
127 | ah->ah_current_channel = &sc->channels[0]; | 126 | ah->ah_current_channel = &ah->channels[0]; |
128 | 127 | ||
129 | /* | 128 | /* |
130 | * Find the mac version | 129 | * Find the mac version |
@@ -237,7 +236,7 @@ int ath5k_hw_init(struct ath5k_softc *sc) | |||
237 | ah->ah_single_chip = true; | 236 | ah->ah_single_chip = true; |
238 | ah->ah_radio_5ghz_revision = AR5K_SREV_RAD_2413; | 237 | ah->ah_radio_5ghz_revision = AR5K_SREV_RAD_2413; |
239 | } else { | 238 | } else { |
240 | ATH5K_ERR(sc, "Couldn't identify radio revision.\n"); | 239 | ATH5K_ERR(ah, "Couldn't identify radio revision.\n"); |
241 | ret = -ENODEV; | 240 | ret = -ENODEV; |
242 | goto err; | 241 | goto err; |
243 | } | 242 | } |
@@ -246,7 +245,7 @@ int ath5k_hw_init(struct ath5k_softc *sc) | |||
246 | 245 | ||
247 | /* Return on unsupported chips (unsupported eeprom etc) */ | 246 | /* Return on unsupported chips (unsupported eeprom etc) */ |
248 | if ((srev >= AR5K_SREV_AR5416) && (srev < AR5K_SREV_AR2425)) { | 247 | if ((srev >= AR5K_SREV_AR5416) && (srev < AR5K_SREV_AR2425)) { |
249 | ATH5K_ERR(sc, "Device not yet supported.\n"); | 248 | ATH5K_ERR(ah, "Device not yet supported.\n"); |
250 | ret = -ENODEV; | 249 | ret = -ENODEV; |
251 | goto err; | 250 | goto err; |
252 | } | 251 | } |
@@ -268,7 +267,7 @@ int ath5k_hw_init(struct ath5k_softc *sc) | |||
268 | */ | 267 | */ |
269 | ret = ath5k_eeprom_init(ah); | 268 | ret = ath5k_eeprom_init(ah); |
270 | if (ret) { | 269 | if (ret) { |
271 | ATH5K_ERR(sc, "unable to init EEPROM\n"); | 270 | ATH5K_ERR(ah, "unable to init EEPROM\n"); |
272 | goto err; | 271 | goto err; |
273 | } | 272 | } |
274 | 273 | ||
@@ -309,17 +308,17 @@ int ath5k_hw_init(struct ath5k_softc *sc) | |||
309 | /* Get misc capabilities */ | 308 | /* Get misc capabilities */ |
310 | ret = ath5k_hw_set_capabilities(ah); | 309 | ret = ath5k_hw_set_capabilities(ah); |
311 | if (ret) { | 310 | if (ret) { |
312 | ATH5K_ERR(sc, "unable to get device capabilities\n"); | 311 | ATH5K_ERR(ah, "unable to get device capabilities\n"); |
313 | goto err; | 312 | goto err; |
314 | } | 313 | } |
315 | 314 | ||
316 | if (test_bit(ATH_STAT_2G_DISABLED, sc->status)) { | 315 | if (test_bit(ATH_STAT_2G_DISABLED, ah->status)) { |
317 | __clear_bit(AR5K_MODE_11B, ah->ah_capabilities.cap_mode); | 316 | __clear_bit(AR5K_MODE_11B, ah->ah_capabilities.cap_mode); |
318 | __clear_bit(AR5K_MODE_11G, ah->ah_capabilities.cap_mode); | 317 | __clear_bit(AR5K_MODE_11G, ah->ah_capabilities.cap_mode); |
319 | } | 318 | } |
320 | 319 | ||
321 | /* Crypto settings */ | 320 | /* Crypto settings */ |
322 | common->keymax = (sc->ah->ah_version == AR5K_AR5210 ? | 321 | common->keymax = (ah->ah_version == AR5K_AR5210 ? |
323 | AR5K_KEYTABLE_SIZE_5210 : AR5K_KEYTABLE_SIZE_5211); | 322 | AR5K_KEYTABLE_SIZE_5210 : AR5K_KEYTABLE_SIZE_5211); |
324 | 323 | ||
325 | if (srev >= AR5K_SREV_AR5212_V4 && | 324 | if (srev >= AR5K_SREV_AR5212_V4 && |
@@ -339,7 +338,7 @@ int ath5k_hw_init(struct ath5k_softc *sc) | |||
339 | /* Set BSSID to bcast address: ff:ff:ff:ff:ff:ff for now */ | 338 | /* Set BSSID to bcast address: ff:ff:ff:ff:ff:ff for now */ |
340 | memcpy(common->curbssid, ath_bcast_mac, ETH_ALEN); | 339 | memcpy(common->curbssid, ath_bcast_mac, ETH_ALEN); |
341 | ath5k_hw_set_bssid(ah); | 340 | ath5k_hw_set_bssid(ah); |
342 | ath5k_hw_set_opmode(ah, sc->opmode); | 341 | ath5k_hw_set_opmode(ah, ah->opmode); |
343 | 342 | ||
344 | ath5k_hw_rfgain_opt_init(ah); | 343 | ath5k_hw_rfgain_opt_init(ah); |
345 | 344 | ||
@@ -360,7 +359,7 @@ err: | |||
360 | */ | 359 | */ |
361 | void ath5k_hw_deinit(struct ath5k_hw *ah) | 360 | void ath5k_hw_deinit(struct ath5k_hw *ah) |
362 | { | 361 | { |
363 | __set_bit(ATH_STAT_INVALID, ah->ah_sc->status); | 362 | __set_bit(ATH_STAT_INVALID, ah->status); |
364 | 363 | ||
365 | if (ah->ah_rf_banks != NULL) | 364 | if (ah->ah_rf_banks != NULL) |
366 | kfree(ah->ah_rf_banks); | 365 | kfree(ah->ah_rf_banks); |