[haiku-commits] r41220 - haiku/vendor/freebsd/current/dev/ral

  • From: korli@xxxxxxxxxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Mon, 11 Apr 2011 20:02:42 +0200 (CEST)

Author: korli
Date: 2011-04-11 20:02:40 +0200 (Mon, 11 Apr 2011)
New Revision: 41220
Changeset: https://dev.haiku-os.org/changeset/41220

Modified:
   haiku/vendor/freebsd/current/dev/ral/rt2560.c
   haiku/vendor/freebsd/current/dev/ral/rt2560var.h
   haiku/vendor/freebsd/current/dev/ral/rt2661.c
   haiku/vendor/freebsd/current/dev/ral/rt2661var.h
Log:
updating to FreeBSD 8.2 release

Modified: haiku/vendor/freebsd/current/dev/ral/rt2560.c
===================================================================
--- haiku/vendor/freebsd/current/dev/ral/rt2560.c       2011-04-11 18:02:34 UTC 
(rev 41219)
+++ haiku/vendor/freebsd/current/dev/ral/rt2560.c       2011-04-11 18:02:40 UTC 
(rev 41220)
@@ -54,7 +54,7 @@
 #include <net80211/ieee80211_var.h>
 #include <net80211/ieee80211_radiotap.h>
 #include <net80211/ieee80211_regdomain.h>
-#include <net80211/ieee80211_amrr.h>
+#include <net80211/ieee80211_ratectl.h>
 
 #include <netinet/in.h>
 #include <netinet/in_systm.h>
@@ -103,9 +103,6 @@
                            struct rt2560_rx_ring *);
 static void            rt2560_free_rx_ring(struct rt2560_softc *,
                            struct rt2560_rx_ring *);
-static struct ieee80211_node *rt2560_node_alloc(struct ieee80211vap *,
-                           const uint8_t [IEEE80211_ADDR_LEN]);
-static void            rt2560_newassoc(struct ieee80211_node *, int);
 static int             rt2560_newstate(struct ieee80211vap *,
                            enum ieee80211_state, int);
 static uint16_t                rt2560_eeprom_read(struct rt2560_softc *, 
uint8_t);
@@ -269,8 +266,8 @@
        ifp->if_init = rt2560_init;
        ifp->if_ioctl = rt2560_ioctl;
        ifp->if_start = rt2560_start;
-       IFQ_SET_MAXLEN(&ifp->if_snd, IFQ_MAXLEN);
-       ifp->if_snd.ifq_drv_maxlen = IFQ_MAXLEN;
+       IFQ_SET_MAXLEN(&ifp->if_snd, ifqmaxlen);
+       ifp->if_snd.ifq_drv_maxlen = ifqmaxlen;
        IFQ_SET_READY(&ifp->if_snd);
 
        ic->ic_ifp = ifp;
@@ -303,11 +300,9 @@
        ieee80211_init_channels(ic, NULL, &bands);
 
        ieee80211_ifattach(ic, macaddr);
-       ic->ic_newassoc = rt2560_newassoc;
        ic->ic_raw_xmit = rt2560_raw_xmit;
        ic->ic_updateslot = rt2560_update_slot;
        ic->ic_update_promisc = rt2560_update_promisc;
-       ic->ic_node_alloc = rt2560_node_alloc;
        ic->ic_scan_start = rt2560_scan_start;
        ic->ic_scan_end = rt2560_scan_end;
        ic->ic_set_channel = rt2560_set_channel;
@@ -430,11 +425,7 @@
        vap->iv_newstate = rt2560_newstate;
        vap->iv_update_beacon = rt2560_beacon_update;
 
-       ieee80211_amrr_init(&rvp->amrr, vap,
-           IEEE80211_AMRR_MIN_SUCCESS_THRESHOLD,
-           IEEE80211_AMRR_MAX_SUCCESS_THRESHOLD,
-           500 /* ms */);
-
+       ieee80211_ratectl_init(vap);
        /* complete setup */
        ieee80211_vap_attach(vap, ieee80211_media_change, 
ieee80211_media_status);
        if (TAILQ_FIRST(&ic->ic_vaps) == vap)
@@ -447,7 +438,7 @@
 {
        struct rt2560_vap *rvp = RT2560_VAP(vap);
 
-       ieee80211_amrr_cleanup(&rvp->amrr);
+       ieee80211_ratectl_deinit(vap);
        ieee80211_vap_detach(vap);
        free(rvp, M_80211_VAP);
 }
@@ -764,27 +755,6 @@
                bus_dma_tag_destroy(ring->data_dmat);
 }
 
-static struct ieee80211_node *
-rt2560_node_alloc(struct ieee80211vap *vap,
-       const uint8_t mac[IEEE80211_ADDR_LEN])
-{
-       struct rt2560_node *rn;
-
-       rn = malloc(sizeof (struct rt2560_node), M_80211_NODE,
-           M_NOWAIT | M_ZERO);
-
-       return (rn != NULL) ? &rn->ni : NULL;
-}
-
-static void
-rt2560_newassoc(struct ieee80211_node *ni, int isnew)
-{
-       struct ieee80211vap *vap = ni->ni_vap;
-
-       ieee80211_amrr_node_init(&RT2560_VAP(vap)->amrr,
-           &RT2560_NODE(ni)->amrr, ni);
-}
-
 static int
 rt2560_newstate(struct ieee80211vap *vap, enum ieee80211_state nstate, int arg)
 {
@@ -955,10 +925,11 @@
        struct ifnet *ifp = sc->sc_ifp;
        struct rt2560_tx_desc *desc;
        struct rt2560_tx_data *data;
-       struct rt2560_node *rn;
        struct mbuf *m;
        uint32_t flags;
        int retrycnt;
+       struct ieee80211vap *vap;
+       struct ieee80211_node *ni;
 
        bus_dmamap_sync(sc->txq.desc_dmat, sc->txq.desc_map,
            BUS_DMASYNC_POSTREAD);
@@ -973,15 +944,19 @@
                    !(flags & RT2560_TX_VALID))
                        break;
 
-               rn = (struct rt2560_node *)data->ni;
                m = data->m;
+               ni = data->ni;
+               vap = ni->ni_vap;
 
                switch (flags & RT2560_TX_RESULT_MASK) {
                case RT2560_TX_SUCCESS:
+                       retrycnt = 0;
+
                        DPRINTFN(sc, 10, "%s\n", "data frame sent 
successfully");
                        if (data->rix != IEEE80211_FIXED_RATE_NONE)
-                               ieee80211_amrr_tx_complete(&rn->amrr,
-                                   IEEE80211_AMRR_SUCCESS, 0);
+                               ieee80211_ratectl_tx_complete(vap, ni,
+                                   IEEE80211_RATECTL_TX_SUCCESS,
+                                   &retrycnt, NULL);
                        ifp->if_opackets++;
                        break;
 
@@ -991,8 +966,9 @@
                        DPRINTFN(sc, 9, "data frame sent after %u retries\n",
                            retrycnt);
                        if (data->rix != IEEE80211_FIXED_RATE_NONE)
-                               ieee80211_amrr_tx_complete(&rn->amrr,
-                                   IEEE80211_AMRR_SUCCESS, retrycnt);
+                               ieee80211_ratectl_tx_complete(vap, ni,
+                                   IEEE80211_RATECTL_TX_SUCCESS,
+                                   &retrycnt, NULL);
                        ifp->if_opackets++;
                        break;
 
@@ -1002,8 +978,9 @@
                        DPRINTFN(sc, 9, "data frame failed after %d retries\n",
                            retrycnt);
                        if (data->rix != IEEE80211_FIXED_RATE_NONE)
-                               ieee80211_amrr_tx_complete(&rn->amrr,
-                                   IEEE80211_AMRR_FAILURE, retrycnt);
+                               ieee80211_ratectl_tx_complete(vap, ni,
+                                   IEEE80211_RATECTL_TX_FAILURE,
+                                   &retrycnt, NULL);
                        ifp->if_oerrors++;
                        break;
 
@@ -1821,7 +1798,7 @@
        } else if (tp->ucastrate != IEEE80211_FIXED_RATE_NONE) {
                rate = tp->ucastrate;
        } else {
-               (void) ieee80211_amrr_choose(ni, &RT2560_NODE(ni)->amrr);
+               (void) ieee80211_ratectl_rate(ni, NULL, 0);
                rate = ni->ni_txrate;
        }
 
@@ -2680,8 +2657,7 @@
        RAL_WRITE(sc, RT2560_CSR1, RT2560_HOST_READY);
 
        if (rt2560_bbp_init(sc) != 0) {
-               rt2560_stop(sc);
-               RAL_UNLOCK(sc);
+               rt2560_stop_locked(sc);
                return;
        }
 

Modified: haiku/vendor/freebsd/current/dev/ral/rt2560var.h
===================================================================
--- haiku/vendor/freebsd/current/dev/ral/rt2560var.h    2011-04-11 18:02:34 UTC 
(rev 41219)
+++ haiku/vendor/freebsd/current/dev/ral/rt2560var.h    2011-04-11 18:02:40 UTC 
(rev 41220)
@@ -95,16 +95,9 @@
        int                     cur_decrypt;
 };
 
-struct rt2560_node {
-       struct ieee80211_node   ni;
-       struct ieee80211_amrr_node amrr;
-};
-#define        RT2560_NODE(ni)         ((struct rt2560_node *)(ni))
-
 struct rt2560_vap {
        struct ieee80211vap     ral_vap;
        struct ieee80211_beacon_offsets ral_bo;
-       struct ieee80211_amrr   amrr;
 
        int                     (*ral_newstate)(struct ieee80211vap *,
                                    enum ieee80211_state, int);

Modified: haiku/vendor/freebsd/current/dev/ral/rt2661.c
===================================================================
--- haiku/vendor/freebsd/current/dev/ral/rt2661.c       2011-04-11 18:02:34 UTC 
(rev 41219)
+++ haiku/vendor/freebsd/current/dev/ral/rt2661.c       2011-04-11 18:02:40 UTC 
(rev 41220)
@@ -55,7 +55,7 @@
 #include <net80211/ieee80211_var.h>
 #include <net80211/ieee80211_radiotap.h>
 #include <net80211/ieee80211_regdomain.h>
-#include <net80211/ieee80211_amrr.h>
+#include <net80211/ieee80211_ratectl.h>
 
 #include <netinet/in.h>
 #include <netinet/in_systm.h>
@@ -100,9 +100,6 @@
                            struct rt2661_rx_ring *);
 static void            rt2661_free_rx_ring(struct rt2661_softc *,
                            struct rt2661_rx_ring *);
-static struct ieee80211_node *rt2661_node_alloc(struct ieee80211vap *,
-                           const uint8_t [IEEE80211_ADDR_LEN]);
-static void            rt2661_newassoc(struct ieee80211_node *, int);
 static int             rt2661_newstate(struct ieee80211vap *,
                            enum ieee80211_state, int);
 static uint16_t                rt2661_eeprom_read(struct rt2661_softc *, 
uint8_t);
@@ -271,8 +268,8 @@
        ifp->if_init = rt2661_init;
        ifp->if_ioctl = rt2661_ioctl;
        ifp->if_start = rt2661_start;
-       IFQ_SET_MAXLEN(&ifp->if_snd, IFQ_MAXLEN);
-       ifp->if_snd.ifq_drv_maxlen = IFQ_MAXLEN;
+       IFQ_SET_MAXLEN(&ifp->if_snd, ifqmaxlen);
+       ifp->if_snd.ifq_drv_maxlen = ifqmaxlen;
        IFQ_SET_READY(&ifp->if_snd);
 
        ic->ic_ifp = ifp;
@@ -306,8 +303,6 @@
        ieee80211_init_channels(ic, NULL, &bands);
 
        ieee80211_ifattach(ic, macaddr);
-       ic->ic_newassoc = rt2661_newassoc;
-       ic->ic_node_alloc = rt2661_node_alloc;
 #if 0
        ic->ic_wme.wme_update = rt2661_wme_update;
 #endif
@@ -428,11 +423,7 @@
        vap->iv_update_beacon = rt2661_beacon_update;
 #endif
 
-       ieee80211_amrr_init(&rvp->amrr, vap,
-           IEEE80211_AMRR_MIN_SUCCESS_THRESHOLD,
-           IEEE80211_AMRR_MAX_SUCCESS_THRESHOLD,
-           500 /* ms */);
-
+       ieee80211_ratectl_init(vap);
        /* complete setup */
        ieee80211_vap_attach(vap, ieee80211_media_change, 
ieee80211_media_status);
        if (TAILQ_FIRST(&ic->ic_vaps) == vap)
@@ -445,7 +436,7 @@
 {
        struct rt2661_vap *rvp = RT2661_VAP(vap);
 
-       ieee80211_amrr_cleanup(&rvp->amrr);
+       ieee80211_ratectl_deinit(vap);
        ieee80211_vap_detach(vap);
        free(rvp, M_80211_VAP);
 }
@@ -771,27 +762,6 @@
                bus_dma_tag_destroy(ring->data_dmat);
 }
 
-static struct ieee80211_node *
-rt2661_node_alloc(struct ieee80211vap *vap,
-       const uint8_t mac[IEEE80211_ADDR_LEN])
-{
-       struct rt2661_node *rn;
-
-       rn = malloc(sizeof (struct rt2661_node), M_80211_NODE,
-           M_NOWAIT | M_ZERO);
-
-       return (rn != NULL) ? &rn->ni : NULL;
-}
-
-static void
-rt2661_newassoc(struct ieee80211_node *ni, int isnew)
-{
-       struct ieee80211vap *vap = ni->ni_vap;
-
-       ieee80211_amrr_node_init(&RT2661_VAP(vap)->amrr,
-           &RT2661_NODE(ni)->amrr, ni);
-}
-
 static int
 rt2661_newstate(struct ieee80211vap *vap, enum ieee80211_state nstate, int arg)
 {
@@ -899,9 +869,9 @@
        struct ifnet *ifp = sc->sc_ifp;
        struct rt2661_tx_ring *txq;
        struct rt2661_tx_data *data;
-       struct rt2661_node *rn;
        uint32_t val;
        int qid, retrycnt;
+       struct ieee80211vap *vap;
 
        for (;;) {
                struct ieee80211_node *ni;
@@ -925,9 +895,9 @@
                /* if no frame has been sent, ignore */
                if (ni == NULL)
                        continue;
+               else
+                       vap = ni->ni_vap;
 
-               rn = RT2661_NODE(ni);
-
                switch (RT2661_TX_RESULT(val)) {
                case RT2661_TX_SUCCESS:
                        retrycnt = RT2661_TX_RETRYCNT(val);
@@ -935,8 +905,9 @@
                        DPRINTFN(sc, 10, "data frame sent successfully after "
                            "%d retries\n", retrycnt);
                        if (data->rix != IEEE80211_FIXED_RATE_NONE)
-                               ieee80211_amrr_tx_complete(&rn->amrr,
-                                   IEEE80211_AMRR_SUCCESS, retrycnt);
+                               ieee80211_ratectl_tx_complete(vap, ni,
+                                   IEEE80211_RATECTL_TX_SUCCESS,
+                                   &retrycnt, NULL);
                        ifp->if_opackets++;
                        break;
 
@@ -946,8 +917,9 @@
                        DPRINTFN(sc, 9, "%s\n",
                            "sending data frame failed (too much retries)");
                        if (data->rix != IEEE80211_FIXED_RATE_NONE)
-                               ieee80211_amrr_tx_complete(&rn->amrr,
-                                   IEEE80211_AMRR_FAILURE, retrycnt);
+                               ieee80211_ratectl_tx_complete(vap, ni,
+                                   IEEE80211_RATECTL_TX_FAILURE,
+                                   &retrycnt, NULL);
                        ifp->if_oerrors++;
                        break;
 
@@ -1511,7 +1483,7 @@
        } else if (tp->ucastrate != IEEE80211_FIXED_RATE_NONE) {
                rate = tp->ucastrate;
        } else {
-               (void) ieee80211_amrr_choose(ni, &RT2661_NODE(ni)->amrr);
+               (void) ieee80211_ratectl_rate(ni, NULL, 0);
                rate = ni->ni_txrate;
        }
        rate &= IEEE80211_RATE_VAL;

Modified: haiku/vendor/freebsd/current/dev/ral/rt2661var.h
===================================================================
--- haiku/vendor/freebsd/current/dev/ral/rt2661var.h    2011-04-11 18:02:34 UTC 
(rev 41219)
+++ haiku/vendor/freebsd/current/dev/ral/rt2661var.h    2011-04-11 18:02:40 UTC 
(rev 41220)
@@ -88,15 +88,8 @@
        int                     next;
 };
 
-struct rt2661_node {
-       struct ieee80211_node   ni;
-       struct ieee80211_amrr_node amrr;
-};
-#define        RT2661_NODE(ni)         ((struct rt2661_node *)(ni))
-
 struct rt2661_vap {
        struct ieee80211vap     ral_vap;
-       struct ieee80211_amrr   amrr;
 
        int                     (*ral_newstate)(struct ieee80211vap *,
                                    enum ieee80211_state, int);


Other related posts:

  • » [haiku-commits] r41220 - haiku/vendor/freebsd/current/dev/ral - korli