source: trunk/package/mac80211/patches/580-ath9k_remove_common_chainmask.patch @ 28137

Last change on this file since 28137 was 28137, checked in by nbd, 5 years ago

ath9k: merge a pending fix for 5 ghz rx latency

File size: 9.1 KB
  • drivers/net/wireless/ath/ath.h

    a b struct ath_common { 
    140140        u8 curbssid[ETH_ALEN]; 
    141141        u8 bssidmask[ETH_ALEN]; 
    142142 
    143         u8 tx_chainmask; 
    144         u8 rx_chainmask; 
    145  
    146143        u32 rx_bufsize; 
    147144 
    148145        u32 keymax; 
  • drivers/net/wireless/ath/ath9k/ar9003_paprd.c

    a b static int ar9003_get_training_power_5g( 
    113113        if (delta > scale) 
    114114                return -1; 
    115115 
    116         switch (get_streams(common->tx_chainmask)) { 
     116        switch (get_streams(ah->txchainmask)) { 
    117117        case 1: 
    118118                delta = 6; 
    119119                break; 
    static int ar9003_get_training_power_5g( 
    126126        default: 
    127127                delta = 0; 
    128128                ath_dbg(common, ATH_DBG_CALIBRATE, 
    129                 "Invalid tx-chainmask: %u\n", common->tx_chainmask); 
     129                "Invalid tx-chainmask: %u\n", ah->txchainmask); 
    130130        } 
    131131 
    132132        power += delta; 
  • drivers/net/wireless/ath/ath9k/main.c

    a b static void ath_paprd_activate(struct at 
    318318{ 
    319319        struct ath_hw *ah = sc->sc_ah; 
    320320        struct ath9k_hw_cal_data *caldata = ah->caldata; 
    321         struct ath_common *common = ath9k_hw_common(ah); 
    322321        int chain; 
    323322 
    324323        if (!caldata || !caldata->paprd_done) 
    static void ath_paprd_activate(struct at 
    327326        ath9k_ps_wakeup(sc); 
    328327        ar9003_paprd_enable(ah, false); 
    329328        for (chain = 0; chain < AR9300_MAX_CHAINS; chain++) { 
    330                 if (!(common->tx_chainmask & BIT(chain))) 
     329                if (!(ah->txchainmask & BIT(chain))) 
    331330                        continue; 
    332331 
    333332                ar9003_paprd_populate_single_table(ah, caldata, chain); 
    void ath_paprd_calibrate(struct work_str 
    414413        memcpy(hdr->addr3, hw->wiphy->perm_addr, ETH_ALEN); 
    415414 
    416415        for (chain = 0; chain < AR9300_MAX_CHAINS; chain++) { 
    417                 if (!(common->tx_chainmask & BIT(chain))) 
     416                if (!(ah->txchainmask & BIT(chain))) 
    418417                        continue; 
    419418 
    420419                chain_ok = 0; 
    void ath_ani_calibrate(unsigned long dat 
    535534        if (longcal || shortcal) { 
    536535                common->ani.caldone = 
    537536                        ath9k_hw_calibrate(ah, ah->curchan, 
    538                                                 common->rx_chainmask, longcal); 
     537                                                ah->rxchainmask, longcal); 
    539538        } 
    540539 
    541540        ath9k_ps_restore(sc); 
  • drivers/net/wireless/ath/ath9k/hw.c

    a b int ath9k_hw_reset(struct ath_hw *ah, st 
    14881488        u64 tsf = 0; 
    14891489        int i, r; 
    14901490 
    1491         ah->txchainmask = common->tx_chainmask; 
    1492         ah->rxchainmask = common->rx_chainmask; 
    1493  
    14941491        if (!ath9k_hw_setpower(ah, ATH9K_PM_AWAKE)) 
    14951492                return -EIO; 
    14961493 
    int ath9k_hw_fill_cap_info(struct ath_hw 
    21082105 
    21092106        pCap->tx_chainmask = fixup_chainmask(chip_chainmask, pCap->tx_chainmask); 
    21102107        pCap->rx_chainmask = fixup_chainmask(chip_chainmask, pCap->rx_chainmask); 
     2108        ah->txchainmask = pCap->tx_chainmask; 
     2109        ah->rxchainmask = pCap->rx_chainmask; 
    21112110 
    21122111        ah->misc_mode |= AR_PCU_MIC_NEW_LOC_ENA; 
    21132112 
  • drivers/net/wireless/ath/ath9k/xmit.c

    a b u8 ath_txchainmask_reduction(struct ath_ 
    16601660 
    16611661static void ath_buf_set_rate(struct ath_softc *sc, struct ath_buf *bf, int len) 
    16621662{ 
    1663         struct ath_common *common = ath9k_hw_common(sc->sc_ah); 
     1663        struct ath_hw *ah = sc->sc_ah; 
    16641664        struct ath9k_11n_rate_series series[4]; 
    16651665        struct sk_buff *skb; 
    16661666        struct ieee80211_tx_info *tx_info; 
    static void ath_buf_set_rate(struct ath_ 
    17201720                        /* MCS rates */ 
    17211721                        series[i].Rate = rix | 0x80; 
    17221722                        series[i].ChSel = ath_txchainmask_reduction(sc, 
    1723                                         common->tx_chainmask, series[i].Rate); 
     1723                                        ah->txchainmask, series[i].Rate); 
    17241724                        series[i].PktDuration = ath_pkt_duration(sc, rix, len, 
    17251725                                 is_40, is_sgi, is_sp); 
    17261726                        if (rix < 8 && (tx_info->flags & IEEE80211_TX_CTL_STBC)) 
    static void ath_buf_set_rate(struct ath_ 
    17451745                } 
    17461746 
    17471747                if (bf->bf_state.bfs_paprd) 
    1748                         series[i].ChSel = common->tx_chainmask; 
     1748                        series[i].ChSel = ah->txchainmask; 
    17491749                else 
    17501750                        series[i].ChSel = ath_txchainmask_reduction(sc, 
    1751                                         common->tx_chainmask, series[i].Rate); 
     1751                                        ah->txchainmask, series[i].Rate); 
    17521752 
    17531753                series[i].PktDuration = ath9k_hw_computetxtime(sc->sc_ah, 
    17541754                        phy, rate->bitrate * 100, len, rix, is_sp); 
  • drivers/net/wireless/ath/ath9k/beacon.c

    a b static void ath_beacon_setup(struct ath_ 
    107107        series[0].Tries = 1; 
    108108        series[0].Rate = rate; 
    109109        series[0].ChSel = ath_txchainmask_reduction(sc, 
    110                         common->tx_chainmask, series[0].Rate); 
     110                        ah->txchainmask, series[0].Rate); 
    111111        series[0].RateFlags = (ctsrate) ? ATH9K_RATESERIES_RTS_CTS : 0; 
    112112        ath9k_hw_set11n_ratescenario(ah, ds, ds, 0, ctsrate, ctsduration, 
    113113                                     series, 4, 0); 
  • drivers/net/wireless/ath/ath9k/debug.c

    a b static ssize_t read_file_tx_chainmask(st 
    9595                             size_t count, loff_t *ppos) 
    9696{ 
    9797        struct ath_softc *sc = file->private_data; 
    98         struct ath_common *common = ath9k_hw_common(sc->sc_ah); 
     98        struct ath_hw *ah = sc->sc_ah; 
    9999        char buf[32]; 
    100100        unsigned int len; 
    101101 
    102         len = sprintf(buf, "0x%08x\n", common->tx_chainmask); 
     102        len = sprintf(buf, "0x%08x\n", ah->txchainmask); 
    103103        return simple_read_from_buffer(user_buf, count, ppos, buf, len); 
    104104} 
    105105 
    static ssize_t write_file_tx_chainmask(s 
    107107                             size_t count, loff_t *ppos) 
    108108{ 
    109109        struct ath_softc *sc = file->private_data; 
    110         struct ath_common *common = ath9k_hw_common(sc->sc_ah); 
     110        struct ath_hw *ah = sc->sc_ah; 
    111111        unsigned long mask; 
    112112        char buf[32]; 
    113113        ssize_t len; 
    static ssize_t write_file_tx_chainmask(s 
    120120        if (strict_strtoul(buf, 0, &mask)) 
    121121                return -EINVAL; 
    122122 
    123         common->tx_chainmask = mask; 
    124         sc->sc_ah->caps.tx_chainmask = mask; 
     123        ah->txchainmask = mask; 
     124        ah->caps.tx_chainmask = mask; 
    125125        return count; 
    126126} 
    127127 
    static ssize_t read_file_rx_chainmask(st 
    138138                             size_t count, loff_t *ppos) 
    139139{ 
    140140        struct ath_softc *sc = file->private_data; 
    141         struct ath_common *common = ath9k_hw_common(sc->sc_ah); 
     141        struct ath_hw *ah = sc->sc_ah; 
    142142        char buf[32]; 
    143143        unsigned int len; 
    144144 
    145         len = sprintf(buf, "0x%08x\n", common->rx_chainmask); 
     145        len = sprintf(buf, "0x%08x\n", ah->rxchainmask); 
    146146        return simple_read_from_buffer(user_buf, count, ppos, buf, len); 
    147147} 
    148148 
    static ssize_t write_file_rx_chainmask(s 
    150150                             size_t count, loff_t *ppos) 
    151151{ 
    152152        struct ath_softc *sc = file->private_data; 
    153         struct ath_common *common = ath9k_hw_common(sc->sc_ah); 
     153        struct ath_hw *ah = sc->sc_ah; 
    154154        unsigned long mask; 
    155155        char buf[32]; 
    156156        ssize_t len; 
    static ssize_t write_file_rx_chainmask(s 
    163163        if (strict_strtoul(buf, 0, &mask)) 
    164164                return -EINVAL; 
    165165 
    166         common->rx_chainmask = mask; 
    167         sc->sc_ah->caps.rx_chainmask = mask; 
     166        ah->rxchainmask = mask; 
     167        ah->caps.rx_chainmask = mask; 
    168168        return count; 
    169169} 
    170170 
  • drivers/net/wireless/ath/ath9k/htc_drv_init.c

    a b static void setup_ht_cap(struct ath9k_ht 
    509509        memset(&ht_info->mcs, 0, sizeof(ht_info->mcs)); 
    510510 
    511511        /* ath9k_htc supports only 1 or 2 stream devices */ 
    512         tx_streams = ath9k_cmn_count_streams(common->tx_chainmask, 2); 
    513         rx_streams = ath9k_cmn_count_streams(common->rx_chainmask, 2); 
     512        tx_streams = ath9k_cmn_count_streams(priv->ah->txchainmask, 2); 
     513        rx_streams = ath9k_cmn_count_streams(priv->ah->rxchainmask, 2); 
    514514 
    515515        ath_dbg(common, ATH_DBG_CONFIG, 
    516516                "TX streams %d, RX streams: %d\n", 
    static void ath9k_init_misc(struct ath9k 
    601601{ 
    602602        struct ath_common *common = ath9k_hw_common(priv->ah); 
    603603 
    604         common->tx_chainmask = priv->ah->caps.tx_chainmask; 
    605         common->rx_chainmask = priv->ah->caps.rx_chainmask; 
    606  
    607604        memcpy(common->bssidmask, ath_bcast_mac, ETH_ALEN); 
    608605 
    609606        priv->ah->opmode = NL80211_IFTYPE_STATION; 
  • drivers/net/wireless/ath/ath9k/htc_drv_main.c

    a b void ath9k_htc_ani_work(struct work_stru 
    826826                if (longcal || shortcal) 
    827827                        common->ani.caldone = 
    828828                                ath9k_hw_calibrate(ah, ah->curchan, 
    829                                                    common->rx_chainmask, 
    830                                                    longcal); 
     829                                                   ah->rxchainmask, longcal); 
    831830 
    832831                ath9k_htc_ps_restore(priv); 
    833832        } 
  • drivers/net/wireless/ath/ath9k/init.c

    a b static void setup_ht_cap(struct ath_soft 
    270270 
    271271        /* set up supported mcs set */ 
    272272        memset(&ht_info->mcs, 0, sizeof(ht_info->mcs)); 
    273         tx_streams = ath9k_cmn_count_streams(common->tx_chainmask, max_streams); 
    274         rx_streams = ath9k_cmn_count_streams(common->rx_chainmask, max_streams); 
     273        tx_streams = ath9k_cmn_count_streams(ah->txchainmask, max_streams); 
     274        rx_streams = ath9k_cmn_count_streams(ah->rxchainmask, max_streams); 
    275275 
    276276        ath_dbg(common, ATH_DBG_CONFIG, 
    277277                "TX streams %d, RX streams: %d\n", 
    static void ath9k_init_misc(struct ath_s 
    506506                sc->sc_flags |= SC_OP_RXAGGR; 
    507507        } 
    508508 
    509         common->tx_chainmask = sc->sc_ah->caps.tx_chainmask; 
    510         common->rx_chainmask = sc->sc_ah->caps.rx_chainmask; 
    511  
    512509        ath9k_hw_set_diversity(sc->sc_ah, true); 
    513510        sc->rx.defant = ath9k_hw_getdefantenna(sc->sc_ah); 
    514511 
    static void ath9k_init_band_txpower(stru 
    645642static void ath9k_init_txpower_limits(struct ath_softc *sc) 
    646643{ 
    647644        struct ath_hw *ah = sc->sc_ah; 
    648         struct ath_common *common = ath9k_hw_common(sc->sc_ah); 
    649645        struct ath9k_channel *curchan = ah->curchan; 
    650646 
    651         ah->txchainmask = common->tx_chainmask; 
    652647        if (ah->caps.hw_caps & ATH9K_HW_CAP_2GHZ) 
    653648                ath9k_init_band_txpower(sc, IEEE80211_BAND_2GHZ); 
    654649        if (ah->caps.hw_caps & ATH9K_HW_CAP_5GHZ) 
Note: See TracBrowser for help on using the repository browser.