Loading drivers/net/wireless/Kconfig +11 −3 Original line number Diff line number Diff line Loading @@ -2,8 +2,17 @@ # Wireless LAN device configuration # menu "Wireless LAN" menuconfig WLAN bool "Wireless LAN" depends on !S390 ---help--- This section contains all the pre 802.11 and 802.11 wireless device drivers. For a complete list of drivers and documentation on them refer to the wireless wiki: http://wireless.kernel.org/en/users/Drivers if WLAN menuconfig WLAN_PRE80211 bool "Wireless LAN (pre-802.11)" Loading Loading @@ -337,7 +346,6 @@ config USB_NET_RNDIS_WLAN select USB_USBNET select USB_NET_CDCETHER select USB_NET_RNDIS_HOST select WIRELESS_EXT ---help--- This is a driver for wireless RNDIS devices. These are USB based adapters found in devices such as: Loading Loading @@ -506,4 +514,4 @@ source "drivers/net/wireless/orinoco/Kconfig" source "drivers/net/wireless/wl12xx/Kconfig" source "drivers/net/wireless/iwmc3200wifi/Kconfig" endmenu endif # WLAN drivers/net/wireless/ath/ath9k/btcoex.c +4 −6 Original line number Diff line number Diff line Loading @@ -84,15 +84,14 @@ static void ath_btcoex_period_timer(unsigned long data) { struct ath_softc *sc = (struct ath_softc *) data; struct ath_btcoex_info *btinfo = &sc->btcoex_info; unsigned long flags; ath_detect_bt_priority(sc); spin_lock_irqsave(&btinfo->btcoex_lock, flags); spin_lock_bh(&btinfo->btcoex_lock); ath_btcoex_bt_stomp(sc, btinfo, btinfo->bt_stomp_type); spin_unlock_irqrestore(&btinfo->btcoex_lock, flags); spin_unlock_bh(&btinfo->btcoex_lock); if (btinfo->btcoex_period != btinfo->btcoex_no_stomp) { if (btinfo->hw_timer_enabled) Loading @@ -119,18 +118,17 @@ static void ath_btcoex_no_stomp_timer(void *arg) { struct ath_softc *sc = (struct ath_softc *)arg; struct ath_btcoex_info *btinfo = &sc->btcoex_info; unsigned long flags; DPRINTF(sc, ATH_DBG_BTCOEX, "no stomp timer running \n"); spin_lock_irqsave(&btinfo->btcoex_lock, flags); spin_lock_bh(&btinfo->btcoex_lock); if (btinfo->bt_stomp_type == ATH_BTCOEX_STOMP_LOW) ath_btcoex_bt_stomp(sc, btinfo, ATH_BTCOEX_STOMP_NONE); else if (btinfo->bt_stomp_type == ATH_BTCOEX_STOMP_ALL) ath_btcoex_bt_stomp(sc, btinfo, ATH_BTCOEX_STOMP_LOW); spin_unlock_irqrestore(&btinfo->btcoex_lock, flags); spin_unlock_bh(&btinfo->btcoex_lock); } static int ath_init_btcoex_info(struct ath_hw *hw, Loading drivers/net/wireless/ath/ath9k/hw.c +7 −0 Original line number Diff line number Diff line Loading @@ -1712,8 +1712,15 @@ static bool ath9k_hw_set_reset_power_on(struct ath_hw *ah) REG_WRITE(ah, AR_RTC_FORCE_WAKE, AR_RTC_FORCE_WAKE_EN | AR_RTC_FORCE_WAKE_ON_INT); if (!AR_SREV_9100(ah)) REG_WRITE(ah, AR_RC, AR_RC_AHB); REG_WRITE(ah, AR_RTC_RESET, 0); udelay(2); if (!AR_SREV_9100(ah)) REG_WRITE(ah, AR_RC, 0); REG_WRITE(ah, AR_RTC_RESET, 1); if (!ath9k_hw_wait(ah, Loading drivers/net/wireless/ath/ath9k/main.c +7 −5 Original line number Diff line number Diff line Loading @@ -506,6 +506,10 @@ static void ath9k_tasklet(unsigned long data) sc->sc_flags |= SC_OP_WAIT_FOR_BEACON | SC_OP_BEACON_SYNC; } if (sc->btcoex_info.btcoex_scheme == ATH_BTCOEX_CFG_3WIRE) if (status & ATH9K_INT_GENTIMER) ath_gen_timer_isr(sc->sc_ah); /* re-enable hardware interrupt */ ath9k_hw_set_interrupts(sc->sc_ah, sc->imask); ath9k_ps_restore(sc); Loading @@ -521,7 +525,8 @@ irqreturn_t ath_isr(int irq, void *dev) ATH9K_INT_TX | \ ATH9K_INT_BMISS | \ ATH9K_INT_CST | \ ATH9K_INT_TSFOOR) ATH9K_INT_TSFOOR | \ ATH9K_INT_GENTIMER) struct ath_softc *sc = dev; struct ath_hw *ah = sc->sc_ah; Loading Loading @@ -602,10 +607,6 @@ irqreturn_t ath_isr(int irq, void *dev) sc->sc_flags |= SC_OP_WAIT_FOR_BEACON; } if (sc->btcoex_info.btcoex_scheme == ATH_BTCOEX_CFG_3WIRE) if (status & ATH9K_INT_GENTIMER) ath_gen_timer_isr(ah); chip_reset: ath_debug_stat_interrupt(sc, status); Loading Loading @@ -2772,6 +2773,7 @@ static void ath9k_sw_scan_complete(struct ieee80211_hw *hw) sc->sc_flags &= ~SC_OP_SCANNING; sc->sc_flags |= SC_OP_FULL_RESET; spin_unlock_bh(&sc->ani_lock); ath_beacon_config(sc, NULL); mutex_unlock(&sc->mutex); } Loading drivers/net/wireless/b43/main.c +2 −1 Original line number Diff line number Diff line Loading @@ -58,6 +58,7 @@ MODULE_DESCRIPTION("Broadcom B43 wireless driver"); MODULE_AUTHOR("Martin Langer"); MODULE_AUTHOR("Stefano Brivio"); MODULE_AUTHOR("Michael Buesch"); MODULE_AUTHOR("Gábor Stefanik"); MODULE_LICENSE("GPL"); MODULE_FIRMWARE(B43_SUPPORTED_FIRMWARE_ID); Loading Loading @@ -90,7 +91,7 @@ MODULE_PARM_DESC(qos, "Enable QOS support (default on)"); static int modparam_btcoex = 1; module_param_named(btcoex, modparam_btcoex, int, 0444); MODULE_PARM_DESC(btcoex, "Enable Bluetooth coexistance (default on)"); MODULE_PARM_DESC(btcoex, "Enable Bluetooth coexistence (default on)"); int b43_modparam_verbose = B43_VERBOSITY_DEFAULT; module_param_named(verbose, b43_modparam_verbose, int, 0644); Loading Loading
drivers/net/wireless/Kconfig +11 −3 Original line number Diff line number Diff line Loading @@ -2,8 +2,17 @@ # Wireless LAN device configuration # menu "Wireless LAN" menuconfig WLAN bool "Wireless LAN" depends on !S390 ---help--- This section contains all the pre 802.11 and 802.11 wireless device drivers. For a complete list of drivers and documentation on them refer to the wireless wiki: http://wireless.kernel.org/en/users/Drivers if WLAN menuconfig WLAN_PRE80211 bool "Wireless LAN (pre-802.11)" Loading Loading @@ -337,7 +346,6 @@ config USB_NET_RNDIS_WLAN select USB_USBNET select USB_NET_CDCETHER select USB_NET_RNDIS_HOST select WIRELESS_EXT ---help--- This is a driver for wireless RNDIS devices. These are USB based adapters found in devices such as: Loading Loading @@ -506,4 +514,4 @@ source "drivers/net/wireless/orinoco/Kconfig" source "drivers/net/wireless/wl12xx/Kconfig" source "drivers/net/wireless/iwmc3200wifi/Kconfig" endmenu endif # WLAN
drivers/net/wireless/ath/ath9k/btcoex.c +4 −6 Original line number Diff line number Diff line Loading @@ -84,15 +84,14 @@ static void ath_btcoex_period_timer(unsigned long data) { struct ath_softc *sc = (struct ath_softc *) data; struct ath_btcoex_info *btinfo = &sc->btcoex_info; unsigned long flags; ath_detect_bt_priority(sc); spin_lock_irqsave(&btinfo->btcoex_lock, flags); spin_lock_bh(&btinfo->btcoex_lock); ath_btcoex_bt_stomp(sc, btinfo, btinfo->bt_stomp_type); spin_unlock_irqrestore(&btinfo->btcoex_lock, flags); spin_unlock_bh(&btinfo->btcoex_lock); if (btinfo->btcoex_period != btinfo->btcoex_no_stomp) { if (btinfo->hw_timer_enabled) Loading @@ -119,18 +118,17 @@ static void ath_btcoex_no_stomp_timer(void *arg) { struct ath_softc *sc = (struct ath_softc *)arg; struct ath_btcoex_info *btinfo = &sc->btcoex_info; unsigned long flags; DPRINTF(sc, ATH_DBG_BTCOEX, "no stomp timer running \n"); spin_lock_irqsave(&btinfo->btcoex_lock, flags); spin_lock_bh(&btinfo->btcoex_lock); if (btinfo->bt_stomp_type == ATH_BTCOEX_STOMP_LOW) ath_btcoex_bt_stomp(sc, btinfo, ATH_BTCOEX_STOMP_NONE); else if (btinfo->bt_stomp_type == ATH_BTCOEX_STOMP_ALL) ath_btcoex_bt_stomp(sc, btinfo, ATH_BTCOEX_STOMP_LOW); spin_unlock_irqrestore(&btinfo->btcoex_lock, flags); spin_unlock_bh(&btinfo->btcoex_lock); } static int ath_init_btcoex_info(struct ath_hw *hw, Loading
drivers/net/wireless/ath/ath9k/hw.c +7 −0 Original line number Diff line number Diff line Loading @@ -1712,8 +1712,15 @@ static bool ath9k_hw_set_reset_power_on(struct ath_hw *ah) REG_WRITE(ah, AR_RTC_FORCE_WAKE, AR_RTC_FORCE_WAKE_EN | AR_RTC_FORCE_WAKE_ON_INT); if (!AR_SREV_9100(ah)) REG_WRITE(ah, AR_RC, AR_RC_AHB); REG_WRITE(ah, AR_RTC_RESET, 0); udelay(2); if (!AR_SREV_9100(ah)) REG_WRITE(ah, AR_RC, 0); REG_WRITE(ah, AR_RTC_RESET, 1); if (!ath9k_hw_wait(ah, Loading
drivers/net/wireless/ath/ath9k/main.c +7 −5 Original line number Diff line number Diff line Loading @@ -506,6 +506,10 @@ static void ath9k_tasklet(unsigned long data) sc->sc_flags |= SC_OP_WAIT_FOR_BEACON | SC_OP_BEACON_SYNC; } if (sc->btcoex_info.btcoex_scheme == ATH_BTCOEX_CFG_3WIRE) if (status & ATH9K_INT_GENTIMER) ath_gen_timer_isr(sc->sc_ah); /* re-enable hardware interrupt */ ath9k_hw_set_interrupts(sc->sc_ah, sc->imask); ath9k_ps_restore(sc); Loading @@ -521,7 +525,8 @@ irqreturn_t ath_isr(int irq, void *dev) ATH9K_INT_TX | \ ATH9K_INT_BMISS | \ ATH9K_INT_CST | \ ATH9K_INT_TSFOOR) ATH9K_INT_TSFOOR | \ ATH9K_INT_GENTIMER) struct ath_softc *sc = dev; struct ath_hw *ah = sc->sc_ah; Loading Loading @@ -602,10 +607,6 @@ irqreturn_t ath_isr(int irq, void *dev) sc->sc_flags |= SC_OP_WAIT_FOR_BEACON; } if (sc->btcoex_info.btcoex_scheme == ATH_BTCOEX_CFG_3WIRE) if (status & ATH9K_INT_GENTIMER) ath_gen_timer_isr(ah); chip_reset: ath_debug_stat_interrupt(sc, status); Loading Loading @@ -2772,6 +2773,7 @@ static void ath9k_sw_scan_complete(struct ieee80211_hw *hw) sc->sc_flags &= ~SC_OP_SCANNING; sc->sc_flags |= SC_OP_FULL_RESET; spin_unlock_bh(&sc->ani_lock); ath_beacon_config(sc, NULL); mutex_unlock(&sc->mutex); } Loading
drivers/net/wireless/b43/main.c +2 −1 Original line number Diff line number Diff line Loading @@ -58,6 +58,7 @@ MODULE_DESCRIPTION("Broadcom B43 wireless driver"); MODULE_AUTHOR("Martin Langer"); MODULE_AUTHOR("Stefano Brivio"); MODULE_AUTHOR("Michael Buesch"); MODULE_AUTHOR("Gábor Stefanik"); MODULE_LICENSE("GPL"); MODULE_FIRMWARE(B43_SUPPORTED_FIRMWARE_ID); Loading Loading @@ -90,7 +91,7 @@ MODULE_PARM_DESC(qos, "Enable QOS support (default on)"); static int modparam_btcoex = 1; module_param_named(btcoex, modparam_btcoex, int, 0444); MODULE_PARM_DESC(btcoex, "Enable Bluetooth coexistance (default on)"); MODULE_PARM_DESC(btcoex, "Enable Bluetooth coexistence (default on)"); int b43_modparam_verbose = B43_VERBOSITY_DEFAULT; module_param_named(verbose, b43_modparam_verbose, int, 0644); Loading