Changeset 30863


Ignore:
Timestamp:
2012-03-10T13:59:24+01:00 (6 years ago)
Author:
nbd
Message:

mac80211: reorganize patches, fold in patches that were merged upstream

Location:
trunk/package/mac80211/patches
Files:
6 deleted
5 edited
1 moved

Legend:

Unmodified
Added
Removed
  • trunk/package/mac80211/patches/300-pending_work.patch

    r30764 r30863  
    11--- a/drivers/net/wireless/ath/ath9k/ar9003_mac.c 
    22+++ b/drivers/net/wireless/ath/ath9k/ar9003_mac.c 
    3 @@ -510,7 +510,11 @@ int ath9k_hw_process_rxdesc_edma(struct  
     3@@ -326,7 +326,6 @@ static bool ar9003_hw_get_isr(struct ath 
     4 static int ar9003_hw_proc_txdesc(struct ath_hw *ah, void *ds, 
     5                                 struct ath_tx_status *ts) 
     6 { 
     7-       struct ar9003_txc *txc = (struct ar9003_txc *) ds; 
     8        struct ar9003_txs *ads; 
     9        u32 status; 
     10  
     11@@ -336,11 +335,7 @@ static int ar9003_hw_proc_txdesc(struct  
     12        if ((status & AR_TxDone) == 0) 
     13                return -EINPROGRESS; 
     14  
     15-       ts->qid = MS(ads->ds_info, AR_TxQcuNum); 
     16-       if (!txc || (MS(txc->info, AR_TxQcuNum) == ts->qid)) 
     17-               ah->ts_tail = (ah->ts_tail + 1) % ah->ts_size; 
     18-       else 
     19-               return -ENOENT; 
     20+       ah->ts_tail = (ah->ts_tail + 1) % ah->ts_size; 
     21  
     22        if ((MS(ads->ds_info, AR_DescId) != ATHEROS_VENDOR_ID) || 
     23            (MS(ads->ds_info, AR_TxRxDesc) != 1)) { 
     24@@ -354,6 +349,7 @@ static int ar9003_hw_proc_txdesc(struct  
     25        ts->ts_seqnum = MS(status, AR_SeqNum); 
     26        ts->tid = MS(status, AR_TxTid); 
     27  
     28+       ts->qid = MS(ads->ds_info, AR_TxQcuNum); 
     29        ts->desc_id = MS(ads->status1, AR_TxDescId); 
     30        ts->ts_tstamp = ads->status4; 
     31        ts->ts_status = 0; 
     32@@ -510,7 +506,11 @@ int ath9k_hw_process_rxdesc_edma(struct  
    433                 */ 
    534                if (rxsp->status11 & AR_CRCErr) 
     
    1443                        /* 
    1544                         * If we reach a point here where AR_PostDelimCRCErr is 
    16 @@ -532,11 +536,7 @@ int ath9k_hw_process_rxdesc_edma(struct  
     45@@ -532,11 +532,7 @@ int ath9k_hw_process_rxdesc_edma(struct  
    1746                                rxs->rs_status |= ATH9K_RXERR_PHY; 
    1847                                rxs->rs_phyerr = phyerr; 
     
    131160        IEEE80211_TX_CTL_STBC | IEEE80211_TX_STATUS_EOSP) 
    132161  
    133 @@ -1634,7 +1634,7 @@ void ieee80211_free_txskb(struct ieee802 
     162@@ -659,6 +659,8 @@ ieee80211_tx_info_clear_status(struct ie 
     163  * @RX_FLAG_HT: HT MCS was used and rate_idx is MCS index 
     164  * @RX_FLAG_40MHZ: HT40 (40 MHz) was used 
     165  * @RX_FLAG_SHORT_GI: Short guard interval was used 
     166+ * @RX_FLAG_NO_SIGNAL_VAL: The signal strength value is not present. 
     167+ *     Valid only for data frames (mainly A-MPDU) 
     168  */ 
     169 enum mac80211_rx_flags { 
     170        RX_FLAG_MMIC_ERROR      = 1<<0, 
     171@@ -672,6 +674,7 @@ enum mac80211_rx_flags { 
     172        RX_FLAG_HT              = 1<<9, 
     173        RX_FLAG_40MHZ           = 1<<10, 
     174        RX_FLAG_SHORT_GI        = 1<<11, 
     175+       RX_FLAG_NO_SIGNAL_VAL   = 1<<12, 
     176 }; 
     177  
     178 /** 
     179@@ -1634,7 +1637,7 @@ void ieee80211_free_txskb(struct ieee802 
    134180  * the station sends a PS-Poll or a uAPSD trigger frame, mac80211 
    135181  * will inform the driver of this with the @allow_buffered_frames 
     
    140186  * response to a PS-Poll) also has %IEEE80211_TX_STATUS_EOSP set to 
    141187  * indicate that it ends the service period; as this frame must have 
    142 @@ -1642,6 +1642,9 @@ void ieee80211_free_txskb(struct ieee802 
     188@@ -1642,6 +1645,9 @@ void ieee80211_free_txskb(struct ieee802 
    143189  * When TX status is reported for this frame, the service period is 
    144190  * marked has having ended and a new one can be started by the peer. 
     
    150196  * when there are frames queued for the station and it wakes up 
    151197  * or polls; the frames that are already queued could end up being 
    152 @@ -2140,7 +2143,7 @@ enum ieee80211_frame_release_type { 
     198@@ -2140,7 +2146,7 @@ enum ieee80211_frame_release_type { 
    153199  * @allow_buffered_frames: Prepare device to allow the given number of frames 
    154200  *     to go out to the given station. The frames will be sent by mac80211 
     
    338384--- a/net/mac80211/rx.c 
    339385+++ b/net/mac80211/rx.c 
    340 @@ -489,12 +489,12 @@ ieee80211_rx_mesh_check(struct ieee80211 
     386@@ -177,7 +177,8 @@ ieee80211_add_rx_radiotap_header(struct  
     387        pos += 2; 
     388  
     389        /* IEEE80211_RADIOTAP_DBM_ANTSIGNAL */ 
     390-       if (local->hw.flags & IEEE80211_HW_SIGNAL_DBM) { 
     391+       if (local->hw.flags & IEEE80211_HW_SIGNAL_DBM && 
     392+           !(status->flag & RX_FLAG_NO_SIGNAL_VAL)) { 
     393                *pos = status->signal; 
     394                rthdr->it_present |= 
     395                        cpu_to_le32(1 << IEEE80211_RADIOTAP_DBM_ANTSIGNAL); 
     396@@ -489,12 +490,12 @@ ieee80211_rx_mesh_check(struct ieee80211 
    341397                        if (ieee80211_has_tods(hdr->frame_control) || 
    342398                                !ieee80211_has_fromds(hdr->frame_control)) 
     
    353409                } 
    354410        } 
    355 @@ -2282,6 +2282,7 @@ ieee80211_rx_h_action(struct ieee80211_r 
     411@@ -1309,8 +1310,10 @@ ieee80211_rx_h_sta_process(struct ieee80 
     412  
     413        sta->rx_fragments++; 
     414        sta->rx_bytes += rx->skb->len; 
     415-       sta->last_signal = status->signal; 
     416-       ewma_add(&sta->avg_signal, -status->signal); 
     417+       if (!(status->flag & RX_FLAG_NO_SIGNAL_VAL)) { 
     418+               sta->last_signal = status->signal; 
     419+               ewma_add(&sta->avg_signal, -status->signal); 
     420+       } 
     421  
     422        /* 
     423         * Change STA power saving mode only at the end of a frame 
     424@@ -2282,6 +2285,7 @@ ieee80211_rx_h_action(struct ieee80211_r 
    356425                    sdata->vif.type != NL80211_IFTYPE_MESH_POINT && 
    357426                    sdata->vif.type != NL80211_IFTYPE_AP_VLAN && 
     
    361430                        break; 
    362431  
    363 @@ -2336,7 +2337,7 @@ ieee80211_rx_h_action(struct ieee80211_r 
     432@@ -2336,7 +2340,7 @@ ieee80211_rx_h_action(struct ieee80211_r 
    364433                        if (sdata->vif.type != NL80211_IFTYPE_STATION) 
    365434                                break; 
     
    370439  
    371440                        goto queue; 
    372 @@ -2492,14 +2493,15 @@ ieee80211_rx_h_mgmt(struct ieee80211_rx_ 
     441@@ -2492,14 +2496,15 @@ ieee80211_rx_h_mgmt(struct ieee80211_rx_ 
    373442  
    374443        if (!ieee80211_vif_is_mesh(&sdata->vif) && 
     
    388457        case cpu_to_le16(IEEE80211_STYPE_ASSOC_RESP): 
    389458        case cpu_to_le16(IEEE80211_STYPE_REASSOC_RESP): 
    390 @@ -2853,10 +2855,16 @@ static int prepare_for_handlers(struct i 
     459@@ -2853,10 +2858,16 @@ static int prepare_for_handlers(struct i 
    391460                } 
    392461                break; 
     
    11411210        tasklet_init(&sc->bcon_tasklet, ath_beacon_tasklet, 
    11421211                     (unsigned long)sc); 
     1212--- a/drivers/net/wireless/ath/ath9k/hw.c 
     1213+++ b/drivers/net/wireless/ath/ath9k/hw.c 
     1214@@ -1386,10 +1386,16 @@ static bool ath9k_hw_set_reset_reg(struc 
     1215 static bool ath9k_hw_chip_reset(struct ath_hw *ah, 
     1216                                struct ath9k_channel *chan) 
     1217 { 
     1218-       if (AR_SREV_9280(ah) && ah->eep_ops->get_eeprom(ah, EEP_OL_PWRCTRL)) { 
     1219-               if (!ath9k_hw_set_reset_reg(ah, ATH9K_RESET_POWER_ON)) 
     1220-                       return false; 
     1221-       } else if (!ath9k_hw_set_reset_reg(ah, ATH9K_RESET_WARM)) 
     1222+       int reset_type = ATH9K_RESET_WARM; 
     1223+ 
     1224+       if (AR_SREV_9280(ah)) { 
     1225+               if (ah->eep_ops->get_eeprom(ah, EEP_OL_PWRCTRL)) 
     1226+                       reset_type = ATH9K_RESET_POWER_ON; 
     1227+               else 
     1228+                       reset_type = ATH9K_RESET_COLD; 
     1229+       } 
     1230+ 
     1231+       if (!ath9k_hw_set_reset_reg(ah, reset_type)) 
     1232                return false; 
     1233  
     1234        if (!ath9k_hw_setpower(ah, ATH9K_PM_AWAKE)) 
     1235--- a/drivers/net/wireless/ath/ath5k/base.c 
     1236+++ b/drivers/net/wireless/ath/ath5k/base.c 
     1237@@ -2330,15 +2330,6 @@ ath5k_calibrate_work(struct work_struct  
     1238                                        "got new rfgain, resetting\n"); 
     1239                        ieee80211_queue_work(ah->hw, &ah->reset_work); 
     1240                } 
     1241- 
     1242-               /* TODO: On full calibration we should stop TX here, 
     1243-                * so that it doesn't interfere (mostly due to gain_f 
     1244-                * calibration that messes with tx packets -see phy.c). 
     1245-                * 
     1246-                * NOTE: Stopping the queues from above is not enough 
     1247-                * to stop TX but saves us from disconecting (at least 
     1248-                * we don't lose packets). */ 
     1249-               ieee80211_stop_queues(ah->hw); 
     1250        } else 
     1251                ah->ah_cal_mask |= AR5K_CALIBRATION_SHORT; 
     1252  
     1253@@ -2353,10 +2344,9 @@ ath5k_calibrate_work(struct work_struct  
     1254                                ah->curchan->center_freq)); 
     1255  
     1256        /* Clear calibration flags */ 
     1257-       if (ah->ah_cal_mask & AR5K_CALIBRATION_FULL) { 
     1258-               ieee80211_wake_queues(ah->hw); 
     1259+       if (ah->ah_cal_mask & AR5K_CALIBRATION_FULL) 
     1260                ah->ah_cal_mask &= ~AR5K_CALIBRATION_FULL; 
     1261-       } else if (ah->ah_cal_mask & AR5K_CALIBRATION_SHORT) 
     1262+       else if (ah->ah_cal_mask & AR5K_CALIBRATION_SHORT) 
     1263                ah->ah_cal_mask &= ~AR5K_CALIBRATION_SHORT; 
     1264 } 
     1265  
     1266--- a/drivers/net/wireless/ath/ath5k/phy.c 
     1267+++ b/drivers/net/wireless/ath/ath5k/phy.c 
     1268@@ -1871,31 +1871,15 @@ ath5k_hw_phy_calibrate(struct ath5k_hw * 
     1269                ret = 0; 
     1270        } 
     1271  
     1272-       /* On full calibration do an AGC calibration and 
     1273-        * request a PAPD probe for gainf calibration if 
     1274-        * needed */ 
     1275-       if (ah->ah_cal_mask & AR5K_CALIBRATION_FULL) { 
     1276+       /* On full calibration request a PAPD probe for 
     1277+        * gainf calibration if needed */ 
     1278+       if ((ah->ah_cal_mask & AR5K_CALIBRATION_FULL) && 
     1279+           (ah->ah_radio == AR5K_RF5111 || 
     1280+            ah->ah_radio == AR5K_RF5112) && 
     1281+           channel->hw_value != AR5K_MODE_11B) 
     1282+               ath5k_hw_request_rfgain_probe(ah); 
     1283  
     1284-               AR5K_REG_ENABLE_BITS(ah, AR5K_PHY_AGCCTL, 
     1285-                                       AR5K_PHY_AGCCTL_CAL); 
     1286- 
     1287-               ret = ath5k_hw_register_timeout(ah, AR5K_PHY_AGCCTL, 
     1288-                       AR5K_PHY_AGCCTL_CAL | AR5K_PHY_AGCCTL_NF, 
     1289-                       0, false); 
     1290-               if (ret) { 
     1291-                       ATH5K_ERR(ah, 
     1292-                               "gain calibration timeout (%uMHz)\n", 
     1293-                               channel->center_freq); 
     1294-               } 
     1295- 
     1296-               if ((ah->ah_radio == AR5K_RF5111 || 
     1297-                       ah->ah_radio == AR5K_RF5112) 
     1298-                       && (channel->hw_value != AR5K_MODE_11B)) 
     1299-                       ath5k_hw_request_rfgain_probe(ah); 
     1300-       } 
     1301- 
     1302-       /* Update noise floor 
     1303-        * XXX: Only do this after AGC calibration */ 
     1304+       /* Update noise floor */ 
     1305        if (!(ah->ah_cal_mask & AR5K_CALIBRATION_NF)) 
     1306                ath5k_hw_update_noise_floor(ah); 
     1307  
     1308--- a/drivers/net/wireless/ath/ath9k/recv.c 
     1309+++ b/drivers/net/wireless/ath/ath9k/recv.c 
     1310@@ -954,6 +954,7 @@ static void ath9k_process_rssi(struct at 
     1311        struct ath_softc *sc = hw->priv; 
     1312        struct ath_hw *ah = common->ah; 
     1313        int last_rssi; 
     1314+       int rssi = rx_stats->rs_rssi; 
     1315  
     1316        if (!rx_stats->is_mybeacon || 
     1317            ((ah->opmode != NL80211_IFTYPE_STATION) && 
     1318@@ -965,13 +966,12 @@ static void ath9k_process_rssi(struct at 
     1319  
     1320        last_rssi = sc->last_rssi; 
     1321        if (likely(last_rssi != ATH_RSSI_DUMMY_MARKER)) 
     1322-               rx_stats->rs_rssi = ATH_EP_RND(last_rssi, 
     1323-                                             ATH_RSSI_EP_MULTIPLIER); 
     1324-       if (rx_stats->rs_rssi < 0) 
     1325-               rx_stats->rs_rssi = 0; 
     1326+               rssi = ATH_EP_RND(last_rssi, ATH_RSSI_EP_MULTIPLIER); 
     1327+       if (rssi < 0) 
     1328+               rssi = 0; 
     1329  
     1330        /* Update Beacon RSSI, this is used by ANI. */ 
     1331-       ah->stats.avgbrssi = rx_stats->rs_rssi; 
     1332+       ah->stats.avgbrssi = rssi; 
     1333 } 
     1334  
     1335 /* 
     1336@@ -1011,6 +1011,8 @@ static int ath9k_rx_skb_preprocess(struc 
     1337        rx_status->signal = ah->noise + rx_stats->rs_rssi; 
     1338        rx_status->antenna = rx_stats->rs_antenna; 
     1339        rx_status->flag |= RX_FLAG_MACTIME_MPDU; 
     1340+       if (rx_stats->rs_moreaggr) 
     1341+               rx_status->flag |= RX_FLAG_NO_SIGNAL_VAL; 
     1342  
     1343        return 0; 
     1344 } 
     1345--- a/drivers/net/wireless/ath/ath9k/beacon.c 
     1346+++ b/drivers/net/wireless/ath/ath9k/beacon.c 
     1347@@ -91,7 +91,7 @@ static void ath_beacon_setup(struct ath_ 
     1348        info.txpower = MAX_RATE_POWER; 
     1349        info.keyix = ATH9K_TXKEYIX_INVALID; 
     1350        info.keytype = ATH9K_KEY_TYPE_CLEAR; 
     1351-       info.flags = ATH9K_TXDESC_NOACK; 
     1352+       info.flags = ATH9K_TXDESC_NOACK | ATH9K_TXDESC_INTREQ; 
     1353  
     1354        info.buf_addr[0] = bf->bf_buf_addr; 
     1355        info.buf_len[0] = roundup(skb->len, 4); 
     1356@@ -355,7 +355,6 @@ void ath_beacon_tasklet(unsigned long da 
     1357        struct ath_common *common = ath9k_hw_common(ah); 
     1358        struct ath_buf *bf = NULL; 
     1359        struct ieee80211_vif *vif; 
     1360-       struct ath_tx_status ts; 
     1361        bool edma = !!(ah->caps.hw_caps & ATH9K_HW_CAP_EDMA); 
     1362        int slot; 
     1363        u32 bfaddr, bc = 0; 
     1364@@ -462,11 +461,6 @@ void ath_beacon_tasklet(unsigned long da 
     1365                        ath9k_hw_txstart(ah, sc->beacon.beaconq); 
     1366  
     1367                sc->beacon.ast_be_xmit += bc;     /* XXX per-vif? */ 
     1368-               if (edma) { 
     1369-                       spin_lock_bh(&sc->sc_pcu_lock); 
     1370-                       ath9k_hw_txprocdesc(ah, bf->bf_desc, (void *)&ts); 
     1371-                       spin_unlock_bh(&sc->sc_pcu_lock); 
     1372-               } 
     1373        } 
     1374 } 
     1375  
     1376--- a/drivers/net/wireless/ath/ath9k/mac.c 
     1377+++ b/drivers/net/wireless/ath/ath9k/mac.c 
     1378@@ -745,7 +745,11 @@ int ath9k_hw_beaconq_setup(struct ath_hw 
     1379        qi.tqi_aifs = 1; 
     1380        qi.tqi_cwmin = 0; 
     1381        qi.tqi_cwmax = 0; 
     1382-       /* NB: don't enable any interrupts */ 
     1383+ 
     1384+       if (ah->caps.hw_caps & ATH9K_HW_CAP_EDMA) 
     1385+               qi.tqi_qflags = TXQ_FLAG_TXOKINT_ENABLE | 
     1386+                               TXQ_FLAG_TXERRINT_ENABLE; 
     1387+ 
     1388        return ath9k_hw_setuptxqueue(ah, ATH9K_TX_QUEUE_BEACON, &qi); 
     1389 } 
     1390 EXPORT_SYMBOL(ath9k_hw_beaconq_setup); 
     1391--- a/drivers/net/wireless/ath/ath9k/main.c 
     1392+++ b/drivers/net/wireless/ath/ath9k/main.c 
     1393@@ -2300,6 +2300,7 @@ static int ath9k_tx_last_beacon(struct i 
     1394        struct ath_vif *avp; 
     1395        struct ath_buf *bf; 
     1396        struct ath_tx_status ts; 
     1397+       bool edma = !!(ah->caps.hw_caps & ATH9K_HW_CAP_EDMA); 
     1398        int status; 
     1399  
     1400        vif = sc->beacon.bslot[0]; 
     1401@@ -2310,7 +2311,7 @@ static int ath9k_tx_last_beacon(struct i 
     1402        if (!avp->is_bslot_active) 
     1403                return 0; 
     1404  
     1405-       if (!sc->beacon.tx_processed) { 
     1406+       if (!sc->beacon.tx_processed && !edma) { 
     1407                tasklet_disable(&sc->bcon_tasklet); 
     1408  
     1409                bf = avp->av_bcbuf; 
     1410--- a/drivers/net/wireless/ath/ath9k/xmit.c 
     1411+++ b/drivers/net/wireless/ath/ath9k/xmit.c 
     1412@@ -2296,9 +2296,12 @@ void ath_tx_edma_tasklet(struct ath_soft 
     1413                        break; 
     1414                } 
     1415  
     1416-               /* Skip beacon completions */ 
     1417-               if (ts.qid == sc->beacon.beaconq) 
     1418+               /* Process beacon completions separately */ 
     1419+               if (ts.qid == sc->beacon.beaconq) { 
     1420+                       sc->beacon.tx_processed = true; 
     1421+                       sc->beacon.tx_last = !(ts.ts_status & ATH9K_TXERR_MASK); 
     1422                        continue; 
     1423+               } 
     1424  
     1425                txq = &sc->tx.txq[ts.qid]; 
     1426  
  • trunk/package/mac80211/patches/510-ath9k_intr_mitigation_tweak.patch

    r30746 r30863  
    11--- a/drivers/net/wireless/ath/ath9k/hw.c 
    22+++ b/drivers/net/wireless/ath/ath9k/hw.c 
    3 @@ -1745,8 +1745,8 @@ int ath9k_hw_reset(struct ath_hw *ah, st 
     3@@ -1751,8 +1751,8 @@ int ath9k_hw_reset(struct ath_hw *ah, st 
    44        REG_WRITE(ah, AR_OBS, 8); 
    55  
  • trunk/package/mac80211/patches/513-ath9k_channelbw_debugfs.patch

    r30764 r30863  
    129129--- a/drivers/net/wireless/ath/ath9k/hw.c 
    130130+++ b/drivers/net/wireless/ath/ath9k/hw.c 
    131 @@ -1570,6 +1570,10 @@ int ath9k_hw_reset(struct ath_hw *ah, st 
     131@@ -1576,6 +1576,10 @@ int ath9k_hw_reset(struct ath_hw *ah, st 
    132132            caldata->rtt_hist.num_readings) 
    133133                allow_fbs = true; 
  • trunk/package/mac80211/patches/530-mac80211_cur_txpower.patch

    r30742 r30863  
    11--- a/include/net/mac80211.h 
    22+++ b/include/net/mac80211.h 
    3 @@ -816,7 +816,7 @@ enum ieee80211_smps_mode { 
     3@@ -819,7 +819,7 @@ enum ieee80211_smps_mode { 
    44  */ 
    55 struct ieee80211_conf { 
  • trunk/package/mac80211/patches/551-ath9k_per_chain_signal_strength.patch

    r30764 r30863  
    11--- a/include/net/mac80211.h 
    22+++ b/include/net/mac80211.h 
    3 @@ -684,6 +684,9 @@ enum mac80211_rx_flags { 
     3@@ -687,6 +687,9 @@ enum mac80211_rx_flags { 
    44  * @mactime: value in microseconds of the 64-bit Time Synchronization Function 
    55  *     (TSF) timer when the first data symbol (MPDU) arrived at the hardware. 
     
    1111  * @signal: signal strength when receiving this frame, either in dBm, in dB or 
    1212  *     unspecified depending on the hardware capabilities flags 
    13 @@ -697,6 +700,10 @@ enum mac80211_rx_flags { 
     13@@ -700,6 +703,10 @@ enum mac80211_rx_flags { 
    1414 struct ieee80211_rx_status { 
    1515        u64 mactime; 
     
    3838--- a/net/mac80211/rx.c 
    3939+++ b/net/mac80211/rx.c 
    40 @@ -1270,6 +1270,7 @@ ieee80211_rx_h_sta_process(struct ieee80 
     40@@ -1271,6 +1271,7 @@ ieee80211_rx_h_sta_process(struct ieee80 
    4141        struct sk_buff *skb = rx->skb; 
    4242        struct ieee80211_rx_status *status = IEEE80211_SKB_RXCB(skb); 
     
    4646        if (!sta) 
    4747                return RX_CONTINUE; 
    48 @@ -1312,6 +1313,19 @@ ieee80211_rx_h_sta_process(struct ieee80 
    49         sta->last_signal = status->signal; 
    50         ewma_add(&sta->avg_signal, -status->signal); 
     48@@ -1315,6 +1316,19 @@ ieee80211_rx_h_sta_process(struct ieee80 
     49                ewma_add(&sta->avg_signal, -status->signal); 
     50        } 
    5151  
    5252+       if (status->chains) { 
     
    148148        memset(rx_status, 0, sizeof(struct ieee80211_rx_status)); 
    149149  
    150 @@ -1012,6 +1013,20 @@ static int ath9k_rx_skb_preprocess(struc 
    151         rx_status->antenna = rx_stats->rs_antenna; 
    152         rx_status->flag |= RX_FLAG_MACTIME_MPDU; 
     150@@ -1014,6 +1015,20 @@ static int ath9k_rx_skb_preprocess(struc 
     151        if (rx_stats->rs_moreaggr) 
     152                rx_status->flag |= RX_FLAG_NO_SIGNAL_VAL; 
    153153  
    154154+       for (i = 0, j = 0; i < ARRAY_SIZE(rx_stats->rs_rssi_ctl); i++) { 
     
    169169 } 
    170170  
    171 @@ -1542,14 +1557,14 @@ static void ath_ant_comb_scan(struct ath 
     171@@ -1544,14 +1559,14 @@ static void ath_ant_comb_scan(struct ath 
    172172        struct ath_ant_comb *antcomb = &sc->ant_comb; 
    173173        int alt_ratio = 0, alt_rssi_avg = 0, main_rssi_avg = 0, curr_alt_set; 
     
    190190--- a/drivers/net/wireless/ath/ath9k/ar9003_mac.c 
    191191+++ b/drivers/net/wireless/ath/ath9k/ar9003_mac.c 
    192 @@ -463,12 +463,12 @@ int ath9k_hw_process_rxdesc_edma(struct  
     192@@ -459,12 +459,12 @@ int ath9k_hw_process_rxdesc_edma(struct  
    193193  
    194194        /* XXX: Keycache */ 
Note: See TracChangeset for help on using the changeset viewer.