rt2860.c (243857) | rt2860.c (252727) |
---|---|
1/*- 2 * Copyright (c) 2007-2010 Damien Bergamini <damien.bergamini@free.fr> 3 * Copyright (c) 2012 Bernhard Schmidt <bschmidt@FreeBSD.org> 4 * 5 * Permission to use, copy, modify, and distribute this software for any 6 * purpose with or without fee is hereby granted, provided that the above 7 * copyright notice and this permission notice appear in all copies. 8 * --- 4 unchanged lines hidden (view full) --- 13 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 14 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 15 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16 * 17 * $OpenBSD: rt2860.c,v 1.65 2010/10/23 14:24:54 damien Exp $ 18 */ 19 20#include <sys/cdefs.h> | 1/*- 2 * Copyright (c) 2007-2010 Damien Bergamini <damien.bergamini@free.fr> 3 * Copyright (c) 2012 Bernhard Schmidt <bschmidt@FreeBSD.org> 4 * 5 * Permission to use, copy, modify, and distribute this software for any 6 * purpose with or without fee is hereby granted, provided that the above 7 * copyright notice and this permission notice appear in all copies. 8 * --- 4 unchanged lines hidden (view full) --- 13 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 14 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 15 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16 * 17 * $OpenBSD: rt2860.c,v 1.65 2010/10/23 14:24:54 damien Exp $ 18 */ 19 20#include <sys/cdefs.h> |
21__FBSDID("$FreeBSD: head/sys/dev/ral/rt2860.c 243857 2012-12-04 09:32:43Z glebius $"); | 21__FBSDID("$FreeBSD: head/sys/dev/ral/rt2860.c 252727 2013-07-04 21:16:49Z adrian $"); |
22 23/*- 24 * Ralink Technology RT2860/RT3090/RT3390/RT3562 chipset driver 25 * http://www.ralinktech.com/ 26 */ 27 28#include <sys/param.h> 29#include <sys/sysctl.h> --- 1493 unchanged lines hidden (view full) --- 1523 if (IEEE80211_QOS_HAS_SEQ(wh)) { 1524 qos = ((const struct ieee80211_qosframe *)wh)->i_qos[0]; 1525 tid = qos & IEEE80211_QOS_TID; 1526 } else { 1527 qos = 0; 1528 tid = 0; 1529 } 1530 ring = &sc->txq[qid]; | 22 23/*- 24 * Ralink Technology RT2860/RT3090/RT3390/RT3562 chipset driver 25 * http://www.ralinktech.com/ 26 */ 27 28#include <sys/param.h> 29#include <sys/sysctl.h> --- 1493 unchanged lines hidden (view full) --- 1523 if (IEEE80211_QOS_HAS_SEQ(wh)) { 1524 qos = ((const struct ieee80211_qosframe *)wh)->i_qos[0]; 1525 tid = qos & IEEE80211_QOS_TID; 1526 } else { 1527 qos = 0; 1528 tid = 0; 1529 } 1530 ring = &sc->txq[qid]; |
1531 ridx = ic->ic_rt->rateCodeToIndex[rate]; | 1531 ridx = ieee80211_legacy_rate_lookup(ic->ic_rt, rate); |
1532 1533 /* get MCS code from rate index */ 1534 mcs = rt2860_rates[ridx].mcs; 1535 1536 /* setup TX Wireless Information */ 1537 txwi = data->txwi; 1538 txwi->flags = 0; 1539 /* let HW generate seq numbers for non-QoS frames */ --- 234 unchanged lines hidden (view full) --- 1774 data = SLIST_FIRST(&sc->data_pool); 1775 1776 wh = mtod(m, struct ieee80211_frame *); 1777 hdrlen = ieee80211_hdrsize(wh); 1778 type = wh->i_fc[0] & IEEE80211_FC0_TYPE_MASK; 1779 1780 /* Choose a TX rate index. */ 1781 rate = params->ibp_rate0; | 1532 1533 /* get MCS code from rate index */ 1534 mcs = rt2860_rates[ridx].mcs; 1535 1536 /* setup TX Wireless Information */ 1537 txwi = data->txwi; 1538 txwi->flags = 0; 1539 /* let HW generate seq numbers for non-QoS frames */ --- 234 unchanged lines hidden (view full) --- 1774 data = SLIST_FIRST(&sc->data_pool); 1775 1776 wh = mtod(m, struct ieee80211_frame *); 1777 hdrlen = ieee80211_hdrsize(wh); 1778 type = wh->i_fc[0] & IEEE80211_FC0_TYPE_MASK; 1779 1780 /* Choose a TX rate index. */ 1781 rate = params->ibp_rate0; |
1782 ridx = ic->ic_rt->rateCodeToIndex[rate]; | 1782 ridx = ieee80211_legacy_rate_lookup(ic->ic_rt, 1783 rate & IEEE80211_RATE_VAL); |
1783 if (ridx == (uint8_t)-1) { 1784 /* XXX fall back to mcast/mgmt rate? */ 1785 m_freem(m); 1786 return EINVAL; 1787 } 1788 1789 qid = params->ibp_pri & 3; 1790 tid = 0; --- 515 unchanged lines hidden (view full) --- 2306 int i; 2307 2308 for (i = 0; i < rs->rs_nrates; i++) { 2309 rate = rs->rs_rates[i]; 2310 2311 if (!(rate & IEEE80211_RATE_BASIC)) 2312 continue; 2313 | 1784 if (ridx == (uint8_t)-1) { 1785 /* XXX fall back to mcast/mgmt rate? */ 1786 m_freem(m); 1787 return EINVAL; 1788 } 1789 1790 qid = params->ibp_pri & 3; 1791 tid = 0; --- 515 unchanged lines hidden (view full) --- 2307 int i; 2308 2309 for (i = 0; i < rs->rs_nrates; i++) { 2310 rate = rs->rs_rates[i]; 2311 2312 if (!(rate & IEEE80211_RATE_BASIC)) 2313 continue; 2314 |
2314 mask |= 1 << ic->ic_rt->rateCodeToIndex[RV(rate)]; | 2315 mask |= 1 << ieee80211_legacy_rate_lookup(ic->ic_rt, RV(rate)); |
2315 } 2316 2317 RAL_WRITE(sc, RT2860_LEGACY_BASIC_RATE, mask); 2318#undef RV 2319} 2320 2321static void 2322rt2860_scan_start(struct ieee80211com *ic) --- 1781 unchanged lines hidden --- | 2316 } 2317 2318 RAL_WRITE(sc, RT2860_LEGACY_BASIC_RATE, mask); 2319#undef RV 2320} 2321 2322static void 2323rt2860_scan_start(struct ieee80211com *ic) --- 1781 unchanged lines hidden --- |