From 32d2a1add67db7db70953eb48036e36e13d8b07f Mon Sep 17 00:00:00 2001 From: Andrew Miller Date: Wed, 14 Mar 2012 10:36:51 -0400 Subject: [PATCH] --- yaml --- r: 289245 b: refs/heads/master c: 7c26d76be7c33990c02991bff46289c4ded20f4f h: refs/heads/master i: 289243: 139cfe61f63cd78d55b008462869428b9a4b3604 v: v3 --- [refs] | 2 +- trunk/drivers/staging/rtl8187se/r8180_core.c | 50 +++++++++++--------- 2 files changed, 28 insertions(+), 24 deletions(-) diff --git a/[refs] b/[refs] index 68c9ae1d4efc..657c02e15b26 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 9948bc7e1d24b2eb15b19e288d6a89be458f3be7 +refs/heads/master: 7c26d76be7c33990c02991bff46289c4ded20f4f diff --git a/trunk/drivers/staging/rtl8187se/r8180_core.c b/trunk/drivers/staging/rtl8187se/r8180_core.c index 04c23919f4d6..e6e39c8e6ce9 100644 --- a/trunk/drivers/staging/rtl8187se/r8180_core.c +++ b/trunk/drivers/staging/rtl8187se/r8180_core.c @@ -1615,35 +1615,39 @@ void rtl8180_rx(struct net_device *dev) fc = le16_to_cpu(hdr->frame_ctl); type = WLAN_FC_GET_TYPE(fc); - if ((IEEE80211_FTYPE_CTL != type) && - (eqMacAddr(priv->ieee80211->current_network.bssid, (fc & IEEE80211_FCTL_TODS) ? hdr->addr1 : (fc & IEEE80211_FCTL_FROMDS) ? hdr->addr2 : hdr->addr3)) - && (!bHwError) && (!bCRC) && (!bICV)) { - /* Perform signal smoothing for dynamic - * mechanism on demand. This is different - * with PerformSignalSmoothing8185 in smoothing - * fomula. No dramatic adjustion is apply - * because dynamic mechanism need some degree - * of correctness. */ - PerformUndecoratedSignalSmoothing8185(priv, bCckRate); - - /* For good-looking singal strength. */ - SignalStrengthIndex = NetgearSignalStrengthTranslate( - priv->LastSignalStrengthInPercent, - priv->SignalStrength); - - priv->LastSignalStrengthInPercent = SignalStrengthIndex; - priv->Stats_SignalStrength = TranslateToDbm8185((u8)SignalStrengthIndex); + if (IEEE80211_FTYPE_CTL != type && + !bHwError && !bCRC && !bICV && + eqMacAddr(priv->ieee80211->current_network.bssid, + fc & IEEE80211_FCTL_TODS ? hdr->addr1 : + fc & IEEE80211_FCTL_FROMDS ? hdr->addr2 : + hdr->addr3)) { + + /* Perform signal smoothing for dynamic + * mechanism on demand. This is different + * with PerformSignalSmoothing8185 in smoothing + * fomula. No dramatic adjustion is apply + * because dynamic mechanism need some degree + * of correctness. */ + PerformUndecoratedSignalSmoothing8185(priv, bCckRate); + + /* For good-looking singal strength. */ + SignalStrengthIndex = NetgearSignalStrengthTranslate( + priv->LastSignalStrengthInPercent, + priv->SignalStrength); + + priv->LastSignalStrengthInPercent = SignalStrengthIndex; + priv->Stats_SignalStrength = TranslateToDbm8185((u8)SignalStrengthIndex); /* * We need more correct power of received packets and the "SignalStrength" of RxStats is beautified, * so we record the correct power here. */ - priv->Stats_SignalQuality = (long)(priv->Stats_SignalQuality * 5 + (long)priv->SignalQuality + 5) / 6; - priv->Stats_RecvSignalPower = (long)(priv->Stats_RecvSignalPower * 5 + priv->RecvSignalPower - 1) / 6; + priv->Stats_SignalQuality = (long)(priv->Stats_SignalQuality * 5 + (long)priv->SignalQuality + 5) / 6; + priv->Stats_RecvSignalPower = (long)(priv->Stats_RecvSignalPower * 5 + priv->RecvSignalPower - 1) / 6; /* Figure out which antenna that received the lasted packet. */ - priv->LastRxPktAntenna = Antenna ? 1 : 0; /* 0: aux, 1: main. */ - SwAntennaDiversityRxOk8185(dev, priv->SignalStrength); - } + priv->LastRxPktAntenna = Antenna ? 1 : 0; /* 0: aux, 1: main. */ + SwAntennaDiversityRxOk8185(dev, priv->SignalStrength); + } if (first) { if (!priv->rx_skb_complete) {