net80211 & wireless drivers: remove duplicate defines (noop)
* IEEE80211_DIR_DSTODS(wh) -> IEEE80211_IS_DSTODS(wh). * N(a) -> nitems(a). * Remove LE_READ_2(p)/LE_READ_4(p) definitions (and include ieee80211_input.h instead). * <drvname>_TXOP_TO_US(txop) -> IEEE80211_TXOP_TO_US(txop). * Put IEEE80211_RV(v) into ieee80211_proto.h and remove local RV(v) definitions. Submitted by: Andriy Voskoboinyk <s3erios@gmail.com> Differential Revision: https://reviews.freebsd.org/D3705
This commit is contained in:
parent
0ebe104f96
commit
d6166def28
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=288087
@ -4127,7 +4127,6 @@ ath_txq_init(struct ath_softc *sc, struct ath_txq *txq, int qnum)
|
||||
static struct ath_txq *
|
||||
ath_txq_setup(struct ath_softc *sc, int qtype, int subtype)
|
||||
{
|
||||
#define N(a) (sizeof(a)/sizeof(a[0]))
|
||||
struct ath_hal *ah = sc->sc_ah;
|
||||
HAL_TXQ_INFO qi;
|
||||
int qnum;
|
||||
@ -4164,10 +4163,10 @@ ath_txq_setup(struct ath_softc *sc, int qtype, int subtype)
|
||||
*/
|
||||
return NULL;
|
||||
}
|
||||
if (qnum >= N(sc->sc_txq)) {
|
||||
if (qnum >= nitems(sc->sc_txq)) {
|
||||
device_printf(sc->sc_dev,
|
||||
"hal qnum %u out of range, max %zu!\n",
|
||||
qnum, N(sc->sc_txq));
|
||||
qnum, nitems(sc->sc_txq));
|
||||
ath_hal_releasetxqueue(ah, qnum);
|
||||
return NULL;
|
||||
}
|
||||
@ -4176,7 +4175,6 @@ ath_txq_setup(struct ath_softc *sc, int qtype, int subtype)
|
||||
sc->sc_txqsetup |= 1<<qnum;
|
||||
}
|
||||
return &sc->sc_txq[qnum];
|
||||
#undef N
|
||||
}
|
||||
|
||||
/*
|
||||
@ -4191,12 +4189,11 @@ ath_txq_setup(struct ath_softc *sc, int qtype, int subtype)
|
||||
static int
|
||||
ath_tx_setup(struct ath_softc *sc, int ac, int haltype)
|
||||
{
|
||||
#define N(a) (sizeof(a)/sizeof(a[0]))
|
||||
struct ath_txq *txq;
|
||||
|
||||
if (ac >= N(sc->sc_ac2q)) {
|
||||
if (ac >= nitems(sc->sc_ac2q)) {
|
||||
device_printf(sc->sc_dev, "AC %u out of range, max %zu!\n",
|
||||
ac, N(sc->sc_ac2q));
|
||||
ac, nitems(sc->sc_ac2q));
|
||||
return 0;
|
||||
}
|
||||
txq = ath_txq_setup(sc, HAL_TX_QUEUE_DATA, haltype);
|
||||
@ -4206,7 +4203,6 @@ ath_tx_setup(struct ath_softc *sc, int ac, int haltype)
|
||||
return 1;
|
||||
} else
|
||||
return 0;
|
||||
#undef N
|
||||
}
|
||||
|
||||
/*
|
||||
@ -4216,7 +4212,6 @@ static int
|
||||
ath_txq_update(struct ath_softc *sc, int ac)
|
||||
{
|
||||
#define ATH_EXPONENT_TO_VALUE(v) ((1<<v)-1)
|
||||
#define ATH_TXOP_TO_US(v) (v<<5)
|
||||
struct ieee80211com *ic = &sc->sc_ic;
|
||||
struct ath_txq *txq = sc->sc_ac2q[ac];
|
||||
struct wmeParams *wmep = &ic->ic_wme.wme_chanParams.cap_wmeParams[ac];
|
||||
@ -4262,7 +4257,7 @@ ath_txq_update(struct ath_softc *sc, int ac)
|
||||
qi.tqi_cwmin = ATH_EXPONENT_TO_VALUE(wmep->wmep_logcwmin);
|
||||
qi.tqi_cwmax = ATH_EXPONENT_TO_VALUE(wmep->wmep_logcwmax);
|
||||
qi.tqi_readyTime = 0;
|
||||
qi.tqi_burstTime = ATH_TXOP_TO_US(wmep->wmep_txopLimit);
|
||||
qi.tqi_burstTime = IEEE80211_TXOP_TO_US(wmep->wmep_txopLimit);
|
||||
#ifdef IEEE80211_SUPPORT_TDMA
|
||||
}
|
||||
#endif
|
||||
@ -4280,7 +4275,6 @@ ath_txq_update(struct ath_softc *sc, int ac)
|
||||
ath_hal_resettxqueue(ah, txq->axq_qnum); /* push to h/w */
|
||||
return 1;
|
||||
}
|
||||
#undef ATH_TXOP_TO_US
|
||||
#undef ATH_EXPONENT_TO_VALUE
|
||||
}
|
||||
|
||||
@ -6302,7 +6296,6 @@ ath_rate_setup(struct ath_softc *sc, u_int mode)
|
||||
static void
|
||||
ath_setcurmode(struct ath_softc *sc, enum ieee80211_phymode mode)
|
||||
{
|
||||
#define N(a) (sizeof(a)/sizeof(a[0]))
|
||||
/* NB: on/off times from the Atheros NDIS driver, w/ permission */
|
||||
static const struct {
|
||||
u_int rate; /* tx/rx 802.11 rate */
|
||||
@ -6339,7 +6332,7 @@ ath_setcurmode(struct ath_softc *sc, enum ieee80211_phymode mode)
|
||||
sc->sc_rixmap[ieeerate | IEEE80211_RATE_MCS] = i;
|
||||
}
|
||||
memset(sc->sc_hwmap, 0, sizeof(sc->sc_hwmap));
|
||||
for (i = 0; i < N(sc->sc_hwmap); i++) {
|
||||
for (i = 0; i < nitems(sc->sc_hwmap); i++) {
|
||||
if (i >= rt->rateCount) {
|
||||
sc->sc_hwmap[i].ledon = (500 * hz) / 1000;
|
||||
sc->sc_hwmap[i].ledoff = (130 * hz) / 1000;
|
||||
@ -6354,7 +6347,7 @@ ath_setcurmode(struct ath_softc *sc, enum ieee80211_phymode mode)
|
||||
rt->info[i].phy == IEEE80211_T_OFDM)
|
||||
sc->sc_hwmap[i].txflags |= IEEE80211_RADIOTAP_F_SHORTPRE;
|
||||
sc->sc_hwmap[i].rxflags = sc->sc_hwmap[i].txflags;
|
||||
for (j = 0; j < N(blinkrates)-1; j++)
|
||||
for (j = 0; j < nitems(blinkrates)-1; j++)
|
||||
if (blinkrates[j].rate == sc->sc_hwmap[i].ieeerate)
|
||||
break;
|
||||
/* NB: this uses the last entry if the rate isn't found */
|
||||
@ -6373,7 +6366,6 @@ ath_setcurmode(struct ath_softc *sc, enum ieee80211_phymode mode)
|
||||
else
|
||||
sc->sc_protrix = ath_tx_findrix(sc, 2*1);
|
||||
/* NB: caller is responsible for resetting rate control state */
|
||||
#undef N
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -184,7 +184,6 @@ ath_keyset(struct ath_softc *sc, struct ieee80211vap *vap,
|
||||
const struct ieee80211_key *k,
|
||||
struct ieee80211_node *bss)
|
||||
{
|
||||
#define N(a) (sizeof(a)/sizeof(a[0]))
|
||||
static const u_int8_t ciphermap[] = {
|
||||
HAL_CIPHER_WEP, /* IEEE80211_CIPHER_WEP */
|
||||
HAL_CIPHER_TKIP, /* IEEE80211_CIPHER_TKIP */
|
||||
@ -208,7 +207,7 @@ ath_keyset(struct ath_softc *sc, struct ieee80211vap *vap,
|
||||
* so that rx frames have an entry to match.
|
||||
*/
|
||||
if ((k->wk_flags & IEEE80211_KEY_SWCRYPT) == 0) {
|
||||
KASSERT(cip->ic_cipher < N(ciphermap),
|
||||
KASSERT(cip->ic_cipher < nitems(ciphermap),
|
||||
("invalid cipher type %u", cip->ic_cipher));
|
||||
hk.kv_type = ciphermap[cip->ic_cipher];
|
||||
hk.kv_len = k->wk_keylen;
|
||||
@ -266,7 +265,6 @@ ath_keyset(struct ath_softc *sc, struct ieee80211vap *vap,
|
||||
ATH_UNLOCK(sc);
|
||||
|
||||
return (ret);
|
||||
#undef N
|
||||
}
|
||||
|
||||
/*
|
||||
@ -277,12 +275,11 @@ static u_int16_t
|
||||
key_alloc_2pair(struct ath_softc *sc,
|
||||
ieee80211_keyix *txkeyix, ieee80211_keyix *rxkeyix)
|
||||
{
|
||||
#define N(a) (sizeof(a)/sizeof(a[0]))
|
||||
u_int i, keyix;
|
||||
|
||||
KASSERT(sc->sc_splitmic, ("key cache !split"));
|
||||
/* XXX could optimize */
|
||||
for (i = 0; i < N(sc->sc_keymap)/4; i++) {
|
||||
for (i = 0; i < nitems(sc->sc_keymap)/4; i++) {
|
||||
u_int8_t b = sc->sc_keymap[i];
|
||||
if (b != 0xff) {
|
||||
/*
|
||||
@ -321,7 +318,6 @@ key_alloc_2pair(struct ath_softc *sc,
|
||||
}
|
||||
DPRINTF(sc, ATH_DEBUG_KEYCACHE, "%s: out of pair space\n", __func__);
|
||||
return 0;
|
||||
#undef N
|
||||
}
|
||||
|
||||
/*
|
||||
@ -332,12 +328,11 @@ static u_int16_t
|
||||
key_alloc_pair(struct ath_softc *sc,
|
||||
ieee80211_keyix *txkeyix, ieee80211_keyix *rxkeyix)
|
||||
{
|
||||
#define N(a) (sizeof(a)/sizeof(a[0]))
|
||||
u_int i, keyix;
|
||||
|
||||
KASSERT(!sc->sc_splitmic, ("key cache split"));
|
||||
/* XXX could optimize */
|
||||
for (i = 0; i < N(sc->sc_keymap)/4; i++) {
|
||||
for (i = 0; i < nitems(sc->sc_keymap)/4; i++) {
|
||||
u_int8_t b = sc->sc_keymap[i];
|
||||
if (b != 0xff) {
|
||||
/*
|
||||
@ -369,7 +364,6 @@ key_alloc_pair(struct ath_softc *sc,
|
||||
}
|
||||
DPRINTF(sc, ATH_DEBUG_KEYCACHE, "%s: out of pair space\n", __func__);
|
||||
return 0;
|
||||
#undef N
|
||||
}
|
||||
|
||||
/*
|
||||
@ -379,7 +373,6 @@ static int
|
||||
key_alloc_single(struct ath_softc *sc,
|
||||
ieee80211_keyix *txkeyix, ieee80211_keyix *rxkeyix)
|
||||
{
|
||||
#define N(a) (sizeof(a)/sizeof(a[0]))
|
||||
u_int i, keyix;
|
||||
|
||||
if (sc->sc_hasclrkey == 0) {
|
||||
@ -391,7 +384,7 @@ key_alloc_single(struct ath_softc *sc,
|
||||
}
|
||||
|
||||
/* XXX try i,i+32,i+64,i+32+64 to minimize key pair conflicts */
|
||||
for (i = 0; i < N(sc->sc_keymap); i++) {
|
||||
for (i = 0; i < nitems(sc->sc_keymap); i++) {
|
||||
u_int8_t b = sc->sc_keymap[i];
|
||||
if (b != 0xff) {
|
||||
/*
|
||||
@ -409,7 +402,6 @@ key_alloc_single(struct ath_softc *sc,
|
||||
}
|
||||
DPRINTF(sc, ATH_DEBUG_KEYCACHE, "%s: out of space\n", __func__);
|
||||
return 0;
|
||||
#undef N
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -1657,17 +1657,15 @@ bwi_mac_attach(struct bwi_softc *sc, int id, uint8_t rev)
|
||||
/*
|
||||
* Test whether the revision of this MAC is supported
|
||||
*/
|
||||
#define N(arr) (int)(sizeof(arr) / sizeof(arr[0]))
|
||||
for (i = 0; i < N(bwi_sup_macrev); ++i) {
|
||||
for (i = 0; i < nitems(bwi_sup_macrev); ++i) {
|
||||
if (bwi_sup_macrev[i] == rev)
|
||||
break;
|
||||
}
|
||||
if (i == N(bwi_sup_macrev)) {
|
||||
if (i == nitems(bwi_sup_macrev)) {
|
||||
device_printf(sc->sc_dev, "MAC rev %u is "
|
||||
"not supported\n", rev);
|
||||
return ENXIO;
|
||||
}
|
||||
#undef N
|
||||
|
||||
BWI_CREATE_MAC(mac, sc, id, rev);
|
||||
sc->sc_nmac++;
|
||||
|
@ -185,19 +185,17 @@ bwi_phy_attach(struct bwi_mac *mac)
|
||||
phy->phy_tbl_data_hi = BWI_PHYR_TBL_DATA_HI_11A;
|
||||
break;
|
||||
case BWI_PHYINFO_TYPE_11B:
|
||||
#define N(arr) (int)(sizeof(arr) / sizeof(arr[0]))
|
||||
for (i = 0; i < N(bwi_sup_bphy); ++i) {
|
||||
for (i = 0; i < nitems(bwi_sup_bphy); ++i) {
|
||||
if (phyrev == bwi_sup_bphy[i].rev) {
|
||||
phy->phy_init = bwi_sup_bphy[i].init;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (i == N(bwi_sup_bphy)) {
|
||||
if (i == nitems(bwi_sup_bphy)) {
|
||||
device_printf(sc->sc_dev, "unsupported 11B PHY, "
|
||||
"rev %u\n", phyrev);
|
||||
return ENXIO;
|
||||
}
|
||||
#undef N
|
||||
phy->phy_mode = IEEE80211_MODE_11B;
|
||||
break;
|
||||
case BWI_PHYINFO_TYPE_11G:
|
||||
@ -745,8 +743,6 @@ bwi_phy_init_11b_rev6(struct bwi_mac *mac)
|
||||
}
|
||||
}
|
||||
|
||||
#define N(arr) (int)(sizeof(arr) / sizeof(arr[0]))
|
||||
|
||||
static void
|
||||
bwi_phy_config_11g(struct bwi_mac *mac)
|
||||
{
|
||||
@ -763,19 +759,19 @@ bwi_phy_config_11g(struct bwi_mac *mac)
|
||||
PHY_WRITE(mac, 0x427, 0x1a);
|
||||
|
||||
/* Fill frequency table */
|
||||
for (i = 0; i < N(bwi_phy_freq_11g_rev1); ++i) {
|
||||
for (i = 0; i < nitems(bwi_phy_freq_11g_rev1); ++i) {
|
||||
bwi_tbl_write_2(mac, BWI_PHYTBL_FREQ + i,
|
||||
bwi_phy_freq_11g_rev1[i]);
|
||||
}
|
||||
|
||||
/* Fill noise table */
|
||||
for (i = 0; i < N(bwi_phy_noise_11g_rev1); ++i) {
|
||||
for (i = 0; i < nitems(bwi_phy_noise_11g_rev1); ++i) {
|
||||
bwi_tbl_write_2(mac, BWI_PHYTBL_NOISE + i,
|
||||
bwi_phy_noise_11g_rev1[i]);
|
||||
}
|
||||
|
||||
/* Fill rotor table */
|
||||
for (i = 0; i < N(bwi_phy_rotor_11g_rev1); ++i) {
|
||||
for (i = 0; i < nitems(bwi_phy_rotor_11g_rev1); ++i) {
|
||||
/* NB: data length is 4 bytes */
|
||||
bwi_tbl_write_4(mac, BWI_PHYTBL_ROTOR + i,
|
||||
bwi_phy_rotor_11g_rev1[i]);
|
||||
@ -798,7 +794,7 @@ bwi_phy_config_11g(struct bwi_mac *mac)
|
||||
bwi_tbl_write_2(mac, BWI_PHYTBL_RSSI + i, i);
|
||||
|
||||
/* Fill noise table */
|
||||
for (i = 0; i < N(bwi_phy_noise_11g); ++i) {
|
||||
for (i = 0; i < nitems(bwi_phy_noise_11g); ++i) {
|
||||
bwi_tbl_write_2(mac, BWI_PHYTBL_NOISE + i,
|
||||
bwi_phy_noise_11g[i]);
|
||||
}
|
||||
@ -809,13 +805,13 @@ bwi_phy_config_11g(struct bwi_mac *mac)
|
||||
*/
|
||||
if (phy->phy_rev <= 2) {
|
||||
tbl = bwi_phy_noise_scale_11g_rev2;
|
||||
n = N(bwi_phy_noise_scale_11g_rev2);
|
||||
n = nitems(bwi_phy_noise_scale_11g_rev2);
|
||||
} else if (phy->phy_rev >= 7 && (PHY_READ(mac, 0x449) & 0x200)) {
|
||||
tbl = bwi_phy_noise_scale_11g_rev7;
|
||||
n = N(bwi_phy_noise_scale_11g_rev7);
|
||||
n = nitems(bwi_phy_noise_scale_11g_rev7);
|
||||
} else {
|
||||
tbl = bwi_phy_noise_scale_11g;
|
||||
n = N(bwi_phy_noise_scale_11g);
|
||||
n = nitems(bwi_phy_noise_scale_11g);
|
||||
}
|
||||
for (i = 0; i < n; ++i)
|
||||
bwi_tbl_write_2(mac, BWI_PHYTBL_NOISE_SCALE + i, tbl[i]);
|
||||
@ -825,10 +821,10 @@ bwi_phy_config_11g(struct bwi_mac *mac)
|
||||
*/
|
||||
if (phy->phy_rev == 2) {
|
||||
tbl = bwi_phy_sigma_sq_11g_rev2;
|
||||
n = N(bwi_phy_sigma_sq_11g_rev2);
|
||||
n = nitems(bwi_phy_sigma_sq_11g_rev2);
|
||||
} else if (phy->phy_rev > 2 && phy->phy_rev <= 8) {
|
||||
tbl = bwi_phy_sigma_sq_11g_rev7;
|
||||
n = N(bwi_phy_sigma_sq_11g_rev7);
|
||||
n = nitems(bwi_phy_sigma_sq_11g_rev7);
|
||||
} else {
|
||||
tbl = NULL;
|
||||
n = 0;
|
||||
@ -838,7 +834,7 @@ bwi_phy_config_11g(struct bwi_mac *mac)
|
||||
|
||||
if (phy->phy_rev == 1) {
|
||||
/* Fill delay table */
|
||||
for (i = 0; i < N(bwi_phy_delay_11g_rev1); ++i) {
|
||||
for (i = 0; i < nitems(bwi_phy_delay_11g_rev1); ++i) {
|
||||
bwi_tbl_write_4(mac, BWI_PHYTBL_DELAY + i,
|
||||
bwi_phy_delay_11g_rev1[i]);
|
||||
}
|
||||
@ -877,8 +873,6 @@ bwi_phy_config_11g(struct bwi_mac *mac)
|
||||
PHY_WRITE(mac, 0x46e, 0x3cf);
|
||||
}
|
||||
|
||||
#undef N
|
||||
|
||||
/*
|
||||
* Configure Automatic Gain Controller
|
||||
*/
|
||||
|
@ -1155,7 +1155,6 @@ bwi_rf_map_txpower(struct bwi_mac *mac)
|
||||
}
|
||||
|
||||
#define IS_VALID_PA_PARAM(p) ((p) != 0 && (p) != -1)
|
||||
#define N(arr) (int)(sizeof(arr) / sizeof(arr[0]))
|
||||
|
||||
/*
|
||||
* Extract PA parameters
|
||||
@ -1164,10 +1163,10 @@ bwi_rf_map_txpower(struct bwi_mac *mac)
|
||||
sprom_ofs = BWI_SPROM_PA_PARAM_11A;
|
||||
else
|
||||
sprom_ofs = BWI_SPROM_PA_PARAM_11BG;
|
||||
for (i = 0; i < N(pa_params); ++i)
|
||||
for (i = 0; i < nitems(pa_params); ++i)
|
||||
pa_params[i] = (int16_t)bwi_read_sprom(sc, sprom_ofs + (i * 2));
|
||||
|
||||
for (i = 0; i < N(pa_params); ++i) {
|
||||
for (i = 0; i < nitems(pa_params); ++i) {
|
||||
/*
|
||||
* If one of the PA parameters from SPROM is not valid,
|
||||
* fall back to the default values, if there are any.
|
||||
@ -1200,8 +1199,6 @@ bwi_rf_map_txpower(struct bwi_mac *mac)
|
||||
}
|
||||
}
|
||||
|
||||
#undef N
|
||||
|
||||
/*
|
||||
* All of the PA parameters from SPROM are valid.
|
||||
*/
|
||||
|
@ -762,7 +762,6 @@ bwi_regwin_info(struct bwi_softc *sc, uint16_t *type, uint8_t *rev)
|
||||
static int
|
||||
bwi_bbp_attach(struct bwi_softc *sc)
|
||||
{
|
||||
#define N(arr) (int)(sizeof(arr) / sizeof(arr[0]))
|
||||
uint16_t bbp_id, rw_type;
|
||||
uint8_t rw_rev;
|
||||
uint32_t info;
|
||||
@ -792,7 +791,7 @@ bwi_bbp_attach(struct bwi_softc *sc)
|
||||
|
||||
sc->sc_cap = CSR_READ_4(sc, BWI_CAPABILITY);
|
||||
} else {
|
||||
for (i = 0; i < N(bwi_bbpid_map); ++i) {
|
||||
for (i = 0; i < nitems(bwi_bbpid_map); ++i) {
|
||||
if (sc->sc_pci_did >= bwi_bbpid_map[i].did_min &&
|
||||
sc->sc_pci_did <= bwi_bbpid_map[i].did_max) {
|
||||
bbp_id = bwi_bbpid_map[i].bbp_id;
|
||||
@ -816,7 +815,7 @@ bwi_bbp_attach(struct bwi_softc *sc)
|
||||
if (rw_type == BWI_REGWIN_T_COM && rw_rev >= 4) {
|
||||
nregwin = __SHIFTOUT(info, BWI_INFO_NREGWIN_MASK);
|
||||
} else {
|
||||
for (i = 0; i < N(bwi_regwin_count); ++i) {
|
||||
for (i = 0; i < nitems(bwi_regwin_count); ++i) {
|
||||
if (bwi_regwin_count[i].bbp_id == bbp_id) {
|
||||
nregwin = bwi_regwin_count[i].nregwin;
|
||||
break;
|
||||
@ -898,7 +897,6 @@ bwi_bbp_attach(struct bwi_softc *sc)
|
||||
return error;
|
||||
|
||||
return 0;
|
||||
#undef N
|
||||
}
|
||||
|
||||
int
|
||||
@ -3765,9 +3763,7 @@ bwi_led_attach(struct bwi_softc *sc)
|
||||
uint16_t gpio, val[BWI_LED_MAX];
|
||||
int i;
|
||||
|
||||
#define N(arr) (int)(sizeof(arr) / sizeof(arr[0]))
|
||||
|
||||
for (i = 0; i < N(bwi_vendor_led_act); ++i) {
|
||||
for (i = 0; i < nitems(bwi_vendor_led_act); ++i) {
|
||||
if (sc->sc_pci_subvid == bwi_vendor_led_act[i].vid) {
|
||||
led_act = bwi_vendor_led_act[i].led_act;
|
||||
break;
|
||||
@ -3776,8 +3772,6 @@ bwi_led_attach(struct bwi_softc *sc)
|
||||
if (led_act == NULL)
|
||||
led_act = bwi_default_led_act;
|
||||
|
||||
#undef N
|
||||
|
||||
gpio = bwi_read_sprom(sc, BWI_SPROM_GPIO01);
|
||||
val[0] = __SHIFTOUT(gpio, BWI_SPROM_GPIO_0);
|
||||
val[1] = __SHIFTOUT(gpio, BWI_SPROM_GPIO_1);
|
||||
|
@ -1417,7 +1417,6 @@ ipw_dma_map_addr(void *arg, bus_dma_segment_t *segs, int nseg, int error)
|
||||
static const char *
|
||||
ipw_cmdname(int cmd)
|
||||
{
|
||||
#define N(a) (sizeof(a) / sizeof(a[0]))
|
||||
static const struct {
|
||||
int cmd;
|
||||
const char *name;
|
||||
@ -1454,12 +1453,11 @@ ipw_cmdname(int cmd)
|
||||
static char buf[12];
|
||||
int i;
|
||||
|
||||
for (i = 0; i < N(cmds); i++)
|
||||
for (i = 0; i < nitems(cmds); i++)
|
||||
if (cmds[i].cmd == cmd)
|
||||
return cmds[i].name;
|
||||
snprintf(buf, sizeof(buf), "%u", cmd);
|
||||
return buf;
|
||||
#undef N
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -3415,7 +3415,6 @@ iwi_led_blink(struct iwi_softc *sc, int on, int off)
|
||||
static void
|
||||
iwi_led_event(struct iwi_softc *sc, int event)
|
||||
{
|
||||
#define N(a) (sizeof(a)/sizeof(a[0]))
|
||||
/* NB: on/off times from the Atheros NDIS driver, w/ permission */
|
||||
static const struct {
|
||||
u_int rate; /* tx/rx iwi rate */
|
||||
@ -3445,13 +3444,13 @@ iwi_led_event(struct iwi_softc *sc, int event)
|
||||
return;
|
||||
switch (event) {
|
||||
case IWI_LED_POLL:
|
||||
j = N(blinkrates)-1;
|
||||
j = nitems(blinkrates)-1;
|
||||
break;
|
||||
case IWI_LED_TX:
|
||||
/* read current transmission rate from adapter */
|
||||
txrate = CSR_READ_4(sc, IWI_CSR_CURRENT_TX_RATE);
|
||||
if (blinkrates[sc->sc_txrix].rate != txrate) {
|
||||
for (j = 0; j < N(blinkrates)-1; j++)
|
||||
for (j = 0; j < nitems(blinkrates)-1; j++)
|
||||
if (blinkrates[j].rate == txrate)
|
||||
break;
|
||||
sc->sc_txrix = j;
|
||||
@ -3460,7 +3459,7 @@ iwi_led_event(struct iwi_softc *sc, int event)
|
||||
break;
|
||||
case IWI_LED_RX:
|
||||
if (blinkrates[sc->sc_rxrix].rate != sc->sc_rxrate) {
|
||||
for (j = 0; j < N(blinkrates)-1; j++)
|
||||
for (j = 0; j < nitems(blinkrates)-1; j++)
|
||||
if (blinkrates[j].rate == sc->sc_rxrate)
|
||||
break;
|
||||
sc->sc_rxrix = j;
|
||||
@ -3471,7 +3470,6 @@ iwi_led_event(struct iwi_softc *sc, int event)
|
||||
/* XXX beware of overflow */
|
||||
iwi_led_blink(sc, (blinkrates[j].timeOn * hz) / 1000,
|
||||
(blinkrates[j].timeOff * hz) / 1000);
|
||||
#undef N
|
||||
}
|
||||
|
||||
static int
|
||||
|
@ -2716,7 +2716,6 @@ static uint32_t
|
||||
iwn_rate_to_plcp(struct iwn_softc *sc, struct ieee80211_node *ni,
|
||||
uint8_t rate)
|
||||
{
|
||||
#define RV(v) ((v) & IEEE80211_RATE_VAL)
|
||||
struct ieee80211com *ic = ni->ni_ic;
|
||||
uint32_t plcp = 0;
|
||||
int ridx;
|
||||
@ -2731,7 +2730,7 @@ iwn_rate_to_plcp(struct iwn_softc *sc, struct ieee80211_node *ni,
|
||||
* MCS 0 -> MCS 31, then set the "I'm an MCS rate!"
|
||||
* flag.
|
||||
*/
|
||||
plcp = RV(rate) | IWN_RFLAG_MCS;
|
||||
plcp = IEEE80211_RV(rate) | IWN_RFLAG_MCS;
|
||||
|
||||
/*
|
||||
* XXX the following should only occur if both
|
||||
@ -2792,7 +2791,6 @@ iwn_rate_to_plcp(struct iwn_softc *sc, struct ieee80211_node *ni,
|
||||
plcp);
|
||||
|
||||
return (htole32(plcp));
|
||||
#undef RV
|
||||
}
|
||||
|
||||
static void
|
||||
@ -5179,7 +5177,6 @@ iwn5000_add_node(struct iwn_softc *sc, struct iwn_node_info *node, int async)
|
||||
static int
|
||||
iwn_set_link_quality(struct iwn_softc *sc, struct ieee80211_node *ni)
|
||||
{
|
||||
#define RV(v) ((v) & IEEE80211_RATE_VAL)
|
||||
struct iwn_node *wn = (void *)ni;
|
||||
struct ieee80211_rateset *rs;
|
||||
struct iwn_cmd_link_quality linkq;
|
||||
@ -5238,7 +5235,7 @@ iwn_set_link_quality(struct iwn_softc *sc, struct ieee80211_node *ni)
|
||||
if (is_11n)
|
||||
rate = IEEE80211_RATE_MCS | rs->rs_rates[txrate];
|
||||
else
|
||||
rate = RV(rs->rs_rates[txrate]);
|
||||
rate = IEEE80211_RV(rs->rs_rates[txrate]);
|
||||
|
||||
/* Do rate -> PLCP config mapping */
|
||||
plcp = iwn_rate_to_plcp(sc, ni, rate);
|
||||
@ -5263,7 +5260,7 @@ iwn_set_link_quality(struct iwn_softc *sc, struct ieee80211_node *ni)
|
||||
* entry, we're already pointing at it.
|
||||
*/
|
||||
if ((le32toh(plcp) & IWN_RFLAG_MCS) &&
|
||||
RV(le32toh(plcp)) > 7)
|
||||
IEEE80211_RV(le32toh(plcp)) > 7)
|
||||
linkq.mimo = i + 1;
|
||||
|
||||
/* Next retry at immediate lower bit-rate. */
|
||||
@ -5283,7 +5280,6 @@ iwn_set_link_quality(struct iwn_softc *sc, struct ieee80211_node *ni)
|
||||
DPRINTF(sc, IWN_DEBUG_TRACE, "->%s: end\n",__func__);
|
||||
|
||||
return iwn_cmd(sc, IWN_CMD_LINK_QUALITY, &linkq, sizeof linkq, 1);
|
||||
#undef RV
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -901,22 +901,18 @@ malo_printtxbuf(const struct malo_txbuf *bf, u_int qnum, u_int ix)
|
||||
static __inline void
|
||||
malo_updatetxrate(struct ieee80211_node *ni, int rix)
|
||||
{
|
||||
#define N(x) (sizeof(x)/sizeof(x[0]))
|
||||
static const int ieeerates[] =
|
||||
{ 2, 4, 11, 22, 44, 12, 18, 24, 36, 48, 96, 108 };
|
||||
if (rix < N(ieeerates))
|
||||
if (rix < nitems(ieeerates))
|
||||
ni->ni_txrate = ieeerates[rix];
|
||||
#undef N
|
||||
}
|
||||
|
||||
static int
|
||||
malo_fix2rate(int fix_rate)
|
||||
{
|
||||
#define N(x) (sizeof(x)/sizeof(x[0]))
|
||||
static const int rates[] =
|
||||
{ 2, 4, 11, 22, 12, 18, 24, 36, 48, 96, 108 };
|
||||
return (fix_rate < N(rates) ? rates[fix_rate] : 0);
|
||||
#undef N
|
||||
return (fix_rate < nitems(rates) ? rates[fix_rate] : 0);
|
||||
}
|
||||
|
||||
/* idiomatic shorthands: MS = mask+shift, SM = shift+mask */
|
||||
@ -1034,8 +1030,6 @@ static int
|
||||
malo_tx_start(struct malo_softc *sc, struct ieee80211_node *ni,
|
||||
struct malo_txbuf *bf, struct mbuf *m0)
|
||||
{
|
||||
#define IEEE80211_DIR_DSTODS(wh) \
|
||||
((wh->i_fc[1] & IEEE80211_FC1_DIR_MASK) == IEEE80211_FC1_DIR_DSTODS)
|
||||
#define IS_DATA_FRAME(wh) \
|
||||
((wh->i_fc[0] & (IEEE80211_FC0_TYPE_MASK)) == IEEE80211_FC0_TYPE_DATA)
|
||||
int error, ismcast, iswep;
|
||||
@ -1054,7 +1048,7 @@ malo_tx_start(struct malo_softc *sc, struct ieee80211_node *ni,
|
||||
copyhdrlen = hdrlen = ieee80211_anyhdrsize(wh);
|
||||
pktlen = m0->m_pkthdr.len;
|
||||
if (IEEE80211_QOS_HAS_SEQ(wh)) {
|
||||
if (IEEE80211_DIR_DSTODS(wh)) {
|
||||
if (IEEE80211_IS_DSTODS(wh)) {
|
||||
qos = *(uint16_t *)
|
||||
(((struct ieee80211_qosframe_addr4 *) wh)->i_qos);
|
||||
copyhdrlen -= sizeof(qos);
|
||||
@ -1210,7 +1204,6 @@ malo_tx_start(struct malo_softc *sc, struct ieee80211_node *ni,
|
||||
sc->malo_timer = 5;
|
||||
MALO_TXQ_UNLOCK(txq);
|
||||
return 0;
|
||||
#undef IEEE80211_DIR_DSTODS
|
||||
}
|
||||
|
||||
static int
|
||||
@ -1960,9 +1953,6 @@ malo_set_channel(struct ieee80211com *ic)
|
||||
static void
|
||||
malo_rx_proc(void *arg, int npending)
|
||||
{
|
||||
#define IEEE80211_DIR_DSTODS(wh) \
|
||||
((((const struct ieee80211_frame *)wh)->i_fc[1] & \
|
||||
IEEE80211_FC1_DIR_MASK) == IEEE80211_FC1_DIR_DSTODS)
|
||||
struct malo_softc *sc = arg;
|
||||
struct ieee80211com *ic = &sc->malo_ic;
|
||||
struct malo_rxbuf *bf;
|
||||
@ -2080,7 +2070,7 @@ malo_rx_proc(void *arg, int npending)
|
||||
/* XXX special case so we can memcpy after m_devget? */
|
||||
ovbcopy(data + sizeof(uint16_t), wh, hdrlen);
|
||||
if (IEEE80211_QOS_HAS_SEQ(wh)) {
|
||||
if (IEEE80211_DIR_DSTODS(wh)) {
|
||||
if (IEEE80211_IS_DSTODS(wh)) {
|
||||
wh4 = mtod(m,
|
||||
struct ieee80211_qosframe_addr4*);
|
||||
*(uint16_t *)wh4->i_qos = ds->qosctrl;
|
||||
@ -2119,7 +2109,6 @@ malo_rx_proc(void *arg, int npending)
|
||||
|
||||
if (mbufq_first(&sc->malo_snd) != NULL)
|
||||
malo_start(sc);
|
||||
#undef IEEE80211_DIR_DSTODS
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -131,7 +131,6 @@ static int malo_pci_detach(device_t);
|
||||
static int
|
||||
malo_pci_probe(device_t dev)
|
||||
{
|
||||
#define N(a) (sizeof(a) / sizeof((a)[0]))
|
||||
struct malo_product *mp;
|
||||
uint16_t vendor, devid;
|
||||
int i;
|
||||
@ -140,7 +139,7 @@ malo_pci_probe(device_t dev)
|
||||
devid = pci_get_device(dev);
|
||||
mp = malo_products;
|
||||
|
||||
for (i = 0; i < N(malo_products); i++, mp++) {
|
||||
for (i = 0; i < nitems(malo_products); i++, mp++) {
|
||||
if (vendor == mp->mp_vendorid && devid == mp->mp_deviceid) {
|
||||
device_set_desc(dev, mp->mp_name);
|
||||
return (BUS_PROBE_DEFAULT);
|
||||
@ -148,7 +147,6 @@ malo_pci_probe(device_t dev)
|
||||
}
|
||||
|
||||
return (ENXIO);
|
||||
#undef N
|
||||
}
|
||||
|
||||
static int
|
||||
|
@ -70,6 +70,7 @@ __FBSDID("$FreeBSD$");
|
||||
#include <net/bpf.h>
|
||||
|
||||
#include <net80211/ieee80211_var.h>
|
||||
#include <net80211/ieee80211_input.h>
|
||||
#include <net80211/ieee80211_regdomain.h>
|
||||
|
||||
#ifdef INET
|
||||
@ -1707,18 +1708,6 @@ mwl_key_set(struct ieee80211vap *vap, const struct ieee80211_key *k,
|
||||
#undef GRPXMIT
|
||||
}
|
||||
|
||||
/* unaligned little endian access */
|
||||
#define LE_READ_2(p) \
|
||||
((uint16_t) \
|
||||
((((const uint8_t *)(p))[0] ) | \
|
||||
(((const uint8_t *)(p))[1] << 8)))
|
||||
#define LE_READ_4(p) \
|
||||
((uint32_t) \
|
||||
((((const uint8_t *)(p))[0] ) | \
|
||||
(((const uint8_t *)(p))[1] << 8) | \
|
||||
(((const uint8_t *)(p))[2] << 16) | \
|
||||
(((const uint8_t *)(p))[3] << 24)))
|
||||
|
||||
/*
|
||||
* Set the multicast filter contents into the hardware.
|
||||
* XXX f/w has no support; just defer to the os.
|
||||
@ -2619,8 +2608,6 @@ cvtrssi(uint8_t ssi)
|
||||
static void
|
||||
mwl_rx_proc(void *arg, int npending)
|
||||
{
|
||||
#define IEEE80211_DIR_DSTODS(wh) \
|
||||
((((const struct ieee80211_frame *)wh)->i_fc[1] & IEEE80211_FC1_DIR_MASK) == IEEE80211_FC1_DIR_DSTODS)
|
||||
struct mwl_softc *sc = arg;
|
||||
struct ieee80211com *ic = &sc->sc_ic;
|
||||
struct mwl_rxbuf *bf;
|
||||
@ -2775,7 +2762,7 @@ mwl_rx_proc(void *arg, int npending)
|
||||
/* XXX special case so we can memcpy after m_devget? */
|
||||
ovbcopy(data + sizeof(uint16_t), wh, hdrlen);
|
||||
if (IEEE80211_QOS_HAS_SEQ(wh)) {
|
||||
if (IEEE80211_DIR_DSTODS(wh)) {
|
||||
if (IEEE80211_IS_DSTODS(wh)) {
|
||||
wh4 = mtod(m,
|
||||
struct ieee80211_qosframe_addr4*);
|
||||
*(uint16_t *)wh4->i_qos = ds->QosCtrl;
|
||||
@ -2845,7 +2832,6 @@ mwl_rx_proc(void *arg, int npending)
|
||||
mwl_hal_txstart(sc->sc_mh, 0);
|
||||
mwl_start(sc);
|
||||
}
|
||||
#undef IEEE80211_DIR_DSTODS
|
||||
}
|
||||
|
||||
static void
|
||||
@ -2881,12 +2867,11 @@ mwl_txq_init(struct mwl_softc *sc, struct mwl_txq *txq, int qnum)
|
||||
static int
|
||||
mwl_tx_setup(struct mwl_softc *sc, int ac, int mvtype)
|
||||
{
|
||||
#define N(a) (sizeof(a)/sizeof(a[0]))
|
||||
struct mwl_txq *txq;
|
||||
|
||||
if (ac >= N(sc->sc_ac2q)) {
|
||||
if (ac >= nitems(sc->sc_ac2q)) {
|
||||
device_printf(sc->sc_dev, "AC %u out of range, max %zu!\n",
|
||||
ac, N(sc->sc_ac2q));
|
||||
ac, nitems(sc->sc_ac2q));
|
||||
return 0;
|
||||
}
|
||||
if (mvtype >= MWL_NUM_TX_QUEUES) {
|
||||
@ -2898,7 +2883,6 @@ mwl_tx_setup(struct mwl_softc *sc, int ac, int mvtype)
|
||||
mwl_txq_init(sc, txq, mvtype);
|
||||
sc->sc_ac2q[ac] = txq;
|
||||
return 1;
|
||||
#undef N
|
||||
}
|
||||
|
||||
/*
|
||||
@ -3091,8 +3075,6 @@ static int
|
||||
mwl_tx_start(struct mwl_softc *sc, struct ieee80211_node *ni, struct mwl_txbuf *bf,
|
||||
struct mbuf *m0)
|
||||
{
|
||||
#define IEEE80211_DIR_DSTODS(wh) \
|
||||
((wh->i_fc[1] & IEEE80211_FC1_DIR_MASK) == IEEE80211_FC1_DIR_DSTODS)
|
||||
struct ieee80211com *ic = &sc->sc_ic;
|
||||
struct ieee80211vap *vap = ni->ni_vap;
|
||||
int error, iswep, ismcast;
|
||||
@ -3114,7 +3096,7 @@ mwl_tx_start(struct mwl_softc *sc, struct ieee80211_node *ni, struct mwl_txbuf *
|
||||
copyhdrlen = hdrlen;
|
||||
pktlen = m0->m_pkthdr.len;
|
||||
if (IEEE80211_QOS_HAS_SEQ(wh)) {
|
||||
if (IEEE80211_DIR_DSTODS(wh)) {
|
||||
if (IEEE80211_IS_DSTODS(wh)) {
|
||||
qos = *(uint16_t *)
|
||||
(((struct ieee80211_qosframe_addr4 *) wh)->i_qos);
|
||||
copyhdrlen -= sizeof(qos);
|
||||
@ -3331,17 +3313,14 @@ mwl_tx_start(struct mwl_softc *sc, struct ieee80211_node *ni, struct mwl_txbuf *
|
||||
MWL_TXQ_UNLOCK(txq);
|
||||
|
||||
return 0;
|
||||
#undef IEEE80211_DIR_DSTODS
|
||||
}
|
||||
|
||||
static __inline int
|
||||
mwl_cvtlegacyrix(int rix)
|
||||
{
|
||||
#define N(x) (sizeof(x)/sizeof(x[0]))
|
||||
static const int ieeerates[] =
|
||||
{ 2, 4, 11, 22, 44, 12, 18, 24, 36, 48, 72, 96, 108 };
|
||||
return (rix < N(ieeerates) ? ieeerates[rix] : 0);
|
||||
#undef N
|
||||
return (rix < nitems(ieeerates) ? ieeerates[rix] : 0);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -2301,7 +2301,6 @@ static void
|
||||
rt2560_set_basicrates(struct rt2560_softc *sc,
|
||||
const struct ieee80211_rateset *rs)
|
||||
{
|
||||
#define RV(r) ((r) & IEEE80211_RATE_VAL)
|
||||
struct ieee80211com *ic = &sc->sc_ic;
|
||||
uint32_t mask = 0;
|
||||
uint8_t rate;
|
||||
@ -2313,13 +2312,13 @@ rt2560_set_basicrates(struct rt2560_softc *sc,
|
||||
if (!(rate & IEEE80211_RATE_BASIC))
|
||||
continue;
|
||||
|
||||
mask |= 1 << ieee80211_legacy_rate_lookup(ic->ic_rt, RV(rate));
|
||||
mask |= 1 << ieee80211_legacy_rate_lookup(ic->ic_rt,
|
||||
IEEE80211_RV(rate));
|
||||
}
|
||||
|
||||
RAL_WRITE(sc, RT2560_ARSP_PLCP_1, mask);
|
||||
|
||||
DPRINTF(sc, "Setting basic rate mask to 0x%x\n", mask);
|
||||
#undef RV
|
||||
}
|
||||
|
||||
static void
|
||||
@ -2478,7 +2477,6 @@ rt2560_scan_end(struct ieee80211com *ic)
|
||||
static int
|
||||
rt2560_bbp_init(struct rt2560_softc *sc)
|
||||
{
|
||||
#define N(a) (sizeof (a) / sizeof ((a)[0]))
|
||||
int i, ntries;
|
||||
|
||||
/* wait for BBP to be ready */
|
||||
@ -2493,7 +2491,7 @@ rt2560_bbp_init(struct rt2560_softc *sc)
|
||||
}
|
||||
|
||||
/* initialize BBP registers to default values */
|
||||
for (i = 0; i < N(rt2560_def_bbp); i++) {
|
||||
for (i = 0; i < nitems(rt2560_def_bbp); i++) {
|
||||
rt2560_bbp_write(sc, rt2560_def_bbp[i].reg,
|
||||
rt2560_def_bbp[i].val);
|
||||
}
|
||||
@ -2507,7 +2505,6 @@ rt2560_bbp_init(struct rt2560_softc *sc)
|
||||
rt2560_bbp_write(sc, 17, 0x48); /* XXX restore bbp17 */
|
||||
|
||||
return 0;
|
||||
#undef N
|
||||
}
|
||||
|
||||
static void
|
||||
@ -2560,7 +2557,6 @@ rt2560_set_rxantenna(struct rt2560_softc *sc, int antenna)
|
||||
static void
|
||||
rt2560_init_locked(struct rt2560_softc *sc)
|
||||
{
|
||||
#define N(a) (sizeof (a) / sizeof ((a)[0]))
|
||||
struct ieee80211com *ic = &sc->sc_ic;
|
||||
struct ieee80211vap *vap = TAILQ_FIRST(&ic->ic_vaps);
|
||||
uint32_t tmp;
|
||||
@ -2590,7 +2586,7 @@ rt2560_init_locked(struct rt2560_softc *sc)
|
||||
RAL_WRITE(sc, RT2560_RXCSR2, sc->rxq.physaddr);
|
||||
|
||||
/* initialize MAC registers to default values */
|
||||
for (i = 0; i < N(rt2560_def_mac); i++)
|
||||
for (i = 0; i < nitems(rt2560_def_mac); i++)
|
||||
RAL_WRITE(sc, rt2560_def_mac[i].reg, rt2560_def_mac[i].val);
|
||||
|
||||
rt2560_set_macaddr(sc, vap ? vap->iv_myaddr : ic->ic_macaddr);
|
||||
@ -2641,7 +2637,6 @@ rt2560_init_locked(struct rt2560_softc *sc)
|
||||
sc->sc_flags |= RT2560_F_RUNNING;
|
||||
|
||||
callout_reset(&sc->watchdog_ch, hz, rt2560_watchdog, sc);
|
||||
#undef N
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -1859,7 +1859,6 @@ static void
|
||||
rt2661_set_basicrates(struct rt2661_softc *sc,
|
||||
const struct ieee80211_rateset *rs)
|
||||
{
|
||||
#define RV(r) ((r) & IEEE80211_RATE_VAL)
|
||||
struct ieee80211com *ic = &sc->sc_ic;
|
||||
uint32_t mask = 0;
|
||||
uint8_t rate;
|
||||
@ -1871,13 +1870,13 @@ rt2661_set_basicrates(struct rt2661_softc *sc,
|
||||
if (!(rate & IEEE80211_RATE_BASIC))
|
||||
continue;
|
||||
|
||||
mask |= 1 << ieee80211_legacy_rate_lookup(ic->ic_rt, RV(rate));
|
||||
mask |= 1 << ieee80211_legacy_rate_lookup(ic->ic_rt,
|
||||
IEEE80211_RV(rate));
|
||||
}
|
||||
|
||||
RAL_WRITE(sc, RT2661_TXRX_CSR5, mask);
|
||||
|
||||
DPRINTF(sc, "Setting basic rate mask to 0x%x\n", mask);
|
||||
#undef RV
|
||||
}
|
||||
|
||||
/*
|
||||
@ -2208,7 +2207,6 @@ rt2661_read_eeprom(struct rt2661_softc *sc, uint8_t macaddr[IEEE80211_ADDR_LEN])
|
||||
static int
|
||||
rt2661_bbp_init(struct rt2661_softc *sc)
|
||||
{
|
||||
#define N(a) (sizeof (a) / sizeof ((a)[0]))
|
||||
int i, ntries;
|
||||
uint8_t val;
|
||||
|
||||
@ -2225,7 +2223,7 @@ rt2661_bbp_init(struct rt2661_softc *sc)
|
||||
}
|
||||
|
||||
/* initialize BBP registers to default values */
|
||||
for (i = 0; i < N(rt2661_def_bbp); i++) {
|
||||
for (i = 0; i < nitems(rt2661_def_bbp); i++) {
|
||||
rt2661_bbp_write(sc, rt2661_def_bbp[i].reg,
|
||||
rt2661_def_bbp[i].val);
|
||||
}
|
||||
@ -2238,13 +2236,11 @@ rt2661_bbp_init(struct rt2661_softc *sc)
|
||||
}
|
||||
|
||||
return 0;
|
||||
#undef N
|
||||
}
|
||||
|
||||
static void
|
||||
rt2661_init_locked(struct rt2661_softc *sc)
|
||||
{
|
||||
#define N(a) (sizeof (a) / sizeof ((a)[0]))
|
||||
struct ieee80211com *ic = &sc->sc_ic;
|
||||
struct ieee80211vap *vap = TAILQ_FIRST(&ic->ic_vaps);
|
||||
uint32_t tmp, sta[3];
|
||||
@ -2305,7 +2301,7 @@ rt2661_init_locked(struct rt2661_softc *sc)
|
||||
RAL_WRITE(sc, RT2661_RX_CNTL_CSR, 2);
|
||||
|
||||
/* initialize MAC registers to default values */
|
||||
for (i = 0; i < N(rt2661_def_mac); i++)
|
||||
for (i = 0; i < nitems(rt2661_def_mac); i++)
|
||||
RAL_WRITE(sc, rt2661_def_mac[i].reg, rt2661_def_mac[i].val);
|
||||
|
||||
rt2661_set_macaddr(sc, vap ? vap->iv_myaddr : ic->ic_macaddr);
|
||||
@ -2354,7 +2350,7 @@ rt2661_init_locked(struct rt2661_softc *sc)
|
||||
RAL_WRITE(sc, RT2661_TXRX_CSR0, tmp);
|
||||
|
||||
/* clear STA registers */
|
||||
RAL_READ_REGION_4(sc, RT2661_STA_CSR0, sta, N(sta));
|
||||
RAL_READ_REGION_4(sc, RT2661_STA_CSR0, sta, nitems(sta));
|
||||
|
||||
/* initialize ASIC */
|
||||
RAL_WRITE(sc, RT2661_MAC_CSR1, 4);
|
||||
@ -2372,7 +2368,6 @@ rt2661_init_locked(struct rt2661_softc *sc)
|
||||
sc->sc_flags |= RAL_RUNNING;
|
||||
|
||||
callout_reset(&sc->watchdog_ch, hz, rt2661_watchdog, sc);
|
||||
#undef N
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -2260,7 +2260,6 @@ void
|
||||
rt2860_set_basicrates(struct rt2860_softc *sc,
|
||||
const struct ieee80211_rateset *rs)
|
||||
{
|
||||
#define RV(r) ((r) & IEEE80211_RATE_VAL)
|
||||
struct ieee80211com *ic = &sc->sc_ic;
|
||||
uint32_t mask = 0;
|
||||
uint8_t rate;
|
||||
@ -2272,11 +2271,11 @@ rt2860_set_basicrates(struct rt2860_softc *sc,
|
||||
if (!(rate & IEEE80211_RATE_BASIC))
|
||||
continue;
|
||||
|
||||
mask |= 1 << ieee80211_legacy_rate_lookup(ic->ic_rt, RV(rate));
|
||||
mask |= 1 << ieee80211_legacy_rate_lookup(ic->ic_rt,
|
||||
IEEE80211_RV(rate));
|
||||
}
|
||||
|
||||
RAL_WRITE(sc, RT2860_LEGACY_BASIC_RATE, mask);
|
||||
#undef RV
|
||||
}
|
||||
|
||||
static void
|
||||
|
Loading…
Reference in New Issue
Block a user