* [PATCH v2 00/29] ath10k: mac80211 driver for Qualcomm Atheros 802.11ac CQA98xx devices
From: Kalle Valo @ 2013-06-01 11:24 UTC (permalink / raw)
To: linux-wireless; +Cc: ath10k-devel
Here's a new mac80211 driver for Qualcomm Atheros 802.11ac QCA98xx devices.
A major difference from ath9k is that there's now a firmware and that's why we
had to implement a new driver.
We received very little comments in the first review round. This is the second,
and hopefully the final, version of the driver for review. I'll first send the
driver in smaller patches, one file per patch, to make it easier to review. The
final version will be one big commit, which I'm planning to submit through
ath6kl.git together with ath6kl patches. And no need to panic, I will rename
the git tree to something better in the future :)
The firmware is temporarily available here:
https://github.com/kvalo/ath10k-firmware
This is the commit log I'll use with the big commit:
---------------------------------------------------------------------
ath10k: mac80211 driver for Qualcomm Atheros 802.11ac CQA98xx devices
Here's a new mac80211 driver for Qualcomm Atheros 802.11ac QCA98xx devices.
A major difference from ath9k is that there's now a firmware and
that's why we had to implement a new driver.
The wiki page for the driver is:
http://wireless.kernel.org/en/users/Drivers/ath10k
The driver has had many authors, they are listed here alphabetically:
Bartosz Markowski <bartosz.markowski@tieto.com>
Janusz Dziedzic <janusz.dziedzic@tieto.com>
Kalle Valo <kvalo@qca.qualcomm.com>
Marek Kwaczynski <marek.kwaczynski@tieto.com>
Marek Puzyniak <marek.puzyniak@tieto.com>
Michal Kazior <michal.kazior@tieto.com>
Sujith Manoharan <c_manoha@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
---------------------------------------------------------------------
And these are the changes from v1:
Kalle Valo (6):
ath10k: set vht_nss correctly
ath10k: change chan_to_phymode() use chandef
ath10k: remove band_center_freq()
ath10k: include all management frames to ATH10K_DBG_BEACON
ath10k: add ATH10K_DBG_DATA
ath10k: preliminary VHT support
Michal Kazior (14):
ath10k: remove CTRY_DEFAULT assignment
ath10k: remove static mac address mask
ath10k: remove unnecessary include
ath10k: program FW with appropriate regdomain
ath10k: fix hw scan cancelling
ath10k: sync WMI interface to FW 636
ath10k: change errno if we run out of msdu_ids
ath10k: ath10k_htc_prepare_tx_skb() never fails
ath10k: add lockdep asserts to htc skb dequeuing
ath10k: simplify htc flow control
ath10k: remove unused queue limit
ath10k: introduce proper htt tx flow control
ath10k: detect htt pending tx limit at runtime
ath10k: fix sparse warning
The actual commits are available from ath10k.git:
https://github.com/kvalo/ath10k
Please review and comment. I'm hoping to get this driver to 3.11.
---
Kalle Valo (29):
ath10k: add bmi.c
ath10k: add bmi.h
ath10k: add ce.c
ath10k: add ce.h
ath10k: add core.c
ath10k: add core.h
ath10k: add debug.c
ath10k: add debug.h
ath10k: add hif.h
ath10k: add htc.c
ath10k: add htc.h
ath10k: add htt.c
ath10k: add htt.h
ath10k: add htt_rx.c
ath10k: add htt_tx.c
ath10k: add hw.h
ath10k: add mac.c
ath10k: add mac.h
ath10k: add pci.c
ath10k: add pci.h
ath10k: add rx_desc.h
ath10k: add targaddrs.h
ath10k: add trace.c
ath10k: add trace.h
ath10k: add txrx.c
ath10k: add txrx.h
ath10k: add wmi.c
ath10k: add wmi.h
ath10k: add Kconfig and Makefile
drivers/net/wireless/ath/ath10k/Kconfig | 39
drivers/net/wireless/ath/ath10k/Makefile | 20
drivers/net/wireless/ath/ath10k/bmi.c | 295 +++
drivers/net/wireless/ath/ath10k/bmi.h | 224 ++
drivers/net/wireless/ath/ath10k/ce.c | 1189 ++++++++++
drivers/net/wireless/ath/ath10k/ce.h | 516 +++++
drivers/net/wireless/ath/ath10k/core.c | 665 ++++++
drivers/net/wireless/ath/ath10k/core.h | 369 +++
drivers/net/wireless/ath/ath10k/debug.c | 503 ++++
drivers/net/wireless/ath/ath10k/debug.h | 90 +
drivers/net/wireless/ath/ath10k/hif.h | 137 +
drivers/net/wireless/ath/ath10k/htc.c | 1000 +++++++++
drivers/net/wireless/ath/ath10k/htc.h | 368 +++
drivers/net/wireless/ath/ath10k/htt.c | 152 +
drivers/net/wireless/ath/ath10k/htt.h | 1338 ++++++++++++
drivers/net/wireless/ath/ath10k/htt_rx.c | 1167 ++++++++++
drivers/net/wireless/ath/ath10k/htt_tx.c | 510 ++++
drivers/net/wireless/ath/ath10k/hw.h | 304 +++
drivers/net/wireless/ath/ath10k/mac.c | 3066 +++++++++++++++++++++++++++
drivers/net/wireless/ath/ath10k/mac.h | 61 +
drivers/net/wireless/ath/ath10k/pci.c | 2506 ++++++++++++++++++++++
drivers/net/wireless/ath/ath10k/pci.h | 355 +++
drivers/net/wireless/ath/ath10k/rx_desc.h | 990 +++++++++
drivers/net/wireless/ath/ath10k/targaddrs.h | 449 ++++
drivers/net/wireless/ath/ath10k/trace.c | 20
drivers/net/wireless/ath/ath10k/trace.h | 170 +
drivers/net/wireless/ath/ath10k/txrx.c | 417 ++++
drivers/net/wireless/ath/ath10k/txrx.h | 39
drivers/net/wireless/ath/ath10k/wmi.c | 2081 ++++++++++++++++++
drivers/net/wireless/ath/ath10k/wmi.h | 3052 +++++++++++++++++++++++++++
30 files changed, 22092 insertions(+)
create mode 100644 drivers/net/wireless/ath/ath10k/Kconfig
create mode 100644 drivers/net/wireless/ath/ath10k/Makefile
create mode 100644 drivers/net/wireless/ath/ath10k/bmi.c
create mode 100644 drivers/net/wireless/ath/ath10k/bmi.h
create mode 100644 drivers/net/wireless/ath/ath10k/ce.c
create mode 100644 drivers/net/wireless/ath/ath10k/ce.h
create mode 100644 drivers/net/wireless/ath/ath10k/core.c
create mode 100644 drivers/net/wireless/ath/ath10k/core.h
create mode 100644 drivers/net/wireless/ath/ath10k/debug.c
create mode 100644 drivers/net/wireless/ath/ath10k/debug.h
create mode 100644 drivers/net/wireless/ath/ath10k/hif.h
create mode 100644 drivers/net/wireless/ath/ath10k/htc.c
create mode 100644 drivers/net/wireless/ath/ath10k/htc.h
create mode 100644 drivers/net/wireless/ath/ath10k/htt.c
create mode 100644 drivers/net/wireless/ath/ath10k/htt.h
create mode 100644 drivers/net/wireless/ath/ath10k/htt_rx.c
create mode 100644 drivers/net/wireless/ath/ath10k/htt_tx.c
create mode 100644 drivers/net/wireless/ath/ath10k/hw.h
create mode 100644 drivers/net/wireless/ath/ath10k/mac.c
create mode 100644 drivers/net/wireless/ath/ath10k/mac.h
create mode 100644 drivers/net/wireless/ath/ath10k/pci.c
create mode 100644 drivers/net/wireless/ath/ath10k/pci.h
create mode 100644 drivers/net/wireless/ath/ath10k/rx_desc.h
create mode 100644 drivers/net/wireless/ath/ath10k/targaddrs.h
create mode 100644 drivers/net/wireless/ath/ath10k/trace.c
create mode 100644 drivers/net/wireless/ath/ath10k/trace.h
create mode 100644 drivers/net/wireless/ath/ath10k/txrx.c
create mode 100644 drivers/net/wireless/ath/ath10k/txrx.h
create mode 100644 drivers/net/wireless/ath/ath10k/wmi.c
create mode 100644 drivers/net/wireless/ath/ath10k/wmi.h
^ permalink raw reply
* BK, VI, VO tx queue stopped unexpectedly
From: Huawei Yang @ 2013-06-01 11:01 UTC (permalink / raw)
To: linux-wireless
Hi guys
I am writing a nl80211/cfg80211 driver for my wifi chip. I am testing my chip under the AP mode with hostapd. I use the kernel 3.0. I start the AP and check that all four tx queues are start, then I start a udp stream of BE from Ap to the station. After that I find other three tx queues stopped. I am sure that my driver dose not stop them. Is this a kernel machinesm ?
Thanks
^ permalink raw reply
* [PATCH] net: wireless: replace strict_strtoul() with kstrtoul()
From: Jingoo Han @ 2013-06-01 7:24 UTC (permalink / raw)
To: 'David S. Miller'
Cc: netdev, Jingoo Han, Luis R. Rodriguez, 'Jouni Malinen',
Vasanthakumar Thiagarajan, Senthil Balasubramanian,
John W. Linville, Stanislaw Gruszka, 'Larry Finger',
'Chaoming Li', linux-wireless
The usage of strict_strtoul() is not preferred, because
strict_strtoul() is obsolete. Thus, kstrtoul() should be
used.
Signed-off-by: Jingoo Han <jg1.han@samsung.com>
---
drivers/net/wireless/ath/ath9k/debug.c | 14 +++++++-------
drivers/net/wireless/ath/ath9k/dfs_debug.c | 2 +-
drivers/net/wireless/ath/ath9k/htc_drv_debug.c | 2 +-
drivers/net/wireless/iwlegacy/3945-mac.c | 2 +-
drivers/net/wireless/iwlegacy/4965-mac.c | 4 ++--
drivers/net/wireless/libertas/mesh.c | 2 +-
drivers/net/wireless/rtlwifi/base.c | 2 +-
7 files changed, 14 insertions(+), 14 deletions(-)
diff --git a/drivers/net/wireless/ath/ath9k/debug.c b/drivers/net/wireless/ath/ath9k/debug.c
index 53c0658..0399c897 100644
--- a/drivers/net/wireless/ath/ath9k/debug.c
+++ b/drivers/net/wireless/ath/ath9k/debug.c
@@ -69,7 +69,7 @@ static ssize_t write_file_debug(struct file *file, const char __user *user_buf,
return -EFAULT;
buf[len] = '\0';
- if (strict_strtoul(buf, 0, &mask))
+ if (kstrtoul(buf, 0, &mask))
return -EINVAL;
common->debug_mask = mask;
@@ -114,7 +114,7 @@ static ssize_t write_file_tx_chainmask(struct file *file, const char __user *use
return -EFAULT;
buf[len] = '\0';
- if (strict_strtoul(buf, 0, &mask))
+ if (kstrtoul(buf, 0, &mask))
return -EINVAL;
ah->txchainmask = mask;
@@ -157,7 +157,7 @@ static ssize_t write_file_rx_chainmask(struct file *file, const char __user *use
return -EFAULT;
buf[len] = '\0';
- if (strict_strtoul(buf, 0, &mask))
+ if (kstrtoul(buf, 0, &mask))
return -EINVAL;
ah->rxchainmask = mask;
@@ -200,7 +200,7 @@ static ssize_t write_file_disable_ani(struct file *file,
return -EFAULT;
buf[len] = '\0';
- if (strict_strtoul(buf, 0, &disable_ani))
+ if (kstrtoul(buf, 0, &disable_ani))
return -EINVAL;
common->disable_ani = !!disable_ani;
@@ -253,7 +253,7 @@ static ssize_t write_file_ant_diversity(struct file *file,
goto exit;
buf[len] = '\0';
- if (strict_strtoul(buf, 0, &antenna_diversity))
+ if (kstrtoul(buf, 0, &antenna_diversity))
return -EINVAL;
common->antenna_diversity = !!antenna_diversity;
@@ -1223,7 +1223,7 @@ static ssize_t write_file_regidx(struct file *file, const char __user *user_buf,
return -EFAULT;
buf[len] = '\0';
- if (strict_strtoul(buf, 0, ®idx))
+ if (kstrtoul(buf, 0, ®idx))
return -EINVAL;
sc->debug.regidx = regidx;
@@ -1268,7 +1268,7 @@ static ssize_t write_file_regval(struct file *file, const char __user *user_buf,
return -EFAULT;
buf[len] = '\0';
- if (strict_strtoul(buf, 0, ®val))
+ if (kstrtoul(buf, 0, ®val))
return -EINVAL;
ath9k_ps_wakeup(sc);
diff --git a/drivers/net/wireless/ath/ath9k/dfs_debug.c b/drivers/net/wireless/ath/ath9k/dfs_debug.c
index b7611b7..3c6e413 100644
--- a/drivers/net/wireless/ath/ath9k/dfs_debug.c
+++ b/drivers/net/wireless/ath/ath9k/dfs_debug.c
@@ -96,7 +96,7 @@ static ssize_t write_file_dfs(struct file *file, const char __user *user_buf,
return -EFAULT;
buf[len] = '\0';
- if (strict_strtoul(buf, 0, &val))
+ if (kstrtoul(buf, 0, &val))
return -EINVAL;
if (val == DFS_STATS_RESET_MAGIC)
diff --git a/drivers/net/wireless/ath/ath9k/htc_drv_debug.c b/drivers/net/wireless/ath/ath9k/htc_drv_debug.c
index 87110de5..d08ef24 100644
--- a/drivers/net/wireless/ath/ath9k/htc_drv_debug.c
+++ b/drivers/net/wireless/ath/ath9k/htc_drv_debug.c
@@ -471,7 +471,7 @@ static ssize_t write_file_debug(struct file *file, const char __user *user_buf,
return -EFAULT;
buf[len] = '\0';
- if (strict_strtoul(buf, 0, &mask))
+ if (kstrtoul(buf, 0, &mask))
return -EINVAL;
common->debug_mask = mask;
diff --git a/drivers/net/wireless/iwlegacy/3945-mac.c b/drivers/net/wireless/iwlegacy/3945-mac.c
index b37a582..dce5e8f 100644
--- a/drivers/net/wireless/iwlegacy/3945-mac.c
+++ b/drivers/net/wireless/iwlegacy/3945-mac.c
@@ -3119,7 +3119,7 @@ il3945_store_debug_level(struct device *d, struct device_attribute *attr,
unsigned long val;
int ret;
- ret = strict_strtoul(buf, 0, &val);
+ ret = kstrtoul(buf, 0, &val);
if (ret)
IL_INFO("%s is not in hex or decimal form.\n", buf);
else
diff --git a/drivers/net/wireless/iwlegacy/4965-mac.c b/drivers/net/wireless/iwlegacy/4965-mac.c
index 9a95045..3c4899b 100644
--- a/drivers/net/wireless/iwlegacy/4965-mac.c
+++ b/drivers/net/wireless/iwlegacy/4965-mac.c
@@ -4567,7 +4567,7 @@ il4965_store_debug_level(struct device *d, struct device_attribute *attr,
unsigned long val;
int ret;
- ret = strict_strtoul(buf, 0, &val);
+ ret = kstrtoul(buf, 0, &val);
if (ret)
IL_ERR("%s is not in hex or decimal form.\n", buf);
else
@@ -4614,7 +4614,7 @@ il4965_store_tx_power(struct device *d, struct device_attribute *attr,
unsigned long val;
int ret;
- ret = strict_strtoul(buf, 10, &val);
+ ret = kstrtoul(buf, 10, &val);
if (ret)
IL_INFO("%s is not in decimal form.\n", buf);
else {
diff --git a/drivers/net/wireless/libertas/mesh.c b/drivers/net/wireless/libertas/mesh.c
index 3e81264..efae07e 100644
--- a/drivers/net/wireless/libertas/mesh.c
+++ b/drivers/net/wireless/libertas/mesh.c
@@ -240,7 +240,7 @@ static ssize_t lbs_prb_rsp_limit_set(struct device *dev,
memset(&mesh_access, 0, sizeof(mesh_access));
mesh_access.data[0] = cpu_to_le32(CMD_ACT_SET);
- if (!strict_strtoul(buf, 10, &retry_limit))
+ if (!kstrtoul(buf, 10, &retry_limit))
return -ENOTSUPP;
if (retry_limit > 15)
return -ENOTSUPP;
diff --git a/drivers/net/wireless/rtlwifi/base.c b/drivers/net/wireless/rtlwifi/base.c
index af59dd5..8053f77 100644
--- a/drivers/net/wireless/rtlwifi/base.c
+++ b/drivers/net/wireless/rtlwifi/base.c
@@ -1817,7 +1817,7 @@ static ssize_t rtl_store_debug_level(struct device *d,
unsigned long val;
int ret;
- ret = strict_strtoul(buf, 0, &val);
+ ret = kstrtoul(buf, 0, &val);
if (ret) {
printk(KERN_DEBUG "%s is not in hex or decimal form.\n", buf);
} else {
--
1.7.10.4
^ permalink raw reply related
* [PATCH] ath9k: Disable PowerSave by default
From: Sujith Manoharan @ 2013-06-01 1:38 UTC (permalink / raw)
To: John Linville; +Cc: linux-wireless, stable
From: Sujith Manoharan <c_manoha@qca.qualcomm.com>
Almost all the DMA issues which have plagued ath9k (in station mode)
for years are related to PS. Disabling PS usually "fixes" the user's
connection stablility. Reports of DMA problems are still trickling in
and are sitting in the kernel bugzilla. Until the PS code in ath9k is
given a thorough review, disbale it by default. The slight increase
in chip power consumption is a small price to pay for improved link
stability.
Cc: stable@vger.kernel.org
Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
---
drivers/net/wireless/ath/ath9k/init.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/drivers/net/wireless/ath/ath9k/init.c b/drivers/net/wireless/ath/ath9k/init.c
index f908dc1..9fc4d67 100644
--- a/drivers/net/wireless/ath/ath9k/init.c
+++ b/drivers/net/wireless/ath/ath9k/init.c
@@ -790,8 +790,7 @@ void ath9k_set_hw_capab(struct ath_softc *sc, struct ieee80211_hw *hw)
hw->wiphy->iface_combinations = if_comb;
hw->wiphy->n_iface_combinations = ARRAY_SIZE(if_comb);
- if (AR_SREV_5416(sc->sc_ah))
- hw->wiphy->flags &= ~WIPHY_FLAG_PS_ON_BY_DEFAULT;
+ hw->wiphy->flags &= ~WIPHY_FLAG_PS_ON_BY_DEFAULT;
hw->wiphy->flags |= WIPHY_FLAG_IBSS_RSN;
hw->wiphy->flags |= WIPHY_FLAG_SUPPORTS_TDLS;
--
1.8.3
^ permalink raw reply related
* [PATCH] mac80211: don't check local mesh TTL on TX
From: Thomas Pedersen @ 2013-06-01 0:41 UTC (permalink / raw)
To: Johannes Berg; +Cc: linux-wireless, open80211s, Thomas Pedersen
nl80211 has already verified the mesh TTL on setting the
mesh config, so no need to check it again in mac80211.
Signed-off-by: Thomas Pedersen <thomas@cozybit.com>
---
net/mac80211/tx.c | 6 ------
1 file changed, 6 deletions(-)
diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c
index 34be933..4105d0c 100644
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -1790,12 +1790,6 @@ netdev_tx_t ieee80211_subif_start_xmit(struct sk_buff *skb,
break;
#ifdef CONFIG_MAC80211_MESH
case NL80211_IFTYPE_MESH_POINT:
- if (!sdata->u.mesh.mshcfg.dot11MeshTTL) {
- /* Do not send frames with mesh_ttl == 0 */
- sdata->u.mesh.mshstats.dropped_frames_ttl++;
- goto fail_rcu;
- }
-
if (!is_multicast_ether_addr(skb->data)) {
struct sta_info *next_hop;
bool mpp_lookup = true;
--
1.7.10.4
^ permalink raw reply related
* Re: [PATCH] rtlwifi: initialize local array and set value.
From: Larry Finger @ 2013-05-31 22:08 UTC (permalink / raw)
To: Yunlian Jiang; +Cc: linux-wireless, chaoming_li, linville, davem
In-Reply-To: <1370036721-18164-1-git-send-email-yunlian@google.com>
On 05/31/2013 04:45 PM, Yunlian Jiang wrote:
> GCC 4.8 is spitting out uninitialized-variable warnings against
> "drivers/net/wireless/rtlwifi/rtl8192de/dm.c".
>
> drivers/net/wireless/rtlwifi/rtl8192de/dm.c:941:31:
> error: 'ofdm_index_old[1]' may be used uninitialized in this
> function [-Werror=maybe-uninitialized]
> rtlpriv->dm.ofdm_index[i] = ofdm_index_old[i];
>
> This patch adds initialization to the variable and properly sets its value.
> ---
> drivers/net/wireless/rtlwifi/rtl8192de/dm.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
I thought this had already been fixed, but apparently not.
Acked-by: Larry Finger <Larry.Finger@lwfinger.net>
Thanks,
Larry
>
> diff --git a/drivers/net/wireless/rtlwifi/rtl8192de/dm.c b/drivers/net/wireless/rtlwifi/rtl8192de/dm.c
> index 19a7655..47875ba 100644
> --- a/drivers/net/wireless/rtlwifi/rtl8192de/dm.c
> +++ b/drivers/net/wireless/rtlwifi/rtl8192de/dm.c
> @@ -842,7 +842,7 @@ static void rtl92d_dm_txpower_tracking_callback_thermalmeter(
> long val_y, ele_c = 0;
> u8 ofdm_index[2];
> s8 cck_index = 0;
> - u8 ofdm_index_old[2];
> + u8 ofdm_index_old[2] = {0, 0};
> s8 cck_index_old = 0;
> u8 index;
> int i;
>
^ permalink raw reply
* [PATCH] rtlwifi: initialize local array and set value.
From: Yunlian Jiang @ 2013-05-31 21:45 UTC (permalink / raw)
To: linux-wireless; +Cc: Larry.Finger, chaoming_li, linville, davem, yunlian
GCC 4.8 is spitting out uninitialized-variable warnings against
"drivers/net/wireless/rtlwifi/rtl8192de/dm.c".
drivers/net/wireless/rtlwifi/rtl8192de/dm.c:941:31:
error: 'ofdm_index_old[1]' may be used uninitialized in this
function [-Werror=maybe-uninitialized]
rtlpriv->dm.ofdm_index[i] = ofdm_index_old[i];
This patch adds initialization to the variable and properly sets its value.
---
drivers/net/wireless/rtlwifi/rtl8192de/dm.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/wireless/rtlwifi/rtl8192de/dm.c b/drivers/net/wireless/rtlwifi/rtl8192de/dm.c
index 19a7655..47875ba 100644
--- a/drivers/net/wireless/rtlwifi/rtl8192de/dm.c
+++ b/drivers/net/wireless/rtlwifi/rtl8192de/dm.c
@@ -842,7 +842,7 @@ static void rtl92d_dm_txpower_tracking_callback_thermalmeter(
long val_y, ele_c = 0;
u8 ofdm_index[2];
s8 cck_index = 0;
- u8 ofdm_index_old[2];
+ u8 ofdm_index_old[2] = {0, 0};
s8 cck_index_old = 0;
u8 index;
int i;
--
1.8.2.1
^ permalink raw reply related
* Re: Another try at getting pktgen to work with wifi.
From: Bob Copeland @ 2013-05-31 20:51 UTC (permalink / raw)
To: Ben Greear
Cc: Johannes Berg, Felix Fietkau, linux-wireless@vger.kernel.org,
netdev
In-Reply-To: <51A8F141.5050804@candelatech.com>
On Fri, May 31, 2013 at 11:51:45AM -0700, Ben Greear wrote:
> cfg80211_classify8021d uses it to determine the queue in if skb->priority is
> set to a special range (hard coded un-documented hack from hell, it appears).
>
> I didn't go looking to find out where those magic values might be set.
Actually, this hard coded hack from hell is documented :)
http://wireless.kernel.org/en/developers/Documentation/mac80211/queues?highlight=%28so_priority%29
--
Bob Copeland %% www.bobcopeland.com
^ permalink raw reply
* Re: Another try at getting pktgen to work with wifi.
From: Arend van Spriel @ 2013-05-31 19:09 UTC (permalink / raw)
To: Johannes Berg
Cc: Ben Greear, Felix Fietkau, linux-wireless@vger.kernel.org, netdev
In-Reply-To: <1370027655.14117.17.camel@jlt4.sipsolutions.net>
On 05/31/2013 09:14 PM, Johannes Berg wrote:
> On Fri, 2013-05-31 at 11:51 -0700, Ben Greear wrote:
>
>>> What I'm saying though is that I don't see where skb->priority is even
>>> _used_ in the wifi stack. I can see it getting set, but not used.
>>
>> ieee80211_downgrade_queue
>> wme_downgrade_ac // sort of
>> ieee80211_select_queue_80211 // sort of...seems twiddling skb->priority is more of a by-product here.
>>
>> cfg80211_classify8021d
>
> None of this actually matters, it's all within the select_queue() call
> so doesn't need to store it in the skb.
>
> I found it though -- the only thing that ever looks at it is
> ieee80211_set_qos_hdr() to set the QoS header TID, and presumably that's
> what ath9k complains about (hwsim is happy to just push packets.)
Sorry to chime in. The brcmfmac uses cfg80211_classify8021d() as well
(only when skb->priority equals zero) and puts the return value in
skb->priority. But also there it is not needed as a few lines below it
uses it to determine the WWM-AC fifo.
Regards,
Arend
^ permalink raw reply
* Re: Another try at getting pktgen to work with wifi.
From: Johannes Berg @ 2013-05-31 19:14 UTC (permalink / raw)
To: Ben Greear; +Cc: Felix Fietkau, linux-wireless@vger.kernel.org, netdev
In-Reply-To: <51A8F141.5050804@candelatech.com>
On Fri, 2013-05-31 at 11:51 -0700, Ben Greear wrote:
> > What I'm saying though is that I don't see where skb->priority is even
> > _used_ in the wifi stack. I can see it getting set, but not used.
>
> ieee80211_downgrade_queue
> wme_downgrade_ac // sort of
> ieee80211_select_queue_80211 // sort of...seems twiddling skb->priority is more of a by-product here.
>
> cfg80211_classify8021d
None of this actually matters, it's all within the select_queue() call
so doesn't need to store it in the skb.
I found it though -- the only thing that ever looks at it is
ieee80211_set_qos_hdr() to set the QoS header TID, and presumably that's
what ath9k complains about (hwsim is happy to just push packets.)
johannes
^ permalink raw reply
* Re: Another try at getting pktgen to work with wifi.
From: Ben Greear @ 2013-05-31 18:51 UTC (permalink / raw)
To: Johannes Berg; +Cc: Felix Fietkau, linux-wireless@vger.kernel.org, netdev
In-Reply-To: <1370025698.14117.15.camel@jlt4.sipsolutions.net>
On 05/31/2013 11:41 AM, Johannes Berg wrote:
> On Fri, 2013-05-31 at 11:00 -0700, Ben Greear wrote:
>
>> I think it might be more that the wifi stacks have some specific
>> assumptions about how skb->priority maps to queues and QoS. If
>> they get out of sync, then the TID mappings and so forth get
>> confused.
>
> What I'm saying though is that I don't see where skb->priority is even
> _used_ in the wifi stack. I can see it getting set, but not used.
ieee80211_downgrade_queue
wme_downgrade_ac // sort of
ieee80211_select_queue_80211 // sort of...seems twiddling skb->priority is more of a by-product here.
cfg80211_classify8021d
>>> Actually that makes it seem like something else should be doing packet
>>> classification, not mac80211 in select_queue()?
>>>
>>> Where is skb->priority actually really used in mac80211? I don't see
>>> much?
>>
>> There's a bit more in net/wireless/util.c, at least (cfg80211_classify8021d, for instance).
>
> But that's pretty much all assignments.
cfg80211_classify8021d uses it to determine the queue in if skb->priority is
set to a special range (hard coded un-documented hack from hell, it appears).
I didn't go looking to find out where those magic values might be set.
>> The mac80211/wme.c uses it. Some of this is called from the drivers
>> (line 1916 or so of ath9k/xmit.c).
>
> What's called there? I don't see any reason for that to use
> skb->priority?
Ok, I was confused about that..but that *is* the code that pukes if you
have have mis-matched queues like you get with pktgen in upstream kernels...
Thanks,
Ben
--
Ben Greear <greearb@candelatech.com>
Candela Technologies Inc http://www.candelatech.com
^ permalink raw reply
* Re: Another try at getting pktgen to work with wifi.
From: Johannes Berg @ 2013-05-31 18:41 UTC (permalink / raw)
To: Ben Greear; +Cc: Felix Fietkau, linux-wireless@vger.kernel.org, netdev
In-Reply-To: <51A8E53E.8030101@candelatech.com>
On Fri, 2013-05-31 at 11:00 -0700, Ben Greear wrote:
> I think it might be more that the wifi stacks have some specific
> assumptions about how skb->priority maps to queues and QoS. If
> they get out of sync, then the TID mappings and so forth get
> confused.
What I'm saying though is that I don't see where skb->priority is even
_used_ in the wifi stack. I can see it getting set, but not used.
> I actually don't know exactly why pktgen shows this problem,
> but it must be because it does direct calls to the hard_start_xmit
> method of the netdev when (most?) other paths do dev_queue_xmit
> or similar.
Other paths go through select_queue(), obviously.
> > Actually that makes it seem like something else should be doing packet
> > classification, not mac80211 in select_queue()?
> >
> > Where is skb->priority actually really used in mac80211? I don't see
> > much?
>
> There's a bit more in net/wireless/util.c, at least (cfg80211_classify8021d, for instance).
But that's pretty much all assignments.
> The mac80211/wme.c uses it. Some of this is called from the drivers
> (line 1916 or so of ath9k/xmit.c).
What's called there? I don't see any reason for that to use
skb->priority?
> It's all a bit convoluted in my opinion, but there may well
> be good reasons for it.
More likely legacy.
johannes
^ permalink raw reply
* Re: Another try at getting pktgen to work with wifi.
From: Ben Greear @ 2013-05-31 18:00 UTC (permalink / raw)
To: Johannes Berg; +Cc: Felix Fietkau, linux-wireless@vger.kernel.org, netdev
In-Reply-To: <1370021846.14117.13.camel@jlt4.sipsolutions.net>
On 05/31/2013 10:37 AM, Johannes Berg wrote:
> On Fri, 2013-05-31 at 10:21 -0700, Ben Greear wrote:
>
>> Before I go work on this, does anyone have any preference over
>> whether pktgen packets should obey the QoS or the xmit-queue?
>
> That's the core of the problem is that select_queue has the side effect
> of setting skb->priority in mac80211, no? Maybe that side effect needs
> to be removed?
I think it might be more that the wifi stacks have some specific
assumptions about how skb->priority maps to queues and QoS. If
they get out of sync, then the TID mappings and so forth get
confused.
I actually don't know exactly why pktgen shows this problem,
but it must be because it does direct calls to the hard_start_xmit
method of the netdev when (most?) other paths do dev_queue_xmit
or similar.
> Actually that makes it seem like something else should be doing packet
> classification, not mac80211 in select_queue()?
>
> Where is skb->priority actually really used in mac80211? I don't see
> much?
There's a bit more in net/wireless/util.c, at least (cfg80211_classify8021d, for instance).
The mac80211/wme.c uses it. Some of this is called from the drivers
(line 1916 or so of ath9k/xmit.c).
It's all a bit convoluted in my opinion, but there may well
be good reasons for it.
I think the network stack in general is not going to want
to bother with mapping QoS to xmit queues, so probably that
has to remain in the wifi stacks somewhere...
Thanks,
Ben
>
> johannes
>
--
Ben Greear <greearb@candelatech.com>
Candela Technologies Inc http://www.candelatech.com
^ permalink raw reply
* Re: Another try at getting pktgen to work with wifi.
From: Johannes Berg @ 2013-05-31 17:37 UTC (permalink / raw)
To: Ben Greear; +Cc: Felix Fietkau, linux-wireless@vger.kernel.org, netdev
In-Reply-To: <51A8DC1C.1040908@candelatech.com>
On Fri, 2013-05-31 at 10:21 -0700, Ben Greear wrote:
> Before I go work on this, does anyone have any preference over
> whether pktgen packets should obey the QoS or the xmit-queue?
That's the core of the problem is that select_queue has the side effect
of setting skb->priority in mac80211, no? Maybe that side effect needs
to be removed?
Actually that makes it seem like something else should be doing packet
classification, not mac80211 in select_queue()?
Where is skb->priority actually really used in mac80211? I don't see
much?
johannes
^ permalink raw reply
* Re: Another try at getting pktgen to work with wifi.
From: Ben Greear @ 2013-05-31 17:21 UTC (permalink / raw)
To: Felix Fietkau; +Cc: linux-wireless@vger.kernel.org, netdev
In-Reply-To: <51A857BF.7070008@openwrt.org>
On 05/31/2013 12:56 AM, Felix Fietkau wrote:
> On 2013-05-30 10:45 PM, Ben Greear wrote:
>> On 05/30/2013 01:02 PM, Felix Fietkau wrote:
>>> On 2013-05-30 8:45 PM, Ben Greear wrote:
>>>> I'm trying to come up with a more acceptable patch to the problem discussed a few years
>>>> ago:
>>>>
>>>> http://thread.gmane.org/gmane.linux.kernel.wireless.general/64582/focus=64626
>>>>
>>>> The patch below appears to work as expected. In pktgen, you just have to set
>>>> the QoS to whatever value matches the queue you need.
>>>>
>>>> This seem reasonable?
>>> Why do you adjust the queue mapping instead of the skb priority? In that
>>> other thread you mentioned that pktgen should be able to control the
>>> queue, yet here you're taking queue control away from it for tx on mac80211.
>>
>> I was having trouble getting it to work, but I was trying it at
>> a different place in the code when I was hacking on it...
>>
>> Do you think I'd just need to adjust skb->priority in the
>> same spot in the code, or is there more to it?
> I think that could work.
[added netdev to CC list]
Before I go work on this, does anyone have any preference over
whether pktgen packets should obey the QoS or the xmit-queue?
Currently, the kernel is effectively broken, and has been for years,
so probably no one has ever used pktgen with wifi devices.
As it turns out, mapping QoS appears to work best for my own needs,
but I can also try using the skb->priority as Felix suggests.
If no one cares, then I'd prefer to stick with the QoS method I posted
recently, and ignore the xmit-queue that pktgen might select.
Thanks,
Ben
>
> - Felix
>
--
Ben Greear <greearb@candelatech.com>
Candela Technologies Inc http://www.candelatech.com
^ permalink raw reply
* Re: [PATCH] mac80211: advertise userspace MPM only if mesh is supported
From: Johannes Berg @ 2013-05-31 15:35 UTC (permalink / raw)
To: linux-wireless; +Cc: thomas
In-Reply-To: <1370013191-25900-1-git-send-email-johannes@sipsolutions.net>
On Fri, 2013-05-31 at 17:13 +0200, Johannes Berg wrote:
> From: Johannes Berg <johannes.berg@intel.com>
>
> There's no danger in always advertising it, but it would
> look a bit inconsistent so don't do it unless supported.
Actually, this patch is pointless ... it'd _also_ have to check if the
driver supports mesh. I guess I'll just drop it completely.
johannes
^ permalink raw reply
* [PATCH] mac80211: advertise userspace MPM only if mesh is supported
From: Johannes Berg @ 2013-05-31 15:13 UTC (permalink / raw)
To: linux-wireless; +Cc: thomas, Johannes Berg
From: Johannes Berg <johannes.berg@intel.com>
There's no danger in always advertising it, but it would
look a bit inconsistent so don't do it unless supported.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
---
net/mac80211/main.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/net/mac80211/main.c b/net/mac80211/main.c
index 1998f14..810e20c 100644
--- a/net/mac80211/main.c
+++ b/net/mac80211/main.c
@@ -556,8 +556,10 @@ struct ieee80211_hw *ieee80211_alloc_hw(size_t priv_data_len,
wiphy->features |= NL80211_FEATURE_SK_TX_STATUS |
NL80211_FEATURE_SAE |
NL80211_FEATURE_HT_IBSS |
- NL80211_FEATURE_VIF_TXPOWER |
- NL80211_FEATURE_USERSPACE_MPM;
+ NL80211_FEATURE_VIF_TXPOWER;
+#ifdef CONFIG_MAC80211_MESH
+ wiphy->features |= NL80211_FEATURE_USERSPACE_MPM;
+#endif
if (!ops->hw_scan)
wiphy->features |= NL80211_FEATURE_LOW_PRIORITY_SCAN |
--
1.8.0
^ permalink raw reply related
* Re: cw1200 "sbus" conflicts with SPARC "sbus"
From: Solomon Peachy @ 2013-05-31 12:05 UTC (permalink / raw)
To: Geert Uytterhoeven; +Cc: John W. Linville, linux-wireless, netdev
In-Reply-To: <alpine.DEB.2.00.1305311127200.4645@ayla.of.borg>
[-- Attachment #1: Type: text/plain, Size: 926 bytes --]
On Fri, May 31, 2013 at 11:31:05AM +0200, Geert Uytterhoeven wrote:
>
> sparc64/allmodconfig:
>
> drivers/net/wireless/cw1200/hwio.c:51:21: error: macro "sbus_memcpy_fromio" passed 4 arguments, but takes just 3
> drivers/net/wireless/cw1200/hwio.c:66:19: error: macro "sbus_memcpy_toio" passed 4 arguments, but takes just 3
>
> http://kisskb.ellerman.id.au/kisskb/buildresult/8846508/
>
> At first I thought it was a bad/old implementation of a real SPARC sbus
> driver. but it seems the two sbusses are completely unrelated.
Yikes.
Would it be sufficient to just rename that pair of macros, or should I
go and rename entire cw1200's "bus" subsystem?
Either way, I'll add this to the to-do list for the weekend.
- Solomon
--
Solomon Peachy pizza at shaftnet dot org
Delray Beach, FL ^^ (mail/jabber) ^^
Quidquid latine dictum sit, altum viditur.
[-- Attachment #2: Type: application/pgp-signature, Size: 190 bytes --]
^ permalink raw reply
* Re: pull request: wireless 2013-05-29
From: David Miller @ 2013-05-31 9:39 UTC (permalink / raw)
To: linville; +Cc: linux-wireless, netdev, linux-kernel
In-Reply-To: <20130529152852.GA8770@tuxdriver.com>
From: "John W. Linville" <linville@tuxdriver.com>
Date: Wed, 29 May 2013 11:28:53 -0400
> Please pull this batch of fixes intended for the 3.10 stream...
Pulled, thanks John.
^ permalink raw reply
* cw1200 "sbus" conflicts with SPARC "sbus"
From: Geert Uytterhoeven @ 2013-05-31 9:31 UTC (permalink / raw)
To: Solomon Peachy; +Cc: John W. Linville, linux-wireless, netdev
sparc64/allmodconfig:
drivers/net/wireless/cw1200/hwio.c:51:21: error: macro "sbus_memcpy_fromio" passed 4 arguments, but takes just 3
drivers/net/wireless/cw1200/hwio.c:66:19: error: macro "sbus_memcpy_toio" passed 4 arguments, but takes just 3
http://kisskb.ellerman.id.au/kisskb/buildresult/8846508/
At first I thought it was a bad/old implementation of a real SPARC sbus
driver. but it seems the two sbusses are completely unrelated.
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
^ permalink raw reply
* Re: [PATCH] iwlwifi: fix chain noise calibration
From: Johannes Berg @ 2013-05-31 9:11 UTC (permalink / raw)
To: Nikolay Martynov; +Cc: wey-yi.w.guy, ilw, linux-wireless
In-Reply-To: <1369978152-506-1-git-send-email-mar.kolya@gmail.com>
T24gRnJpLCAyMDEzLTA1LTMxIGF0IDAxOjI5IC0wNDAwLCBOaWtvbGF5IE1hcnR5bm92IHdyb3Rl
Ogo+IEZpcnN0IHN0ZXAgb2YgY2hhaW4gbm9pc2UgY2FsaWJyYXRpb24gcHJvY2VzcyBoYWQgZGlz
YWJsZSBmbGFnIGNoZWNrIGludmVydGVkLgo+IENoYWluIG5vaXNlIGNhbGlicmF0aW9uIG5ldmVy
IHN0YXJ0ZWQgYmVjYXVzZSBvZiB0aGlzLgo+IAo+IFRlc3RlZCBvbiBpbnRlbCA1MzAwIHdpdGgg
dHdvIGFudGVubmFzIGF0dGFjaGVkLiBEcml2ZXIgY29ycmVjdGx5IGRpc2FibGVkIG9uZSBjaGFp
bi4KCkh1aCwgdGhpcyBidWcgbXVzdCBoYXZlIGJlZW4gdGhlcmUgZm9yIGEgbG9uZyB0aW1lIC4u
IHRoYW5rcywgYXBwbGllZCEKCmpvaGFubmVzCgpJbnRlbCBHbWJICkRvcm5hY2hlciBTdHJhc3Nl
IDEKODU2MjIgRmVsZGtpcmNoZW4vTXVlbmNoZW4sIERldXRzY2hsYW5kClNpdHogZGVyIEdlc2Vs
bHNjaGFmdDogRmVsZGtpcmNoZW4gYmVpIE11ZW5jaGVuCkdlc2NoYWVmdHNmdWVocmVyOiBDaHJp
c3RpYW4gTGFtcHJlY2h0ZXIsIEhhbm5lcyBTY2h3YWRlcmVyLCBEb3VnbGFzIEx1c2sKUmVnaXN0
ZXJnZXJpY2h0OiBNdWVuY2hlbiBIUkIgNDc0NTYKVXN0Li1JZE5yLi9WQVQgUmVnaXN0cmF0aW9u
IE5vLjogREUxMjkzODU4OTUKQ2l0aWJhbmsgRnJhbmtmdXJ0IGEuTS4gKEJMWiA1MDIgMTA5IDAw
KSA2MDAxMTkwNTIK
^ permalink raw reply
* Re: Another try at getting pktgen to work with wifi.
From: Felix Fietkau @ 2013-05-31 7:56 UTC (permalink / raw)
To: Ben Greear; +Cc: linux-wireless@vger.kernel.org
In-Reply-To: <51A7BA63.4080403@candelatech.com>
On 2013-05-30 10:45 PM, Ben Greear wrote:
> On 05/30/2013 01:02 PM, Felix Fietkau wrote:
>> On 2013-05-30 8:45 PM, Ben Greear wrote:
>>> I'm trying to come up with a more acceptable patch to the problem discussed a few years
>>> ago:
>>>
>>> http://thread.gmane.org/gmane.linux.kernel.wireless.general/64582/focus=64626
>>>
>>> The patch below appears to work as expected. In pktgen, you just have to set
>>> the QoS to whatever value matches the queue you need.
>>>
>>> This seem reasonable?
>> Why do you adjust the queue mapping instead of the skb priority? In that
>> other thread you mentioned that pktgen should be able to control the
>> queue, yet here you're taking queue control away from it for tx on mac80211.
>
> I was having trouble getting it to work, but I was trying it at
> a different place in the code when I was hacking on it...
>
> Do you think I'd just need to adjust skb->priority in the
> same spot in the code, or is there more to it?
I think that could work.
- Felix
^ permalink raw reply
* Re: [PATCH] net: wireless: iwlegacy: fix build error for il_pm_ops
From: Jingoo Han @ 2013-05-31 6:22 UTC (permalink / raw)
To: 'Yijing Wang', 'David S. Miller'
Cc: linux-kernel, 'Hanjun Guo', 'Jiang Liu',
'Stanislaw Gruszka', 'John W. Linville', netdev,
linux-wireless, Jingoo Han
In-Reply-To: <1369980332-1344-1-git-send-email-wangyijing@huawei.com>
On Friday, May 31, 2013 3:06 PM, Yijing Wang wrote:
>
> Fix build error for il_pm_ops if CONFIG_PM is set
> but CONFIG_PM_SLEEP is not set.
>
> ERROR: "il_pm_ops" [drivers/net/wireless/iwlegacy/iwl4965.ko] undefined!
> ERROR: "il_pm_ops" [drivers/net/wireless/iwlegacy/iwl3945.ko] undefined!
> make[1]: *** [__modpost] Error 1
> make: *** [modules] Error 2
>
> Signed-off-by: Yijing Wang <wangyijing@huawei.com>
> Cc: Stanislaw Gruszka <sgruszka@redhat.com>
> Cc: "John W. Linville" <linville@tuxdriver.com>
> Cc: netdev@vger.kernel.org
> Cc: linux-wireless@vger.kernel.org
> Cc: Jingoo Han <jg1.han@samsung.com>
It looks good.
As you did, 'struct dev_pm_ops il_pm_ops' should be protected
by CONFIG_PM_SLEEP.
Acked-by: Jingoo Han <jg1.han@samsung.com>
Best regards,
Jingoo Han
> ---
> drivers/net/wireless/iwlegacy/common.h | 6 +++---
> 1 files changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/net/wireless/iwlegacy/common.h b/drivers/net/wireless/iwlegacy/common.h
> index f8246f2..4caaf52 100644
> --- a/drivers/net/wireless/iwlegacy/common.h
> +++ b/drivers/net/wireless/iwlegacy/common.h
> @@ -1832,16 +1832,16 @@ u32 il_usecs_to_beacons(struct il_priv *il, u32 usec, u32 beacon_interval);
> __le32 il_add_beacon_time(struct il_priv *il, u32 base, u32 addon,
> u32 beacon_interval);
>
> -#ifdef CONFIG_PM
> +#ifdef CONFIG_PM_SLEEP
> extern const struct dev_pm_ops il_pm_ops;
>
> #define IL_LEGACY_PM_OPS (&il_pm_ops)
>
> -#else /* !CONFIG_PM */
> +#else /* !CONFIG_PM_SLEEP */
>
> #define IL_LEGACY_PM_OPS NULL
>
> -#endif /* !CONFIG_PM */
> +#endif /* !CONFIG_PM_SLEEP */
>
> /*****************************************************
> * Error Handling Debugging
> --
> 1.7.1
^ permalink raw reply
* [PATCH] net: wireless: iwlegacy: fix build error for il_pm_ops
From: Yijing Wang @ 2013-05-31 6:05 UTC (permalink / raw)
To: David S. Miller
Cc: linux-kernel, Hanjun Guo, Jiang Liu, Yijing Wang,
Stanislaw Gruszka, John W. Linville, netdev, linux-wireless,
Jingoo Han
Fix build error for il_pm_ops if CONFIG_PM is set
but CONFIG_PM_SLEEP is not set.
ERROR: "il_pm_ops" [drivers/net/wireless/iwlegacy/iwl4965.ko] undefined!
ERROR: "il_pm_ops" [drivers/net/wireless/iwlegacy/iwl3945.ko] undefined!
make[1]: *** [__modpost] Error 1
make: *** [modules] Error 2
Signed-off-by: Yijing Wang <wangyijing@huawei.com>
Cc: Stanislaw Gruszka <sgruszka@redhat.com>
Cc: "John W. Linville" <linville@tuxdriver.com>
Cc: netdev@vger.kernel.org
Cc: linux-wireless@vger.kernel.org
Cc: Jingoo Han <jg1.han@samsung.com>
---
drivers/net/wireless/iwlegacy/common.h | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/net/wireless/iwlegacy/common.h b/drivers/net/wireless/iwlegacy/common.h
index f8246f2..4caaf52 100644
--- a/drivers/net/wireless/iwlegacy/common.h
+++ b/drivers/net/wireless/iwlegacy/common.h
@@ -1832,16 +1832,16 @@ u32 il_usecs_to_beacons(struct il_priv *il, u32 usec, u32 beacon_interval);
__le32 il_add_beacon_time(struct il_priv *il, u32 base, u32 addon,
u32 beacon_interval);
-#ifdef CONFIG_PM
+#ifdef CONFIG_PM_SLEEP
extern const struct dev_pm_ops il_pm_ops;
#define IL_LEGACY_PM_OPS (&il_pm_ops)
-#else /* !CONFIG_PM */
+#else /* !CONFIG_PM_SLEEP */
#define IL_LEGACY_PM_OPS NULL
-#endif /* !CONFIG_PM */
+#endif /* !CONFIG_PM_SLEEP */
/*****************************************************
* Error Handling Debugging
--
1.7.1
^ permalink raw reply related
* [PATCH] iwlwifi: fix chain noise calibration
From: Nikolay Martynov @ 2013-05-31 5:29 UTC (permalink / raw)
To: johannes.berg, wey-yi.w.guy; +Cc: ilw, linux-wireless, Nikolay Martynov
First step of chain noise calibration process had disable flag check inverted.
Chain noise calibration never started because of this.
Tested on intel 5300 with two antennas attached. Driver correctly disabled one chain.
Signed-off-by: Nikolay Martynov <mar.kolya@gmail.com>
---
drivers/net/wireless/iwlwifi/dvm/rxon.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/wireless/iwlwifi/dvm/rxon.c b/drivers/net/wireless/iwlwifi/dvm/rxon.c
index 707446f..cd1ad001 100644
--- a/drivers/net/wireless/iwlwifi/dvm/rxon.c
+++ b/drivers/net/wireless/iwlwifi/dvm/rxon.c
@@ -1378,7 +1378,7 @@ static void iwlagn_chain_noise_reset(struct iwl_priv *priv)
struct iwl_chain_noise_data *data = &priv->chain_noise_data;
int ret;
- if (!(priv->calib_disabled & IWL_CHAIN_NOISE_CALIB_DISABLED))
+ if (priv->calib_disabled & IWL_CHAIN_NOISE_CALIB_DISABLED)
return;
if ((data->state == IWL_CHAIN_NOISE_ALIVE) &&
--
1.8.1.2
^ permalink raw reply related
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox