Date: Mon, 28 Apr 2008 17:56:45 GMT From: Sam Leffler <sam@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 140799 for review Message-ID: <200804281756.m3SHujca047063@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=140799 Change 140799 by sam@sam_ebb on 2008/04/28 17:56:19 o track api change for ieee80211_plcp2rate o use ieee80211_rate2plcp instead of private function now that it follows the IEEE spec and not ralink's private encoding for CCK rates o use PLCP service definitions added to ieee80211.h (slight name change) o re-enable device reset code Affected files ... .. //depot/projects/vap/sys/dev/bwi/bwimac.c#5 edit .. //depot/projects/vap/sys/dev/bwi/if_bwi.c#9 edit Differences ... ==== //depot/projects/vap/sys/dev/bwi/bwimac.c#5 (text+ko) ==== @@ -1437,7 +1437,7 @@ default: panic("unsupported modtype %u\n", modtype); } - ofs += (bwi_rate2plcp(rs->rs_rates[i]) & 0xf) * 2; + ofs += 2*(ieee80211_rate2plcp(rs->rs_rates[i], modtype) & 0xf); MOBJ_WRITE_2(mac, BWI_COMM_MOBJ, ofs + 0x20, MOBJ_READ_2(mac, BWI_COMM_MOBJ, ofs)); ==== //depot/projects/vap/sys/dev/bwi/if_bwi.c#9 (text+ko) ==== @@ -2864,33 +2864,6 @@ } /* XXX does not belong here */ -uint8_t -bwi_rate2plcp(uint8_t rate) -{ - rate &= IEEE80211_RATE_VAL; - - switch (rate) { - case 2: return 0xa; - case 4: return 0x14; - case 11: return 0x37; - case 22: return 0x6e; - case 44: return 0xdc; - - case 12: return 0xb; - case 18: return 0xf; - case 24: return 0xa; - case 36: return 0xe; - case 48: return 0x9; - case 72: return 0xd; - case 96: return 0x8; - case 108: return 0xc; - - default: - panic("unsupported rate %u\n", rate); - } -} - -/* XXX does not belong here */ #define IEEE80211_OFDM_PLCP_RATE_MASK __BITS(3, 0) #define IEEE80211_OFDM_PLCP_LEN_MASK __BITS(16, 5) @@ -2899,17 +2872,12 @@ { uint32_t plcp; - plcp = __SHIFTIN(bwi_rate2plcp(rate), IEEE80211_OFDM_PLCP_RATE_MASK) | + plcp = __SHIFTIN(ieee80211_rate2plcp(rate, IEEE80211_T_OFDM), + IEEE80211_OFDM_PLCP_RATE_MASK) | __SHIFTIN(pkt_len, IEEE80211_OFDM_PLCP_LEN_MASK); *plcp0 = htole32(plcp); } -#define IEEE80211_DS_PLCP_SERVICE_LOCKED 0x04 -#define IEEE80211_DS_PLCL_SERVICE_PBCC 0x08 -#define IEEE80211_DS_PLCP_SERVICE_LENEXT5 0x20 -#define IEEE80211_DS_PLCP_SERVICE_LENEXT6 0x40 -#define IEEE80211_DS_PLCP_SERVICE_LENEXT7 0x80 - static __inline void bwi_ds_plcp_header(struct ieee80211_ds_plcp_hdr *plcp, int pkt_len, uint8_t rate) @@ -2919,7 +2887,7 @@ pkt_bitlen = pkt_len * NBBY; len = howmany(pkt_bitlen * 2, rate); - service = IEEE80211_DS_PLCP_SERVICE_LOCKED; + service = IEEE80211_PLCP_SERVICE_LOCKED; if (rate == (11 * 2)) { int pkt_bitlen1; @@ -2929,10 +2897,10 @@ */ pkt_bitlen1 = len * 11; if (pkt_bitlen1 - pkt_bitlen >= NBBY) - service |= IEEE80211_DS_PLCP_SERVICE_LENEXT7; + service |= IEEE80211_PLCP_SERVICE_LENEXT7; } - plcp->i_signal = bwi_rate2plcp(rate); + plcp->i_signal = ieee80211_rate2plcp(rate, IEEE80211_T_CCK); plcp->i_service = service; plcp->i_length = htole16(len); /* NOTE: do NOT touch i_crc */ @@ -3803,13 +3771,13 @@ plcp = le32toh(*plcp0); plcp_rate = __SHIFTOUT(plcp, IEEE80211_OFDM_PLCP_RATE_MASK); - return ieee80211_plcp2rate(plcp_rate, 1); + return ieee80211_plcp2rate(plcp_rate, IEEE80211_T_OFDM); } static __inline uint8_t bwi_ds_plcp2rate(const struct ieee80211_ds_plcp_hdr *hdr) { - return ieee80211_plcp2rate(hdr->i_signal, 0); + return ieee80211_plcp2rate(hdr->i_signal, IEEE80211_T_DS); } static void @@ -4054,8 +4022,8 @@ struct ifnet *ifp = sc->sc_ifp; if_printf(ifp, "%s begin, help!\n", __func__); + bwi_init_statechg(xsc, 0); #if 0 - bwi_init_statechg(xsc, 0); bwi_start_locked(ifp); #endif }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200804281756.m3SHujca047063>