Changeset 15465


Ignore:
Timestamp:
2009-04-28T02:14:31+02:00 (9 years ago)
Author:
nico
Message:

[package] madwifi: sync with trunk

Location:
branches/8.09/package/madwifi
Files:
14 added
1 deleted
26 edited
1 moved

Legend:

Unmodified
Added
Removed
  • branches/8.09/package/madwifi/Config.in

    r13708 r15465  
    1717 
    1818config MADWIFI_UPSTREAM 
     19        depends BROKEN 
    1920        depends !LINUX_2_6_26 
    2021        depends !TARGET_atheros 
  • branches/8.09/package/madwifi/Makefile

    r15409 r15465  
    1414ifneq ($(CONFIG_MADWIFI_UPSTREAM),) 
    1515  PKG_VERSION:=0.9.4 
    16   PKG_RELEASE:=2 
     16  PKG_RELEASE:=2.1 
    1717 
    1818  PKG_SOURCE:=madwifi-$(PKG_VERSION).tar.gz 
     
    2727  PKG_REV:=3314 
    2828  PKG_VERSION:=r$(PKG_REV) 
    29   PKG_RELEASE:=2 
     29  PKG_RELEASE:=2.1 
    3030 
    3131  PKG_SOURCE_PROTO:=svn 
  • branches/8.09/package/madwifi/files/lib/wifi/madwifi.sh

    r14312 r15465  
    4343        esac 
    4444 
    45         config_set "$device" vifs "${ap:+$ap }${adhoc:+$adhoc }${ahdemo:+$ahdemo }${sta:+$sta }${wds:+$wds }${monitor:+$monitor}" 
     45        config_set "$device" vifs "${sta:+$sta }${ap:+$ap }${adhoc:+$adhoc }${ahdemo:+$ahdemo }${wds:+$wds }${monitor:+$monitor}" 
    4646} 
    4747 
     
    6868enable_atheros() { 
    6969        local device="$1" 
     70        # Can only set the country code to one setting for the entire system. The last country code is the one that will be applied. 
     71        config_get country "$device" country 
     72        [ -z "$country" ] && country="0" 
     73        local cc="0" 
     74        [ -e /proc/sys/dev/$device/countrycode ] && cc="$(cat /proc/sys/dev/$device/countrycode)" 
     75        if [ ! "$cc" = "$country" ] ; then 
     76                rmmod ath_pci 
     77                insmod ath_pci countrycode=$country 
     78        fi 
    7079        config_get channel "$device" channel 
    7180        config_get vifs "$device" vifs 
     
    112121                        *) hwmode=auto;; 
    113122                esac 
    114                 iwpriv "$ifname" mode "$hwmode" 
    115123                iwpriv "$ifname" pureg "$pureg" 
    116124 
    117125                [ "$first" = 1 ] && { 
     126                        iwpriv "$ifname" mode "$hwmode" 
    118127                        iwconfig "$ifname" channel "$channel" >/dev/null 2>/dev/null  
    119128                } 
     
    159168 
    160169                case "$mode" in 
    161                         adhoc|ahdemo) 
     170                        sta|adhoc|ahdemo) 
    162171                                config_get addr "$vif" bssid 
    163172                                [ -z "$addr" ] || {  
     
    213222                [ -n "$distance" ] && athctrl -i "$device" -d "$distance" >&- 
    214223 
    215                 config_get txpwr "$vif" txpower 
    216                 [ -n "$txpwr" ] && iwconfig "$ifname" txpower "${txpwr%%.*}" 
    217  
    218224                config_get rate "$vif" rate 
    219225                [ -n "$rate" ] && iwconfig "$ifname" rate "${rate%%.*}" 
     
    251257                config_get_bool turbo "$vif" turbo 
    252258                [ -n "$turbo" ] && iwpriv "$ifname" turbo "$turbo" 
     259 
     260                config_get_bool beacon_power "$vif" beacon_power 
     261                [ -n "$beacon_power" ] && iwpriv "$ifname" beacon_pwr "$beacon_power" 
    253262 
    254263                config_get_bool doth "$vif" doth 0 
     
    282291 
    283292                ifconfig "$ifname" up 
     293 
    284294                local net_cfg bridge 
    285295                net_cfg="$(find_net_config "$vif")" 
  • branches/8.09/package/madwifi/patches/330-beaconcal.patch

    r13708 r15465  
    6969         * constrained to reflect the current operating mode. 
    7070         */ 
    71 @@ -5154,6 +5178,8 @@ ath_beacon_send(struct ath_softc *sc, in 
     71@@ -5154,6 +5178,10 @@ ath_beacon_send(struct ath_softc *sc, in 
    7272                        "Invoking ath_hal_txstart with sc_bhalq: %d\n", 
    7373                        sc->sc_bhalq); 
    7474                ath_hal_txstart(ah, sc->sc_bhalq); 
    75 +               if (sc->sc_beacon_cal && (jiffies > sc->sc_lastcal + (ath_calinterval * HZ))) 
    76 +                       ath_calibrate((unsigned long) sc->sc_dev); 
     75+               if (sc->sc_beacon_cal && (jiffies > sc->sc_lastcal + (ath_calinterval * HZ))) { 
     76+                       sc->sc_cal_ch.expires = jiffies + msecs_to_jiffies(10); 
     77+                       add_timer(&sc->sc_cal_ch); 
     78+               } 
    7779  
    7880                sc->sc_stats.ast_be_xmit++;             /* XXX per-VAP? */ 
    7981        } 
    80 @@ -5403,6 +5429,7 @@ ath_beacon_config(struct ath_softc *sc,  
     82@@ -5403,6 +5431,7 @@ ath_beacon_config(struct ath_softc *sc,  
    8183                ath_hal_beacontimers(ah, &bs); 
    8284                sc->sc_imask |= HAL_INT_BMISS; 
     
    8688                ath_hal_intrset(ah, 0); 
    8789                if (reset_tsf) 
    88 @@ -5414,8 +5441,11 @@ ath_beacon_config(struct ath_softc *sc,  
     90@@ -5414,8 +5443,11 @@ ath_beacon_config(struct ath_softc *sc,  
    8991                         */ 
    9092                        intval |= HAL_BEACON_ENA; 
     
    99101                ath_beacon_dturbo_config(vap, intval & 
    100102                                ~(HAL_BEACON_RESET_TSF | HAL_BEACON_ENA)); 
    101 @@ -8879,6 +8909,9 @@ ath_chan_set(struct ath_softc *sc, struc 
     103@@ -8879,6 +8911,9 @@ ath_chan_set(struct ath_softc *sc, struc 
    102104                        /* Enter DFS wait period */ 
    103105                        mod_timer(&sc->sc_dfs_cac_timer, 
     
    109111                /* 
    110112                 * re configure beacons when it is a turbo mode switch. 
    111 @@ -8988,8 +9021,11 @@ ath_calibrate(unsigned long arg) 
     113@@ -8988,8 +9023,11 @@ ath_calibrate(unsigned long arg) 
    112114                sc->sc_curchan.channel, sc->sc_curchan.channelFlags, 
    113115                isIQdone ? "done" : "not done"); 
     
    123125  
    124126 static void 
    125 @@ -9096,7 +9132,8 @@ ath_newstate(struct ieee80211vap *vap, e 
     127@@ -9096,7 +9134,8 @@ ath_newstate(struct ieee80211vap *vap, e 
    126128                ieee80211_state_name[vap->iv_state], 
    127129                ieee80211_state_name[nstate]); 
     
    133135        ath_hal_setledstate(ah, leds[nstate]);  /* set LED */ 
    134136        netif_stop_queue(dev);                  /* before we do anything else */ 
    135 @@ -9321,7 +9358,8 @@ ath_newstate(struct ieee80211vap *vap, e 
     137@@ -9321,7 +9360,8 @@ ath_newstate(struct ieee80211vap *vap, e 
    136138                                "VAP -> DFSWAIT_PENDING \n"); 
    137139                        /* start calibration timer with a really small value  
     
    143145                        netif_wake_queue(dev); 
    144146                        /* don't do the other usual stuff... */ 
    145 @@ -9364,7 +9402,7 @@ done: 
     147@@ -9364,7 +9404,7 @@ done: 
    146148        error = avp->av_newstate(vap, nstate, arg); 
    147149  
  • branches/8.09/package/madwifi/patches/332-reset_beacons.patch

    r13708 r15465  
    11--- a/ath/if_ath.c 
    22+++ b/ath/if_ath.c 
    3 @@ -8920,7 +8920,7 @@ ath_chan_set(struct ath_softc *sc, struc 
     3@@ -8922,7 +8922,7 @@ ath_chan_set(struct ath_softc *sc, struc 
    44                 * re configure beacons when it is a turbo mode switch. 
    55                 * HW seems to turn off beacons during turbo mode switch. 
  • branches/8.09/package/madwifi/patches/343-txqueue_races.patch

    r13708 r15465  
    33--- a/ath/if_ath.c 
    44+++ b/ath/if_ath.c 
    5 @@ -8251,6 +8251,17 @@ ath_tx_processq(struct ath_softc *sc, st 
     5@@ -8253,6 +8253,17 @@ ath_tx_processq(struct ath_softc *sc, st 
    66                        goto bf_fail; 
    77                } 
  • branches/8.09/package/madwifi/patches/345-minstrel_sampling.patch

    r13708 r15465  
    11--- a/ath/if_ath.c 
    22+++ b/ath/if_ath.c 
    3 @@ -8101,6 +8101,7 @@ ath_tx_start(struct net_device *dev, str 
     3@@ -8103,6 +8103,7 @@ ath_tx_start(struct net_device *dev, str 
    44                ath_hal_setupxtxdesc(sc->sc_ah, ds, mrr.rate1, mrr.retries1, 
    55                                     mrr.rate2, mrr.retries2, 
  • branches/8.09/package/madwifi/patches/347-tuning.patch

    r13708 r15465  
    11--- a/ath/if_ath.c 
    22+++ b/ath/if_ath.c 
    3 @@ -10274,11 +10274,11 @@ ath_setcurmode(struct ath_softc *sc, enu 
     3@@ -10276,11 +10276,11 @@ ath_setcurmode(struct ath_softc *sc, enu 
    44        sc->sc_currates = rt; 
    55        sc->sc_curmode = mode; 
  • branches/8.09/package/madwifi/patches/348-ackcts.patch

    r13708 r15465  
    1111                /* set ack to be sent at low bit-rate */ 
    1212                /* registers taken from the OpenBSD 5212 HAL */ 
    13 @@ -10789,8 +10792,13 @@ ATH_SYSCTL_DECL(ath_sysctl_halparam, ctl 
     13@@ -10791,8 +10794,13 @@ ATH_SYSCTL_DECL(ath_sysctl_halparam, ctl 
    1414                                break; 
    1515 #endif 
  • branches/8.09/package/madwifi/patches/349-reset.patch

    r13708 r15465  
    11--- a/ath/if_ath.c 
    22+++ b/ath/if_ath.c 
    3 @@ -8862,8 +8862,7 @@ ath_chan_set(struct ath_softc *sc, struc 
     3@@ -8864,8 +8864,7 @@ ath_chan_set(struct ath_softc *sc, struc 
    44                 * needed to do the reset with chanchange = AH_FALSE in order 
    55                 * to receive traffic when peforming high velocity channel 
  • branches/8.09/package/madwifi/patches/352-ani_fix.patch

    r13708 r15465  
    107107                rfilt |= (HAL_RX_FILTER_PHYERR | HAL_RX_FILTER_PHYRADAR); 
    108108        return rfilt; 
    109 @@ -6524,9 +6563,6 @@ process_rx_again: 
     109@@ -6526,9 +6565,6 @@ process_rx_again: 
    110110                        rs->rs_rssi = 0; 
    111111  
     
    117117                if (rs->rs_more) { 
    118118                        /* 
    119 @@ -8874,9 +8910,7 @@ ath_chan_set(struct ath_softc *sc, struc 
     119@@ -8876,9 +8912,7 @@ ath_chan_set(struct ath_softc *sc, struc 
    120120                if (sc->sc_softled) 
    121121                        ath_hal_gpioCfgOutput(ah, sc->sc_ledpin); 
     
    128128                ath_update_txpow(sc);           /* update tx power state */ 
    129129                ath_radar_update(sc); 
    130 @@ -10653,9 +10687,54 @@ enum { 
     130@@ -10655,9 +10689,54 @@ enum { 
    131131        ATH_RP_IGNORED          = 24, 
    132132        ATH_RADAR_IGNORED       = 25, 
     
    183183 { 
    184184        struct ath_softc *sc = ctl->extra1; 
    185 @@ -10841,6 +10920,11 @@ ATH_SYSCTL_DECL(ath_sysctl_halparam, ctl 
     185@@ -10843,6 +10922,11 @@ ATH_SYSCTL_DECL(ath_sysctl_halparam, ctl 
    186186                        case ATH_RADAR_IGNORED: 
    187187                                sc->sc_radar_ignored = val; 
     
    195195                                ret = -EINVAL; 
    196196                                break; 
    197 @@ -10907,6 +10991,11 @@ ATH_SYSCTL_DECL(ath_sysctl_halparam, ctl 
     197@@ -10909,6 +10993,11 @@ ATH_SYSCTL_DECL(ath_sysctl_halparam, ctl 
    198198                case ATH_RADAR_IGNORED: 
    199199                        val = sc->sc_radar_ignored; 
     
    207207                        ret = -EINVAL; 
    208208                        break; 
    209 @@ -11084,6 +11173,24 @@ static const ctl_table ath_sysctl_templa 
     209@@ -11086,6 +11175,24 @@ static const ctl_table ath_sysctl_templa 
    210210          .proc_handler = ath_sysctl_halparam, 
    211211          .extra2       = (void *)ATH_RADAR_IGNORED, 
  • branches/8.09/package/madwifi/patches/355-eap_auth_disassoc.patch

    r13708 r15465  
    66--- a/ath/if_ath.c 
    77+++ b/ath/if_ath.c 
    8 @@ -8332,6 +8332,14 @@ ath_tx_processq(struct ath_softc *sc, st 
     8@@ -8334,6 +8334,14 @@ ath_tx_processq(struct ath_softc *sc, st 
    99 #endif 
    1010                                if (ts->ts_status & HAL_TXERR_XRETRY) { 
  • branches/8.09/package/madwifi/patches/366-bstuck_thresh.patch

    r13708 r15465  
    4242                return; 
    4343        } 
    44 @@ -5228,7 +5232,7 @@ ath_bstuck_tasklet(TQUEUE_ARG data) 
     44@@ -5230,7 +5234,7 @@ ath_bstuck_tasklet(TQUEUE_ARG data) 
    4545         *     check will be true, in which case return 
    4646         *     without resetting the driver. 
  • branches/8.09/package/madwifi/patches/370-wdsvap.patch

    r13708 r15465  
    4545        if (ic->ic_dev->flags & IFF_RUNNING) { 
    4646                /* needs to disable hardware too */ 
    47 @@ -1271,8 +1269,11 @@ ath_vap_create(struct ieee80211com *ic,  
     47@@ -1271,8 +1269,12 @@ ath_vap_create(struct ieee80211com *ic,  
    4848                } else 
    4949                        ic_opmode = opmode; 
     
    5151-       case IEEE80211_M_HOSTAP: 
    5252        case IEEE80211_M_WDS: 
     53+               ic_opmode = ic->ic_opmode; 
    5354+               if (!master) 
    5455+                       return NULL; 
     
    5859                /* XXX sta+ap for repeater/bridge application */ 
    5960                if ((sc->sc_nvaps != 0) && (ic->ic_opmode == IEEE80211_M_STA)) 
    60 @@ -1304,7 +1305,7 @@ ath_vap_create(struct ieee80211com *ic,  
     61@@ -1304,7 +1306,7 @@ ath_vap_create(struct ieee80211com *ic,  
    6162        } 
    6263  
     
    6768        vap = &avp->av_vap; 
    6869        avp->av_newstate = vap->iv_newstate; 
    69 @@ -4209,8 +4210,7 @@ ath_calcrxfilter(struct ath_softc *sc) 
     70@@ -4209,8 +4211,7 @@ ath_calcrxfilter(struct ath_softc *sc) 
    7071        if (ic->ic_opmode == IEEE80211_M_STA || 
    7172            sc->sc_opmode == HAL_M_IBSS ||      /* NB: AHDEMO too */ 
     
    7778        if (sc->sc_nmonvaps > 0) 
    7879                rfilt |= (HAL_RX_FILTER_CONTROL | HAL_RX_FILTER_BEACON | 
    79 @@ -9030,8 +9030,6 @@ ath_calibrate(unsigned long arg) 
     80@@ -9032,8 +9033,6 @@ ath_calibrate(unsigned long arg) 
    8081                 * set sc->beacons if we might need to restart 
    8182                  * them after ath_reset. */ 
     
    681682                        break; 
    682683                case IEEE80211_M_IBSS: 
    683 @@ -540,16 +548,32 @@ ieee80211_input(struct ieee80211vap * va 
     684@@ -540,16 +548,28 @@ ieee80211_input(struct ieee80211vap * va 
    684685                                vap->iv_stats.is_rx_notassoc++; 
    685686                                goto err; 
    686687                        } 
    687 + 
    688 +                       /* subif isn't fully set up yet, drop the frame */ 
    689 +                       if (ni->ni_subif == ni->ni_vap) 
    690 +                               goto err; 
    691688+ 
    692689                        /* 
     
    717714                                if (!(vap->iv_flags_ext & IEEE80211_FEXT_WDS)) { 
    718715                                        IEEE80211_DISCARD(vap, IEEE80211_MSG_INPUT, 
    719 @@ -557,7 +581,6 @@ ieee80211_input(struct ieee80211vap * va 
     716@@ -557,7 +577,6 @@ ieee80211_input(struct ieee80211vap * va 
    720717                                        goto err; 
    721718                                } 
     
    725722                                /* Last call increments ref count if !NULL */ 
    726723                                if ((ni_wds != NULL) && (ni_wds != ni)) { 
    727 @@ -608,6 +631,11 @@ ieee80211_input(struct ieee80211vap * va 
     724@@ -608,6 +627,11 @@ ieee80211_input(struct ieee80211vap * va 
    728725                        goto out; 
    729726                } 
     
    737734                 * Handle privacy requirements.  Note that we 
    738735                 * must not be preempted from here until after 
    739 @@ -680,8 +708,12 @@ ieee80211_input(struct ieee80211vap * va 
     736@@ -680,8 +704,12 @@ ieee80211_input(struct ieee80211vap * va 
    740737                if (! accept_data_frame(vap, ni, key, skb, eh)) 
    741738                        goto out; 
     
    752749                IEEE80211_NODE_STAT_ADD(ni, rx_bytes, skb->len); 
    753750                ic->ic_lastdata = jiffies; 
    754 @@ -1114,6 +1146,13 @@ ieee80211_deliver_data(struct ieee80211_ 
     751@@ -1114,6 +1142,17 @@ ieee80211_deliver_data(struct ieee80211_ 
    755752                dev = vap->iv_xrvap->iv_dev; 
    756753 #endif 
     
    759756+        * but keep EAP traffic on the master */ 
    760757+       if (ni->ni_subif && ((eh)->ether_type != __constant_htons(ETHERTYPE_PAE))) { 
    761 +               vap = ni->ni_subif; 
    762 +               dev = vap->iv_dev; 
     758+               if (ni->ni_vap == ni->ni_subif) { 
     759+                       ieee80211_dev_kfree_skb(&skb); 
     760+               } else { 
     761+                       vap = ni->ni_subif; 
     762+                       dev = vap->iv_dev; 
     763+               } 
    763764+       } 
    764765+ 
     
    813814+                               (scan.capinfo & IEEE80211_CAPINFO_ESS))) { 
    814815+                       struct ieee80211vap *avp = NULL; 
     816+                       int found = 0; 
    815817+ 
    816818+                       IEEE80211_LOCK_IRQ(vap->iv_ic); 
    817819+                       if (vap->iv_opmode == IEEE80211_M_HOSTAP) { 
    818 +                               int found = 0; 
    819 + 
    820820+                               TAILQ_FOREACH(avp, &vap->iv_wdslinks, iv_wdsnext) { 
    821821+                                       if (!memcmp(avp->wds_mac, wh->i_addr2, IEEE80211_ADDR_LEN)) { 
     
    826826+                                       } 
    827827+                               } 
    828 +                               if (!found) 
    829 +                                       break; 
    830 + 
    831 +                               ni = ni_or_null = avp->iv_wdsnode; 
     828+                               if (found) 
     829+                                       ni = ni_or_null = avp->iv_wdsnode; 
    832830+                       } else if (vap->iv_opmode == IEEE80211_M_WDS) { 
     831+                               found = 1; 
    833832+                               ni = ni_or_null = vap->iv_wdsnode; 
    834833+                       } 
    835834+                       IEEE80211_UNLOCK_IRQ(vap->iv_ic); 
    836835+ 
     836+                       if (!found) 
     837+                               break; 
    837838+ 
    838839                        if (ni_or_null == NULL) { 
     
    903904  
    904905 /* This is overridden by ath_node_alloc in ath/if_ath.c, and so 
    905 @@ -1134,6 +1145,62 @@ ieee80211_alloc_node(struct ieee80211vap 
     906@@ -1134,6 +1145,65 @@ ieee80211_alloc_node(struct ieee80211vap 
    906907        return ni; 
    907908 } 
     
    957958+               return; 
    958959+ 
     960+       if (!ni->ni_table) 
     961+               return; 
     962+ 
    959963+       ieee80211_ref_node(ni); 
    960964+       ni->ni_subif = ni->ni_vap; 
     
    966970 int 
    967971 #ifdef IEEE80211_DEBUG_REFCNT 
    968 @@ -1553,22 +1620,39 @@ ieee80211_find_rxnode(struct ieee80211co 
     972@@ -1553,22 +1623,39 @@ ieee80211_find_rxnode(struct ieee80211co 
    969973        ((wh->i_fc[0] & IEEE80211_FC0_SUBTYPE_MASK) == IEEE80211_FC0_SUBTYPE_PS_POLL) 
    970974        struct ieee80211_node_table *nt; 
     
    10151019        IEEE80211_NODE_TABLE_UNLOCK_IRQ(nt); 
    10161020  
    1017 @@ -1596,9 +1680,19 @@ ieee80211_find_txnode_debug(struct ieee8 
     1021@@ -1596,9 +1683,19 @@ ieee80211_find_txnode_debug(struct ieee8 
    10181022 ieee80211_find_txnode(struct ieee80211vap *vap, const u_int8_t *mac) 
    10191023 #endif 
     
    10351039         * The destination address should be in the node table 
    10361040         * unless we are operating in station mode or this is a 
    1037 @@ -1669,6 +1763,11 @@ ieee80211_free_node(struct ieee80211_nod 
     1041@@ -1669,6 +1766,11 @@ ieee80211_free_node(struct ieee80211_nod 
    10381042 { 
    10391043        struct ieee80211vap *vap = ni->ni_vap; 
     
    10471051        node_print_message(IEEE80211_MSG_NODE|IEEE80211_MSG_NODE_REF, 
    10481052                           1 /* show counter */,  
    1049 @@ -1781,22 +1880,6 @@ restart: 
     1053@@ -1781,22 +1883,6 @@ restart: 
    10501054                    jiffies > ni->ni_rxfragstamp + HZ) { 
    10511055                        ieee80211_dev_kfree_skb(&ni->ni_rxfrag); 
     
    10701074                if (ni->ni_associd != 0 || isadhoc) { 
    10711075                        struct ieee80211vap *vap = ni->ni_vap; 
    1072 @@ -2263,6 +2346,36 @@ ieee80211_node_leave_11g(struct ieee8021 
     1076@@ -2263,6 +2349,35 @@ ieee80211_node_leave_11g(struct ieee8021 
    10731077        } 
    10741078 } 
     
    10811085+       struct ieee80211com *ic; 
    10821086+ 
     1087+       /* wait for full initialization before we start the teardown 
     1088+        * otherwise we could leak interfaces */ 
     1089+       while (ni->ni_subif == ni->ni_vap) 
     1090+               schedule(); 
     1091+ 
    10831092+       rtnl_lock(); 
    10841093+       vap = ni->ni_subif; 
    1085 + 
    1086 +       /* if addif is waiting for the timer to fire, cancel! */ 
    1087 +       if (vap == ni->ni_vap) { 
    1088 +               ni->ni_subif = NULL; 
    1089 +               goto done; 
    1090 +       } 
    10911094+ 
    10921095+       if (!vap) 
     
    11071110  * Handle bookkeeping for a station/neighbor leaving 
    11081111  * the bss when operating in ap or adhoc modes. 
    1109 @@ -2279,6 +2392,12 @@ ieee80211_node_leave(struct ieee80211_no 
     1112@@ -2279,6 +2394,12 @@ ieee80211_node_leave(struct ieee80211_no 
    11101113                        ni, "station with aid %d leaves (refcnt %u)", 
    11111114                        IEEE80211_NODE_AID(ni), atomic_read(&ni->ni_refcnt)); 
  • branches/8.09/package/madwifi/patches/374-nbtt_fix.patch

    r13708 r15465  
    11--- a/ath/if_ath.c 
    22+++ b/ath/if_ath.c 
    3 @@ -5483,6 +5483,9 @@ ath_beacon_config(struct ath_softc *sc,  
     3@@ -5486,6 +5486,9 @@ ath_beacon_config(struct ath_softc *sc,  
    44                ath_beacon_dturbo_config(vap, intval & 
    55                                ~(HAL_BEACON_RESET_TSF | HAL_BEACON_ENA)); 
  • branches/8.09/package/madwifi/patches/375-atim_tsf_update.patch

    r13708 r15465  
    99 static void ath_desc_free(struct ath_softc *); 
    1010 static void ath_desc_swap(struct ath_desc *); 
    11 @@ -2792,6 +2793,72 @@ ath_set_ack_bitrate(struct ath_softc *sc 
     11@@ -2793,6 +2794,72 @@ ath_set_ack_bitrate(struct ath_softc *sc 
    1212        return 1; 
    1313 } 
     
    8282  * Reset the hardware w/o losing operational state.  This is 
    8383  * basically a more efficient way of doing ath_stop, ath_init, 
    84 @@ -5291,6 +5358,7 @@ ath_beacon_config(struct ath_softc *sc,  
     84@@ -5294,6 +5361,7 @@ ath_beacon_config(struct ath_softc *sc,  
    8585        u_int64_t tsf, hw_tsf; 
    8686        u_int32_t tsftu, hw_tsftu; 
     
    9090  
    9191        if (vap == NULL) 
    92 @@ -5298,6 +5366,9 @@ ath_beacon_config(struct ath_softc *sc,  
     92@@ -5301,6 +5369,9 @@ ath_beacon_config(struct ath_softc *sc,  
    9393  
    9494        ni = vap->iv_bss; 
     
    100100        tsf = le64_to_cpu(ni->ni_tstamp.tsf); 
    101101        hw_tsftu = hw_tsf >> 10; 
    102 @@ -5487,15 +5558,27 @@ ath_beacon_config(struct ath_softc *sc,  
     102@@ -5490,15 +5561,27 @@ ath_beacon_config(struct ath_softc *sc,  
    103103                                <= ath_hal_sw_beacon_response_time) 
    104104                        nexttbtt += intval; 
     
    128128         * time critical aspect of this function */ 
    129129        DPRINTF(sc, ATH_DEBUG_BEACON, 
    130 @@ -6398,6 +6481,11 @@ ath_recv_mgmt(struct ieee80211vap * vap, 
     130@@ -6401,6 +6484,11 @@ ath_recv_mgmt(struct ieee80211vap * vap, 
    131131                        DPRINTF(sc, ATH_DEBUG_BEACON,  
    132132                                "Updated beacon timers\n"); 
  • branches/8.09/package/madwifi/patches/381-ibss_modes.patch

    r13708 r15465  
    1313        case IEEE80211_M_AHDEMO: 
    1414        case IEEE80211_M_MONITOR: 
    15 @@ -1454,7 +1457,7 @@ ath_vap_create(struct ieee80211com *ic,  
     15@@ -1455,7 +1458,7 @@ ath_vap_create(struct ieee80211com *ic,  
    1616         * frames.  Other modes carry over directly to the HAL. 
    1717         */ 
  • branches/8.09/package/madwifi/patches/383-ibss_hostap.patch

    r13708 r15465  
    11--- a/ath/if_ath.c 
    22+++ b/ath/if_ath.c 
    3 @@ -1451,6 +1451,23 @@ ath_vap_create(struct ieee80211com *ic,  
     3@@ -1452,6 +1452,23 @@ ath_vap_create(struct ieee80211com *ic,  
    44                sc->sc_nstavaps++; 
    55        else if (opmode == IEEE80211_M_MONITOR) 
     
    2525         * Adhoc demo mode is a pseudo mode; to the HAL it's 
    2626         * just IBSS mode and the driver doesn't use management 
    27 @@ -4278,7 +4295,8 @@ ath_calcrxfilter(struct ath_softc *sc) 
     27@@ -4279,7 +4296,8 @@ ath_calcrxfilter(struct ath_softc *sc) 
    2828        if (ic->ic_opmode != IEEE80211_M_HOSTAP && (dev->flags & IFF_PROMISC)) 
    2929                rfilt |= HAL_RX_FILTER_PROM; 
     
    3535                (ic->ic_opmode == IEEE80211_M_HOSTAP)) 
    3636                rfilt |= HAL_RX_FILTER_BEACON; 
    37 @@ -6432,6 +6450,33 @@ ath_capture(struct net_device *dev, cons 
     37@@ -6435,6 +6453,33 @@ ath_capture(struct net_device *dev, cons 
    3838 } 
    3939  
     
    6969  * ibss merges. This function is called for all management frames, 
    7070  * including those belonging to other BSS. 
    71 @@ -6484,10 +6529,19 @@ ath_recv_mgmt(struct ieee80211vap * vap, 
     71@@ -6487,10 +6532,19 @@ ath_recv_mgmt(struct ieee80211vap * vap, 
    7272                        DPRINTF(sc, ATH_DEBUG_BEACON,  
    7373                                "Updated beacon timers\n"); 
     
    9393                /* NB: Fall Through */ 
    9494        case IEEE80211_FC0_SUBTYPE_PROBE_RESP: 
    95 @@ -6560,6 +6614,10 @@ ath_recv_mgmt(struct ieee80211vap * vap, 
     95@@ -6563,6 +6617,10 @@ ath_recv_mgmt(struct ieee80211vap * vap, 
    9696 #endif 
    9797                        if (do_merge) 
  • branches/8.09/package/madwifi/patches/384-hwdetect.patch

    r13708 r15465  
    3434        sc->sc_bslot =  
    3535                kmalloc(ath_maxvaps * sizeof(struct ieee80211vap*), GFP_KERNEL); 
    36 @@ -1507,6 +1519,28 @@ ath_vap_create(struct ieee80211com *ic,  
     36@@ -1508,6 +1520,28 @@ ath_vap_create(struct ieee80211com *ic,  
    3737        return vap; 
    3838 } 
     
    6363 ath_vap_delete(struct ieee80211vap *vap) 
    6464 { 
    65 @@ -10818,6 +10852,12 @@ ath_ioctl(struct net_device *dev, struct 
     65@@ -10821,6 +10855,12 @@ ath_ioctl(struct net_device *dev, struct 
    6666  * is to add module parameters. 
    6767  */ 
     
    7676  * Dynamic (i.e. per-device) sysctls.  These are automatically 
    7777  * mirrored in /proc/sys. 
    78 @@ -10897,6 +10937,38 @@ ath_sysctl_get_intmit(struct ath_softc * 
     78@@ -10900,6 +10940,38 @@ ath_sysctl_get_intmit(struct ath_softc * 
    7979 } 
    8080  
     
    115115 { 
    116116        struct ath_softc *sc = ctl->extra1; 
    117 @@ -11176,6 +11248,24 @@ static int maxint = 0x7fffffff;                /* 32-b 
     117@@ -11179,6 +11251,24 @@ static int maxint = 0x7fffffff;                /* 32-b 
    118118  
    119119 static const ctl_table ath_sysctl_template[] = { 
  • branches/8.09/package/madwifi/patches/385-antenna_fix.patch

    r13708 r15465  
    11--- a/ath/if_ath.c 
    22+++ b/ath/if_ath.c 
    3 @@ -6665,6 +6665,7 @@ ath_setdefantenna(struct ath_softc *sc,  
     3@@ -6668,6 +6668,7 @@ ath_setdefantenna(struct ath_softc *sc,  
    44        struct ath_hal *ah = sc->sc_ah; 
    55  
  • branches/8.09/package/madwifi/patches/389-autochannel.patch

    r13708 r15465  
    99 /* calibrate every 30 secs in steady state but check every second at first. */ 
    1010 static int ath_calinterval = ATH_SHORT_CALINTERVAL; 
    11 @@ -2579,6 +2580,7 @@ ath_init(struct net_device *dev) 
     11@@ -2580,6 +2581,7 @@ ath_init(struct net_device *dev) 
    1212         * be followed by initialization of the appropriate bits 
    1313         * and then setup of the interrupt mask. 
     
    1717        sc->sc_curchan.channelFlags = ath_chan2flags(ic->ic_curchan); 
    1818        if (!ath_hal_reset(ah, sc->sc_opmode, &sc->sc_curchan, AH_FALSE, &status)) { 
    19 @@ -2913,6 +2915,40 @@ ath_hw_check_atim(struct ath_softc *sc,  
     19@@ -2914,6 +2916,40 @@ ath_hw_check_atim(struct ath_softc *sc,  
    2020 } 
    2121  
     
    5858  * Reset the hardware w/o losing operational state.  This is 
    5959  * basically a more efficient way of doing ath_stop, ath_init, 
    60 @@ -2939,6 +2975,7 @@ ath_reset(struct net_device *dev) 
     60@@ -2940,6 +2976,7 @@ ath_reset(struct net_device *dev) 
    6161         * Convert to a HAL channel description with the flags 
    6262         * constrained to reflect the current operating mode. 
     
    6666        sc->sc_curchan.channel = c->ic_freq; 
    6767        sc->sc_curchan.channelFlags = ath_chan2flags(c); 
    68 @@ -9019,6 +9056,7 @@ ath_chan_set(struct ath_softc *sc, struc 
     68@@ -9022,6 +9059,7 @@ ath_chan_set(struct ath_softc *sc, struc 
    6969        u_int8_t channel_change_required = 0; 
    7070        struct timeval tv; 
  • branches/8.09/package/madwifi/patches/394-probereq.patch

    r13761 r15465  
    11--- a/net80211/ieee80211_input.c 
    22+++ b/net80211/ieee80211_input.c 
    3 @@ -3604,6 +3604,8 @@ ieee80211_recv_mgmt(struct ieee80211vap  
     3@@ -3611,6 +3611,8 @@ ieee80211_recv_mgmt(struct ieee80211vap  
    44                        vap->iv_stats.is_rx_mgtdiscard++; 
    55                        return; 
  • branches/8.09/package/madwifi/patches/395-ath_ff_unmap.patch

    r14194 r15465  
    11--- a/ath/if_ath.c 
    22+++ b/ath/if_ath.c 
    3 @@ -13508,7 +13508,7 @@ cleanup_ath_buf(struct ath_softc *sc, st 
     3@@ -13511,7 +13511,7 @@ cleanup_ath_buf(struct ath_softc *sc, st 
    44                                bus_unmap_single( 
    55                                        sc->sc_bdev, 
  • branches/8.09/package/madwifi/patches/400-new_hal.patch

    r15331 r15465  
     1--- a/ath/if_ath.c 
     2+++ b/ath/if_ath.c 
     3@@ -606,6 +606,14 @@ ath_attach(u_int16_t devid, struct net_d 
     4        } 
     5        sc->sc_ah = ah; 
     6  
     7+       /* WAR for AR7100 PCI bug */ 
     8+#ifdef CONFIG_ATHEROS_AR71XX 
     9+       if ((ar_device(sc->devid) >= 5210) && (ar_device(sc->devid) < 5416)) { 
     10+               ath_hal_setcapability(ah, HAL_CAP_DMABURST_RX, 0, HAL_DMABURST_4B, NULL); 
     11+               ath_hal_setcapability(ah, HAL_CAP_DMABURST_TX, 0, HAL_DMABURST_4B, NULL); 
     12+       } 
     13+#endif 
     14+ 
     15        /* 
     16         * Check if the MAC has multi-rate retry support. 
     17         * We do this by trying to setup a fake extended 
     18@@ -7555,7 +7563,7 @@ ath_txq_setup(struct ath_softc *sc, int  
     19        if (qtype == HAL_TX_QUEUE_UAPSD) 
     20                qi.tqi_qflags = HAL_TXQ_TXDESCINT_ENABLE; 
     21        else 
     22-               qi.tqi_qflags = HAL_TXQ_TXEOLINT_ENABLE |  
     23+               qi.tqi_qflags = HAL_TXQ_TXEOLINT_ENABLE | HAL_TXQ_TXOKINT_ENABLE | 
     24                        HAL_TXQ_TXDESCINT_ENABLE; 
     25        qnum = ath_hal_setuptxqueue(ah, qtype, &qi); 
     26        if (qnum == -1) { 
     27--- a/ath_hal/ah_os.c 
     28+++ b/ath_hal/ah_os.c 
     29@@ -126,6 +126,13 @@ ath_hal_printf(struct ath_hal *ah, const 
     30 } 
     31 EXPORT_SYMBOL(ath_hal_printf); 
     32  
     33+void __ahdecl 
     34+ath_hal_printstr(struct ath_hal *ah, const char *str) 
     35+{ 
     36+       printk("%s", str); 
     37+} 
     38+EXPORT_SYMBOL(ath_hal_printstr); 
     39+ 
     40 /* 
     41  * Format an Ethernet MAC for printing. 
     42  */ 
    143--- a/ath_hal/ah_os.h 
    244+++ b/ath_hal/ah_os.h 
    3 @@ -156,80 +156,23 @@ extern u_int32_t __ahdecl ath_hal_getupt 
     45@@ -156,69 +156,23 @@ extern u_int32_t __ahdecl ath_hal_getupt 
    446 #endif 
    547 #endif                         /* AH_BYTE_ORDER */ 
     
    5092-#if (AH_BYTE_ORDER == AH_BIG_ENDIAN) 
    5193-#define is_reg_le(__reg) ((0x4000 <= (__reg) && (__reg) < 0x5000)) 
     94-#else 
     95-#define is_reg_le(__reg) 1 
     96-#endif 
     97- 
    5298-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,12) 
    5399-#define _OS_REG_WRITE(_ah, _reg, _val) do {                    \ 
     
    61107-        ioread32be((_ah)->ah_sh + (_reg))) 
    62108-#else 
    63 -#define _OS_REG_WRITE(_ah, _reg, _val) do {                    \ 
     109 #define _OS_REG_WRITE(_ah, _reg, _val) do {                    \ 
    64110-        writel(is_reg_le(_reg) ?                               \ 
    65111-               (_val) : cpu_to_le32(_val),                     \ 
    66112-               (_ah)->ah_sh + (_reg));                         \ 
    67113-       } while (0) 
    68 -#define _OS_REG_READ(_ah, _reg)                                        \ 
     114+        __raw_writel(SWAPREG(_ah, _reg, _val), (_ah)->ah_sh + (_reg));         \ 
     115+} while (0) 
     116 #define _OS_REG_READ(_ah, _reg)                                        \ 
    69117-       (is_reg_le(_reg) ?                                      \ 
    70118-        readl((_ah)->ah_sh + (_reg)) :                         \ 
    71119-        cpu_to_le32(readl((_ah)->ah_sh + (_reg)))) 
    72120-#endif                         /* KERNEL_VERSION(2,6,12) */ 
    73 -#else                          /* AH_BYTE_ORDER != AH_BIG_ENDIAN */ 
    74 -#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,12) 
    75 -#define _OS_REG_WRITE(_ah, _reg, _val) do {                    \ 
    76 -        iowrite32((_val), (_ah)->ah_sh + (_reg));              \ 
    77 -       } while (0) 
    78 -#define _OS_REG_READ(_ah, _reg)                                        \ 
    79 -       ioread32((_ah)->ah_sh + (_reg)) 
    80 -#else 
    81  #define _OS_REG_WRITE(_ah, _reg, _val) do {                    \ 
    82 -        writel((_val), (_ah)->ah_sh + (_reg));                 \ 
    83 -       } while (0) 
    84 +        __raw_writel(SWAPREG(_ah, _reg, _val), (_ah)->ah_sh + (_reg));         \ 
    85 +} while (0) 
    86  #define _OS_REG_READ(_ah, _reg)                                        \ 
    87 -       readl((_ah)->ah_sh + (_reg)) 
    88 -#endif                         /* KERNEL_VERSION(2,6,12) */ 
    89 -#endif                         /* AH_BYTE_ORDER != AH_BIG_ENDIAN */ 
    90121+        SWAPREG(_ah, _reg, __raw_readl((_ah)->ah_sh + (_reg))) 
    91122  
    92123 /* 
    93124  * The functions in this section are not intended to be invoked by MadWifi 
    94 --- a/ath/if_ath.c 
    95 +++ b/ath/if_ath.c 
    96 @@ -606,6 +606,14 @@ ath_attach(u_int16_t devid, struct net_d 
    97         } 
    98         sc->sc_ah = ah; 
    99   
    100 +       /* WAR for AR7100 PCI bug */ 
    101 +#ifdef CONFIG_ATHEROS_AR71XX 
    102 +       if ((ar_device(sc->devid) >= 5210) && (ar_device(sc->devid) < 5416)) { 
    103 +               ath_hal_setcapability(ah, HAL_CAP_DMABURST_RX, 0, HAL_DMABURST_4B, NULL); 
    104 +               ath_hal_setcapability(ah, HAL_CAP_DMABURST_TX, 0, HAL_DMABURST_4B, NULL); 
    105 +       } 
    106 +#endif 
    107 + 
    108         /* 
    109          * Check if the MAC has multi-rate retry support. 
    110          * We do this by trying to setup a fake extended 
    111 @@ -7524,7 +7532,7 @@ ath_txq_setup(struct ath_softc *sc, int  
    112         if (qtype == HAL_TX_QUEUE_UAPSD) 
    113                 qi.tqi_qflags = HAL_TXQ_TXDESCINT_ENABLE; 
    114         else 
    115 -               qi.tqi_qflags = HAL_TXQ_TXEOLINT_ENABLE |  
    116 +               qi.tqi_qflags = HAL_TXQ_TXEOLINT_ENABLE | HAL_TXQ_TXOKINT_ENABLE | 
    117                         HAL_TXQ_TXDESCINT_ENABLE; 
    118         qnum = ath_hal_setuptxqueue(ah, qtype, &qi); 
    119         if (qnum == -1) { 
    120 --- a/ath_hal/ah_os.c 
    121 +++ b/ath_hal/ah_os.c 
    122 @@ -126,6 +126,13 @@ ath_hal_printf(struct ath_hal *ah, const 
    123  } 
    124  EXPORT_SYMBOL(ath_hal_printf); 
    125   
    126 +void __ahdecl 
    127 +ath_hal_printstr(struct ath_hal *ah, const char *str) 
    128 +{ 
    129 +       printk("%s", str); 
    130 +} 
    131 +EXPORT_SYMBOL(ath_hal_printstr); 
    132 + 
    133  /* 
    134   * Format an Ethernet MAC for printing. 
    135   */ 
  • branches/8.09/package/madwifi/patches/405-retransmit_check.patch

    r13708 r15465  
    1212--- a/net80211/ieee80211_input.c 
    1313+++ b/net80211/ieee80211_input.c 
    14 @@ -429,7 +429,7 @@ ieee80211_input(struct ieee80211vap * va 
     14@@ -428,7 +428,7 @@ ieee80211_input(struct ieee80211vap * va 
    1515                                tid = 0; 
    1616                        rxseq = le16toh(*(__le16 *)wh->i_seq); 
  • branches/8.09/package/madwifi/patches/406-monitor_r3711.patch

    r13708 r15465  
    11--- a/ath/if_ath.c 
    22+++ b/ath/if_ath.c 
    3 @@ -6510,7 +6510,7 @@ ath_capture(struct net_device *dev, cons 
     3@@ -6521,7 +6521,7 @@ ath_capture(struct net_device *dev, cons 
    44  
    55        /* Never copy the SKB, as it is ours on the RX side, and this is the  
     
    1010                DPRINTF(sc, ATH_DEBUG_ANY, 
    1111                        "Dropping; ath_skb_removepad failed!\n"); 
    12 @@ -6518,6 +6518,8 @@ ath_capture(struct net_device *dev, cons 
     12@@ -6529,6 +6529,8 @@ ath_capture(struct net_device *dev, cons 
    1313        } 
    1414         
  • branches/8.09/package/madwifi/patches/408-changeset_r3337.patch

    r13708 r15465  
    1111--- a/ath/if_ath.c 
    1212+++ b/ath/if_ath.c 
    13 @@ -3129,7 +3129,7 @@ ath_tx_startraw(struct net_device *dev,  
     13@@ -3138,7 +3138,7 @@ ath_tx_startraw(struct net_device *dev,  
    1414        struct ath_softc *sc = dev->priv; 
    1515        struct ath_hal *ah = sc->sc_ah; 
Note: See TracChangeset for help on using the changeset viewer.