Lines Matching refs:ah

212 	struct ath_hw *ah = sc->sc_ah;  in ath_prepare_reset()  local
217 ath9k_hw_disable_interrupts(ah); in ath_prepare_reset()
219 if (AR_SREV_9300_20_OR_LATER(ah)) { in ath_prepare_reset()
232 struct ath_hw *ah = sc->sc_ah; in ath_complete_reset() local
233 struct ath_common *common = ath9k_hw_common(ah); in ath_complete_reset()
238 ath9k_cmn_update_txpow(ah, sc->cur_chan->cur_txpower, in ath_complete_reset()
250 ath9k_hw_settsf64(ah, sc->cur_chan->tsf_val + offset); in ath_complete_reset()
257 if (ah->opmode == NL80211_IFTYPE_STATION && in ath_complete_reset()
272 ath9k_hw_set_interrupts(ah); in ath_complete_reset()
273 ath9k_hw_enable_interrupts(ah); in ath_complete_reset()
282 struct ath_hw *ah = sc->sc_ah; in ath_reset_internal() local
283 struct ath_common *common = ath9k_hw_common(ah); in ath_reset_internal()
302 hchan = ah->curchan; in ath_reset_internal()
318 r = ath9k_hw_reset(ah, hchan, caldata, fastcc); in ath_reset_internal()
323 ath9k_hw_enable_interrupts(ah); in ath_reset_internal()
372 struct ath_hw *ah = sc->sc_ah; in ath9k_tasklet() local
373 struct ath_common *common = ath9k_hw_common(ah); in ath9k_tasklet()
390 atomic_inc(&ah->intr_ref_cnt); in ath9k_tasklet()
395 if ((ah->config.hw_hang_checks & HW_BB_WATCHDOG) && in ath9k_tasklet()
399 ar9003_hw_bb_watchdog_dbg_info(ah); in ath9k_tasklet()
402 if (ar9003_hw_bb_watchdog_check(ah)) { in ath9k_tasklet()
410 atomic_inc(&ah->intr_ref_cnt); in ath9k_tasklet()
420 if ((sc->gtt_cnt >= MAX_GTT_CNT) && !ath9k_hw_check_alive(ah)) { in ath9k_tasklet()
423 atomic_inc(&ah->intr_ref_cnt); in ath9k_tasklet()
441 if (ah->caps.hw_caps & ATH9K_HW_CAP_EDMA) in ath9k_tasklet()
449 if ((ah->caps.hw_caps & ATH9K_HW_CAP_EDMA) && in ath9k_tasklet()
457 if (ah->caps.hw_caps & ATH9K_HW_CAP_EDMA) { in ath9k_tasklet()
480 ath9k_hw_enable_interrupts(ah); in ath9k_tasklet()
505 struct ath_hw *ah = sc->sc_ah; in ath_isr() local
506 struct ath_common *common = ath9k_hw_common(ah); in ath_isr()
516 if (!ah || test_bit(ATH_OP_INVALID, &common->op_flags)) in ath_isr()
520 if (!ath9k_hw_intrpend(ah)) in ath_isr()
529 ath9k_hw_getisr(ah, &status, &sync_cause); /* NB: clears ISR too */ in ath_isr()
531 status &= ah->imask; /* discard unasked-for bits */ in ath_isr()
556 if ((ah->config.hw_hang_checks & HW_BB_WATCHDOG) && in ath_isr()
564 ath9k_hw_updatetxtriglevel(ah, true); in ath_isr()
567 ah->imask &= ~(ATH9K_INT_RXEOL | ATH9K_INT_RXORN); in ath_isr()
568 ath9k_hw_set_interrupts(ah); in ath_isr()
571 if (!(ah->caps.hw_caps & ATH9K_HW_CAP_AUTOSLEEP)) in ath_isr()
590 ath9k_hw_disable_interrupts(ah); in ath_isr()
650 struct ath_hw *ah = sc->sc_ah; in ath9k_start() local
651 struct ath_common *common = ath9k_hw_common(ah); in ath9k_start()
664 init_channel = ath9k_cmn_get_channel(hw, ah, &ctx->chandef); in ath9k_start()
668 ath9k_hw_configpcipowersave(ah, false); in ath9k_start()
679 atomic_set(&ah->intr_ref_cnt, -1); in ath9k_start()
681 r = ath9k_hw_reset(ah, init_channel, ah->caldata, false); in ath9k_start()
686 ah->reset_power_on = false; in ath9k_start()
690 ah->imask = ATH9K_INT_TX | ATH9K_INT_RXEOL | in ath9k_start()
694 if (ah->caps.hw_caps & ATH9K_HW_CAP_EDMA) in ath9k_start()
695 ah->imask |= ATH9K_INT_RXHP | in ath9k_start()
698 ah->imask |= ATH9K_INT_RX; in ath9k_start()
700 if (ah->config.hw_hang_checks & HW_BB_WATCHDOG) in ath9k_start()
701 ah->imask |= ATH9K_INT_BB_WATCHDOG; in ath9k_start()
707 if (AR_SREV_9300_20_OR_LATER(ah)) in ath9k_start()
708 ah->imask |= ATH9K_INT_GTT; in ath9k_start()
710 if (ah->caps.hw_caps & ATH9K_HW_CAP_HT) in ath9k_start()
711 ah->imask |= ATH9K_INT_CST; in ath9k_start()
719 ah->reset_power_on = false; in ath9k_start()
721 if (ah->led_pin >= 0) { in ath9k_start()
722 ath9k_hw_cfg_output(ah, ah->led_pin, in ath9k_start()
724 ath9k_hw_set_gpio(ah, ah->led_pin, in ath9k_start()
725 (ah->config.led_active_high) ? 1 : 0); in ath9k_start()
734 ath9k_hw_reset_tsf(ah); in ath9k_start()
825 struct ath_hw *ah = sc->sc_ah; in ath9k_stop() local
826 struct ath_common *common = ath9k_hw_common(ah); in ath9k_stop()
847 ah->imask &= ~ATH9K_INT_GLOBAL; in ath9k_stop()
851 ath9k_hw_disable_interrupts(ah); in ath9k_stop()
866 if (ah->led_pin >= 0) { in ath9k_stop()
867 ath9k_hw_set_gpio(ah, ah->led_pin, in ath9k_stop()
868 (ah->config.led_active_high) ? 0 : 1); in ath9k_stop()
869 ath9k_hw_cfg_gpio_input(ah, ah->led_pin); in ath9k_stop()
879 if (!ah->curchan) in ath9k_stop()
880 ah->curchan = ath9k_cmn_get_channel(hw, ah, in ath9k_stop()
883 ath9k_hw_reset(ah, ah->curchan, ah->caldata, false); in ath9k_stop()
887 ath9k_hw_phy_disable(ah); in ath9k_stop()
889 ath9k_hw_configpcipowersave(ah, true); in ath9k_stop()
1041 struct ath_hw *ah = sc->sc_ah; in ath9k_set_offchannel_state() local
1042 struct ath_common *common = ath9k_hw_common(ah); in ath9k_set_offchannel_state()
1059 ah->opmode = vif->type; in ath9k_set_offchannel_state()
1060 ah->imask &= ~ATH9K_INT_SWBA; in ath9k_set_offchannel_state()
1061 ah->imask &= ~ATH9K_INT_TSFOOR; in ath9k_set_offchannel_state()
1062 ah->slottime = ATH9K_SLOT_TIME_9; in ath9k_set_offchannel_state()
1065 ath9k_hw_setopmode(ah); in ath9k_set_offchannel_state()
1067 ath9k_hw_set_interrupts(ah); in ath9k_set_offchannel_state()
1068 ath9k_hw_init_global_settings(ah); in ath9k_set_offchannel_state()
1079 struct ath_hw *ah = sc->sc_ah; in ath9k_calculate_summary_state() local
1080 struct ath_common *common = ath9k_hw_common(ah); in ath9k_calculate_summary_state()
1105 ath9k_hw_set_tsfadjust(ah, true); in ath9k_calculate_summary_state()
1106 ah->opmode = NL80211_IFTYPE_AP; in ath9k_calculate_summary_state()
1110 ath9k_hw_set_tsfadjust(ah, false); in ath9k_calculate_summary_state()
1113 ah->opmode = NL80211_IFTYPE_MESH_POINT; in ath9k_calculate_summary_state()
1115 ah->opmode = NL80211_IFTYPE_AP; in ath9k_calculate_summary_state()
1117 ah->opmode = NL80211_IFTYPE_ADHOC; in ath9k_calculate_summary_state()
1119 ah->opmode = NL80211_IFTYPE_STATION; in ath9k_calculate_summary_state()
1122 ath9k_hw_setopmode(ah); in ath9k_calculate_summary_state()
1126 ah->imask |= ATH9K_INT_TSFOOR; in ath9k_calculate_summary_state()
1128 ah->imask &= ~ATH9K_INT_TSFOOR; in ath9k_calculate_summary_state()
1133 ah->imask &= ~ATH9K_INT_SWBA; in ath9k_calculate_summary_state()
1134 if (ah->opmode == NL80211_IFTYPE_STATION) { in ath9k_calculate_summary_state()
1151 ah->imask |= ATH9K_INT_SWBA; in ath9k_calculate_summary_state()
1153 ath9k_hw_set_interrupts(ah); in ath9k_calculate_summary_state()
1160 if (ah->slottime != iter_data.slottime) { in ath9k_calculate_summary_state()
1161 ah->slottime = iter_data.slottime; in ath9k_calculate_summary_state()
1162 ath9k_hw_init_global_settings(ah); in ath9k_calculate_summary_state()
1189 struct ath_hw *ah = sc->sc_ah; in ath9k_set_txpower() local
1190 struct ath_regulatory *reg = ath9k_hw_regulatory(ah); in ath9k_set_txpower()
1193 if (ah->tpc_enabled) { in ath9k_set_txpower()
1204 ath9k_hw_set_txpowerlimit(ah, sc->cur_chan->txpower, false); in ath9k_set_txpower()
1231 struct ath_hw *ah = sc->sc_ah; in ath9k_add_interface() local
1232 struct ath_common *common = ath9k_hw_common(ah); in ath9k_add_interface()
1342 struct ath_hw *ah = sc->sc_ah; in ath9k_enable_ps() local
1343 struct ath_common *common = ath9k_hw_common(ah); in ath9k_enable_ps()
1349 if (!(ah->caps.hw_caps & ATH9K_HW_CAP_AUTOSLEEP)) { in ath9k_enable_ps()
1350 if ((ah->imask & ATH9K_INT_TIM_TIMER) == 0) { in ath9k_enable_ps()
1351 ah->imask |= ATH9K_INT_TIM_TIMER; in ath9k_enable_ps()
1352 ath9k_hw_set_interrupts(ah); in ath9k_enable_ps()
1354 ath9k_hw_setrxabort(ah, 1); in ath9k_enable_ps()
1361 struct ath_hw *ah = sc->sc_ah; in ath9k_disable_ps() local
1362 struct ath_common *common = ath9k_hw_common(ah); in ath9k_disable_ps()
1368 ath9k_hw_setpower(ah, ATH9K_PM_AWAKE); in ath9k_disable_ps()
1369 if (!(ah->caps.hw_caps & ATH9K_HW_CAP_AUTOSLEEP)) { in ath9k_disable_ps()
1370 ath9k_hw_setrxabort(ah, 0); in ath9k_disable_ps()
1375 if (ah->imask & ATH9K_INT_TIM_TIMER) { in ath9k_disable_ps()
1376 ah->imask &= ~ATH9K_INT_TIM_TIMER; in ath9k_disable_ps()
1377 ath9k_hw_set_interrupts(ah); in ath9k_disable_ps()
1386 struct ath_hw *ah = sc->sc_ah; in ath9k_config() local
1387 struct ath_common *common = ath9k_hw_common(ah); in ath9k_config()
1568 static void ath9k_sta_set_tx_filter(struct ath_hw *ah, in ath9k_sta_set_tx_filter() argument
1577 ath9k_hw_set_tx_filter(ah, an->key_idx[i], set); in ath9k_sta_set_tx_filter()
1740 struct ath_hw *ah = sc->sc_ah; in ath9k_bss_info_changed() local
1741 struct ath_common *common = ath9k_hw_common(ah); in ath9k_bss_info_changed()
1788 ah->slottime = slottime; in ath9k_bss_info_changed()
1789 ath9k_hw_init_global_settings(ah); in ath9k_bss_info_changed()
1949 struct ath_hw *ah = sc->sc_ah; in ath9k_enable_dynack() local
1951 ath_dynack_reset(ah); in ath9k_enable_dynack()
1953 ah->dynack.enabled = true; in ath9k_enable_dynack()
1955 ath9k_hw_setrxfilter(ah, rfilt); in ath9k_enable_dynack()
1963 struct ath_hw *ah = sc->sc_ah; in ath9k_set_coverage_class() local
1971 ah->coverage_class = coverage_class; in ath9k_set_coverage_class()
1972 if (ah->dynack.enabled) { in ath9k_set_coverage_class()
1975 ah->dynack.enabled = false; in ath9k_set_coverage_class()
1977 ath9k_hw_setrxfilter(ah, rfilt); in ath9k_set_coverage_class()
1980 ath9k_hw_init_global_settings(ah); in ath9k_set_coverage_class()
1982 } else if (!ah->dynack.enabled) { in ath9k_set_coverage_class()
2040 struct ath_hw *ah = sc->sc_ah; in __ath9k_flush() local
2041 struct ath_common *common = ath9k_hw_common(ah); in __ath9k_flush()
2047 if (ah->ah_flags & AH_UNPLUGGED) { in __ath9k_flush()
2096 struct ath_hw *ah = sc->sc_ah; in ath9k_tx_last_beacon() local
2101 bool edma = !!(ah->caps.hw_caps & ATH9K_HW_CAP_EDMA); in ath9k_tx_last_beacon()
2120 status = ath9k_hw_txprocdesc(ah, bf->bf_desc, &ts); in ath9k_tx_last_beacon()
2138 struct ath_hw *ah = sc->sc_ah; in ath9k_get_stats() local
2139 struct ath9k_mib_stats *mib_stats = &ah->ah_mibStats; in ath9k_get_stats()
2166 static bool validate_antenna_mask(struct ath_hw *ah, u32 val) in validate_antenna_mask() argument
2168 if (AR_SREV_9300_20_OR_LATER(ah)) in validate_antenna_mask()
2177 return (ah->caps.rx_chainmask == 1); in validate_antenna_mask()
2186 struct ath_hw *ah = sc->sc_ah; in ath9k_set_antenna() local
2188 if (ah->caps.rx_chainmask != 1) in ath9k_set_antenna()
2191 if (!validate_antenna_mask(ah, rx_ant) || !tx_ant) in ath9k_set_antenna()
2197 if (ah->caps.rx_chainmask == 1) in ath9k_set_antenna()
2201 if (AR_SREV_9100(ah)) in ath9k_set_antenna()
2202 ah->rxchainmask = 0x7; in ath9k_set_antenna()
2204 ah->rxchainmask = fill_chainmask(ah->caps.rx_chainmask, rx_ant); in ath9k_set_antenna()
2206 ah->txchainmask = fill_chainmask(ah->caps.tx_chainmask, tx_ant); in ath9k_set_antenna()
2207 ath9k_cmn_reload_chainmask(ah); in ath9k_set_antenna()