Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3f968de2 authored by David S. Miller's avatar David S. Miller
Browse files
parents 5ca1b998 d0bec342
Loading
Loading
Loading
Loading
+11 −3
Original line number Diff line number Diff line
@@ -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)"
@@ -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:
@@ -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
+4 −6
Original line number Diff line number Diff line
@@ -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)
@@ -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,
+7 −0
Original line number Diff line number Diff line
@@ -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,
+7 −5
Original line number Diff line number Diff line
@@ -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);
@@ -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;
@@ -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);
@@ -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);
}

+2 −1
Original line number Diff line number Diff line
@@ -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);
@@ -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