[PATCH 1/1] UBUNTU: rt2x00: re-adjust wifi signal strength range
Colin King
colin.king at canonical.com
Fri Apr 9 09:14:57 UTC 2010
From: Colin Ian King <colin.king at canonical.com>
BugLink: https://bugs.launchpad.net/bugs/557239
The range of signal strength reported by rt2x00 is very narrow and
the base offset is too low. The original algorithm was based on a
mix of 20% from the RSSI, 40% from RX quality and 40% from TX
quality metrics.
For the rt73usb driver, the TX failure metric is a piece of fiction
and always returns success (unless there is a USB URB failure) so
this skews the TX quality metrics and hence skews the signal
strength result.
The original calculation is only really useful for a network
that you're already connected to. The reliance on RX and TX
quality metrics when not connected to a network skews the final
signal strength since the only valid metric (RSSI) is a minor
contributor to the final calculation.
A survey of most wifi drivers show that using just the RSSI is
a common method of producing a signal strength metric, so this
fix adjusts the wifi strength to be calculated just on RSSI.
This fix also adjusts the range of the DEFAULT_RSSI_OFFSET to
correctly reflect the absolute maximum range of the RSSI. The
original code was a little overzealous in providing enough
headroom.
Signed-off-by: Colin Ian King <colin.king at canonical.com>
---
.../drivers/net/wireless/rt2x00/rt2x00.h | 6 +++---
.../drivers/net/wireless/rt2x00/rt73usb.h | 2 +-
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/updates/compat-wireless-2.6/drivers/net/wireless/rt2x00/rt2x00.h b/updates/compat-wireless-2.6/drivers/net/wireless/rt2x00/rt2x00.h
index 311b8d0..97812c8 100644
--- a/updates/compat-wireless-2.6/drivers/net/wireless/rt2x00/rt2x00.h
+++ b/updates/compat-wireless-2.6/drivers/net/wireless/rt2x00/rt2x00.h
@@ -196,9 +196,9 @@ struct link_qual {
int tx_percentage;
int tx_success;
int tx_failed;
-#define WEIGHT_RSSI 20
-#define WEIGHT_RX 40
-#define WEIGHT_TX 40
+#define WEIGHT_RSSI 100
+#define WEIGHT_RX 0
+#define WEIGHT_TX 0
};
/*
diff --git a/updates/compat-wireless-2.6/drivers/net/wireless/rt2x00/rt73usb.h b/updates/compat-wireless-2.6/drivers/net/wireless/rt2x00/rt73usb.h
index 60f98be..97f9503 100644
--- a/updates/compat-wireless-2.6/drivers/net/wireless/rt2x00/rt73usb.h
+++ b/updates/compat-wireless-2.6/drivers/net/wireless/rt2x00/rt73usb.h
@@ -39,7 +39,7 @@
* Signal information.
* Defaul offset is required for RSSI <-> dBm conversion.
*/
-#define DEFAULT_RSSI_OFFSET 120
+#define DEFAULT_RSSI_OFFSET 104
/*
* Register layout information.
--
1.6.3.3
More information about the kernel-team
mailing list