summaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/rtl818x/rtl8180_dev.c
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2010-07-23 14:03:38 -0700
committerDavid S. Miller <davem@davemloft.net>2010-07-23 14:03:38 -0700
commit2a88e7e559f2358f4e1422d0b0c0278a74136581 (patch)
treeb4e9e56dbde79fe7185cba511a1ffd85f5d2018e /drivers/net/wireless/rtl818x/rtl8180_dev.c
parent344e0f623cec5eba273db06fe57db080988d6b26 (diff)
parent7a17a33c0da37f8d24222c967550d19dabf13617 (diff)
downloadblackbird-op-linux-2a88e7e559f2358f4e1422d0b0c0278a74136581.tar.gz
blackbird-op-linux-2a88e7e559f2358f4e1422d0b0c0278a74136581.zip
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6
Conflicts: drivers/net/wireless/iwlwifi/iwl-commands.h
Diffstat (limited to 'drivers/net/wireless/rtl818x/rtl8180_dev.c')
-rw-r--r--drivers/net/wireless/rtl818x/rtl8180_dev.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/drivers/net/wireless/rtl818x/rtl8180_dev.c b/drivers/net/wireless/rtl818x/rtl8180_dev.c
index 42705028751d..31808f96a3d6 100644
--- a/drivers/net/wireless/rtl818x/rtl8180_dev.c
+++ b/drivers/net/wireless/rtl818x/rtl8180_dev.c
@@ -103,6 +103,7 @@ static void rtl8180_handle_rx(struct ieee80211_hw *dev)
{
struct rtl8180_priv *priv = dev->priv;
unsigned int count = 32;
+ u8 signal;
while (count--) {
struct rtl8180_rx_desc *entry = &priv->rx_ring[priv->rx_idx];
@@ -130,10 +131,14 @@ static void rtl8180_handle_rx(struct ieee80211_hw *dev)
skb_put(skb, flags & 0xFFF);
rx_status.antenna = (flags2 >> 15) & 1;
- /* TODO: improve signal/rssi reporting */
- rx_status.signal = (flags2 >> 8) & 0x7F;
- /* XXX: is this correct? */
rx_status.rate_idx = (flags >> 20) & 0xF;
+ /* TODO: improve signal/rssi reporting for !rtl8185 */
+ signal = (flags2 >> 17) & 0x7F;
+ if (rx_status.rate_idx > 3)
+ signal = 90 - clamp_t(u8, signal, 25, 90);
+ else
+ signal = 95 - clamp_t(u8, signal, 30, 95);
+ rx_status.signal = signal;
rx_status.freq = dev->conf.channel->center_freq;
rx_status.band = dev->conf.channel->band;
rx_status.mactime = le64_to_cpu(entry->tsft);
OpenPOWER on IntegriCloud