Changeset 28107


Ignore:
Timestamp:
2011-08-28T20:38:24+02:00 (6 years ago)
Author:
nbd
Message:

ath9k: implement rx/tx antenna control

Location:
trunk/package/mac80211/patches
Files:
4 added
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/package/mac80211/patches/513-ath9k_channelbw_debugfs.patch

    r27972 r28107  
    2323--- a/drivers/net/wireless/ath/ath9k/main.c 
    2424+++ b/drivers/net/wireless/ath/ath9k/main.c 
    25 @@ -226,6 +226,7 @@ static int ath_set_channel(struct ath_so 
    26         bool fastcc = true, stopped; 
    27         struct ieee80211_channel *channel = hw->conf.channel; 
    28         struct ath9k_hw_cal_data *caldata = NULL; 
    29 +       u32 oldflags; 
    30         int r; 
     25@@ -1654,9 +1654,10 @@ static int ath9k_config(struct ieee80211 
    3126  
    32         if (sc->sc_flags & SC_OP_INVALID) 
    33 @@ -268,6 +269,24 @@ static int ath_set_channel(struct ath_so 
    34         if (!stopped || !(sc->sc_flags & SC_OP_OFFCHANNEL)) 
    35                 fastcc = false; 
     27        if (changed & IEEE80211_CONF_CHANGE_CHANNEL) { 
     28                struct ieee80211_channel *curchan = hw->conf.channel; 
     29-               struct ath9k_channel old_chan; 
     30+               struct ath9k_channel old_chan, *hchan; 
     31                int pos = curchan->hw_value; 
     32                int old_pos = -1; 
     33+               u32 oldflags; 
     34                unsigned long flags; 
    3635  
    37 +       oldflags = hchan->channelFlags; 
    38 +       switch (sc->chan_bw) { 
    39 +       case 5: 
    40 +               hchan->channelFlags &= ~CHANNEL_HALF; 
    41 +               hchan->channelFlags |= CHANNEL_QUARTER; 
    42 +               break; 
    43 +       case 10: 
    44 +               hchan->channelFlags &= ~CHANNEL_QUARTER; 
    45 +               hchan->channelFlags |= CHANNEL_HALF; 
    46 +               break; 
    47 +       default: 
    48 +               hchan->channelFlags &= ~(CHANNEL_HALF | CHANNEL_QUARTER); 
    49 +               break; 
    50 +       } 
     36                if (ah->curchan) 
     37@@ -1709,7 +1710,23 @@ static int ath9k_config(struct ieee80211 
     38                        memset(&sc->survey[pos], 0, sizeof(struct survey_info)); 
     39                } 
     40  
     41-               if (ath_set_channel(sc, hw, &sc->sc_ah->channels[pos]) < 0) { 
     42+               hchan = &sc->sc_ah->channels[pos]; 
     43+               oldflags = hchan->channelFlags; 
     44+               switch (sc->chan_bw) { 
     45+               case 5: 
     46+                       hchan->channelFlags &= ~CHANNEL_HALF; 
     47+                       hchan->channelFlags |= CHANNEL_QUARTER; 
     48+                       break; 
     49+               case 10: 
     50+                       hchan->channelFlags &= ~CHANNEL_QUARTER; 
     51+                       hchan->channelFlags |= CHANNEL_HALF; 
     52+                       break; 
     53+               default: 
     54+                       hchan->channelFlags &= ~(CHANNEL_HALF | CHANNEL_QUARTER); 
     55+                       break; 
     56+               } 
    5157+ 
    52 +       if (oldflags != hchan->channelFlags) 
    53 +               fastcc = false; 
     58+               if (ath_set_channel(sc, hw, hchan) < 0) { 
     59                        ath_err(common, "Unable to set channel\n"); 
     60                        mutex_unlock(&sc->mutex); 
     61                        return -EINVAL; 
     62--- a/drivers/net/wireless/ath/ath9k/hw.c 
     63+++ b/drivers/net/wireless/ath/ath9k/hw.c 
     64@@ -1504,6 +1504,10 @@ int ath9k_hw_reset(struct ath_hw *ah, st 
     65        } 
     66        ah->noise = ath9k_hw_getchan_noise(ah, chan); 
     67  
     68+       if (!ah->curchan || ((ah->curchan->channelFlags ^ chan->channelFlags) & 
     69+           (CHANNEL_HALF | CHANNEL_QUARTER))) 
     70+               bChannelChange = false; 
    5471+ 
    55         if (!(sc->sc_flags & SC_OP_OFFCHANNEL)) 
    56                 caldata = &sc->caldata; 
    57   
     72        if (bChannelChange && 
     73            (ah->chip_fullsleep != true) && 
     74            (ah->curchan != NULL) && 
  • trunk/package/mac80211/patches/531-ath9k_cur_txpower.patch

    r28093 r28107  
    11--- a/drivers/net/wireless/ath/ath9k/main.c 
    22+++ b/drivers/net/wireless/ath/ath9k/main.c 
    3 @@ -1734,6 +1734,8 @@ static int ath9k_config(struct ieee80211 
     3@@ -1732,6 +1732,8 @@ static int ath9k_config(struct ieee80211 
    44                        return -EINVAL; 
    55                } 
     
    1010                 * The most recent snapshot of channel->noisefloor for the old 
    1111                 * channel is only available after the hardware reset. Copy it to 
    12 @@ -1751,6 +1753,7 @@ static int ath9k_config(struct ieee80211 
     12@@ -1749,6 +1751,7 @@ static int ath9k_config(struct ieee80211 
    1313                ath9k_cmn_update_txpow(ah, sc->curtxpow, 
    1414                                       sc->config.txpowlimit, &sc->curtxpow); 
Note: See TracChangeset for help on using the changeset viewer.