Skip to content

Commit

Permalink
rtl8180: improve signal reporting for rtl8185 hardware
Browse files Browse the repository at this point in the history
The existing code seemed to be somewhat based on the datasheet, but
varied substantially from the vendor-provided driver.  This mirrors the
handling of the rtl8185 case from that driver, but still neglects the
specifics for the rtl8180 hardware.  Those details are a bit muddled...

Signed-off-by: John W. Linville <linville@tuxdriver.com>
  • Loading branch information
John W. Linville committed Jul 20, 2010
1 parent b603742 commit 8b74964
Showing 1 changed file with 8 additions and 3 deletions.
11 changes: 8 additions & 3 deletions drivers/net/wireless/rtl818x/rtl8180_dev.c
Original file line number Diff line number Diff line change
Expand Up @@ -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];
Expand Down Expand Up @@ -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);
Expand Down

0 comments on commit 8b74964

Please sign in to comment.