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.