init.c (d2182b69dcb6a68b1ef6070b2efd094e13dea3f1) init.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

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

420}
421
422static int ath9k_init_btcoex(struct ath_softc *sc)
423{
424 struct ath_txq *txq;
425 struct ath_hw *ah = sc->sc_ah;
426 int r;
427
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

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

420}
421
422static int ath9k_init_btcoex(struct ath_softc *sc)
423{
424 struct ath_txq *txq;
425 struct ath_hw *ah = sc->sc_ah;
426 int r;
427
428 switch (sc->sc_ah->btcoex_hw.scheme) {
428 switch (ath9k_hw_get_btcoex_scheme(sc->sc_ah)) {
429 case ATH_BTCOEX_CFG_NONE:
430 break;
431 case ATH_BTCOEX_CFG_2WIRE:
432 ath9k_hw_btcoex_init_2wire(sc->sc_ah);
433 break;
434 case ATH_BTCOEX_CFG_3WIRE:
435 ath9k_hw_btcoex_init_3wire(sc->sc_ah);
436 r = ath_init_btcoex_timer(sc);

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

875
876 if (sc->sbands[IEEE80211_BAND_2GHZ].channels)
877 kfree(sc->sbands[IEEE80211_BAND_2GHZ].channels);
878
879 if (sc->sbands[IEEE80211_BAND_5GHZ].channels)
880 kfree(sc->sbands[IEEE80211_BAND_5GHZ].channels);
881
882 if ((sc->btcoex.no_stomp_timer) &&
429 case ATH_BTCOEX_CFG_NONE:
430 break;
431 case ATH_BTCOEX_CFG_2WIRE:
432 ath9k_hw_btcoex_init_2wire(sc->sc_ah);
433 break;
434 case ATH_BTCOEX_CFG_3WIRE:
435 ath9k_hw_btcoex_init_3wire(sc->sc_ah);
436 r = ath_init_btcoex_timer(sc);

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

875
876 if (sc->sbands[IEEE80211_BAND_2GHZ].channels)
877 kfree(sc->sbands[IEEE80211_BAND_2GHZ].channels);
878
879 if (sc->sbands[IEEE80211_BAND_5GHZ].channels)
880 kfree(sc->sbands[IEEE80211_BAND_5GHZ].channels);
881
882 if ((sc->btcoex.no_stomp_timer) &&
883 sc->sc_ah->btcoex_hw.scheme == ATH_BTCOEX_CFG_3WIRE)
883 ath9k_hw_get_btcoex_scheme(sc->sc_ah) == ATH_BTCOEX_CFG_3WIRE)
884 ath_gen_timer_free(sc->sc_ah, sc->btcoex.no_stomp_timer);
885
884 ath_gen_timer_free(sc->sc_ah, sc->btcoex.no_stomp_timer);
885
886 if (sc->sc_ah->btcoex_hw.scheme == ATH_BTCOEX_CFG_MCI)
886 if (ath9k_hw_get_btcoex_scheme(sc->sc_ah) == ATH_BTCOEX_CFG_MCI)
887 ath_mci_cleanup(sc);
888
889 for (i = 0; i < ATH9K_NUM_TX_QUEUES; i++)
890 if (ATH_TXQ_SETUP(sc, i))
891 ath_tx_cleanupq(sc, &sc->tx.txq[i]);
892
893 ath9k_hw_deinit(sc->sc_ah);
894

--- 86 unchanged lines hidden ---
887 ath_mci_cleanup(sc);
888
889 for (i = 0; i < ATH9K_NUM_TX_QUEUES; i++)
890 if (ATH_TXQ_SETUP(sc, i))
891 ath_tx_cleanupq(sc, &sc->tx.txq[i]);
892
893 ath9k_hw_deinit(sc->sc_ah);
894

--- 86 unchanged lines hidden ---