main.c (d2182b69dcb6a68b1ef6070b2efd094e13dea3f1) main.c (8a30930563521c9dba73c93b5631be1d0993f78f)
1/*
2 * Copyright (c) 2008-2011 Atheros Communications Inc.
3 *
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
6 * copyright notice and this permission notice appear in all copies.
7 *
8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES

--- 727 unchanged lines hidden (view full) ---

736
737 if (status & ATH9K_INT_TX) {
738 if (ah->caps.hw_caps & ATH9K_HW_CAP_EDMA)
739 ath_tx_edma_tasklet(sc);
740 else
741 ath_tx_tasklet(sc);
742 }
743
1/*
2 * Copyright (c) 2008-2011 Atheros Communications Inc.
3 *
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
6 * copyright notice and this permission notice appear in all copies.
7 *
8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES

--- 727 unchanged lines hidden (view full) ---

736
737 if (status & ATH9K_INT_TX) {
738 if (ah->caps.hw_caps & ATH9K_HW_CAP_EDMA)
739 ath_tx_edma_tasklet(sc);
740 else
741 ath_tx_tasklet(sc);
742 }
743
744 if (ah->btcoex_hw.scheme == ATH_BTCOEX_CFG_3WIRE)
744 if (ath9k_hw_get_btcoex_scheme(ah) == ATH_BTCOEX_CFG_3WIRE)
745 if (status & ATH9K_INT_GENTIMER)
746 ath_gen_timer_isr(sc->sc_ah);
747
745 if (status & ATH9K_INT_GENTIMER)
746 ath_gen_timer_isr(sc->sc_ah);
747
748 if (status & ATH9K_INT_MCI)
748 if ((status & ATH9K_INT_MCI) && ATH9K_HW_CAP_MCI)
749 ath_mci_intr(sc);
750
751out:
752 /* re-enable hardware interrupt */
753 ath9k_hw_enable_interrupts(ah);
754
755 spin_unlock(&sc->sc_pcu_lock);
756 ath9k_ps_restore(sc);

--- 319 unchanged lines hidden (view full) ---

1076 /*
1077 * Reset key cache to sane defaults (all entries cleared) instead of
1078 * semi-random values after suspend/resume.
1079 */
1080 ath9k_cmn_init_crypto(sc->sc_ah);
1081
1082 spin_unlock_bh(&sc->sc_pcu_lock);
1083
749 ath_mci_intr(sc);
750
751out:
752 /* re-enable hardware interrupt */
753 ath9k_hw_enable_interrupts(ah);
754
755 spin_unlock(&sc->sc_pcu_lock);
756 ath9k_ps_restore(sc);

--- 319 unchanged lines hidden (view full) ---

1076 /*
1077 * Reset key cache to sane defaults (all entries cleared) instead of
1078 * semi-random values after suspend/resume.
1079 */
1080 ath9k_cmn_init_crypto(sc->sc_ah);
1081
1082 spin_unlock_bh(&sc->sc_pcu_lock);
1083
1084 if ((ah->btcoex_hw.scheme != ATH_BTCOEX_CFG_NONE) &&
1084 if ((ath9k_hw_get_btcoex_scheme(ah) != ATH_BTCOEX_CFG_NONE) &&
1085 !ah->btcoex_hw.enabled) {
1086 if (!(sc->sc_ah->caps.hw_caps & ATH9K_HW_CAP_MCI))
1087 ath9k_hw_btcoex_set_weight(ah, AR_BT_COEX_WGHT,
1088 AR_STOMP_LOW_WLAN_WGHT);
1089 ath9k_hw_btcoex_enable(ah);
1090
1085 !ah->btcoex_hw.enabled) {
1086 if (!(sc->sc_ah->caps.hw_caps & ATH9K_HW_CAP_MCI))
1087 ath9k_hw_btcoex_set_weight(ah, AR_BT_COEX_WGHT,
1088 AR_STOMP_LOW_WLAN_WGHT);
1089 ath9k_hw_btcoex_enable(ah);
1090
1091 if (ah->btcoex_hw.scheme == ATH_BTCOEX_CFG_3WIRE)
1091 if (ath9k_hw_get_btcoex_scheme(ah) == ATH_BTCOEX_CFG_3WIRE)
1092 ath9k_btcoex_timer_resume(sc);
1093 }
1094
1095 if (ah->caps.pcie_lcr_extsync_en && common->bus_ops->extn_synch_en)
1096 common->bus_ops->extn_synch_en(common);
1097
1098mutex_unlock:
1099 mutex_unlock(&sc->mutex);

--- 86 unchanged lines hidden (view full) ---

1186 ath_dbg(common, ANY, "Device not present\n");
1187 mutex_unlock(&sc->mutex);
1188 return;
1189 }
1190
1191 /* Ensure HW is awake when we try to shut it down. */
1192 ath9k_ps_wakeup(sc);
1193
1092 ath9k_btcoex_timer_resume(sc);
1093 }
1094
1095 if (ah->caps.pcie_lcr_extsync_en && common->bus_ops->extn_synch_en)
1096 common->bus_ops->extn_synch_en(common);
1097
1098mutex_unlock:
1099 mutex_unlock(&sc->mutex);

--- 86 unchanged lines hidden (view full) ---

1186 ath_dbg(common, ANY, "Device not present\n");
1187 mutex_unlock(&sc->mutex);
1188 return;
1189 }
1190
1191 /* Ensure HW is awake when we try to shut it down. */
1192 ath9k_ps_wakeup(sc);
1193
1194 if (ah->btcoex_hw.enabled) {
1194 if (ah->btcoex_hw.enabled &&
1195 ath9k_hw_get_btcoex_scheme(ah) != ATH_BTCOEX_CFG_NONE) {
1195 ath9k_hw_btcoex_disable(ah);
1196 ath9k_hw_btcoex_disable(ah);
1196 if (ah->btcoex_hw.scheme == ATH_BTCOEX_CFG_3WIRE)
1197 if (ath9k_hw_get_btcoex_scheme(ah) == ATH_BTCOEX_CFG_3WIRE)
1197 ath9k_btcoex_timer_pause(sc);
1198 ath_mci_flush_profile(&sc->btcoex.mci);
1199 }
1200
1201 spin_lock_bh(&sc->sc_pcu_lock);
1202
1203 /* prevent tasklets to enable interrupts once we disable them */
1204 ah->imask &= ~ATH9K_INT_GLOBAL;

--- 1257 unchanged lines hidden ---
1198 ath9k_btcoex_timer_pause(sc);
1199 ath_mci_flush_profile(&sc->btcoex.mci);
1200 }
1201
1202 spin_lock_bh(&sc->sc_pcu_lock);
1203
1204 /* prevent tasklets to enable interrupts once we disable them */
1205 ah->imask &= ~ATH9K_INT_GLOBAL;

--- 1257 unchanged lines hidden ---