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

Commit 3b51cc99 authored by John W. Linville's avatar John W. Linville
Browse files

Merge branch 'master' into for-davem

Conflicts:
	drivers/net/wireless/ath/ath9k/phy.c
	drivers/net/wireless/iwlwifi/iwl-6000.c
	drivers/net/wireless/iwlwifi/iwl-debugfs.c
parents c68ed255 67272440
Loading
Loading
Loading
Loading
+1 −84
Original line number Diff line number Diff line
@@ -210,90 +210,7 @@ config USB_NET_RNDIS_WLAN

	  If you choose to build a module, it'll be called rndis_wlan.

config RTL8180
	tristate "Realtek 8180/8185 PCI support"
	depends on MAC80211 && PCI && EXPERIMENTAL
	select EEPROM_93CX6
	---help---
	  This is a driver for RTL8180 and RTL8185 based cards.
	  These are PCI based chips found in cards such as:

	  (RTL8185 802.11g)
	  A-Link WL54PC

	  (RTL8180 802.11b)
	  Belkin F5D6020 v3
	  Belkin F5D6020 v3
	  Dlink DWL-610
	  Dlink DWL-510
	  Netgear MA521
	  Level-One WPC-0101
	  Acer Aspire 1357 LMi
	  VCTnet PC-11B1
	  Ovislink AirLive WL-1120PCM
	  Mentor WL-PCI
	  Linksys WPC11 v4
	  TrendNET TEW-288PI
	  D-Link DWL-520 Rev D
	  Repotec RP-WP7126
	  TP-Link TL-WN250/251
	  Zonet ZEW1000
	  Longshine LCS-8031-R
	  HomeLine HLW-PCC200
	  GigaFast WF721-AEX
	  Planet WL-3553
	  Encore ENLWI-PCI1-NT
	  TrendNET TEW-266PC
	  Gigabyte GN-WLMR101
	  Siemens-fujitsu Amilo D1840W
	  Edimax EW-7126
	  PheeNet WL-11PCIR
	  Tonze PC-2100T
	  Planet WL-8303
	  Dlink DWL-650 v M1
	  Edimax EW-7106
	  Q-Tec 770WC
	  Topcom Skyr@cer 4011b
	  Roper FreeLan 802.11b (edition 2004)
	  Wistron Neweb Corp CB-200B
	  Pentagram HorNET
	  QTec 775WC
	  TwinMOS Booming B Series
	  Micronet SP906BB
	  Sweex LC700010
	  Surecom EP-9428
	  Safecom SWLCR-1100

	  Thanks to Realtek for their support!

config RTL8187
	tristate "Realtek 8187 and 8187B USB support"
	depends on MAC80211 && USB
	select EEPROM_93CX6
	---help---
	  This is a driver for RTL8187 and RTL8187B based cards.
	  These are USB based chips found in devices such as:

	  Netgear WG111v2
	  Level 1 WNC-0301USB
	  Micronet SP907GK V5
	  Encore ENUWI-G2
	  Trendnet TEW-424UB
	  ASUS P5B Deluxe/P5K Premium motherboards
	  Toshiba Satellite Pro series of laptops
	  Asus Wireless Link
	  Linksys WUSB54GC-EU v2
	    (v1 = rt73usb; v3 is rt2070-based,
	     use staging/rt3070 or try rt2800usb)

	  Thanks to Realtek for their support!

# If possible, automatically enable LEDs for RTL8187.

config RTL8187_LEDS
	bool
	depends on RTL8187 && MAC80211_LEDS && (LEDS_CLASS = y || LEDS_CLASS = RTL8187)
	default y
source "drivers/net/wireless/rtl818x/Kconfig"

config ADM8211
	tristate "ADMtek ADM8211 support"
+13 −1
Original line number Diff line number Diff line
@@ -71,9 +71,21 @@ struct ath_regulatory {
	struct reg_dmn_pair_mapping *regpair;
};

/**
 * struct ath_ops - Register read/write operations
 *
 * @read: Register read
 * @write: Register write
 * @enable_write_buffer: Enable multiple register writes
 * @disable_write_buffer: Disable multiple register writes
 * @write_flush: Flush buffered register writes
 */
struct ath_ops {
	unsigned int (*read)(void *, u32 reg_offset);
	void (*write)(void *, u32 val, u32 reg_offset);
	void (*enable_write_buffer)(void *);
	void (*disable_write_buffer)(void *);
	void (*write_flush) (void *);
};

struct ath_common;
+19 −0
Original line number Diff line number Diff line
@@ -242,6 +242,8 @@ static int ath5k_set_key(struct ieee80211_hw *hw,
		struct ieee80211_key_conf *key);
static int ath5k_get_stats(struct ieee80211_hw *hw,
		struct ieee80211_low_level_stats *stats);
static int ath5k_get_survey(struct ieee80211_hw *hw,
		int idx, struct survey_info *survey);
static u64 ath5k_get_tsf(struct ieee80211_hw *hw);
static void ath5k_set_tsf(struct ieee80211_hw *hw, u64 tsf);
static void ath5k_reset_tsf(struct ieee80211_hw *hw);
@@ -267,6 +269,7 @@ static const struct ieee80211_ops ath5k_hw_ops = {
	.configure_filter = ath5k_configure_filter,
	.set_key 	= ath5k_set_key,
	.get_stats 	= ath5k_get_stats,
	.get_survey	= ath5k_get_survey,
	.conf_tx 	= NULL,
	.get_tsf 	= ath5k_get_tsf,
	.set_tsf 	= ath5k_set_tsf,
@@ -3292,6 +3295,22 @@ ath5k_get_stats(struct ieee80211_hw *hw,
	return 0;
}

static int ath5k_get_survey(struct ieee80211_hw *hw, int idx,
		struct survey_info *survey)
{
	struct ath5k_softc *sc = hw->priv;
	struct ieee80211_conf *conf = &hw->conf;

	 if (idx != 0)
		return -ENOENT;

	survey->channel = conf->channel;
	survey->filled = SURVEY_INFO_NOISE_DBM;
	survey->noise = sc->ah->ah_noise_floor;

	return 0;
}

static u64
ath5k_get_tsf(struct ieee80211_hw *hw)
{
+29 −2
Original line number Diff line number Diff line
@@ -496,6 +496,8 @@ void ath5k_hw_set_rx_filter(struct ath5k_hw *ah, u32 filter)
* Beacon control *
\****************/

#define ATH5K_MAX_TSF_READ 10

/**
 * ath5k_hw_get_tsf64 - Get the full 64bit TSF
 *
@@ -505,10 +507,35 @@ void ath5k_hw_set_rx_filter(struct ath5k_hw *ah, u32 filter)
 */
u64 ath5k_hw_get_tsf64(struct ath5k_hw *ah)
{
	u64 tsf = ath5k_hw_reg_read(ah, AR5K_TSF_U32);
	u32 tsf_lower, tsf_upper1, tsf_upper2;
	int i;

	/*
	 * While reading TSF upper and then lower part, the clock is still
	 * counting (or jumping in case of IBSS merge) so we might get
	 * inconsistent values. To avoid this, we read the upper part again
	 * and check it has not been changed. We make the hypothesis that a
	 * maximum of 3 changes can happens in a row (we use 10 as a safe
	 * value).
	 *
	 * Impact on performance is pretty small, since in most cases, only
	 * 3 register reads are needed.
	 */

	tsf_upper1 = ath5k_hw_reg_read(ah, AR5K_TSF_U32);
	for (i = 0; i < ATH5K_MAX_TSF_READ; i++) {
		tsf_lower = ath5k_hw_reg_read(ah, AR5K_TSF_L32);
		tsf_upper2 = ath5k_hw_reg_read(ah, AR5K_TSF_U32);
		if (tsf_upper2 == tsf_upper1)
			break;
		tsf_upper1 = tsf_upper2;
	}

	WARN_ON( i == ATH5K_MAX_TSF_READ );

	ATH5K_TRACE(ah->ah_sc);

	return ath5k_hw_reg_read(ah, AR5K_TSF_L32) | (tsf << 32);
	return (((u64)tsf_upper1 << 32) | tsf_lower);
}

/**
+13 −3
Original line number Diff line number Diff line
@@ -13,16 +13,26 @@ ath9k-$(CONFIG_ATH9K_DEBUGFS) += debug.o

obj-$(CONFIG_ATH9K) += ath9k.o

ath9k_hw-y:=	hw.o \
ath9k_hw-y:=	\
		ar9002_hw.o \
		ar9003_hw.o \
		hw.o \
		ar9003_phy.o \
		ar9002_phy.o \
		ar5008_phy.o \
		ar9002_calib.o \
		ar9003_calib.o \
		calib.o \
		eeprom.o \
		eeprom_def.o \
		eeprom_4k.o \
		eeprom_9287.o \
		calib.o \
		ani.o \
		phy.o \
		btcoex.o \
		mac.o \
		ar9002_mac.o \
		ar9003_mac.o \
		ar9003_eeprom.o

obj-$(CONFIG_ATH9K_HW) += ath9k_hw.o

Loading