we don't report stats for now, as some init is missing for ratectl, this should avoid KDL for these drivers.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41251 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Jérôme Duval
2011-04-14 23:00:33 +00:00
parent 95bd470555
commit 745e924303
5 changed files with 22 additions and 4 deletions
@@ -2982,7 +2982,9 @@ bwi_encap(struct bwi_softc *sc, int idx, struct mbuf *m,
} else if (tp->ucastrate != IEEE80211_FIXED_RATE_NONE) {
rate = rate_fb = tp->ucastrate;
} else {
#ifndef __HAIKU__
rix = ieee80211_ratectl_rate(ni, NULL, pkt_len);
#endif
rate = ni->ni_txrate;
if (rix > 0) {
@@ -3378,9 +3380,11 @@ _bwi_txeof(struct bwi_softc *sc, uint16_t tx_id, int acked, int data_txcnt)
* well so to avoid over-aggressive downshifting we
* treat any number of retries as "1".
*/
#ifndef __HAIKU__
ieee80211_ratectl_tx_complete(vap, ni,
(data_txcnt > 1) ? IEEE80211_RATECTL_TX_SUCCESS :
IEEE80211_RATECTL_TX_FAILURE, &acked, NULL);
#endif
}
/*
@@ -1600,8 +1600,10 @@ wpi_tx_intr(struct wpi_softc *sc, struct wpi_rx_desc *desc)
DPRINTFN(WPI_DEBUG_TX, ("%d retries\n", stat->ntries));
retrycnt = 1;
}
#ifndef __HAIKU__
ieee80211_ratectl_tx_complete(vap, ni, IEEE80211_RATECTL_TX_SUCCESS,
&retrycnt, NULL);
#endif
/* XXX oerrors should only count errors !maxtries */
if ((le32toh(stat->status) & 0xff) != 1)
@@ -1947,7 +1949,9 @@ wpi_tx_data(struct wpi_softc *sc, struct mbuf *m0, struct ieee80211_node *ni,
} else if (tp->ucastrate != IEEE80211_FIXED_RATE_NONE) {
rate = tp->ucastrate;
} else {
#ifndef __HAIKU__
(void) ieee80211_ratectl_rate(ni, NULL, 0);
#endif
rate = ni->ni_txrate;
}
tx->rate = wpi_plcp_signal(rate);
@@ -826,9 +826,7 @@ iwn_vap_create(struct ieee80211com *ic,
ivp->iv_newstate = vap->iv_newstate;
vap->iv_newstate = iwn_newstate;
#ifndef __HAIKU__
ieee80211_ratectl_init(vap);
#endif
/* Complete setup. */
ieee80211_vap_attach(vap, iwn_media_change, ieee80211_media_status);
ic->ic_opmode = opmode;
@@ -840,9 +838,7 @@ iwn_vap_delete(struct ieee80211vap *vap)
{
struct iwn_vap *ivp = IWN_VAP(vap);
#ifndef __HAIKU__
ieee80211_ratectl_deinit(vap);
#endif
ieee80211_vap_detach(vap);
free(ivp, M_80211_VAP);
}
@@ -953,10 +953,12 @@ rt2560_tx_intr(struct rt2560_softc *sc)
retrycnt = 0;
DPRINTFN(sc, 10, "%s\n", "data frame sent successfully");
#ifndef __HAIKU__
if (data->rix != IEEE80211_FIXED_RATE_NONE)
ieee80211_ratectl_tx_complete(vap, ni,
IEEE80211_RATECTL_TX_SUCCESS,
&retrycnt, NULL);
#endif
ifp->if_opackets++;
break;
@@ -965,10 +967,12 @@ rt2560_tx_intr(struct rt2560_softc *sc)
DPRINTFN(sc, 9, "data frame sent after %u retries\n",
retrycnt);
#ifndef __HAIKU__
if (data->rix != IEEE80211_FIXED_RATE_NONE)
ieee80211_ratectl_tx_complete(vap, ni,
IEEE80211_RATECTL_TX_SUCCESS,
&retrycnt, NULL);
#endif
ifp->if_opackets++;
break;
@@ -977,10 +981,12 @@ rt2560_tx_intr(struct rt2560_softc *sc)
DPRINTFN(sc, 9, "data frame failed after %d retries\n",
retrycnt);
#ifndef __HAIKU__
if (data->rix != IEEE80211_FIXED_RATE_NONE)
ieee80211_ratectl_tx_complete(vap, ni,
IEEE80211_RATECTL_TX_FAILURE,
&retrycnt, NULL);
#endif
ifp->if_oerrors++;
break;
@@ -1800,7 +1806,9 @@ rt2560_tx_data(struct rt2560_softc *sc, struct mbuf *m0,
} else if (tp->ucastrate != IEEE80211_FIXED_RATE_NONE) {
rate = tp->ucastrate;
} else {
#ifndef __HAIKU__
(void) ieee80211_ratectl_rate(ni, NULL, 0);
#endif
rate = ni->ni_txrate;
}
@@ -904,10 +904,12 @@ rt2661_tx_intr(struct rt2661_softc *sc)
DPRINTFN(sc, 10, "data frame sent successfully after "
"%d retries\n", retrycnt);
#ifndef __HAIKU__
if (data->rix != IEEE80211_FIXED_RATE_NONE)
ieee80211_ratectl_tx_complete(vap, ni,
IEEE80211_RATECTL_TX_SUCCESS,
&retrycnt, NULL);
#endif
ifp->if_opackets++;
break;
@@ -916,10 +918,12 @@ rt2661_tx_intr(struct rt2661_softc *sc)
DPRINTFN(sc, 9, "%s\n",
"sending data frame failed (too much retries)");
#ifndef __HAIKU__
if (data->rix != IEEE80211_FIXED_RATE_NONE)
ieee80211_ratectl_tx_complete(vap, ni,
IEEE80211_RATECTL_TX_FAILURE,
&retrycnt, NULL);
#endif
ifp->if_oerrors++;
break;
@@ -1485,7 +1489,9 @@ rt2661_tx_data(struct rt2661_softc *sc, struct mbuf *m0,
} else if (tp->ucastrate != IEEE80211_FIXED_RATE_NONE) {
rate = tp->ucastrate;
} else {
#ifndef __HAIKU__
(void) ieee80211_ratectl_rate(ni, NULL, 0);
#endif
rate = ni->ni_txrate;
}
rate &= IEEE80211_RATE_VAL;