| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (c) 2008-2009 Atheros Communications Inc. | 2 * Copyright (c) 2008-2009 Atheros Communications Inc. |
| 3 * | 3 * |
| 4 * Permission to use, copy, modify, and/or distribute this software for any | 4 * Permission to use, copy, modify, and/or distribute this software for any |
| 5 * purpose with or without fee is hereby granted, provided that the above | 5 * purpose with or without fee is hereby granted, provided that the above |
| 6 * copyright notice and this permission notice appear in all copies. | 6 * copyright notice and this permission notice appear in all copies. |
| 7 * | 7 * |
| 8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | 8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
| 9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | 9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
| 10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | 10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
| (...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 250 goto ps_restore; | 250 goto ps_restore; |
| 251 } | 251 } |
| 252 | 252 |
| 253 ath_cache_conf_rate(sc, &hw->conf); | 253 ath_cache_conf_rate(sc, &hw->conf); |
| 254 ath_update_txpow(sc); | 254 ath_update_txpow(sc); |
| 255 ath9k_hw_set_interrupts(ah, ah->imask); | 255 ath9k_hw_set_interrupts(ah, ah->imask); |
| 256 | 256 |
| 257 if (!(sc->sc_flags & (SC_OP_OFFCHANNEL | SC_OP_SCANNING))) { | 257 if (!(sc->sc_flags & (SC_OP_OFFCHANNEL | SC_OP_SCANNING))) { |
| 258 ath_start_ani(common); | 258 ath_start_ani(common); |
| 259 ieee80211_queue_delayed_work(sc->hw, &sc->tx_complete_work, 0); | 259 ieee80211_queue_delayed_work(sc->hw, &sc->tx_complete_work, 0); |
| 260 } |
| 261 |
| 262 if (!(sc->sc_flags & (SC_OP_OFFCHANNEL))) |
| 260 ath_beacon_config(sc, NULL); | 263 ath_beacon_config(sc, NULL); |
| 261 } | |
| 262 | 264 |
| 263 ps_restore: | 265 ps_restore: |
| 264 ath9k_ps_restore(sc); | 266 ath9k_ps_restore(sc); |
| 265 return r; | 267 return r; |
| 266 } | 268 } |
| 267 | 269 |
| 268 static void ath_paprd_activate(struct ath_softc *sc) | 270 static void ath_paprd_activate(struct ath_softc *sc) |
| 269 { | 271 { |
| 270 struct ath_hw *ah = sc->sc_ah; | 272 struct ath_hw *ah = sc->sc_ah; |
| 271 struct ath9k_hw_cal_data *caldata = ah->caldata; | 273 struct ath9k_hw_cal_data *caldata = ah->caldata; |
| (...skipping 672 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 944 | 946 |
| 945 /* | 947 /* |
| 946 * We may be doing a reset in response to a request | 948 * We may be doing a reset in response to a request |
| 947 * that changes the channel so update any state that | 949 * that changes the channel so update any state that |
| 948 * might change as a result. | 950 * might change as a result. |
| 949 */ | 951 */ |
| 950 ath_cache_conf_rate(sc, &hw->conf); | 952 ath_cache_conf_rate(sc, &hw->conf); |
| 951 | 953 |
| 952 ath_update_txpow(sc); | 954 ath_update_txpow(sc); |
| 953 | 955 |
| 954 » if (sc->sc_flags & SC_OP_BEACONS) | 956 » if ((sc->sc_flags & SC_OP_BEACONS) || !(sc->sc_flags & (SC_OP_OFFCHANNEL
))) |
| 955 ath_beacon_config(sc, NULL); /* restart beacons */ | 957 ath_beacon_config(sc, NULL); /* restart beacons */ |
| 956 | 958 |
| 957 ath9k_hw_set_interrupts(ah, ah->imask); | 959 ath9k_hw_set_interrupts(ah, ah->imask); |
| 958 | 960 |
| 959 if (retry_tx) { | 961 if (retry_tx) { |
| 960 int i; | 962 int i; |
| 961 for (i = 0; i < ATH9K_NUM_TX_QUEUES; i++) { | 963 for (i = 0; i < ATH9K_NUM_TX_QUEUES; i++) { |
| 962 if (ATH_TXQ_SETUP(sc, i)) { | 964 if (ATH_TXQ_SETUP(sc, i)) { |
| 963 spin_lock_bh(&sc->tx.txq[i].axq_lock); | 965 spin_lock_bh(&sc->tx.txq[i].axq_lock); |
| 964 ath_txq_schedule(sc, &sc->tx.txq[i]); | 966 ath_txq_schedule(sc, &sc->tx.txq[i]); |
| (...skipping 1114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2079 .get_tsf = ath9k_get_tsf, | 2081 .get_tsf = ath9k_get_tsf, |
| 2080 .set_tsf = ath9k_set_tsf, | 2082 .set_tsf = ath9k_set_tsf, |
| 2081 .reset_tsf = ath9k_reset_tsf, | 2083 .reset_tsf = ath9k_reset_tsf, |
| 2082 .ampdu_action = ath9k_ampdu_action, | 2084 .ampdu_action = ath9k_ampdu_action, |
| 2083 .get_survey = ath9k_get_survey, | 2085 .get_survey = ath9k_get_survey, |
| 2084 .sw_scan_start = ath9k_sw_scan_start, | 2086 .sw_scan_start = ath9k_sw_scan_start, |
| 2085 .sw_scan_complete = ath9k_sw_scan_complete, | 2087 .sw_scan_complete = ath9k_sw_scan_complete, |
| 2086 .rfkill_poll = ath9k_rfkill_poll_state, | 2088 .rfkill_poll = ath9k_rfkill_poll_state, |
| 2087 .set_coverage_class = ath9k_set_coverage_class, | 2089 .set_coverage_class = ath9k_set_coverage_class, |
| 2088 }; | 2090 }; |
| OLD | NEW |