All of lore.kernel.org
 help / color / mirror / Atom feed
diff for duplicates of <20121117191244.GA18782@phenom>

diff --git a/a/1.txt b/N1/1.txt
index 763a31d..6e70c74 100644
--- a/a/1.txt
+++ b/N1/1.txt
@@ -37,3 +37,95 @@ elaborate that?
 
 Thanks for your help,
 Bernhard
+
+
+>From fc14c46ce75044485229be5bb12682a8fffcf178 Mon Sep 17 00:00:00 2001
+From: Bernhard Urban <lewurm@gmail.com>
+Date: Sat, 17 Nov 2012 00:22:16 +0100
+Subject: [PATCH] ath9k_htc: update RSSI values only when the device is
+ associated
+
+add an if-guard, otherwise iw(8) reports weird signal strengths.
+
+The behaviour was fine before this commit:
+7c277349ecbd66e19fad3d949fa6ef6c131a3b62
+This patch is therefore a partially revert of it.
+
+Tested with "TP-Link TL-WN722N"
+
+Thanks to indoo.rs http://indoo.rs/ for sponsoring
+
+Reported-by: Markus Krainz <markus@indoo.rs>
+Tested-by: Markus Krainz <markus@indoo.rs>
+Signed-off-by: Bernhard Urban <lewurm@gmail.com>
+---
+ drivers/net/wireless/ath/ath9k/htc.h          |    1 +
+ drivers/net/wireless/ath/ath9k/htc_drv_txrx.c |   29 +++++++++++++++----------
+ 2 files changed, 19 insertions(+), 11 deletions(-)
+
+diff --git a/drivers/net/wireless/ath/ath9k/htc.h b/drivers/net/wireless/ath/ath9k/htc.h
+index 936e920..00ebf1c 100644
+--- a/drivers/net/wireless/ath/ath9k/htc.h
++++ b/drivers/net/wireless/ath/ath9k/htc.h
+@@ -22,6 +22,7 @@
+ #include <linux/firmware.h>
+ #include <linux/skbuff.h>
+ #include <linux/netdevice.h>
++#include <linux/etherdevice.h>
+ #include <linux/leds.h>
+ #include <linux/slab.h>
+ #include <net/mac80211.h>
+diff --git a/drivers/net/wireless/ath/ath9k/htc_drv_txrx.c b/drivers/net/wireless/ath/ath9k/htc_drv_txrx.c
+index 47e61d0..8b4da3d 100644
+--- a/drivers/net/wireless/ath/ath9k/htc_drv_txrx.c
++++ b/drivers/net/wireless/ath/ath9k/htc_drv_txrx.c
+@@ -969,6 +969,7 @@ static bool ath9k_rx_prepare(struct ath9k_htc_priv *priv,
+ 	int hdrlen, padpos, padsize;
+ 	int last_rssi = ATH_RSSI_DUMMY_MARKER;
+ 	__le16 fc;
++	u8 is_mybeacon;
+ 
+ 	if (skb->len < HTC_RX_FRAME_HEADER_SIZE) {
+ 		ath_err(common, "Corrupted RX frame, dropping (len: %d)\n",
+@@ -1060,22 +1061,28 @@ static bool ath9k_rx_prepare(struct ath9k_htc_priv *priv,
+ 	ath9k_process_rate(hw, rx_status, rxbuf->rxstatus.rs_rate,
+ 			   rxbuf->rxstatus.rs_flags);
+ 
+-	if (rxbuf->rxstatus.rs_rssi != ATH9K_RSSI_BAD &&
+-	    !rxbuf->rxstatus.rs_moreaggr)
+-		ATH_RSSI_LPF(priv->rx.last_rssi,
+-			     rxbuf->rxstatus.rs_rssi);
++	is_mybeacon = ieee80211_is_beacon(fc) &&
++		!is_zero_ether_addr(common->curbssid) &&
++		ether_addr_equal(hdr->addr3, common->curbssid);
+ 
+-	last_rssi = priv->rx.last_rssi;
++	if (is_mybeacon && priv->ah->opmode == NL80211_IFTYPE_STATION) {
++		if (rxbuf->rxstatus.rs_rssi != ATH9K_RSSI_BAD &&
++		    !rxbuf->rxstatus.rs_moreaggr)
++			ATH_RSSI_LPF(priv->rx.last_rssi,
++				     rxbuf->rxstatus.rs_rssi);
+ 
+-	if (likely(last_rssi != ATH_RSSI_DUMMY_MARKER))
+-		rxbuf->rxstatus.rs_rssi = ATH_EP_RND(last_rssi,
+-						     ATH_RSSI_EP_MULTIPLIER);
++		last_rssi = priv->rx.last_rssi;
+ 
+-	if (rxbuf->rxstatus.rs_rssi < 0)
+-		rxbuf->rxstatus.rs_rssi = 0;
++		if (likely(last_rssi != ATH_RSSI_DUMMY_MARKER)) {
++			s8 rssi = ATH_EP_RND(last_rssi, ATH_RSSI_EP_MULTIPLIER);
++			rxbuf->rxstatus.rs_rssi = rssi;
++		}
++
++		if (rxbuf->rxstatus.rs_rssi < 0)
++			rxbuf->rxstatus.rs_rssi = 0;
+ 
+-	if (ieee80211_is_beacon(fc))
+ 		priv->ah->stats.avgbrssi = rxbuf->rxstatus.rs_rssi;
++	}
+ 
+ 	rx_status->mactime = be64_to_cpu(rxbuf->rxstatus.rs_tstamp);
+ 	rx_status->band = hw->conf.channel->band;
+-- 
+1.7.9.5
diff --git a/a/content_digest b/N1/content_digest
index 0f98dbb..7e7b0cc 100644
--- a/a/content_digest
+++ b/N1/content_digest
@@ -1,9 +1,16 @@
  "ref\01352480966-17462-1-git-send-email-lewurm@gmail.com\0"
  "ref\0509E1B47.3050107@openwrt.org\0"
  "From\0Bernhard Urban <lewurm@gmail.com>\0"
- "Subject\0[ath9k-devel] [PATCH] ath9k_htc: update RSSI values only when the device is associated\0"
+ "Subject\0Re: [PATCH] ath9k_htc: update RSSI values only when the device is associated\0"
  "Date\0Sat, 17 Nov 2012 20:12:44 +0100\0"
- "To\0ath9k-devel@lists.ath9k.org\0"
+ "To\0Felix Fietkau <nbd@openwrt.org>\0"
+ "Cc\0linux-wireless@vger.kernel.org"
+  ath9k-devel@lists.ath9k.org
+  c_manoha@qca.qualcomm.com
+  Sujith.Manoharan@atheros.com
+  linville@tuxdriver.com
+  markus@indoo.rs
+ " m.sujith@gmail.com\0"
  "\00:1\0"
  "b\0"
  "Thanks for the reviews!\n"
@@ -44,6 +51,98 @@
  "\n"
  "\n"
  "Thanks for your help,\n"
- Bernhard
+ "Bernhard\n"
+ "\n"
+ "\n"
+ ">From fc14c46ce75044485229be5bb12682a8fffcf178 Mon Sep 17 00:00:00 2001\n"
+ "From: Bernhard Urban <lewurm@gmail.com>\n"
+ "Date: Sat, 17 Nov 2012 00:22:16 +0100\n"
+ "Subject: [PATCH] ath9k_htc: update RSSI values only when the device is\n"
+ " associated\n"
+ "\n"
+ "add an if-guard, otherwise iw(8) reports weird signal strengths.\n"
+ "\n"
+ "The behaviour was fine before this commit:\n"
+ "7c277349ecbd66e19fad3d949fa6ef6c131a3b62\n"
+ "This patch is therefore a partially revert of it.\n"
+ "\n"
+ "Tested with \"TP-Link TL-WN722N\"\n"
+ "\n"
+ "Thanks to indoo.rs http://indoo.rs/ for sponsoring\n"
+ "\n"
+ "Reported-by: Markus Krainz <markus@indoo.rs>\n"
+ "Tested-by: Markus Krainz <markus@indoo.rs>\n"
+ "Signed-off-by: Bernhard Urban <lewurm@gmail.com>\n"
+ "---\n"
+ " drivers/net/wireless/ath/ath9k/htc.h          |    1 +\n"
+ " drivers/net/wireless/ath/ath9k/htc_drv_txrx.c |   29 +++++++++++++++----------\n"
+ " 2 files changed, 19 insertions(+), 11 deletions(-)\n"
+ "\n"
+ "diff --git a/drivers/net/wireless/ath/ath9k/htc.h b/drivers/net/wireless/ath/ath9k/htc.h\n"
+ "index 936e920..00ebf1c 100644\n"
+ "--- a/drivers/net/wireless/ath/ath9k/htc.h\n"
+ "+++ b/drivers/net/wireless/ath/ath9k/htc.h\n"
+ "@@ -22,6 +22,7 @@\n"
+ " #include <linux/firmware.h>\n"
+ " #include <linux/skbuff.h>\n"
+ " #include <linux/netdevice.h>\n"
+ "+#include <linux/etherdevice.h>\n"
+ " #include <linux/leds.h>\n"
+ " #include <linux/slab.h>\n"
+ " #include <net/mac80211.h>\n"
+ "diff --git a/drivers/net/wireless/ath/ath9k/htc_drv_txrx.c b/drivers/net/wireless/ath/ath9k/htc_drv_txrx.c\n"
+ "index 47e61d0..8b4da3d 100644\n"
+ "--- a/drivers/net/wireless/ath/ath9k/htc_drv_txrx.c\n"
+ "+++ b/drivers/net/wireless/ath/ath9k/htc_drv_txrx.c\n"
+ "@@ -969,6 +969,7 @@ static bool ath9k_rx_prepare(struct ath9k_htc_priv *priv,\n"
+ " \tint hdrlen, padpos, padsize;\n"
+ " \tint last_rssi = ATH_RSSI_DUMMY_MARKER;\n"
+ " \t__le16 fc;\n"
+ "+\tu8 is_mybeacon;\n"
+ " \n"
+ " \tif (skb->len < HTC_RX_FRAME_HEADER_SIZE) {\n"
+ " \t\tath_err(common, \"Corrupted RX frame, dropping (len: %d)\\n\",\n"
+ "@@ -1060,22 +1061,28 @@ static bool ath9k_rx_prepare(struct ath9k_htc_priv *priv,\n"
+ " \tath9k_process_rate(hw, rx_status, rxbuf->rxstatus.rs_rate,\n"
+ " \t\t\t   rxbuf->rxstatus.rs_flags);\n"
+ " \n"
+ "-\tif (rxbuf->rxstatus.rs_rssi != ATH9K_RSSI_BAD &&\n"
+ "-\t    !rxbuf->rxstatus.rs_moreaggr)\n"
+ "-\t\tATH_RSSI_LPF(priv->rx.last_rssi,\n"
+ "-\t\t\t     rxbuf->rxstatus.rs_rssi);\n"
+ "+\tis_mybeacon = ieee80211_is_beacon(fc) &&\n"
+ "+\t\t!is_zero_ether_addr(common->curbssid) &&\n"
+ "+\t\tether_addr_equal(hdr->addr3, common->curbssid);\n"
+ " \n"
+ "-\tlast_rssi = priv->rx.last_rssi;\n"
+ "+\tif (is_mybeacon && priv->ah->opmode == NL80211_IFTYPE_STATION) {\n"
+ "+\t\tif (rxbuf->rxstatus.rs_rssi != ATH9K_RSSI_BAD &&\n"
+ "+\t\t    !rxbuf->rxstatus.rs_moreaggr)\n"
+ "+\t\t\tATH_RSSI_LPF(priv->rx.last_rssi,\n"
+ "+\t\t\t\t     rxbuf->rxstatus.rs_rssi);\n"
+ " \n"
+ "-\tif (likely(last_rssi != ATH_RSSI_DUMMY_MARKER))\n"
+ "-\t\trxbuf->rxstatus.rs_rssi = ATH_EP_RND(last_rssi,\n"
+ "-\t\t\t\t\t\t     ATH_RSSI_EP_MULTIPLIER);\n"
+ "+\t\tlast_rssi = priv->rx.last_rssi;\n"
+ " \n"
+ "-\tif (rxbuf->rxstatus.rs_rssi < 0)\n"
+ "-\t\trxbuf->rxstatus.rs_rssi = 0;\n"
+ "+\t\tif (likely(last_rssi != ATH_RSSI_DUMMY_MARKER)) {\n"
+ "+\t\t\ts8 rssi = ATH_EP_RND(last_rssi, ATH_RSSI_EP_MULTIPLIER);\n"
+ "+\t\t\trxbuf->rxstatus.rs_rssi = rssi;\n"
+ "+\t\t}\n"
+ "+\n"
+ "+\t\tif (rxbuf->rxstatus.rs_rssi < 0)\n"
+ "+\t\t\trxbuf->rxstatus.rs_rssi = 0;\n"
+ " \n"
+ "-\tif (ieee80211_is_beacon(fc))\n"
+ " \t\tpriv->ah->stats.avgbrssi = rxbuf->rxstatus.rs_rssi;\n"
+ "+\t}\n"
+ " \n"
+ " \trx_status->mactime = be64_to_cpu(rxbuf->rxstatus.rs_tstamp);\n"
+ " \trx_status->band = hw->conf.channel->band;\n"
+ "-- \n"
+ 1.7.9.5
 
-e61bbfb7c2759a05858bc84a82af165e098f14bace4dca7b781b597a85de7b6d
+37657a07462099971a721fa63c5e45984486cd8fcfe48308592bb6a680a13298

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.