diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/Jamfile b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/Jamfile index 254795016a..61c5f38912 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/Jamfile +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/Jamfile @@ -145,9 +145,6 @@ KernelMergeObject atheroswifi_hal.o : # AR9001 and AR9002 support ar9285_btcoex.c - ar9130_attach.c - ar9130_eeprom.c - ar9130_phy.c ar9160_attach.c ar9280_attach.c ar9280_olc.c diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300.h index 49e887353e..da74b40318 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300.h @@ -1411,7 +1411,7 @@ extern void ar9300_iq_calibration(struct ath_hal *ah, u_int8_t num_chains); extern void ar9300_temp_comp_cal_collect(struct ath_hal *ah); extern void ar9300_temp_comp_calibration(struct ath_hal *ah, u_int8_t num_chains); extern int16_t ar9300_get_min_cca_pwr(struct ath_hal *ah); -extern void ar9300_upload_noise_floor(struct ath_hal *ah, int is2G, int16_t nfarray[]); +extern void ar9300_upload_noise_floor(struct ath_hal *ah, int is2G, int16_t nfarray[HAL_NUM_NF_READINGS]); extern HAL_BOOL ar9300_set_tx_power_limit(struct ath_hal *ah, u_int32_t limit, u_int16_t extra_txpow, u_int16_t tpc_in_db); diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300_ani.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300_ani.c index ff22fb8000..dfa0cf619f 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300_ani.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300_ani.c @@ -462,13 +462,55 @@ ar9300_ani_control(struct ath_hal *ah, HAL_ANI_CMD cmd, int param) u_int level = param; u_int is_on; + HALDEBUG(ah, HAL_DEBUG_ANI, "%s: cmd=%d, param=%d, chan=%p, funcmask=0x%08x\n", + __func__, + cmd, + param, + chan, + ahp->ah_ani_function); + + if (chan == NULL && cmd != HAL_ANI_MODE) { HALDEBUG(ah, HAL_DEBUG_UNMASKABLE, "%s: ignoring cmd 0x%02x - no channel\n", __func__, cmd); return AH_FALSE; } - switch (cmd & ahp->ah_ani_function) { + /* + * These two control the top-level cck/ofdm immunity levels and will + * program the rest of the values. + */ + if (cmd == HAL_ANI_NOISE_IMMUNITY_LEVEL) { + if (param > HAL_ANI_OFDM_NUM_LEVEL) + return AH_FALSE; + ar9300_ani_set_odfm_noise_immunity_level(ah, param); + return AH_TRUE; + } + + if (cmd == HAL_ANI_CCK_NOISE_IMMUNITY_LEVEL) { + if (param > HAL_ANI_CCK_NUM_LEVEL) + return AH_FALSE; + ar9300_ani_set_cck_noise_immunity_level(ah, param); + return AH_TRUE; + } + + /* + * Check to see if this command is available in the + * current operating mode. + */ + if (((1 << cmd) & ahp->ah_ani_function) == 0) { + HALDEBUG(ah, HAL_DEBUG_ANI, + "%s: early check: invalid cmd 0x%02x (allowed=0x%02x)\n", + __func__, cmd, ahp->ah_ani_function); + return AH_FALSE; + } + + /* + * The rest of these program in the requested parameter values + * into the PHY. + */ + switch (cmd) { + case HAL_ANI_OFDM_WEAK_SIGNAL_DETECTION: { int m1_thresh_low, m2_thresh_low; @@ -887,13 +929,16 @@ ar9300_ani_reset(struct ath_hal *ah, HAL_BOOL is_scanning) /* only allow a subset of functions in AP mode */ if (AH_PRIVATE(ah)->ah_opmode == HAL_M_HOSTAP) { if (IS_CHAN_2GHZ(ichan)) { - ahp->ah_ani_function = (HAL_ANI_SPUR_IMMUNITY_LEVEL | - HAL_ANI_FIRSTEP_LEVEL | - HAL_ANI_MRC_CCK); + ahp->ah_ani_function = (1 << HAL_ANI_SPUR_IMMUNITY_LEVEL) | + (1 << HAL_ANI_FIRSTEP_LEVEL) | + (1 << HAL_ANI_MRC_CCK); } else { ahp->ah_ani_function = 0; } + } else { + ahp->ah_ani_function = HAL_ANI_ALL; } + /* always allow mode (on/off) to be controlled */ ahp->ah_ani_function |= HAL_ANI_MODE; @@ -1172,6 +1217,7 @@ ar9300_ani_ar_poll(struct ath_hal *ah, const HAL_NODE_STATS *stats, cck_phy_err_cnt = OS_REG_READ(ah, AR_PHY_ERR_2); /* Populate HAL_ANISTATS */ + /* XXX TODO: are these correct? */ if (ani_stats) { ani_stats->cckphyerr_cnt = cck_phy_err_cnt - ani_state->cck_phy_err_count; @@ -1212,18 +1258,32 @@ ar9300_ani_ar_poll(struct ath_hal *ah, const HAL_NODE_STATS *stats, return; } + /* + * Calculate the OFDM/CCK phy error rate over the listen time interval. + * This is used in subsequent math to see if the OFDM/CCK phy error rate + * is above or below the threshold checks. + */ + ofdm_phy_err_rate = ani_state->ofdm_phy_err_count * 1000 / ani_state->listen_time; cck_phy_err_rate = ani_state->cck_phy_err_count * 1000 / ani_state->listen_time; HALDEBUG(ah, HAL_DEBUG_ANI, - "%s: listen_time=%d OFDM:%d errs=%d/s CCK:%d errs=%d/s ofdm_turn=%d\n", + "%s: listen_time=%d (total: %d) OFDM:%d errs=%d/s CCK:%d errs=%d/s ofdm_turn=%d\n", __func__, listen_time, + ani_state->listen_time, ani_state->ofdm_noise_immunity_level, ofdm_phy_err_rate, ani_state->cck_noise_immunity_level, cck_phy_err_rate, ani_state->ofdms_turn); + /* + * Check for temporary noise spurs. This is intended to be used by + * rate control to check if we should try higher packet rates or not. + * If the noise period is short enough then we shouldn't avoid trying + * higher rates but if the noise is high/sustained then it's likely + * not a great idea to try the higher MCS rates. + */ if (ani_state->listen_time >= HAL_NOISE_DETECT_PERIOD) { old_phy_noise_spur = ani_state->phy_noise_spur; if (ofdm_phy_err_rate <= ani_state->ofdm_trig_low && @@ -1236,7 +1296,7 @@ ar9300_ani_ar_poll(struct ath_hal *ah, const HAL_NODE_STATS *stats, } if (old_phy_noise_spur != ani_state->phy_noise_spur) { HALDEBUG(ah, HAL_DEBUG_ANI, - "%s: enviroment change from %d to %d\n", + "%s: environment change from %d to %d\n", __func__, old_phy_noise_spur, ani_state->phy_noise_spur); } } @@ -1259,6 +1319,10 @@ ar9300_ani_ar_poll(struct ath_hal *ah, const HAL_NODE_STATS *stats, ar9300_ani_lower_immunity(ah); ani_state->ofdms_turn = !ani_state->ofdms_turn; } + /* + * Force an ANI restart regardless of whether the lower immunity + * level was met. + */ HALDEBUG(ah, HAL_DEBUG_ANI, "%s: 1 listen_time=%d ofdm=%d/s cck=%d/s - " "calling ar9300_ani_restart\n", @@ -1292,6 +1356,13 @@ ar9300_ani_ar_poll(struct ath_hal *ah, const HAL_NODE_STATS *stats, ani_state->ofdms_turn = AH_TRUE; } } + + /* + * Note that currently this poll function doesn't reset the listen + * time after it accumulates a second worth of error samples. + * It will continue to accumulate samples until a counter overflows, + * or a raise threshold is met, or 5 seconds passes. + */ } /* diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300_eeprom.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300_eeprom.c index 063075e397..073428c8fa 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300_eeprom.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300_eeprom.c @@ -225,7 +225,7 @@ ar9300_eeprom_restore_something(struct ath_hal *ah, ar9300_eeprom_t *mptr, HAL_BOOL ar9300_eeprom_read_word(struct ath_hal *ah, u_int off, u_int16_t *data) { - if (AR_SREV_OSPREY(ah) || AR_SREV_POSEIDON(ah)) + if (AR_SREV_OSPREY(ah) || AR_SREV_POSEIDON(ah) || AR_SREV_JUPITER(ah)) { (void) OS_REG_READ(ah, AR9300_EEPROM_OFFSET + (off << AR9300_EEPROM_S)); if (!ath_hal_wait(ah, @@ -3039,6 +3039,33 @@ ar9300_eeprom_set_transmit_power(struct ath_hal *ah, /* Save this for quick lookup */ ahp->reg_dmn = ath_hal_getctl(ah, chan); + /* + * After reading FCC/OET 13TR1003 (Directional Gain of IEEE 802.11 + * MIMO devices employing cyclic delay diversity) and looking at what + * ath9k does, let's disable the CDD check until it's clearer exactly + * how the maximum cap should be applied here. + * + * Right now the CDD check is simply unconditionally reducing the + * gain of legacy and 1/2 stream rates depending upon the chainmask. + * (CDD is used when transmitting rates that don't already use up the + * full set of streams - eg OFDM or MCS0-7 on a 2 or 3 chain TX path.) + * + * It's dropping the 2-chain TX by 3dB and 3-chain by 5dB to "meet" + * power spectral density requirements but it's not currently taking + * into account how close to the regulatory limit the hardware/antenna + * system is already at. It doesn't help that the conductive testing + * limits have the array gain at 0dB for all AR9300/derivative + * configurations. + * + * It also doesn't let us do single chain transmit at the full allowed + * power for the regulatory/CTL limits as it subtracts it from what's + * programmed into the hardware. + * + * ath9k doesn't factor any of the CDD stuff into account, so I'm going + * to disable it here and in the TPC path until I get a better idea + * of what to really do here. + */ +#if 0 /* * Always use CDD/direct per rate power table for register based approach. * For FCC, CDD calculations should factor in the array gain, hence @@ -3050,6 +3077,7 @@ ar9300_eeprom_set_transmit_power(struct ath_hal *ah, __func__); ar9300_adjust_reg_txpower_cdd(ah, target_power_val_t2); } +#endif if (ar9300_eeprom_get(ahp, EEP_PAPRD_ENABLED)) { for (i = 0; i < ar9300_rate_size; i++) { @@ -4291,7 +4319,7 @@ ar9300_eeprom_restore_internal(struct ath_hal *ah, ar9300_eeprom_t *mptr, } #endif if (nptr < 0) { - ath_hal_printf(ah, "%s[%d] No vaid CAL, calling default template\n", + ath_hal_printf(ah, "%s[%d] No valid CAL, calling default template\n", __func__, __LINE__); nptr = ar9300_eeprom_restore_something(ah, mptr, mdata_size); } diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300_freebsd.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300_freebsd.c index 37e64bc86c..68e5f018cc 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300_freebsd.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300_freebsd.c @@ -69,6 +69,23 @@ ar9300_get_next_tbtt(struct ath_hal *ah) return (OS_REG_READ(ah, AR_NEXT_TBTT_TIMER)); } +static u_int +ar9300_get_nav(struct ath_hal *ah) +{ + uint32_t reg; + + reg = OS_REG_READ(ah, AR_NAV); + if (reg == 0xdeadbeef) + return 0; + return reg; +} + +static void +ar9300_set_nav(struct ath_hal *ah, u_int nav) +{ + + OS_REG_WRITE(ah, AR_NAV, nav); +} /* * TODO: implement the antenna diversity control for AR9485 and @@ -484,6 +501,8 @@ ar9300_attach_freebsd_ops(struct ath_hal *ah) /* ah_get11nExtBusy */ ah->ah_set11nMac2040 = ar9300_set_11n_mac2040; ah->ah_setChainMasks = ar9300SetChainMasks; + ah->ah_getNav = ar9300_get_nav; + ah->ah_setNav = ar9300_set_nav; /* ah_get11nRxClear */ /* ah_set11nRxClear */ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300_freebsd_inc.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300_freebsd_inc.h index 71a3388b04..229bb0ba56 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300_freebsd_inc.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300_freebsd_inc.h @@ -51,19 +51,6 @@ #define AH_SUPPORT_POSEIDON 1 #define AH_SUPPORT_AR9300 1 -/* These are the embedded boards */ -#ifdef AH_SUPPORT_AR9330 -#define AH_SUPPORT_HORNET 1 -#endif /* AH_SUPPORT_AR9330 */ -#ifdef AH_SUPPORT_AR9340 -#define AH_SUPPORT_WASP 1 -#endif /* AH_SUPPORT_AR9340 */ -#ifdef AH_SUPPORT_QCA9550 -#define AH_SUPPORT_SCORPION 1 -#endif /* AH_SUPPORT_QCA9550 */ -#ifdef AH_SUPPORT_QCA9530 -#define AH_SUPPORT_HONEYBEE 1 -#endif /* AH_SUPPORT_QCA9530 */ #define FIX_NOISE_FLOOR 1 /* XXX this needs to be removed! No atomics in the HAL! */ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300_misc.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300_misc.c index 6e49325cda..1793cf0637 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300_misc.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300_misc.c @@ -1263,15 +1263,13 @@ ar9300_get_diag_state(struct ath_hal *ah, int request, if (ani == AH_NULL) return AH_FALSE; /* Convert ar9300 HAL to FreeBSD HAL ANI state */ - /* XXX TODO: add all of these to the HAL ANI state structure */ bzero(&ahp->ext_ani_state, sizeof(ahp->ext_ani_state)); - /* XXX should this be OFDM or CCK noise immunity level? */ ahp->ext_ani_state.noiseImmunityLevel = ani->ofdm_noise_immunity_level; ahp->ext_ani_state.spurImmunityLevel = ani->spur_immunity_level; ahp->ext_ani_state.firstepLevel = ani->firstep_level; ahp->ext_ani_state.ofdmWeakSigDetectOff = ani->ofdm_weak_sig_detect_off; - /* mrc_cck_off */ - /* cck_noise_immunity_level */ + ahp->ext_ani_state.mrcCck = !! ani->mrc_cck_off; + ahp->ext_ani_state.cckNoiseImmunityLevel = ani->cck_noise_immunity_level; ahp->ext_ani_state.listenTime = ani->listen_time; @@ -1289,12 +1287,18 @@ ar9300_get_diag_state(struct ath_hal *ah, int request, 0 : sizeof(HAL_ANI_STATS); return AH_TRUE; case HAL_DIAG_ANI_CMD: + { + HAL_ANI_CMD savefunc = ahp->ah_ani_function; if (argsize != 2*sizeof(u_int32_t)) { return AH_FALSE; } + /* temporarly allow all functions so we can override */ + ahp->ah_ani_function = HAL_ANI_ALL; ar9300_ani_control( ah, ((const u_int32_t *)args)[0], ((const u_int32_t *)args)[1]); + ahp->ah_ani_function = savefunc; return AH_TRUE; + } #if 0 case HAL_DIAG_TXCONT: /*AR9300_CONTTXMODE(ah, (struct ath_desc *)args, argsize );*/ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300_phy.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300_phy.c index 24622e732c..5bf342e436 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300_phy.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300_phy.c @@ -55,10 +55,12 @@ static inline void ar9300_init_rate_txpower_stbc(struct ath_hal *ah, const HAL_RATE_TABLE *rt, HAL_BOOL is40, int rt_ss_offset, int rt_ds_offset, int rt_ts_offset, u_int8_t chainmask); +#if 0 static inline void ar9300_adjust_rate_txpower_cdd(struct ath_hal *ah, const HAL_RATE_TABLE *rt, HAL_BOOL is40, int rt_ss_offset, int rt_ds_offset, int rt_ts_offset, u_int8_t chainmask); +#endif #define AR9300_11A_RT_OFDM_OFFSET 0 HAL_RATE_TABLE ar9300_11a_table = { @@ -442,6 +444,8 @@ ar9300_adjust_reg_txpower_cdd(struct ath_hal *ah, ((int16_t)AH_MIN((ahp->twice_antenna_reduction - (ahp->twice_antenna_gain + AR9300_TXBF_2TX_ARRAY_GAIN)), 0)); cdd_power = ahp->upper_limit[1] + twice_array_gain; + + HALDEBUG(ah, HAL_DEBUG_CALIBRATE, "%s: 2 chain; cdd_power=%d", __func__, cdd_power); /* Adjust OFDM legacy rates as well */ for (i = ALL_TARGET_LEGACY_6_24; i <= ALL_TARGET_LEGACY_54; i++) { if (power_per_rate[i] > cdd_power) { @@ -471,6 +475,7 @@ ar9300_adjust_reg_txpower_cdd(struct ath_hal *ah, ((int16_t)AH_MIN((ahp->twice_antenna_reduction - (ahp->twice_antenna_gain + AR9300_TXBF_3TX_ARRAY_GAIN)), 0)); cdd_power = ahp->upper_limit[2] + twice_array_gain; + HALDEBUG(ah, HAL_DEBUG_CALIBRATE, "%s: 3 chain; cdd_power=%d", __func__, cdd_power); /* Adjust OFDM legacy rates as well */ for (i = ALL_TARGET_LEGACY_6_24; i <= ALL_TARGET_LEGACY_54; i++) { if (power_per_rate[i] > cdd_power) { @@ -531,6 +536,7 @@ ar9300_init_rate_txpower(struct ath_hal *ah, u_int mode, AR9300_11NA_RT_HT_SS_OFFSET, AR9300_11NA_RT_HT_DS_OFFSET, AR9300_11NA_RT_HT_TS_OFFSET, chainmask); +#if 0 /* For FCC the array gain has to be factored for CDD mode */ if (is_reg_dmn_fcc(ath_hal_getctl(ah, chan))) { ar9300_adjust_rate_txpower_cdd(ah, rt, is40, @@ -538,6 +544,7 @@ ar9300_init_rate_txpower(struct ath_hal *ah, u_int mode, AR9300_11NA_RT_HT_DS_OFFSET, AR9300_11NA_RT_HT_TS_OFFSET, chainmask); } +#endif break; case HAL_MODE_11G: ar9300_init_rate_txpower_cck(ah, rt, power_per_rate, chainmask); @@ -561,6 +568,7 @@ ar9300_init_rate_txpower(struct ath_hal *ah, u_int mode, AR9300_11NG_RT_HT_SS_OFFSET, AR9300_11NG_RT_HT_DS_OFFSET, AR9300_11NG_RT_HT_TS_OFFSET, chainmask); +#if 0 /* For FCC the array gain needs to be factored for CDD mode */ if (is_reg_dmn_fcc(ath_hal_getctl(ah, chan))) { ar9300_adjust_rate_txpower_cdd(ah, rt, is40, @@ -568,6 +576,7 @@ ar9300_init_rate_txpower(struct ath_hal *ah, u_int mode, AR9300_11NG_RT_HT_DS_OFFSET, AR9300_11NG_RT_HT_TS_OFFSET, chainmask); } +#endif break; default: HALDEBUG(ah, HAL_DEBUG_POWER_MGMT, "%s: invalid mode 0x%x\n", @@ -941,6 +950,10 @@ ar9300_init_rate_txpower_stbc(struct ath_hal *ah, const HAL_RATE_TABLE *rt, return; } +/* + * To see why this is disabled, look at ar9300_eeprom.c for FCC/OET 13TR1003. + */ +#if 0 static inline void ar9300_adjust_rate_txpower_cdd(struct ath_hal *ah, const HAL_RATE_TABLE *rt, HAL_BOOL is40, @@ -1037,6 +1050,7 @@ ar9300_adjust_rate_txpower_cdd(struct ath_hal *ah, const HAL_RATE_TABLE *rt, return; } +#endif void ar9300_disp_tpc_tables(struct ath_hal *ah) { diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300_reset.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300_reset.c index 6e9310ffe8..97276398c4 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300_reset.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300_reset.c @@ -1047,8 +1047,8 @@ ar9300_spur_mitigate_ofdm(struct ath_hal *ah, struct ieee80211_channel *chan) int mode; u_int8_t* spur_chans_ptr; struct ath_hal_9300 *ahp; + ahp = AH9300(ah); HAL_CHANNEL_INTERNAL *ichan = ath_hal_checkchannel(ah, chan); - ahp = AH9300(ah); if (IS_CHAN_5GHZ(ichan)) { spur_chans_ptr = ar9300_eeprom_get_spur_chans_ptr(ah, 0); @@ -3879,7 +3879,7 @@ ar9300_init_cal_internal(struct ath_hal *ah, struct ieee80211_channel *chan, cl_tab_reg = BB_cl_tab_b[ch_idx]; for (j = 0; j < BB_cl_tab_entry; j++) { OS_REG_WRITE(ah, cl_tab_reg, ichan->tx_clcal[ch_idx][j]); - cl_tab_reg += 4;; + cl_tab_reg += 4; } } HALDEBUG(ah, HAL_DEBUG_FCS_RTT, @@ -4538,7 +4538,7 @@ ar9300_reset(struct ath_hal *ah, HAL_OPMODE opmode, struct ieee80211_channel *ch u_int8_t clk_25mhz = AH9300(ah)->clk_25mhz; HAL_BOOL stopped, cal_ret; HAL_BOOL apply_last_iqcorr = AH_FALSE; - + uint64_t tsf; if (OS_REG_READ(ah, AR_IER) == AR_IER_ENABLE) { HALDEBUG(AH_NULL, HAL_DEBUG_UNMASKABLE, "** Reset called with WLAN " @@ -4869,10 +4869,15 @@ ar9300_reset(struct ath_hal *ah, HAL_OPMODE opmode, struct ieee80211_channel *ch /* Mark PHY inactive prior to reset, to be undone in ar9300_init_bb () */ ar9300_mark_phy_inactive(ah); + /* Save/restore TSF across a potentially full reset */ + /* XXX TODO: only do this if we do a cold reset */ + tsf = ar9300_get_tsf64(ah); if (!ar9300_chip_reset(ah, chan, reset_type)) { HALDEBUG(ah, HAL_DEBUG_RESET, "%s: chip reset failed\n", __func__); FAIL(HAL_EIO); } + if (tsf != 0) + ar9300_set_tsf64(ah, tsf); OS_MARK(ah, AH_MARK_RESET_LINE, __LINE__); @@ -6293,7 +6298,6 @@ HAL_BOOL ar9300_interference_is_present(struct ath_hal *ah) { int i; - HAL_NFCAL_HIST_FULL *h; struct ath_hal_private *ahpriv = AH_PRIVATE(ah); const struct ieee80211_channel *chan = ahpriv->ah_curchan; HAL_CHANNEL_INTERNAL *ichan = ath_hal_checkchannel(ah, chan); @@ -6310,7 +6314,7 @@ ar9300_interference_is_present(struct ath_hal *ah) * hence check if any value (Chain 0/Primary Channel) * is outside the bounds. */ - h = AH_HOME_CHAN_NFCAL_HIST(ah, ichan); + HAL_NFCAL_HIST_FULL *h = AH_HOME_CHAN_NFCAL_HIST(ah, ichan); for (i = 0; i < HAL_NF_CAL_HIST_LEN_FULL; i++) { if (h->nf_cal_buffer[i][0] > AH9300(ah)->nfp->nominal + AH9300(ah)->nf_cw_int_delta) diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300_xmit_ds.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300_xmit_ds.c index fff7236315..d14d916abb 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300_xmit_ds.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300_xmit_ds.c @@ -26,9 +26,11 @@ #include "ar9300/ar9300phy.h" #include "ah_devid.h" +#if 0 #if AH_BYTE_ORDER == AH_BIG_ENDIAN static void ar9300_swap_tx_desc(void *ds); #endif +#endif void ar9300_tx_req_intr_desc(struct ath_hal *ah, void *ds) @@ -174,6 +176,7 @@ ar9300_clear_dest_mask(struct ath_hal *ah, void *ds) } #endif +#if 0 #if AH_BYTE_ORDER == AH_BIG_ENDIAN /* XXX what words need swapping */ /* Swap transmit descriptor */ @@ -193,6 +196,7 @@ ar9300_swap_tx_desc(void *dsp) ds->status8 = __bswap32(ds->status8); } #endif +#endif /* diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300template_ap121.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300template_ap121.h index 6468445b8a..fabed1cb8f 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300template_ap121.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300template_ap121.h @@ -25,6 +25,11 @@ #ifndef __ar9300templateAP121_h__ #define __ar9300templateAP121_h__ +/* Ensure that AH_BYTE_ORDER is defined */ +#ifndef AH_BYTE_ORDER +#error AH_BYTE_ORDER needs to be defined! +#endif + static ar9300_eeprom_t ar9300_template_ap121= { diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300template_aphrodite.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300template_aphrodite.h index a9e5f36359..0f756b81cd 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300template_aphrodite.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300template_aphrodite.h @@ -26,6 +26,11 @@ #ifndef __ar9300templateAphrodite_h__ #define __ar9300templateAphrodite_h__ +/* Ensure that AH_BYTE_ORDER is defined */ +#ifndef AH_BYTE_ORDER +#error AH_BYTE_ORDER needs to be defined! +#endif + static ar9300_eeprom_t ar9300_template_aphrodite= { diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300template_cus157.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300template_cus157.h index dc37977956..fab9558bf5 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300template_cus157.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300template_cus157.h @@ -25,6 +25,11 @@ #ifndef __ar9300template_cus157_h__ #define __ar9300template_cus157_h__ +/* Ensure that AH_BYTE_ORDER is defined */ +#ifndef AH_BYTE_ORDER +#error AH_BYTE_ORDER needs to be defined! +#endif + static ar9300_eeprom_t Ar9300Template_cus157= { diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300template_generic.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300template_generic.h index 6b7a0d1bb8..08b30c215e 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300template_generic.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300template_generic.h @@ -25,6 +25,11 @@ #ifndef __ar9300templateGeneric_h__ #define __ar9300templateGeneric_h__ +/* Ensure that AH_BYTE_ORDER is defined */ +#ifndef AH_BYTE_ORDER +#error AH_BYTE_ORDER needs to be defined! +#endif + static ar9300_eeprom_t ar9300_template_generic= { diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300template_hb112.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300template_hb112.h index c3bbc1d302..674d8e430e 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300template_hb112.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300template_hb112.h @@ -25,6 +25,11 @@ #ifndef __ar9300templateHB112_h__ #define __ar9300templateHB112_h__ +/* Ensure that AH_BYTE_ORDER is defined */ +#ifndef AH_BYTE_ORDER +#error AH_BYTE_ORDER needs to be defined! +#endif + static ar9300_eeprom_t ar9300_template_hb112= { diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300template_hb116.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300template_hb116.h index c1de18ebbe..600955181b 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300template_hb116.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300template_hb116.h @@ -26,6 +26,11 @@ #ifndef __ar9300templateHB116_h__ #define __ar9300templateHB116_h__ +/* Ensure that AH_BYTE_ORDER is defined */ +#ifndef AH_BYTE_ORDER +#error AH_BYTE_ORDER needs to be defined! +#endif + static ar9300_eeprom_t ar9300_template_hb116= { diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300template_osprey_k31.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300template_osprey_k31.h index b6b09e8098..14fdaab18f 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300template_osprey_k31.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300template_osprey_k31.h @@ -25,6 +25,11 @@ #ifndef __ar9300templateOsprey_k31_h__ #define __ar9300templateOsprey_k31_h__ +/* Ensure that AH_BYTE_ORDER is defined */ +#ifndef AH_BYTE_ORDER +#error AH_BYTE_ORDER needs to be defined! +#endif + static ar9300_eeprom_t ar9300_template_osprey_k31= { diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300template_wasp_2.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300template_wasp_2.h index 2eb165f3a7..0e53dace2b 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300template_wasp_2.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300template_wasp_2.h @@ -24,6 +24,12 @@ #ifndef __ar9300template_wasp_2_h__ #define __ar9300template_wasp_2_h__ + +/* Ensure that AH_BYTE_ORDER is defined */ +#ifndef AH_BYTE_ORDER +#error AH_BYTE_ORDER needs to be defined! +#endif + static ar9300_eeprom_t ar9300_template_wasp_2= { diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300template_xb112.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300template_xb112.h index 864efbab8c..645ab78a71 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300template_xb112.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300template_xb112.h @@ -25,6 +25,11 @@ #ifndef __ar9300templateXB112_h__ #define __ar9300templateXB112_h__ +/* Ensure that AH_BYTE_ORDER is defined */ +#ifndef AH_BYTE_ORDER +#error AH_BYTE_ORDER needs to be defined! +#endif + static ar9300_eeprom_t ar9300_template_xb112= { diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300template_xb113.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300template_xb113.h index 7b715455a6..291b163be8 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300template_xb113.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/contrib/ath_hal/ar9300/ar9300template_xb113.h @@ -25,6 +25,11 @@ #ifndef __ar9300templateXB113_h__ #define __ar9300templateXB113_h__ +/* Ensure that AH_BYTE_ORDER is defined */ +#ifndef AH_BYTE_ORDER +#error AH_BYTE_ORDER needs to be defined! +#endif + static ar9300_eeprom_t ar9300_template_xb113= { diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ah_osdep.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ah_osdep.c index dcf14dcd62..304bc5bed7 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ah_osdep.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ah_osdep.c @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2002-2008 Sam Leffler, Errno Consulting * All rights reserved. @@ -27,8 +27,6 @@ * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGES. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ah_osdep.c 326255 2017-11-27 14:52:40Z pfg $ */ #include "opt_ah.h" @@ -434,11 +432,13 @@ ath_hal_modevent(module_t mod __unused, int type, void *data __unused) switch (type) { case MOD_LOAD: - printf("[ath_hal] loaded\n"); + if (bootverbose) + printf("[ath_hal] loaded\n"); break; case MOD_UNLOAD: - printf("[ath_hal] unloaded\n"); + if (bootverbose) + printf("[ath_hal] unloaded\n"); break; case MOD_SHUTDOWN: diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ah_osdep.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ah_osdep.h index 4a2cde46ba..638717140f 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ah_osdep.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ah_osdep.h @@ -1,6 +1,5 @@ - /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2002-2008 Sam Leffler, Errno Consulting * All rights reserved. @@ -28,8 +27,6 @@ * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGES. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ah_osdep.h 326255 2017-11-27 14:52:40Z pfg $ */ #ifndef _ATH_AH_OSDEP_H_ #define _ATH_AH_OSDEP_H_ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_dfs/null/dfs_null.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_dfs/null/dfs_null.c index 35516654d9..eabcbd0eaf 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_dfs/null/dfs_null.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_dfs/null/dfs_null.c @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2011 Adrian Chadd, Xenion Pty Ltd * All rights reserved. @@ -27,12 +27,8 @@ * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGES. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_dfs/null/dfs_null.c 326255 2017-11-27 14:52:40Z pfg $ */ #include -__FBSDID("$FreeBSD: releng/12.0/sys/dev/ath/ath_dfs/null/dfs_null.c 326255 2017-11-27 14:52:40Z pfg $"); - /* * This implements an empty DFS module. */ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah.c index e4357ee07e..df2ca240c1 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ah.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah.h index 554767dd3d..41490686e8 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah.h @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ah.h 334197 2018-05-25 01:27:39Z adrian $ */ #ifndef _ATH_AH_H_ @@ -1030,7 +1028,7 @@ typedef struct { u_int16_t ss_fft_period; /* Skip interval for FFT reports */ u_int16_t ss_period; /* Spectral scan period */ u_int16_t ss_count; /* # of reports to return from ss_active */ - u_int16_t ss_short_report;/* Set to report ony 1 set of FFT results */ + u_int16_t ss_short_report;/* Set to report only 1 set of FFT results */ u_int8_t radar_bin_thresh_sel; /* strong signal radar FFT threshold configuration */ u_int16_t ss_spectral_pri; /* are we doing a noise power cal ? */ int8_t ss_nf_cal[AH_MAX_CHAINS*2]; /* nf calibrated values for ctl+ext from eeprom */ @@ -1404,6 +1402,8 @@ struct ath_hal { HAL_QUIET_FLAG flag); void __ahdecl(*ah_setChainMasks)(struct ath_hal *, uint32_t, uint32_t); + u_int __ahdecl(*ah_getNav)(struct ath_hal*); + void __ahdecl(*ah_setNav)(struct ath_hal*, u_int); /* DFS functions */ void __ahdecl(*ah_enableDfs)(struct ath_hal *ah, diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_btcoex.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_btcoex.h index acd7a14838..8db9c14dc4 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_btcoex.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_btcoex.h @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ah_btcoex.h 326695 2017-12-08 15:57:29Z pfg $ */ #ifndef __ATH_HAL_BTCOEX_H__ #define __ATH_HAL_BTCOEX_H__ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_debug.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_debug.h index 7a6da1986c..6c20108be9 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_debug.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_debug.h @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ah_debug.h 326695 2017-12-08 15:57:29Z pfg $ */ #ifndef _ATH_AH_DEBUG_H_ #define _ATH_AH_DEBUG_H_ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_decode.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_decode.h index e5cfa57f6f..09377fdd82 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_decode.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_decode.h @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ah_decode.h 326695 2017-12-08 15:57:29Z pfg $ */ #ifndef _ATH_AH_DECODE_H_ #define _ATH_AH_DECODE_H_ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_desc.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_desc.h index 811bf861d6..104e59eb00 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_desc.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_desc.h @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ah_desc.h 326695 2017-12-08 15:57:29Z pfg $ */ #ifndef _DEV_ATH_DESC_H diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_devid.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_devid.h index 0dbd0486ea..5cb98d2f54 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_devid.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_devid.h @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ah_devid.h 326695 2017-12-08 15:57:29Z pfg $ */ #ifndef _DEV_ATH_DEVID_H_ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_diagcodes.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_diagcodes.h index 14907ca5b0..9b1fca8b90 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_diagcodes.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_diagcodes.h @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ah_diagcodes.h 326695 2017-12-08 15:57:29Z pfg $ */ #ifndef _ATH_AH_DIAGCODES_H_ #define _ATH_AH_DIAGCODES_H_ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_eeprom.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_eeprom.h index bc499619cb..635b1b1bcb 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_eeprom.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_eeprom.h @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ah_eeprom.h 326695 2017-12-08 15:57:29Z pfg $ */ #ifndef _ATH_AH_EEPROM_H_ #define _ATH_AH_EEPROM_H_ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_eeprom_9287.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_eeprom_9287.c index a140283002..c8af0bf51f 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_eeprom_9287.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_eeprom_9287.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ah_eeprom_9287.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_eeprom_9287.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_eeprom_9287.h index c153cabbdc..a5e3c81749 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_eeprom_9287.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_eeprom_9287.h @@ -14,8 +14,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ah_eeprom_9287.h 326695 2017-12-08 15:57:29Z pfg $ */ #ifndef __AH_EEPROM_9287_H__ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_eeprom_v1.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_eeprom_v1.c index 89dc769760..1991c01cde 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_eeprom_v1.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_eeprom_v1.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ah_eeprom_v1.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_eeprom_v1.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_eeprom_v1.h index cc8d5a4347..e3da6ea4c3 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_eeprom_v1.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_eeprom_v1.h @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ah_eeprom_v1.h 326695 2017-12-08 15:57:29Z pfg $ */ #ifndef _ATH_AH_EEPROM_V1_H_ #define _ATH_AH_EEPROM_V1_H_ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_eeprom_v14.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_eeprom_v14.c index f8d64a5907..1c81139fd3 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_eeprom_v14.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_eeprom_v14.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ah_eeprom_v14.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_eeprom_v14.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_eeprom_v14.h index f756aecd04..d4569193ec 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_eeprom_v14.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_eeprom_v14.h @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ah_eeprom_v14.h 326695 2017-12-08 15:57:29Z pfg $ */ #ifndef _AH_EEPROM_V14_H_ #define _AH_EEPROM_V14_H_ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_eeprom_v3.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_eeprom_v3.c index f6fca25ae7..130afa09e3 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_eeprom_v3.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_eeprom_v3.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ah_eeprom_v3.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_eeprom_v3.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_eeprom_v3.h index cded890dbc..68b21c0541 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_eeprom_v3.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_eeprom_v3.h @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ah_eeprom_v3.h 326695 2017-12-08 15:57:29Z pfg $ */ #ifndef _ATH_AH_EEPROM_V3_H_ #define _ATH_AH_EEPROM_V3_H_ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_eeprom_v4k.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_eeprom_v4k.c index f026e1d8e9..b0958fa1cf 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_eeprom_v4k.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_eeprom_v4k.c @@ -16,8 +16,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ah_eeprom_v4k.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_eeprom_v4k.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_eeprom_v4k.h index 488a792319..1ba93493d9 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_eeprom_v4k.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_eeprom_v4k.h @@ -16,8 +16,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ah_eeprom_v4k.h 326695 2017-12-08 15:57:29Z pfg $ */ #ifndef _AH_EEPROM_V4K_H_ #define _AH_EEPROM_V4K_H_ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_internal.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_internal.h index 837ad8ecbe..4edb1e3a59 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_internal.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_internal.h @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ah_internal.h 326695 2017-12-08 15:57:29Z pfg $ */ #ifndef _ATH_AH_INTERAL_H_ #define _ATH_AH_INTERAL_H_ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_regdomain.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_regdomain.c index 3f1b797100..0d78ff68b6 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_regdomain.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_regdomain.c @@ -16,8 +16,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ah_regdomain.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_regdomain.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_regdomain.h index 918092cab1..eec299a8ce 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_regdomain.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_regdomain.h @@ -16,8 +16,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ah_regdomain.h 326695 2017-12-08 15:57:29Z pfg $ */ #ifndef __AH_REGDOMAIN_H__ #define __AH_REGDOMAIN_H__ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_regdomain/ah_rd_ctry.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_regdomain/ah_rd_ctry.h index de2ed2369d..b15afcd4cc 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_regdomain/ah_rd_ctry.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_regdomain/ah_rd_ctry.h @@ -16,8 +16,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ah_regdomain/ah_rd_ctry.h 326695 2017-12-08 15:57:29Z pfg $ */ #ifndef __AH_REGDOMAIN_CTRY_H__ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_regdomain/ah_rd_domains.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_regdomain/ah_rd_domains.h index 7386f7b697..9b7d853e6d 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_regdomain/ah_rd_domains.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_regdomain/ah_rd_domains.h @@ -16,8 +16,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ah_regdomain/ah_rd_domains.h 326695 2017-12-08 15:57:29Z pfg $ */ #ifndef __AH_REGDOMAIN_DOMAINS_H__ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_regdomain/ah_rd_freqbands.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_regdomain/ah_rd_freqbands.h index dfdd4caba5..bc9ad551c2 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_regdomain/ah_rd_freqbands.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_regdomain/ah_rd_freqbands.h @@ -16,8 +16,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ah_regdomain/ah_rd_freqbands.h 326695 2017-12-08 15:57:29Z pfg $ */ #ifndef __AH_REGDOMAIN_FREQBANDS_H__ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_regdomain/ah_rd_regenum.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_regdomain/ah_rd_regenum.h index ae6c733519..1ecdb8b7e3 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_regdomain/ah_rd_regenum.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_regdomain/ah_rd_regenum.h @@ -16,8 +16,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ah_regdomain/ah_rd_regenum.h 326695 2017-12-08 15:57:29Z pfg $ */ #ifndef __AH_REGDOMAIN_REGENUM_H__ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_regdomain/ah_rd_regmap.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_regdomain/ah_rd_regmap.h index bd426c5872..0cc3b3b47d 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_regdomain/ah_rd_regmap.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_regdomain/ah_rd_regmap.h @@ -16,8 +16,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ah_regdomain/ah_rd_regmap.h 326695 2017-12-08 15:57:29Z pfg $ */ #ifndef __AH_REGDOMAIN_REGMAP_H__ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_soc.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_soc.h index 71be4ce297..996bc30e9c 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_soc.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ah_soc.h @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ah_soc.h 326695 2017-12-08 15:57:29Z pfg $ */ #ifndef _ATH_AH_SOC_H_ #define _ATH_AH_SOC_H_ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5210/ar5210.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5210/ar5210.h index d371678a4c..567fea567c 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5210/ar5210.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5210/ar5210.h @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5210/ar5210.h 326695 2017-12-08 15:57:29Z pfg $ */ #ifndef _ATH_AR5210_H_ #define _ATH_AR5210_H_ @@ -269,6 +267,8 @@ extern void ar5210SetChainMasks(struct ath_hal *, uint32_t, uint32_t); extern void ar5210EnableDfs(struct ath_hal *, HAL_PHYERR_PARAM *); extern void ar5210GetDfsThresh(struct ath_hal *, HAL_PHYERR_PARAM *); extern void ar5210UpdateDiagReg(struct ath_hal *ah, uint32_t val); +extern void ar5210SetNav(struct ath_hal *ah, u_int val); +extern u_int ar5210GetNav(struct ath_hal *ah); extern u_int ar5210GetKeyCacheSize(struct ath_hal *); extern HAL_BOOL ar5210IsKeyCacheEntryValid(struct ath_hal *, uint16_t); @@ -278,7 +278,7 @@ extern HAL_BOOL ar5210SetKeyCacheEntry(struct ath_hal *, uint16_t entry, extern HAL_BOOL ar5210SetKeyCacheEntryMac(struct ath_hal *, uint16_t, const uint8_t *); -extern HAL_BOOL ar5210SetPowerMode(struct ath_hal *, uint32_t powerRequest, +extern HAL_BOOL ar5210SetPowerMode(struct ath_hal *, HAL_POWER_MODE mode, int setChip); extern HAL_POWER_MODE ar5210GetPowerMode(struct ath_hal *); diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5210/ar5210_attach.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5210/ar5210_attach.c index e48c359629..4f67330ca8 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5210/ar5210_attach.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5210/ar5210_attach.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5210/ar5210_attach.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" @@ -145,6 +143,8 @@ static const struct ath_hal_private ar5210hal = {{ .ah_getDfsThresh = ar5210GetDfsThresh, /* XXX procRadarEvent */ /* XXX isFastClockEnabled */ + .ah_getNav = ar5210GetNav, + .ah_setNav = ar5210SetNav, /* Key Cache Functions */ .ah_getKeyCacheSize = ar5210GetKeyCacheSize, diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5210/ar5210_beacon.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5210/ar5210_beacon.c index b6e7146f79..96c31ddc6d 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5210/ar5210_beacon.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5210/ar5210_beacon.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5210/ar5210_beacon.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5210/ar5210_interrupts.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5210/ar5210_interrupts.c index 17702533a8..63baafd11d 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5210/ar5210_interrupts.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5210/ar5210_interrupts.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5210/ar5210_interrupts.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5210/ar5210_keycache.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5210/ar5210_keycache.c index 00b9455ac0..4a04a27609 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5210/ar5210_keycache.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5210/ar5210_keycache.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5210/ar5210_keycache.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5210/ar5210_misc.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5210/ar5210_misc.c index a44df6804d..209dcfa911 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5210/ar5210_misc.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5210/ar5210_misc.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5210/ar5210_misc.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" @@ -710,3 +708,26 @@ ar5210UpdateDiagReg(struct ath_hal *ah, uint32_t val) val |= AR_DIAG_SW_DIS_CRYPTO; OS_REG_WRITE(ah, AR_DIAG_SW, val); } + +/* + * Get the current NAV value from the hardware. + */ +u_int +ar5210GetNav(struct ath_hal *ah) +{ + uint32_t reg; + + reg = OS_REG_READ(ah, AR_NAV); + return (reg); +} + +/* + * Set the current NAV value to the hardware. + */ +void +ar5210SetNav(struct ath_hal *ah, u_int val) +{ + + OS_REG_WRITE(ah, AR_NAV, val); +} + diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5210/ar5210_phy.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5210/ar5210_phy.c index f30d59ff59..10ac4fe494 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5210/ar5210_phy.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5210/ar5210_phy.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5210/ar5210_phy.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5210/ar5210_power.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5210/ar5210_power.c index ec63a73d10..7aa5883ba2 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5210/ar5210_power.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5210/ar5210_power.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5210/ar5210_power.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5210/ar5210_recv.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5210/ar5210_recv.c index b1424e7377..47ea926881 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5210/ar5210_recv.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5210/ar5210_recv.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5210/ar5210_recv.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5210/ar5210_reset.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5210/ar5210_reset.c index 028d24ca1f..dc4f002164 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5210/ar5210_reset.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5210/ar5210_reset.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5210/ar5210_reset.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5210/ar5210_xmit.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5210/ar5210_xmit.c index fe7f89770b..dbdeaf86a4 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5210/ar5210_xmit.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5210/ar5210_xmit.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5210/ar5210_xmit.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5210/ar5210desc.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5210/ar5210desc.h index 95cda6026d..9679824f45 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5210/ar5210desc.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5210/ar5210desc.h @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5210/ar5210desc.h 326695 2017-12-08 15:57:29Z pfg $ */ #ifndef _DEV_ATH_AR5210DESC_H #define _DEV_ATH_AR5210DESC_H diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5210/ar5210phy.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5210/ar5210phy.h index d935991d3d..667533bff8 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5210/ar5210phy.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5210/ar5210phy.h @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5210/ar5210phy.h 326695 2017-12-08 15:57:29Z pfg $ */ #ifndef _DEV_ATH_AR5210PHY_H #define _DEV_ATH_AR5210PHY_H diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5210/ar5210reg.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5210/ar5210reg.h index 1538cc19b0..92e32a0687 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5210/ar5210reg.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5210/ar5210reg.h @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5210/ar5210reg.h 326695 2017-12-08 15:57:29Z pfg $ */ #ifndef _DEV_ATH_AR5210REG_H #define _DEV_ATH_AR5210REG_H diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5210/ar5k_0007.ini b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5210/ar5k_0007.ini index a3a15ddea8..ab7fc1a81c 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5210/ar5k_0007.ini +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5210/ar5k_0007.ini @@ -13,8 +13,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5210/ar5k_0007.ini 204644 2010-03-03 17:32:32Z rpaulo $ */ /* crete register init */ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5211/ar5211.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5211/ar5211.h index a637c0dbb2..08396ed85d 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5211/ar5211.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5211/ar5211.h @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5211/ar5211.h 326695 2017-12-08 15:57:29Z pfg $ */ #ifndef _ATH_AR5211_H_ #define _ATH_AR5211_H_ @@ -291,6 +289,8 @@ extern uint32_t ar5211Get11nExtBusy(struct ath_hal *); extern HAL_BOOL ar5211GetMibCycleCounts(struct ath_hal *, HAL_SURVEY_SAMPLE *); extern void ar5211SetChainMasks(struct ath_hal *ah, uint32_t, uint32_t); +extern void ar5211SetNav(struct ath_hal *ah, u_int); +extern u_int ar5211GetNav(struct ath_hal *ah); extern void ar5211EnableDfs(struct ath_hal *, HAL_PHYERR_PARAM *); extern void ar5211GetDfsThresh(struct ath_hal *, HAL_PHYERR_PARAM *); @@ -304,7 +304,7 @@ extern HAL_BOOL ar5211SetKeyCacheEntry(struct ath_hal *, uint16_t entry, extern HAL_BOOL ar5211SetKeyCacheEntryMac(struct ath_hal *, uint16_t, const uint8_t *); -extern HAL_BOOL ar5211SetPowerMode(struct ath_hal *, uint32_t powerRequest, +extern HAL_BOOL ar5211SetPowerMode(struct ath_hal *, HAL_POWER_MODE mode, int setChip); extern HAL_POWER_MODE ar5211GetPowerMode(struct ath_hal *); diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5211/ar5211_attach.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5211/ar5211_attach.c index 1cd21f21c3..1b01f2a282 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5211/ar5211_attach.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5211/ar5211_attach.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5211/ar5211_attach.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" @@ -145,6 +143,8 @@ static const struct ath_hal_private ar5211hal = {{ .ah_getDfsThresh = ar5211GetDfsThresh, /* XXX procRadarEvent */ /* XXX isFastClockEnabled */ + .ah_setNav = ar5211SetNav, + .ah_getNav = ar5211GetNav, /* Key Cache Functions */ .ah_getKeyCacheSize = ar5211GetKeyCacheSize, diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5211/ar5211_beacon.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5211/ar5211_beacon.c index d3511d9367..06790b58f7 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5211/ar5211_beacon.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5211/ar5211_beacon.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5211/ar5211_beacon.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5211/ar5211_interrupts.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5211/ar5211_interrupts.c index 9abebdb0d0..8a4086b01d 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5211/ar5211_interrupts.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5211/ar5211_interrupts.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5211/ar5211_interrupts.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5211/ar5211_keycache.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5211/ar5211_keycache.c index 95fc22dd1d..19fb8770ef 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5211/ar5211_keycache.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5211/ar5211_keycache.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5211/ar5211_keycache.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5211/ar5211_misc.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5211/ar5211_misc.c index 26c7d5aa21..4566d1b6f1 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5211/ar5211_misc.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5211/ar5211_misc.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5211/ar5211_misc.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" @@ -733,3 +731,26 @@ void ar5211GetDfsThresh(struct ath_hal *ah, HAL_PHYERR_PARAM *pe) { } + +/* + * Get the current NAV value from the hardware. + */ +u_int +ar5211GetNav(struct ath_hal *ah) +{ + uint32_t reg; + + reg = OS_REG_READ(ah, AR_NAV); + return (reg); +} + +/* + * Set the current NAV value to the hardware. + */ +void +ar5211SetNav(struct ath_hal *ah, u_int val) +{ + + OS_REG_WRITE(ah, AR_NAV, val); +} + diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5211/ar5211_phy.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5211/ar5211_phy.c index e52e7d66f0..6015847630 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5211/ar5211_phy.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5211/ar5211_phy.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5211/ar5211_phy.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5211/ar5211_power.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5211/ar5211_power.c index 87437342d7..4fa177b452 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5211/ar5211_power.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5211/ar5211_power.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5211/ar5211_power.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5211/ar5211_recv.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5211/ar5211_recv.c index 37f9f85e72..874333e8e7 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5211/ar5211_recv.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5211/ar5211_recv.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5211/ar5211_recv.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5211/ar5211_reset.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5211/ar5211_reset.c index 4909348213..fa5293777f 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5211/ar5211_reset.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5211/ar5211_reset.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5211/ar5211_reset.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5211/ar5211_xmit.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5211/ar5211_xmit.c index 46d85c418c..b2ad8fcb9f 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5211/ar5211_xmit.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5211/ar5211_xmit.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5211/ar5211_xmit.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5211/ar5211desc.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5211/ar5211desc.h index 3c1693d35d..9d5a0b62f0 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5211/ar5211desc.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5211/ar5211desc.h @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5211/ar5211desc.h 326695 2017-12-08 15:57:29Z pfg $ */ #ifndef _DEV_ATH_AR5211DESC_H #define _DEV_ATH_AR5211DESC_H diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5211/ar5211phy.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5211/ar5211phy.h index 715def2ee3..6b833352eb 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5211/ar5211phy.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5211/ar5211phy.h @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5211/ar5211phy.h 326695 2017-12-08 15:57:29Z pfg $ */ #ifndef _DEV_ATH_AR5211PHY_H #define _DEV_ATH_AR5211PHY_H diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5211/ar5211reg.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5211/ar5211reg.h index 41557b1f00..54eab6aa9b 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5211/ar5211reg.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5211/ar5211reg.h @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5211/ar5211reg.h 326695 2017-12-08 15:57:29Z pfg $ */ #ifndef _DEV_ATH_AR5211REG_H #define _DEV_ATH_AR5211REG_H diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5211/boss.ini b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5211/boss.ini index 1f6622a488..5619d01c4a 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5211/boss.ini +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5211/boss.ini @@ -13,8 +13,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5211/boss.ini 245952 2013-01-26 22:08:21Z pfg $ */ /* Auto Generated PCI Register Writes. Created: 09/12/02 */ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar2316.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar2316.c index 5d82a35c03..2821286f8c 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar2316.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar2316.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5212/ar2316.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar2317.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar2317.c index 6e0bc98446..46378879ab 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar2317.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar2317.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5212/ar2317.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar2413.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar2413.c index 803a598bda..bcc4a58f5f 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar2413.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar2413.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5212/ar2413.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar2425.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar2425.c index da6176560d..8fef27bd36 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar2425.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar2425.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5212/ar2425.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5111.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5111.c index 0136b63db7..1698747251 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5111.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5111.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5212/ar5111.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5112.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5112.c index 7cf3cb4603..68f7a27f57 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5112.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5112.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5212/ar5112.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212.h index 1ebcbc338f..0eb6b5e162 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212.h @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5212/ar5212.h 326695 2017-12-08 15:57:29Z pfg $ */ #ifndef _ATH_AR5212_H_ #define _ATH_AR5212_H_ @@ -529,6 +527,8 @@ extern HAL_STATUS ar5212SetQuiet(struct ath_hal *ah, uint32_t period, extern HAL_BOOL ar5212GetMibCycleCounts(struct ath_hal *, HAL_SURVEY_SAMPLE *); extern void ar5212SetChainMasks(struct ath_hal *, uint32_t, uint32_t); +extern u_int ar5212GetNav(struct ath_hal *); +extern void ar5212SetNav(struct ath_hal *, u_int); extern HAL_BOOL ar5212SetPowerMode(struct ath_hal *ah, HAL_POWER_MODE mode, int setChip); @@ -572,7 +572,7 @@ extern HAL_BOOL ar5212ResetCalValid(struct ath_hal *ah, const struct ieee80211_channel *); extern int16_t ar5212GetNoiseFloor(struct ath_hal *ah); extern void ar5212InitNfCalHistBuffer(struct ath_hal *); -extern int16_t ar5212GetNfHistMid(const int16_t calData[]); +extern int16_t ar5212GetNfHistMid(const int16_t calData[AR512_NF_CAL_HIST_MAX]); extern void ar5212SetSpurMitigation(struct ath_hal *, const struct ieee80211_channel *); extern HAL_BOOL ar5212SetAntennaSwitchInternal(struct ath_hal *ah, diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212.ini b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212.ini index 1bbc471c0f..b211309eb7 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212.ini +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212.ini @@ -13,8 +13,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5212/ar5212.ini 204644 2010-03-03 17:32:32Z rpaulo $ */ /* Auto Generated PCI Register Writes. Created: 09/01/04 */ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212_ani.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212_ani.c index 51ff712191..47fe7a973a 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212_ani.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212_ani.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5212/ar5212_ani.c 334848 2018-06-08 18:15:23Z adrian $ */ #include "opt_ah.h" @@ -41,7 +39,7 @@ /* * ANI processing tunes radio parameters according to PHY errors - * and related information. This is done for for noise and spur + * and related information. This is done for noise and spur * immunity in all operating modes if the device indicates it's * capable at attach time. In addition, when there is a reference * rssi value (e.g. beacon frames from an ap in station mode) diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212_attach.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212_attach.c index e1586c011b..4520153f80 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212_attach.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212_attach.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5212/ar5212_attach.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" @@ -137,6 +135,8 @@ static const struct ath_hal_private ar5212hal = {{ .ah_setQuiet = ar5212SetQuiet, .ah_getMibCycleCounts = ar5212GetMibCycleCounts, .ah_setChainMasks = ar5212SetChainMasks, + .ah_getNav = ar5212GetNav, + .ah_setNav = ar5212SetNav, /* DFS Functions */ .ah_enableDfs = ar5212EnableDfs, diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212_beacon.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212_beacon.c index 94c5adffac..a346828453 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212_beacon.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212_beacon.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5212/ar5212_beacon.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212_eeprom.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212_eeprom.c index 52460a58f2..8d1dcf2ac9 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212_eeprom.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212_eeprom.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5212/ar5212_eeprom.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212_gpio.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212_gpio.c index 8115f89f28..9a96090c97 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212_gpio.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212_gpio.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5212/ar5212_gpio.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212_interrupts.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212_interrupts.c index 3cf4ddafbd..f48b7d196a 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212_interrupts.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212_interrupts.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5212/ar5212_interrupts.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212_keycache.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212_keycache.c index b8b0636284..210b6b2db5 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212_keycache.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212_keycache.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5212/ar5212_keycache.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212_misc.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212_misc.c index a9ba39b079..031d9bd398 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212_misc.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212_misc.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5212/ar5212_misc.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" @@ -1458,3 +1456,30 @@ ar5212SetChainMasks(struct ath_hal *ah, uint32_t tx_chainmask, uint32_t rx_chainmask) { } + +/* + * Get the current NAV value from the hardware. + * + * 0xdeadbeef indicates the hardware is currently powered off. + */ +u_int +ar5212GetNav(struct ath_hal *ah) +{ + uint32_t reg; + + reg = OS_REG_READ(ah, AR_NAV); + + if (reg == 0xdeadbeef) + return (0); + return (reg); +} + +/* + * Set the current NAV value to the hardware. + */ +void +ar5212SetNav(struct ath_hal *ah, u_int val) +{ + + OS_REG_WRITE(ah, AR_NAV, val); +} diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212_phy.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212_phy.c index c1985c0cf2..46d7b50eb0 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212_phy.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212_phy.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5212/ar5212_phy.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212_power.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212_power.c index c7432fce13..bfa407598a 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212_power.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212_power.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5212/ar5212_power.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212_recv.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212_recv.c index 21e19a2071..6061a3c4c1 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212_recv.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212_recv.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5212/ar5212_recv.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212_reset.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212_reset.c index 2fbf9c467e..21991f55cc 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212_reset.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212_reset.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5212/ar5212_reset.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212_rfgain.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212_rfgain.c index efa98f4401..9352c6decd 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212_rfgain.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212_rfgain.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5212/ar5212_rfgain.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212_xmit.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212_xmit.c index 275682b909..8725bfb6ec 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212_xmit.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212_xmit.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5212/ar5212_xmit.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212desc.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212desc.h index 4b8b8d9062..4ecee057a6 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212desc.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212desc.h @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5212/ar5212desc.h 326695 2017-12-08 15:57:29Z pfg $ */ #ifndef _ATH_AR5212_DESC_H_ #define _ATH_AR5212_DESC_H_ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212phy.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212phy.h index 1c714006ec..0d6e3fb952 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212phy.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212phy.h @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5212/ar5212phy.h 326695 2017-12-08 15:57:29Z pfg $ */ #ifndef _DEV_ATH_AR5212PHY_H_ #define _DEV_ATH_AR5212PHY_H_ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212reg.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212reg.h index 3adbd91d9d..c59b452317 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212reg.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5212reg.h @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5212/ar5212reg.h 326695 2017-12-08 15:57:29Z pfg $ */ #ifndef _DEV_ATH_AR5212REG_H_ #define _DEV_ATH_AR5212REG_H_ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5311reg.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5311reg.h index 5343a1aaef..3f4920f661 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5311reg.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5311reg.h @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5212/ar5311reg.h 326695 2017-12-08 15:57:29Z pfg $ */ #ifndef _DEV_ATH_AR5311REG_H_ #define _DEV_ATH_AR5311REG_H_ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5413.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5413.c index 27efca3b03..8283fae602 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5413.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5212/ar5413.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5212/ar5413.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5312/ar5312.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5312/ar5312.h index 027b00dc2d..878e456c74 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5312/ar5312.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5312/ar5312.h @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5312/ar5312.h 326695 2017-12-08 15:57:29Z pfg $ */ #ifndef _ATH_AR5312_H_ #define _ATH_AR5312_H_ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5312/ar5312_attach.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5312/ar5312_attach.c index fc99560708..50ef2f278b 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5312/ar5312_attach.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5312/ar5312_attach.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5312/ar5312_attach.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5312/ar5312_eeprom.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5312/ar5312_eeprom.c index 8e65d803f0..dbef609cff 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5312/ar5312_eeprom.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5312/ar5312_eeprom.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5312/ar5312_eeprom.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5312/ar5312_gpio.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5312/ar5312_gpio.c index 4a9dd07b5a..08df4a95cf 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5312/ar5312_gpio.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5312/ar5312_gpio.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5312/ar5312_gpio.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5312/ar5312_interrupts.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5312/ar5312_interrupts.c index afb545d054..46be6eff25 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5312/ar5312_interrupts.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5312/ar5312_interrupts.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5312/ar5312_interrupts.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5312/ar5312_misc.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5312/ar5312_misc.c index 5d6bc705c2..2ed32cc916 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5312/ar5312_misc.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5312/ar5312_misc.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5312/ar5312_misc.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5312/ar5312_power.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5312/ar5312_power.c index 5ed987d2a0..40d63d7124 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5312/ar5312_power.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5312/ar5312_power.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5312/ar5312_power.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5312/ar5312_reset.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5312/ar5312_reset.c index 268b01484c..1598e5aec1 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5312/ar5312_reset.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5312/ar5312_reset.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5312/ar5312_reset.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5312/ar5312phy.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5312/ar5312phy.h index ebdf0b2060..bbd10a2feb 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5312/ar5312phy.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5312/ar5312phy.h @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5312/ar5312phy.h 326695 2017-12-08 15:57:29Z pfg $ */ #ifndef _DEV_ATH_AR5312PHY_H_ #define _DEV_ATH_AR5312PHY_H_ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5312/ar5312reg.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5312/ar5312reg.h index 26f811cc0d..3f5a07e653 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5312/ar5312reg.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5312/ar5312reg.h @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5312/ar5312reg.h 326695 2017-12-08 15:57:29Z pfg $ */ #ifndef _DEV_ATH_AR5312REG_H_ #define _DEV_ATH_AR5312REG_H_ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5312/ar5315_gpio.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5312/ar5315_gpio.c index d1cdf68dc6..502216e70d 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5312/ar5315_gpio.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5312/ar5315_gpio.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5312/ar5315_gpio.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar2133.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar2133.c index bc8ab9038b..c68d7dcd05 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar2133.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar2133.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5416/ar2133.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416.h index c4226a3fd0..243e29208f 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416.h @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5416/ar5416.h 334197 2018-05-25 01:27:39Z adrian $ */ #ifndef _ATH_AR5416_H_ #define _ATH_AR5416_H_ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416.ini b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416.ini index 080a4af0e7..d8c581abda 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416.ini +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416.ini @@ -13,8 +13,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5416/ar5416.ini 225420 2011-09-06 10:49:05Z adrian $ */ /* Auto Generated PCI Register Writes. Created: 09/20/06 */ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_ani.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_ani.c index 7a2cb688fd..b872191762 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_ani.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_ani.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c 334848 2018-06-08 18:15:23Z adrian $ */ #include "opt_ah.h" @@ -45,7 +43,7 @@ /* * ANI processing tunes radio parameters according to PHY errors - * and related information. This is done for for noise and spur + * and related information. This is done for noise and spur * immunity in all operating modes if the device indicates it's * capable at attach time. In addition, when there is a reference * rssi value (e.g. beacon frames from an ap in station mode) diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_attach.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_attach.c index 97368cc793..b5b1dd18fe 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_attach.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_attach.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" @@ -358,11 +356,11 @@ ar5416Attach(uint16_t devid, HAL_SOFTC sc, HAL_INI_INIT(&AH5416(ah)->ah_ini_addac, ar5416Addac, 2); if (! IS_5416V2_2(ah)) { /* Owl 2.1/2.0 */ + ath_hal_printf(ah, "[ath] Enabling CLKDRV workaround for AR5416 < v2.2\n"); struct ini { uint32_t *data; /* NB: !const */ int rows, cols; }; - ath_hal_printf(ah, "[ath] Enabling CLKDRV workaround for AR5416 < v2.2\n"); /* override CLKDRV value */ OS_MEMCPY(&AH5416(ah)[1], ar5416Addac, sizeof(ar5416Addac)); AH5416(ah)->ah_ini_addac.data = (uint32_t *) &AH5416(ah)[1]; @@ -632,7 +630,7 @@ ar5416WriteIni(struct ath_hal *ah, const struct ieee80211_channel *chan) } /* - * Convert to baseband spur frequency given input channel frequency + * Convert to baseband spur frequency given input channel frequency * and compute register settings below. */ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_beacon.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_beacon.c index b9ce14bb11..1ea1e85165 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_beacon.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_beacon.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5416/ar5416_beacon.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_btcoex.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_btcoex.c index 2b587187b7..4e4e0a8532 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_btcoex.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_btcoex.c @@ -16,8 +16,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5416/ar5416_btcoex.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_btcoex.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_btcoex.h index 7273a18d04..6793a58ca6 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_btcoex.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_btcoex.h @@ -14,8 +14,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5416/ar5416_btcoex.h 326695 2017-12-08 15:57:29Z pfg $ */ #ifndef __ATH_AR5416_BTCOEX_H__ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_cal.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_cal.c index 06d9874ca6..0345701fae 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_cal.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_cal.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5416/ar5416_cal.c 334849 2018-06-08 18:21:57Z adrian $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_cal.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_cal.h index dfd176c47d..cdff01f151 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_cal.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_cal.h @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5416/ar5416_cal.h 326695 2017-12-08 15:57:29Z pfg $ */ #ifndef _ATH_AR5416_CAL_H_ #define _ATH_AR5416_CAL_H_ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_cal_adcdc.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_cal_adcdc.c index 3b0052c146..635a94fcf0 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_cal_adcdc.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_cal_adcdc.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5416/ar5416_cal_adcdc.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_cal_adcgain.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_cal_adcgain.c index 32d3b4085a..33ab3fc4bc 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_cal_adcgain.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_cal_adcgain.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5416/ar5416_cal_adcgain.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_cal_iq.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_cal_iq.c index 5caec6e00e..a0c27828bb 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_cal_iq.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_cal_iq.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5416/ar5416_cal_iq.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_eeprom.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_eeprom.c index d33775dbe1..ebf841d387 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_eeprom.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_eeprom.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5416/ar5416_eeprom.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_gpio.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_gpio.c index 55e2c390cb..4c9a587dbc 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_gpio.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_gpio.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5416/ar5416_gpio.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" @@ -87,6 +85,10 @@ ar5416GpioCfgOutput(struct ath_hal *ah, uint32_t gpio, HAL_GPIO_MUX_TYPE type) { uint32_t gpio_shift, reg; +#define N(a) (sizeof(a) / sizeof(a[0])) + + HALASSERT(gpio < AH_PRIVATE(ah)->ah_caps.halNumGpioPins); + /* * This table maps the HAL GPIO pins to the actual hardware * values. @@ -101,10 +103,6 @@ ar5416GpioCfgOutput(struct ath_hal *ah, uint32_t gpio, HAL_GPIO_MUX_TYPE type) AR_GPIO_OUTPUT_MUX_AS_TX_FRAME, }; -#define N(a) (sizeof(a) / sizeof(a[0])) - - HALASSERT(gpio < AH_PRIVATE(ah)->ah_caps.halNumGpioPins); - HALDEBUG(ah, HAL_DEBUG_GPIO, "%s: gpio=%d, type=%d\n", __func__, gpio, type); @@ -171,9 +169,9 @@ ar5416GpioSet(struct ath_hal *ah, uint32_t gpio, uint32_t val) reg = OS_REG_READ(ah, AR_GPIO_IN_OUT); if (val & 1) reg |= AR_GPIO_BIT(gpio); - else + else reg &= ~AR_GPIO_BIT(gpio); - OS_REG_WRITE(ah, AR_GPIO_IN_OUT, reg); + OS_REG_WRITE(ah, AR_GPIO_IN_OUT, reg); return AH_TRUE; } diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_interrupts.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_interrupts.c index 970ad30d58..fdebcd945f 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_interrupts.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_interrupts.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5416/ar5416_interrupts.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_keycache.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_keycache.c index 7e7730c056..43463a299f 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_keycache.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_keycache.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5416/ar5416_keycache.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_misc.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_misc.c index a21e6ea3f1..381d1085e7 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_misc.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_misc.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5416/ar5416_misc.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_phy.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_phy.c index 1d70415bba..7bbb575fb6 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_phy.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_phy.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5416/ar5416_phy.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_power.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_power.c index 46863d2d43..634e7a1e7d 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_power.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_power.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5416/ar5416_power.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_radar.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_radar.c index 3fc454a723..d6a7d51cc7 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_radar.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_radar.c @@ -14,8 +14,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5416/ar5416_radar.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_recv.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_recv.c index 7b568578a2..6778391e76 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_recv.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_recv.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5416/ar5416_recv.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_reset.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_reset.c index 36f26a4735..e107e88e16 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_reset.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_reset.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" @@ -204,11 +202,11 @@ ar5416Reset(struct ath_hal *ah, HAL_OPMODE opmode, AR_MAC_PCU_ASYNC_FIFO_REG3_SOFT_RESET); } - /* Override ini values (that can be overriden in this fashion) */ + /* Override ini values (that can be overridden in this fashion) */ ar5416OverrideIni(ah, chan); /* Setup 11n MAC/Phy mode registers */ - ar5416Set11nRegs(ah, chan); + ar5416Set11nRegs(ah, chan); OS_MARK(ah, AH_MARK_RESET_LINE, __LINE__); diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_spectral.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_spectral.c index dd2c4e069a..df951c3253 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_spectral.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_spectral.c @@ -14,8 +14,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5416/ar5416_spectral.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_xmit.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_xmit.c index 5cefe555d5..fcaca63161 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_xmit.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416_xmit.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5416/ar5416_xmit.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416desc.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416desc.h index bf8c78cd9c..26ff9fee06 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416desc.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416desc.h @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5416/ar5416desc.h 326695 2017-12-08 15:57:29Z pfg $ */ #ifndef _ATH_AR5416_DESC_H_ #define _ATH_AR5416_DESC_H_ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416phy.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416phy.h index 83c9c6d7df..3d4865ab3e 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416phy.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416phy.h @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5416/ar5416phy.h 326695 2017-12-08 15:57:29Z pfg $ */ #ifndef _DEV_ATH_AR5416PHY_H_ #define _DEV_ATH_AR5416PHY_H_ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416reg.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416reg.h index 8a4dbf5c24..d0f37215af 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416reg.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar5416/ar5416reg.h @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar5416/ar5416reg.h 326695 2017-12-08 15:57:29Z pfg $ */ #ifndef _DEV_ATH_AR5416REG_H #define _DEV_ATH_AR5416REG_H diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9001/ar9130.ini b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9001/ar9130.ini deleted file mode 100644 index d073041217..0000000000 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9001/ar9130.ini +++ /dev/null @@ -1,669 +0,0 @@ -/* - * Copyright (c) 2010 Atheros Communications Inc. - * - * Permission to use, copy, modify, and/or distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar9001/ar9130.ini 221163 2011-04-28 12:47:40Z adrian $ - */ - -static const uint32_t ar5416Modes_9100[][6] = { - { 0x00001030, 0x00000230, 0x00000460, 0x000002c0, 0x00000160, 0x000001e0 }, - { 0x00001070, 0x00000168, 0x000002d0, 0x00000318, 0x0000018c, 0x000001e0 }, - { 0x000010b0, 0x00000e60, 0x00001cc0, 0x00007c70, 0x00003e38, 0x00001180 }, - { 0x000010f0, 0x0000a000, 0x00014000, 0x00016000, 0x0000b000, 0x00014008 }, - { 0x00008014, 0x03e803e8, 0x07d007d0, 0x10801600, 0x08400b00, 0x06e006e0 }, - { 0x0000801c, 0x128d93a7, 0x128d93cf, 0x12e013d7, 0x12e013ab, 0x098813cf }, - { 0x00008120, 0x08f04800, 0x08f04800, 0x08f04810, 0x08f04810, 0x08f04810 }, - { 0x000081d0, 0x00003210, 0x00003210, 0x0000320a, 0x0000320a, 0x0000320a }, - { 0x00009804, 0x00000300, 0x000003c4, 0x000003c4, 0x00000300, 0x00000303 }, - { 0x00009820, 0x02020200, 0x02020200, 0x02020200, 0x02020200, 0x02020200 }, - { 0x00009824, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e }, - { 0x00009828, 0x0a020001, 0x0a020001, 0x0a020001, 0x0a020001, 0x0a020001 }, - { 0x00009834, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e }, - { 0x00009838, 0x00000007, 0x00000007, 0x00000007, 0x00000007, 0x00000007 }, - { 0x00009844, 0x0372161e, 0x0372161e, 0x037216a0, 0x037216a0, 0x037216a0 }, - { 0x00009848, 0x001a6a65, 0x001a6a65, 0x00197a68, 0x00197a68, 0x00197a68 }, - { 0x0000a848, 0x001a6a65, 0x001a6a65, 0x00197a68, 0x00197a68, 0x00197a68 }, - { 0x0000b848, 0x001a6a65, 0x001a6a65, 0x00197a68, 0x00197a68, 0x00197a68 }, - { 0x00009850, 0x6c48b4e2, 0x6d48b4e2, 0x6d48b0e2, 0x6c48b0e2, 0x6c48b0e2 }, - { 0x00009858, 0x7ec82d2e, 0x7ec82d2e, 0x7ec82d2e, 0x7ec82d2e, 0x7ec82d2e }, - { 0x0000985c, 0x31395d5e, 0x3139605e, 0x3139605e, 0x31395d5e, 0x31395d5e }, - { 0x00009860, 0x00048d18, 0x00048d18, 0x00048d20, 0x00048d20, 0x00048d18 }, - { 0x0000c864, 0x0001ce00, 0x0001ce00, 0x0001ce00, 0x0001ce00, 0x0001ce00 }, - { 0x00009868, 0x409a40d0, 0x409a40d0, 0x409a40d0, 0x409a40d0, 0x409a40d0 }, - { 0x0000986c, 0x050cb081, 0x050cb081, 0x050cb081, 0x050cb081, 0x050cb081 }, - { 0x00009914, 0x000007d0, 0x00000fa0, 0x00001130, 0x00000898, 0x000007d0 }, - { 0x00009918, 0x0000000a, 0x00000014, 0x00000016, 0x0000000b, 0x00000016 }, - { 0x00009924, 0xd00a8a07, 0xd00a8a07, 0xd00a8a0d, 0xd00a8a0d, 0xd00a8a0d }, - { 0x00009940, 0x00750604, 0x00754604, 0xfff81204, 0xfff81204, 0xfff81204 }, - { 0x00009944, 0xdfb81020, 0xdfb81020, 0xdfb81020, 0xdfb81020, 0xdfb81020 }, - { 0x00009954, 0x5f3ca3de, 0x5f3ca3de, 0xe250a51e, 0xe250a51e, 0xe250a51e }, - { 0x00009958, 0x2108ecff, 0x2108ecff, 0x3388ffff, 0x3388ffff, 0x3388ffff }, - { 0x00009960, 0x0001bfc0, 0x0001bfc0, 0x0001bfc0, 0x0001bfc0, 0x0001bfc0 }, - { 0x0000a960, 0x0001bfc0, 0x0001bfc0, 0x0001bfc0, 0x0001bfc0, 0x0001bfc0 }, - { 0x0000b960, 0x0001bfc0, 0x0001bfc0, 0x0001bfc0, 0x0001bfc0, 0x0001bfc0 }, - { 0x00009964, 0x00001120, 0x00001120, 0x00001120, 0x00001120, 0x00001120 }, - { 0x0000c9bc, 0x001a0600, 0x001a0600, 0x001a1000, 0x001a0c00, 0x001a0c00 }, - { 0x000099c0, 0x038919be, 0x038919be, 0x038919be, 0x038919be, 0x038919be }, - { 0x000099c4, 0x06336f77, 0x06336f77, 0x06336f77, 0x06336f77, 0x06336f77 }, - { 0x000099c8, 0x6af65329, 0x6af65329, 0x6af65329, 0x6af65329, 0x6af65329 }, - { 0x000099cc, 0x08f186c8, 0x08f186c8, 0x08f186c8, 0x08f186c8, 0x08f186c8 }, - { 0x000099d0, 0x00046384, 0x00046384, 0x00046384, 0x00046384, 0x00046384 }, - { 0x000099d4, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, - { 0x000099d8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, - { 0x0000a204, 0x00000880, 0x00000880, 0x00000880, 0x00000880, 0x00000880 }, - { 0x0000a208, 0xd6be4788, 0xd6be4788, 0xd03e4788, 0xd03e4788, 0xd03e4788 }, - { 0x0000a20c, 0x002fc160, 0x002fc160, 0x002ac120, 0x002ac120, 0x002ac120 }, - { 0x0000b20c, 0x002fc160, 0x002fc160, 0x002ac120, 0x002ac120, 0x002ac120 }, - { 0x0000c20c, 0x002fc160, 0x002fc160, 0x002ac120, 0x002ac120, 0x002ac120 }, - { 0x0000a21c, 0x1883800a, 0x1883800a, 0x1883800a, 0x1883800a, 0x1883800a }, - { 0x0000a230, 0x00000000, 0x00000000, 0x00000210, 0x00000108, 0x00000000 }, - { 0x0000a274, 0x0a1a9caa, 0x0a1a9caa, 0x0a1a7caa, 0x0a1a7caa, 0x0a1a7caa }, - { 0x0000a300, 0x18010000, 0x18010000, 0x18010000, 0x18010000, 0x18010000 }, - { 0x0000a304, 0x30032602, 0x30032602, 0x2e032402, 0x2e032402, 0x2e032402 }, - { 0x0000a308, 0x48073e06, 0x48073e06, 0x4a0a3c06, 0x4a0a3c06, 0x4a0a3c06 }, - { 0x0000a30c, 0x560b4c0a, 0x560b4c0a, 0x621a540b, 0x621a540b, 0x621a540b }, - { 0x0000a310, 0x641a600f, 0x641a600f, 0x764f6c1b, 0x764f6c1b, 0x764f6c1b }, - { 0x0000a314, 0x7a4f6e1b, 0x7a4f6e1b, 0x845b7a5a, 0x845b7a5a, 0x845b7a5a }, - { 0x0000a318, 0x8c5b7e5a, 0x8c5b7e5a, 0x950f8ccf, 0x950f8ccf, 0x950f8ccf }, - { 0x0000a31c, 0x9d0f96cf, 0x9d0f96cf, 0xa5cf9b4f, 0xa5cf9b4f, 0xa5cf9b4f }, - { 0x0000a320, 0xb51fa69f, 0xb51fa69f, 0xbddfaf1f, 0xbddfaf1f, 0xbddfaf1f }, - { 0x0000a324, 0xcb3fbd07, 0xcb3fbcbf, 0xd1ffc93f, 0xd1ffc93f, 0xd1ffc93f }, - { 0x0000a328, 0x0000d7bf, 0x0000d7bf, 0x00000000, 0x00000000, 0x00000000 }, - { 0x0000a32c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, - { 0x0000a330, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, - { 0x0000a334, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, -}; - -static const uint32_t ar5416Common_9100[][2] = { - /* Addr allmodes */ - { 0x0000000c, 0x00000000 }, - { 0x00000030, 0x00020015 }, - { 0x00000034, 0x00000005 }, - { 0x00000040, 0x00000000 }, - { 0x00000044, 0x00000008 }, - { 0x00000048, 0x00000008 }, - { 0x0000004c, 0x00000010 }, - { 0x00000050, 0x00000000 }, - { 0x00000054, 0x0000001f }, - { 0x00000800, 0x00000000 }, - { 0x00000804, 0x00000000 }, - { 0x00000808, 0x00000000 }, - { 0x0000080c, 0x00000000 }, - { 0x00000810, 0x00000000 }, - { 0x00000814, 0x00000000 }, - { 0x00000818, 0x00000000 }, - { 0x0000081c, 0x00000000 }, - { 0x00000820, 0x00000000 }, - { 0x00000824, 0x00000000 }, - { 0x00001040, 0x002ffc0f }, - { 0x00001044, 0x002ffc0f }, - { 0x00001048, 0x002ffc0f }, - { 0x0000104c, 0x002ffc0f }, - { 0x00001050, 0x002ffc0f }, - { 0x00001054, 0x002ffc0f }, - { 0x00001058, 0x002ffc0f }, - { 0x0000105c, 0x002ffc0f }, - { 0x00001060, 0x002ffc0f }, - { 0x00001064, 0x002ffc0f }, - { 0x00001230, 0x00000000 }, - { 0x00001270, 0x00000000 }, - { 0x00001038, 0x00000000 }, - { 0x00001078, 0x00000000 }, - { 0x000010b8, 0x00000000 }, - { 0x000010f8, 0x00000000 }, - { 0x00001138, 0x00000000 }, - { 0x00001178, 0x00000000 }, - { 0x000011b8, 0x00000000 }, - { 0x000011f8, 0x00000000 }, - { 0x00001238, 0x00000000 }, - { 0x00001278, 0x00000000 }, - { 0x000012b8, 0x00000000 }, - { 0x000012f8, 0x00000000 }, - { 0x00001338, 0x00000000 }, - { 0x00001378, 0x00000000 }, - { 0x000013b8, 0x00000000 }, - { 0x000013f8, 0x00000000 }, - { 0x00001438, 0x00000000 }, - { 0x00001478, 0x00000000 }, - { 0x000014b8, 0x00000000 }, - { 0x000014f8, 0x00000000 }, - { 0x00001538, 0x00000000 }, - { 0x00001578, 0x00000000 }, - { 0x000015b8, 0x00000000 }, - { 0x000015f8, 0x00000000 }, - { 0x00001638, 0x00000000 }, - { 0x00001678, 0x00000000 }, - { 0x000016b8, 0x00000000 }, - { 0x000016f8, 0x00000000 }, - { 0x00001738, 0x00000000 }, - { 0x00001778, 0x00000000 }, - { 0x000017b8, 0x00000000 }, - { 0x000017f8, 0x00000000 }, - { 0x0000103c, 0x00000000 }, - { 0x0000107c, 0x00000000 }, - { 0x000010bc, 0x00000000 }, - { 0x000010fc, 0x00000000 }, - { 0x0000113c, 0x00000000 }, - { 0x0000117c, 0x00000000 }, - { 0x000011bc, 0x00000000 }, - { 0x000011fc, 0x00000000 }, - { 0x0000123c, 0x00000000 }, - { 0x0000127c, 0x00000000 }, - { 0x000012bc, 0x00000000 }, - { 0x000012fc, 0x00000000 }, - { 0x0000133c, 0x00000000 }, - { 0x0000137c, 0x00000000 }, - { 0x000013bc, 0x00000000 }, - { 0x000013fc, 0x00000000 }, - { 0x0000143c, 0x00000000 }, - { 0x0000147c, 0x00000000 }, - { 0x00020010, 0x00000003 }, - { 0x00020038, 0x000004c2 }, - { 0x00008004, 0x00000000 }, - { 0x00008008, 0x00000000 }, - { 0x0000800c, 0x00000000 }, - { 0x00008018, 0x00000700 }, - { 0x00008020, 0x00000000 }, - { 0x00008038, 0x00000000 }, - { 0x0000803c, 0x00000000 }, - { 0x00008048, 0x40000000 }, - { 0x00008054, 0x00004000 }, - { 0x00008058, 0x00000000 }, - { 0x0000805c, 0x000fc78f }, - { 0x00008060, 0x0000000f }, - { 0x00008064, 0x00000000 }, - { 0x000080c0, 0x2a82301a }, - { 0x000080c4, 0x05dc01e0 }, - { 0x000080c8, 0x1f402710 }, - { 0x000080cc, 0x01f40000 }, - { 0x000080d0, 0x00001e00 }, - { 0x000080d4, 0x00000000 }, - { 0x000080d8, 0x00400000 }, - { 0x000080e0, 0xffffffff }, - { 0x000080e4, 0x0000ffff }, - { 0x000080e8, 0x003f3f3f }, - { 0x000080ec, 0x00000000 }, - { 0x000080f0, 0x00000000 }, - { 0x000080f4, 0x00000000 }, - { 0x000080f8, 0x00000000 }, - { 0x000080fc, 0x00020000 }, - { 0x00008100, 0x00020000 }, - { 0x00008104, 0x00000001 }, - { 0x00008108, 0x00000052 }, - { 0x0000810c, 0x00000000 }, - { 0x00008110, 0x00000168 }, - { 0x00008118, 0x000100aa }, - { 0x0000811c, 0x00003210 }, - { 0x00008120, 0x08f04800 }, - { 0x00008124, 0x00000000 }, - { 0x00008128, 0x00000000 }, - { 0x0000812c, 0x00000000 }, - { 0x00008130, 0x00000000 }, - { 0x00008134, 0x00000000 }, - { 0x00008138, 0x00000000 }, - { 0x0000813c, 0x00000000 }, - { 0x00008144, 0x00000000 }, - { 0x00008168, 0x00000000 }, - { 0x0000816c, 0x00000000 }, - { 0x00008170, 0x32143320 }, - { 0x00008174, 0xfaa4fa50 }, - { 0x00008178, 0x00000100 }, - { 0x0000817c, 0x00000000 }, - { 0x000081c4, 0x00000000 }, - { 0x000081d0, 0x00003210 }, - { 0x000081ec, 0x00000000 }, - { 0x000081f0, 0x00000000 }, - { 0x000081f4, 0x00000000 }, - { 0x000081f8, 0x00000000 }, - { 0x000081fc, 0x00000000 }, - { 0x00008200, 0x00000000 }, - { 0x00008204, 0x00000000 }, - { 0x00008208, 0x00000000 }, - { 0x0000820c, 0x00000000 }, - { 0x00008210, 0x00000000 }, - { 0x00008214, 0x00000000 }, - { 0x00008218, 0x00000000 }, - { 0x0000821c, 0x00000000 }, - { 0x00008220, 0x00000000 }, - { 0x00008224, 0x00000000 }, - { 0x00008228, 0x00000000 }, - { 0x0000822c, 0x00000000 }, - { 0x00008230, 0x00000000 }, - { 0x00008234, 0x00000000 }, - { 0x00008238, 0x00000000 }, - { 0x0000823c, 0x00000000 }, - { 0x00008240, 0x00100000 }, - { 0x00008244, 0x0010f400 }, - { 0x00008248, 0x00000100 }, - { 0x0000824c, 0x0001e800 }, - { 0x00008250, 0x00000000 }, - { 0x00008254, 0x00000000 }, - { 0x00008258, 0x00000000 }, - { 0x0000825c, 0x400000ff }, - { 0x00008260, 0x00080922 }, - { 0x00008270, 0x00000000 }, - { 0x00008274, 0x40000000 }, - { 0x00008278, 0x003e4180 }, - { 0x0000827c, 0x00000000 }, - { 0x00008284, 0x0000002c }, - { 0x00008288, 0x0000002c }, - { 0x0000828c, 0x00000000 }, - { 0x00008294, 0x00000000 }, - { 0x00008298, 0x00000000 }, - { 0x00008300, 0x00000000 }, - { 0x00008304, 0x00000000 }, - { 0x00008308, 0x00000000 }, - { 0x0000830c, 0x00000000 }, - { 0x00008310, 0x00000000 }, - { 0x00008314, 0x00000000 }, - { 0x00008318, 0x00000000 }, - { 0x00008328, 0x00000000 }, - { 0x0000832c, 0x00000007 }, - { 0x00008330, 0x00000302 }, - { 0x00008334, 0x00000e00 }, - { 0x00008338, 0x00000000 }, - { 0x0000833c, 0x00000000 }, - { 0x00008340, 0x000107ff }, - { 0x00009808, 0x00000000 }, - { 0x0000980c, 0xad848e19 }, - { 0x00009810, 0x7d14e000 }, - { 0x00009814, 0x9c0a9f6b }, - { 0x0000981c, 0x00000000 }, - { 0x0000982c, 0x0000a000 }, - { 0x00009830, 0x00000000 }, - { 0x0000983c, 0x00200400 }, - { 0x00009840, 0x206a01ae }, - { 0x0000984c, 0x1284233c }, - { 0x00009854, 0x00000859 }, - { 0x00009900, 0x00000000 }, - { 0x00009904, 0x00000000 }, - { 0x00009908, 0x00000000 }, - { 0x0000990c, 0x00000000 }, - { 0x0000991c, 0x10000fff }, - { 0x00009920, 0x05100000 }, - { 0x0000a920, 0x05100000 }, - { 0x0000b920, 0x05100000 }, - { 0x00009928, 0x00000001 }, - { 0x0000992c, 0x00000004 }, - { 0x00009934, 0x1e1f2022 }, - { 0x00009938, 0x0a0b0c0d }, - { 0x0000993c, 0x00000000 }, - { 0x00009948, 0x9280b212 }, - { 0x0000994c, 0x00020028 }, - { 0x0000c95c, 0x004b6a8e }, - { 0x0000c968, 0x000003ce }, - { 0x00009970, 0x190fb515 }, - { 0x00009974, 0x00000000 }, - { 0x00009978, 0x00000001 }, - { 0x0000997c, 0x00000000 }, - { 0x00009980, 0x00000000 }, - { 0x00009984, 0x00000000 }, - { 0x00009988, 0x00000000 }, - { 0x0000998c, 0x00000000 }, - { 0x00009990, 0x00000000 }, - { 0x00009994, 0x00000000 }, - { 0x00009998, 0x00000000 }, - { 0x0000999c, 0x00000000 }, - { 0x000099a0, 0x00000000 }, - { 0x000099a4, 0x00000001 }, - { 0x000099a8, 0x201fff00 }, - { 0x000099ac, 0x006f0000 }, - { 0x000099b0, 0x03051000 }, - { 0x000099dc, 0x00000000 }, - { 0x000099e0, 0x00000200 }, - { 0x000099e4, 0xaaaaaaaa }, - { 0x000099e8, 0x3c466478 }, - { 0x000099ec, 0x0cc80caa }, - { 0x000099fc, 0x00001042 }, - { 0x00009b00, 0x00000000 }, - { 0x00009b04, 0x00000001 }, - { 0x00009b08, 0x00000002 }, - { 0x00009b0c, 0x00000003 }, - { 0x00009b10, 0x00000004 }, - { 0x00009b14, 0x00000005 }, - { 0x00009b18, 0x00000008 }, - { 0x00009b1c, 0x00000009 }, - { 0x00009b20, 0x0000000a }, - { 0x00009b24, 0x0000000b }, - { 0x00009b28, 0x0000000c }, - { 0x00009b2c, 0x0000000d }, - { 0x00009b30, 0x00000010 }, - { 0x00009b34, 0x00000011 }, - { 0x00009b38, 0x00000012 }, - { 0x00009b3c, 0x00000013 }, - { 0x00009b40, 0x00000014 }, - { 0x00009b44, 0x00000015 }, - { 0x00009b48, 0x00000018 }, - { 0x00009b4c, 0x00000019 }, - { 0x00009b50, 0x0000001a }, - { 0x00009b54, 0x0000001b }, - { 0x00009b58, 0x0000001c }, - { 0x00009b5c, 0x0000001d }, - { 0x00009b60, 0x00000020 }, - { 0x00009b64, 0x00000021 }, - { 0x00009b68, 0x00000022 }, - { 0x00009b6c, 0x00000023 }, - { 0x00009b70, 0x00000024 }, - { 0x00009b74, 0x00000025 }, - { 0x00009b78, 0x00000028 }, - { 0x00009b7c, 0x00000029 }, - { 0x00009b80, 0x0000002a }, - { 0x00009b84, 0x0000002b }, - { 0x00009b88, 0x0000002c }, - { 0x00009b8c, 0x0000002d }, - { 0x00009b90, 0x00000030 }, - { 0x00009b94, 0x00000031 }, - { 0x00009b98, 0x00000032 }, - { 0x00009b9c, 0x00000033 }, - { 0x00009ba0, 0x00000034 }, - { 0x00009ba4, 0x00000035 }, - { 0x00009ba8, 0x00000035 }, - { 0x00009bac, 0x00000035 }, - { 0x00009bb0, 0x00000035 }, - { 0x00009bb4, 0x00000035 }, - { 0x00009bb8, 0x00000035 }, - { 0x00009bbc, 0x00000035 }, - { 0x00009bc0, 0x00000035 }, - { 0x00009bc4, 0x00000035 }, - { 0x00009bc8, 0x00000035 }, - { 0x00009bcc, 0x00000035 }, - { 0x00009bd0, 0x00000035 }, - { 0x00009bd4, 0x00000035 }, - { 0x00009bd8, 0x00000035 }, - { 0x00009bdc, 0x00000035 }, - { 0x00009be0, 0x00000035 }, - { 0x00009be4, 0x00000035 }, - { 0x00009be8, 0x00000035 }, - { 0x00009bec, 0x00000035 }, - { 0x00009bf0, 0x00000035 }, - { 0x00009bf4, 0x00000035 }, - { 0x00009bf8, 0x00000010 }, - { 0x00009bfc, 0x0000001a }, - { 0x0000a210, 0x40806333 }, - { 0x0000a214, 0x00106c10 }, - { 0x0000a218, 0x009c4060 }, - { 0x0000a220, 0x018830c6 }, - { 0x0000a224, 0x00000400 }, - { 0x0000a228, 0x001a0bb5 }, - { 0x0000a22c, 0x00000000 }, - { 0x0000a234, 0x20202020 }, - { 0x0000a238, 0x20202020 }, - { 0x0000a23c, 0x13c889af }, - { 0x0000a240, 0x38490a20 }, - { 0x0000a244, 0x00007bb6 }, - { 0x0000a248, 0x0fff3ffc }, - { 0x0000a24c, 0x00000001 }, - { 0x0000a250, 0x0000e000 }, - { 0x0000a254, 0x00000000 }, - { 0x0000a258, 0x0cc75380 }, - { 0x0000a25c, 0x0f0f0f01 }, - { 0x0000a260, 0xdfa91f01 }, - { 0x0000a268, 0x00000001 }, - { 0x0000a26c, 0x0ebae9c6 }, - { 0x0000b26c, 0x0ebae9c6 }, - { 0x0000c26c, 0x0ebae9c6 }, - { 0x0000d270, 0x00820820 }, - { 0x0000a278, 0x1ce739ce }, - { 0x0000a27c, 0x050701ce }, - { 0x0000a338, 0x00000000 }, - { 0x0000a33c, 0x00000000 }, - { 0x0000a340, 0x00000000 }, - { 0x0000a344, 0x00000000 }, - { 0x0000a348, 0x3fffffff }, - { 0x0000a34c, 0x3fffffff }, - { 0x0000a350, 0x3fffffff }, - { 0x0000a354, 0x0003ffff }, - { 0x0000a358, 0x79a8aa33 }, - { 0x0000d35c, 0x07ffffef }, - { 0x0000d360, 0x0fffffe7 }, - { 0x0000d364, 0x17ffffe5 }, - { 0x0000d368, 0x1fffffe4 }, - { 0x0000d36c, 0x37ffffe3 }, - { 0x0000d370, 0x3fffffe3 }, - { 0x0000d374, 0x57ffffe3 }, - { 0x0000d378, 0x5fffffe2 }, - { 0x0000d37c, 0x7fffffe2 }, - { 0x0000d380, 0x7f3c7bba }, - { 0x0000d384, 0xf3307ff0 }, - { 0x0000a388, 0x0c000000 }, - { 0x0000a38c, 0x20202020 }, - { 0x0000a390, 0x20202020 }, - { 0x0000a394, 0x1ce739ce }, - { 0x0000a398, 0x000001ce }, - { 0x0000a39c, 0x00000001 }, - { 0x0000a3a0, 0x00000000 }, - { 0x0000a3a4, 0x00000000 }, - { 0x0000a3a8, 0x00000000 }, - { 0x0000a3ac, 0x00000000 }, - { 0x0000a3b0, 0x00000000 }, - { 0x0000a3b4, 0x00000000 }, - { 0x0000a3b8, 0x00000000 }, - { 0x0000a3bc, 0x00000000 }, - { 0x0000a3c0, 0x00000000 }, - { 0x0000a3c4, 0x00000000 }, - { 0x0000a3c8, 0x00000246 }, - { 0x0000a3cc, 0x20202020 }, - { 0x0000a3d0, 0x20202020 }, - { 0x0000a3d4, 0x20202020 }, - { 0x0000a3dc, 0x1ce739ce }, - { 0x0000a3e0, 0x000001ce }, -}; - -static const uint32_t ar5416Bank0_9100[][2] = { - /* Addr allmodes */ - { 0x000098b0, 0x1e5795e5 }, - { 0x000098e0, 0x02008020 }, -}; - -static const uint32_t ar5416BB_RfGain_9100[][3] = { - /* Addr 5G_HT20 5G_HT40 */ - { 0x00009a00, 0x00000000, 0x00000000 }, - { 0x00009a04, 0x00000040, 0x00000040 }, - { 0x00009a08, 0x00000080, 0x00000080 }, - { 0x00009a0c, 0x000001a1, 0x00000141 }, - { 0x00009a10, 0x000001e1, 0x00000181 }, - { 0x00009a14, 0x00000021, 0x000001c1 }, - { 0x00009a18, 0x00000061, 0x00000001 }, - { 0x00009a1c, 0x00000168, 0x00000041 }, - { 0x00009a20, 0x000001a8, 0x000001a8 }, - { 0x00009a24, 0x000001e8, 0x000001e8 }, - { 0x00009a28, 0x00000028, 0x00000028 }, - { 0x00009a2c, 0x00000068, 0x00000068 }, - { 0x00009a30, 0x00000189, 0x000000a8 }, - { 0x00009a34, 0x000001c9, 0x00000169 }, - { 0x00009a38, 0x00000009, 0x000001a9 }, - { 0x00009a3c, 0x00000049, 0x000001e9 }, - { 0x00009a40, 0x00000089, 0x00000029 }, - { 0x00009a44, 0x00000170, 0x00000069 }, - { 0x00009a48, 0x000001b0, 0x00000190 }, - { 0x00009a4c, 0x000001f0, 0x000001d0 }, - { 0x00009a50, 0x00000030, 0x00000010 }, - { 0x00009a54, 0x00000070, 0x00000050 }, - { 0x00009a58, 0x00000191, 0x00000090 }, - { 0x00009a5c, 0x000001d1, 0x00000151 }, - { 0x00009a60, 0x00000011, 0x00000191 }, - { 0x00009a64, 0x00000051, 0x000001d1 }, - { 0x00009a68, 0x00000091, 0x00000011 }, - { 0x00009a6c, 0x000001b8, 0x00000051 }, - { 0x00009a70, 0x000001f8, 0x00000198 }, - { 0x00009a74, 0x00000038, 0x000001d8 }, - { 0x00009a78, 0x00000078, 0x00000018 }, - { 0x00009a7c, 0x00000199, 0x00000058 }, - { 0x00009a80, 0x000001d9, 0x00000098 }, - { 0x00009a84, 0x00000019, 0x00000159 }, - { 0x00009a88, 0x00000059, 0x00000199 }, - { 0x00009a8c, 0x00000099, 0x000001d9 }, - { 0x00009a90, 0x000000d9, 0x00000019 }, - { 0x00009a94, 0x000000f9, 0x00000059 }, - { 0x00009a98, 0x000000f9, 0x00000099 }, - { 0x00009a9c, 0x000000f9, 0x000000d9 }, - { 0x00009aa0, 0x000000f9, 0x000000f9 }, - { 0x00009aa4, 0x000000f9, 0x000000f9 }, - { 0x00009aa8, 0x000000f9, 0x000000f9 }, - { 0x00009aac, 0x000000f9, 0x000000f9 }, - { 0x00009ab0, 0x000000f9, 0x000000f9 }, - { 0x00009ab4, 0x000000f9, 0x000000f9 }, - { 0x00009ab8, 0x000000f9, 0x000000f9 }, - { 0x00009abc, 0x000000f9, 0x000000f9 }, - { 0x00009ac0, 0x000000f9, 0x000000f9 }, - { 0x00009ac4, 0x000000f9, 0x000000f9 }, - { 0x00009ac8, 0x000000f9, 0x000000f9 }, - { 0x00009acc, 0x000000f9, 0x000000f9 }, - { 0x00009ad0, 0x000000f9, 0x000000f9 }, - { 0x00009ad4, 0x000000f9, 0x000000f9 }, - { 0x00009ad8, 0x000000f9, 0x000000f9 }, - { 0x00009adc, 0x000000f9, 0x000000f9 }, - { 0x00009ae0, 0x000000f9, 0x000000f9 }, - { 0x00009ae4, 0x000000f9, 0x000000f9 }, - { 0x00009ae8, 0x000000f9, 0x000000f9 }, - { 0x00009aec, 0x000000f9, 0x000000f9 }, - { 0x00009af0, 0x000000f9, 0x000000f9 }, - { 0x00009af4, 0x000000f9, 0x000000f9 }, - { 0x00009af8, 0x000000f9, 0x000000f9 }, - { 0x00009afc, 0x000000f9, 0x000000f9 }, -}; - -static const uint32_t ar5416Bank1_9100[][2] = { - /* Addr allmodes */ - { 0x000098b0, 0x02108421 }, - { 0x000098ec, 0x00000008 }, -}; - -static const uint32_t ar5416Bank2_9100[][2] = { - /* Addr allmodes */ - { 0x000098b0, 0x0e73ff17 }, - { 0x000098e0, 0x00000420 }, -}; - -static const uint32_t ar5416Bank3_9100[][3] = { - /* Addr 5G_HT20 5G_HT40 */ - { 0x000098f0, 0x01400018, 0x01c00018 }, -}; - -static const uint32_t ar5416Bank6_9100[][3] = { - /* Addr 5G_HT20 5G_HT40 */ - { 0x0000989c, 0x00000000, 0x00000000 }, - { 0x0000989c, 0x00000000, 0x00000000 }, - { 0x0000989c, 0x00000000, 0x00000000 }, - { 0x0000989c, 0x00e00000, 0x00e00000 }, - { 0x0000989c, 0x005e0000, 0x005e0000 }, - { 0x0000989c, 0x00120000, 0x00120000 }, - { 0x0000989c, 0x00620000, 0x00620000 }, - { 0x0000989c, 0x00020000, 0x00020000 }, - { 0x0000989c, 0x00ff0000, 0x00ff0000 }, - { 0x0000989c, 0x00ff0000, 0x00ff0000 }, - { 0x0000989c, 0x00ff0000, 0x00ff0000 }, - { 0x0000989c, 0x00ff0000, 0x00ff0000 }, - { 0x0000989c, 0x005f0000, 0x005f0000 }, - { 0x0000989c, 0x00870000, 0x00870000 }, - { 0x0000989c, 0x00f90000, 0x00f90000 }, - { 0x0000989c, 0x007b0000, 0x007b0000 }, - { 0x0000989c, 0x00ff0000, 0x00ff0000 }, - { 0x0000989c, 0x00f50000, 0x00f50000 }, - { 0x0000989c, 0x00dc0000, 0x00dc0000 }, - { 0x0000989c, 0x00110000, 0x00110000 }, - { 0x0000989c, 0x006100a8, 0x006100a8 }, - { 0x0000989c, 0x004210a2, 0x004210a2 }, - { 0x0000989c, 0x0014000f, 0x0014000f }, - { 0x0000989c, 0x00c40002, 0x00c40002 }, - { 0x0000989c, 0x003000f2, 0x003000f2 }, - { 0x0000989c, 0x00440016, 0x00440016 }, - { 0x0000989c, 0x00410040, 0x00410040 }, - { 0x0000989c, 0x000180d6, 0x000180d6 }, - { 0x0000989c, 0x0000c0aa, 0x0000c0aa }, - { 0x0000989c, 0x000000b1, 0x000000b1 }, - { 0x0000989c, 0x00002000, 0x00002000 }, - { 0x0000989c, 0x000000d4, 0x000000d4 }, - { 0x000098d0, 0x0000000f, 0x0010000f }, -}; - -static const uint32_t ar5416Bank6TPC_9100[][3] = { - /* Addr 5G_HT20 5G_HT40 */ - { 0x0000989c, 0x00000000, 0x00000000 }, - { 0x0000989c, 0x00000000, 0x00000000 }, - { 0x0000989c, 0x00000000, 0x00000000 }, - { 0x0000989c, 0x00e00000, 0x00e00000 }, - { 0x0000989c, 0x005e0000, 0x005e0000 }, - { 0x0000989c, 0x00120000, 0x00120000 }, - { 0x0000989c, 0x00620000, 0x00620000 }, - { 0x0000989c, 0x00020000, 0x00020000 }, - { 0x0000989c, 0x00ff0000, 0x00ff0000 }, - { 0x0000989c, 0x00ff0000, 0x00ff0000 }, - { 0x0000989c, 0x00ff0000, 0x00ff0000 }, - { 0x0000989c, 0x40ff0000, 0x40ff0000 }, - { 0x0000989c, 0x005f0000, 0x005f0000 }, - { 0x0000989c, 0x00870000, 0x00870000 }, - { 0x0000989c, 0x00f90000, 0x00f90000 }, - { 0x0000989c, 0x007b0000, 0x007b0000 }, - { 0x0000989c, 0x00ff0000, 0x00ff0000 }, - { 0x0000989c, 0x00f50000, 0x00f50000 }, - { 0x0000989c, 0x00dc0000, 0x00dc0000 }, - { 0x0000989c, 0x00110000, 0x00110000 }, - { 0x0000989c, 0x006100a8, 0x006100a8 }, - { 0x0000989c, 0x00423022, 0x00423022 }, - { 0x0000989c, 0x2014008f, 0x2014008f }, - { 0x0000989c, 0x00c40002, 0x00c40002 }, - { 0x0000989c, 0x003000f2, 0x003000f2 }, - { 0x0000989c, 0x00440016, 0x00440016 }, - { 0x0000989c, 0x00410040, 0x00410040 }, - { 0x0000989c, 0x0001805e, 0x0001805e }, - { 0x0000989c, 0x0000c0ab, 0x0000c0ab }, - { 0x0000989c, 0x000000e1, 0x000000e1 }, - { 0x0000989c, 0x00007080, 0x00007080 }, - { 0x0000989c, 0x000000d4, 0x000000d4 }, - { 0x000098d0, 0x0000000f, 0x0010000f }, -}; - -static const uint32_t ar5416Bank7_9100[][2] = { - /* Addr allmodes */ - { 0x0000989c, 0x00000500 }, - { 0x0000989c, 0x00000800 }, - { 0x000098cc, 0x0000000e }, -}; - -static const uint32_t ar5416Addac_9100[][2] = { - /* Addr allmodes */ - { 0x0000989c, 0x00000000 }, - { 0x0000989c, 0x00000000 }, - { 0x0000989c, 0x00000000 }, - { 0x0000989c, 0x00000000 }, - { 0x0000989c, 0x00000000 }, - { 0x0000989c, 0x00000000 }, - { 0x0000989c, 0x00000000 }, - { 0x0000989c, 0x00000010 }, - { 0x0000989c, 0x00000000 }, - { 0x0000989c, 0x00000000 }, - { 0x0000989c, 0x00000000 }, - { 0x0000989c, 0x00000000 }, - { 0x0000989c, 0x00000000 }, - { 0x0000989c, 0x00000000 }, - { 0x0000989c, 0x00000000 }, - { 0x0000989c, 0x00000000 }, - { 0x0000989c, 0x00000000 }, - { 0x0000989c, 0x00000000 }, - { 0x0000989c, 0x00000000 }, - { 0x0000989c, 0x00000000 }, - { 0x0000989c, 0x00000000 }, - { 0x0000989c, 0x000000c0 }, - { 0x0000989c, 0x00000015 }, - { 0x0000989c, 0x00000000 }, - { 0x0000989c, 0x00000000 }, - { 0x0000989c, 0x00000000 }, - { 0x0000989c, 0x00000000 }, - { 0x0000989c, 0x00000000 }, - { 0x0000989c, 0x00000000 }, - { 0x0000989c, 0x00000000 }, - { 0x0000989c, 0x00000000 }, - { 0x000098cc, 0x00000000 }, -}; diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9001/ar9130_attach.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9001/ar9130_attach.c deleted file mode 100644 index e12cd8d010..0000000000 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9001/ar9130_attach.c +++ /dev/null @@ -1,324 +0,0 @@ -/*- - * SPDX-License-Identifier: ISC - * - * Copyright (c) 2011 Adrian Chadd, Xenion Pty Ltd - * Copyright (c) 2008 Sam Leffler, Errno Consulting - * Copyright (c) 2008 Atheros Communications, Inc. - * - * Permission to use, copy, modify, and/or distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar9001/ar9130_attach.c 326695 2017-12-08 15:57:29Z pfg $ - */ -#include "opt_ah.h" - -#include "ah.h" -#include "ah_internal.h" -#include "ah_devid.h" - -#include "ar5416/ar5416.h" -#include "ar5416/ar5416reg.h" -#include "ar5416/ar5416phy.h" - -#include "ar9001/ar9130reg.h" -#include "ar9001/ar9130_phy.h" -#include "ar9001/ar9130_eeprom.h" - -#include "ar9001/ar9130.ini" - -static const HAL_PERCAL_DATA ar9130_iq_cal = { /* multi sample */ - .calName = "IQ", .calType = IQ_MISMATCH_CAL, - .calNumSamples = MAX_CAL_SAMPLES, - .calCountMax = PER_MIN_LOG_COUNT, - .calCollect = ar5416IQCalCollect, - .calPostProc = ar5416IQCalibration -}; -static const HAL_PERCAL_DATA ar9130_adc_gain_cal = { /* multi sample */ - .calName = "ADC Gain", .calType = ADC_GAIN_CAL, - .calNumSamples = MAX_CAL_SAMPLES, - .calCountMax = PER_MIN_LOG_COUNT, - .calCollect = ar5416AdcGainCalCollect, - .calPostProc = ar5416AdcGainCalibration -}; -static const HAL_PERCAL_DATA ar9130_adc_dc_cal = { /* multi sample */ - .calName = "ADC DC", .calType = ADC_DC_CAL, - .calNumSamples = MAX_CAL_SAMPLES, - .calCountMax = PER_MIN_LOG_COUNT, - .calCollect = ar5416AdcDcCalCollect, - .calPostProc = ar5416AdcDcCalibration -}; -static const HAL_PERCAL_DATA ar9130_adc_init_dc_cal = { - .calName = "ADC Init DC", .calType = ADC_DC_INIT_CAL, - .calNumSamples = MIN_CAL_SAMPLES, - .calCountMax = INIT_LOG_COUNT, - .calCollect = ar5416AdcDcCalCollect, - .calPostProc = ar5416AdcDcCalibration -}; - -static HAL_BOOL ar9130FillCapabilityInfo(struct ath_hal *ah); - -/* - * Attach for an AR9130 part. - */ -static struct ath_hal * -ar9130Attach(uint16_t devid, HAL_SOFTC sc, - HAL_BUS_TAG st, HAL_BUS_HANDLE sh, uint16_t *eepromdata, - HAL_OPS_CONFIG *ah_config, - HAL_STATUS *status) -{ - struct ath_hal_5416 *ahp5416; - struct ath_hal_5212 *ahp; - struct ath_hal *ah; - uint32_t val; - HAL_STATUS ecode; - HAL_BOOL rfStatus; - - HALDEBUG(AH_NULL, HAL_DEBUG_ATTACH, "%s: sc %p st %p sh %p\n", - __func__, sc, (void*) st, (void*) sh); - - /* NB: memory is returned zero'd */ - ahp5416 = ath_hal_malloc(sizeof (struct ath_hal_5416)); - if (ahp5416 == AH_NULL) { - HALDEBUG(AH_NULL, HAL_DEBUG_ANY, - "%s: cannot allocate memory for state block\n", __func__); - *status = HAL_ENOMEM; - return AH_NULL; - } - ar5416InitState(ahp5416, devid, sc, st, sh, status); - ahp = &ahp5416->ah_5212; - ah = &ahp->ah_priv.h; - - /* XXX override with 9100 specific state */ - AH5416(ah)->ah_initPLL = ar9130InitPLL; - /* XXX should force chainmasks to 0x7, as per ath9k calibration bugs */ - - /* override 5416 methods for our needs */ - - AH5416(ah)->ah_cal.iqCalData.calData = &ar9130_iq_cal; - AH5416(ah)->ah_cal.adcGainCalData.calData = &ar9130_adc_gain_cal; - AH5416(ah)->ah_cal.adcDcCalData.calData = &ar9130_adc_dc_cal; - AH5416(ah)->ah_cal.adcDcCalInitData.calData = &ar9130_adc_init_dc_cal; - AH5416(ah)->ah_cal.suppCals = ADC_GAIN_CAL | ADC_DC_CAL | IQ_MISMATCH_CAL; - - /* - * This was hard-set because the initial ath9k port of this - * code kept their runtime conditional register #defines. - * AR_SREV and the RTC registers have shifted for Howl; - * they detected this and changed the values at runtime. - * The current port doesn't yet do this; it may do at a - * later stage, so this is set early so any routines which - * manipulate the registers have ah_macVersion set to base - * the above decision upon. - */ - AH_PRIVATE((ah))->ah_macVersion = AR_XSREV_VERSION_HOWL; - - /* - * Use the "local" EEPROM data given to us by the higher layers. - * This is a private copy out of system flash. - * By this stage the SoC SPI flash may have disabled the memory- - * mapping and rely purely on port-based SPI IO. - */ - AH_PRIVATE((ah))->ah_eepromRead = ath_hal_EepromDataRead; - AH_PRIVATE((ah))->ah_eepromWrite = NULL; - ah->ah_eepromdata = eepromdata; - - if (!ar5416SetResetReg(ah, HAL_RESET_POWER_ON)) { - /* reset chip */ - HALDEBUG(ah, HAL_DEBUG_ANY, "%s: couldn't reset chip\n", - __func__); - ecode = HAL_EIO; - goto bad; - } - - if (!ar5416SetPowerMode(ah, HAL_PM_AWAKE, AH_TRUE)) { - HALDEBUG(ah, HAL_DEBUG_ANY, "%s: couldn't wakeup chip\n", - __func__); - ecode = HAL_EIO; - goto bad; - } - /* Read Revisions from Chips before taking out of reset */ - val = OS_REG_READ(ah, AR_SREV_CHIP_HOWL) & AR_SREV_CHIP_HOWL_ID; - - /* XXX are these values even valid for the mac/radio revision? -adrian */ - HALDEBUG(ah, HAL_DEBUG_ATTACH, - "%s: ID 0x%x VERSION 0x%x TYPE 0x%x REVISION 0x%x\n", - __func__, MS(val, AR_XSREV_ID), MS(val, AR_XSREV_VERSION), - MS(val, AR_XSREV_TYPE), MS(val, AR_XSREV_REVISION)); - AH_PRIVATE(ah)->ah_macRev = MS(val, AR_XSREV_REVISION); - AH_PRIVATE(ah)->ah_ispcie = 0; - - /* setup common ini data; rf backends handle remainder */ - HAL_INI_INIT(&ahp->ah_ini_modes, ar5416Modes_9100, 6); - HAL_INI_INIT(&ahp->ah_ini_common, ar5416Common_9100, 2); - - HAL_INI_INIT(&AH5416(ah)->ah_ini_bb_rfgain, ar5416BB_RfGain_9100, 3); - HAL_INI_INIT(&AH5416(ah)->ah_ini_bank0, ar5416Bank0_9100, 2); - HAL_INI_INIT(&AH5416(ah)->ah_ini_bank1, ar5416Bank1_9100, 2); - HAL_INI_INIT(&AH5416(ah)->ah_ini_bank2, ar5416Bank2_9100, 2); - HAL_INI_INIT(&AH5416(ah)->ah_ini_bank3, ar5416Bank3_9100, 3); - HAL_INI_INIT(&AH5416(ah)->ah_ini_bank6, ar5416Bank6TPC_9100, 3); - HAL_INI_INIT(&AH5416(ah)->ah_ini_bank7, ar5416Bank7_9100, 2); - HAL_INI_INIT(&AH5416(ah)->ah_ini_addac, ar5416Addac_9100, 2); - - ecode = ath_hal_v14EepromAttach(ah); - if (ecode != HAL_OK) - goto bad; - - if (!ar5416ChipReset(ah, AH_NULL, HAL_RESET_NORMAL)) { /* reset chip */ - HALDEBUG(ah, HAL_DEBUG_ANY, "%s: chip reset failed\n", __func__); - ecode = HAL_EIO; - goto bad; - } - - AH_PRIVATE(ah)->ah_phyRev = OS_REG_READ(ah, AR_PHY_CHIP_ID); - - if (!ar5212ChipTest(ah)) { - HALDEBUG(ah, HAL_DEBUG_ANY, "%s: hardware self-test failed\n", - __func__); - ecode = HAL_ESELFTEST; - goto bad; - } - - /* - * Set correct Baseband to analog shift - * setting to access analog chips. - */ - OS_REG_WRITE(ah, AR_PHY(0), 0x00000007); - - /* Read Radio Chip Rev Extract */ - AH_PRIVATE(ah)->ah_analog5GhzRev = ar5416GetRadioRev(ah); - switch (AH_PRIVATE(ah)->ah_analog5GhzRev & AR_RADIO_SREV_MAJOR) { - case AR_RAD2133_SREV_MAJOR: /* Sowl: 2G/3x3 */ - case AR_RAD5133_SREV_MAJOR: /* Sowl: 2+5G/3x3 */ - break; - default: - if (AH_PRIVATE(ah)->ah_analog5GhzRev == 0) { - AH_PRIVATE(ah)->ah_analog5GhzRev = - AR_RAD5133_SREV_MAJOR; - break; - } -#ifdef AH_DEBUG - HALDEBUG(ah, HAL_DEBUG_ANY, - "%s: 5G Radio Chip Rev 0x%02X is not supported by " - "this driver\n", __func__, - AH_PRIVATE(ah)->ah_analog5GhzRev); - ecode = HAL_ENOTSUPP; - goto bad; -#endif - } - rfStatus = ar2133RfAttach(ah, &ecode); - if (!rfStatus) { - HALDEBUG(ah, HAL_DEBUG_ANY, "%s: RF setup failed, status %u\n", - __func__, ecode); - goto bad; - } - - /* - * Got everything we need now to setup the capabilities. - */ - if (!ar9130FillCapabilityInfo(ah)) { - ecode = HAL_EEREAD; - goto bad; - } - - ecode = ath_hal_eepromGet(ah, AR_EEP_MACADDR, ahp->ah_macaddr); - if (ecode != HAL_OK) { - HALDEBUG(ah, HAL_DEBUG_ANY, - "%s: error getting mac address from EEPROM\n", __func__); - goto bad; - } - /* XXX How about the serial number ? */ - /* Read Reg Domain */ - AH_PRIVATE(ah)->ah_currentRD = - ath_hal_eepromGet(ah, AR_EEP_REGDMN_0, AH_NULL); - AH_PRIVATE(ah)->ah_currentRDext = - ath_hal_eepromGet(ah, AR_EEP_REGDMN_1, AH_NULL); - - /* - * ah_miscMode is populated by ar5416FillCapabilityInfo() - * starting from griffin. Set here to make sure that - * AR_MISC_MODE_MIC_NEW_LOC_ENABLE is set before a GTK is - * placed into hardware. - */ - if (ahp->ah_miscMode != 0) - OS_REG_WRITE(ah, AR_MISC_MODE, ahp->ah_miscMode); - - /* XXX no ANI for AR9130 */ - AH5416(ah)->nf_2g.max = AR_PHY_CCA_MAX_GOOD_VAL_5416_2GHZ; - AH5416(ah)->nf_2g.min = AR_PHY_CCA_MIN_GOOD_VAL_5416_2GHZ; - AH5416(ah)->nf_2g.nominal = AR_PHY_CCA_NOM_VAL_5416_2GHZ; - AH5416(ah)->nf_5g.max = AR_PHY_CCA_MAX_GOOD_VAL_5416_5GHZ; - AH5416(ah)->nf_5g.min = AR_PHY_CCA_MIN_GOOD_VAL_5416_5GHZ; - AH5416(ah)->nf_5g.nominal = AR_PHY_CCA_NOM_VAL_5416_5GHZ; - - ar5416InitNfHistBuff(AH5416(ah)->ah_cal.nfCalHist); - - HALDEBUG(ah, HAL_DEBUG_ATTACH, "%s: return\n", __func__); - - return ah; -bad: - if (ahp) - ar5416Detach((struct ath_hal *) ahp); - if (status) - *status = ecode; - return AH_NULL; -} - -/* - * Fill all software cached or static hardware state information. - * Return failure if capabilities are to come from EEPROM and - * cannot be read. - */ -static HAL_BOOL -ar9130FillCapabilityInfo(struct ath_hal *ah) -{ - HAL_CAPABILITIES *pCap = &AH_PRIVATE(ah)->ah_caps; - - HALDEBUG(ah, HAL_DEBUG_ATTACH, "%s: begin\n", __func__); - if (!ar5416FillCapabilityInfo(ah)) - return AH_FALSE; - HALDEBUG(ah, HAL_DEBUG_ATTACH, "%s: fill'ed; now setting\n", __func__); - pCap->halCSTSupport = AH_TRUE; - pCap->halRifsRxSupport = AH_TRUE; - pCap->halRifsTxSupport = AH_TRUE; - pCap->halRtsAggrLimit = 64*1024; /* 802.11n max */ - pCap->halExtChanDfsSupport = AH_TRUE; - pCap->halUseCombinedRadarRssi = AH_TRUE; - pCap->halAutoSleepSupport = AH_FALSE; /* XXX? */ - /* - * MBSSID aggregation is broken in Howl v1.1, v1.2, v1.3 - * and works fine in v1.4. - * XXX todo, enable it for v1.4. - */ - pCap->halMbssidAggrSupport = AH_FALSE; - pCap->hal4AddrAggrSupport = AH_TRUE; - /* BB Read WAR */ - pCap->halHasBBReadWar = AH_TRUE; - - /* - * Implement the PLL/config changes needed for half/quarter - * rates before re-enabling them here. - */ - pCap->halChanHalfRate = AH_FALSE; - pCap->halChanQuarterRate = AH_FALSE; - - return AH_TRUE; -} - -static const char* -ar9130Probe(uint16_t vendorid, uint16_t devid) -{ - if (vendorid == ATHEROS_VENDOR_ID && devid == AR5416_AR9130_DEVID) - return "Atheros 9130"; - return AH_NULL; -} -AH_CHIP(AR9130, ar9130Probe, ar9130Attach); diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9001/ar9130_eeprom.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9001/ar9130_eeprom.c deleted file mode 100644 index b228e26f1b..0000000000 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9001/ar9130_eeprom.c +++ /dev/null @@ -1,20 +0,0 @@ -/*- - * SPDX-License-Identifier: ISC - * - * Copyright (c) 2011 Adrian Chadd, Xenion Pty Ltd - * Copyright (c) 2010 Atheros Communications, Inc. - * - * Permission to use, copy, modify, and/or distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar9001/ar9130_eeprom.c 326695 2017-12-08 15:57:29Z pfg $ - */ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9001/ar9130_eeprom.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9001/ar9130_eeprom.h deleted file mode 100644 index ca50efc06e..0000000000 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9001/ar9130_eeprom.h +++ /dev/null @@ -1,24 +0,0 @@ -/*- - * SPDX-License-Identifier: ISC - * - * Copyright (c) 2010 Adrian Chadd, Xenion Pty Ltd - * Copyright (c) 2010 Atheros Communications, Inc. - * - * Permission to use, copy, modify, and/or distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar9001/ar9130_eeprom.h 326695 2017-12-08 15:57:29Z pfg $ - */ -#ifndef __AR9130_EEPROM_H__ -#define __AR9130_EEPROM_H__ - -#endif diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9001/ar9130_phy.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9001/ar9130_phy.c deleted file mode 100644 index 37f8579b09..0000000000 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9001/ar9130_phy.c +++ /dev/null @@ -1,49 +0,0 @@ -/*- - * SPDX-License-Identifier: ISC - * - * Copyright (c) 2011 Adrian Chadd, Xenion Pty Ltd - * Copyright (c) 2010 Atheros Communications, Inc. - * - * Permission to use, copy, modify, and/or distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar9001/ar9130_phy.c 326695 2017-12-08 15:57:29Z pfg $ - */ -#include "opt_ah.h" - -#include "ah.h" -#include "ah_internal.h" -#include "ah_devid.h" - -#include "ar5416/ar5416.h" -#include "ar5416/ar5416reg.h" -#include "ar5416/ar5416phy.h" -#include "ar9001/ar9130_phy.h" - -void -ar9130InitPLL(struct ath_hal *ah, const struct ieee80211_channel *chan) -{ - - uint32_t pll; - - /* - * XXX TODO: support half/quarter rates - */ - if (chan && IEEE80211_IS_CHAN_5GHZ(chan)) - pll = 0x1450; - else - pll = 0x1458; - - OS_REG_WRITE(ah, AR_RTC_PLL_CONTROL, pll); - OS_DELAY(RTC_PLL_SETTLE_DELAY); - OS_REG_WRITE(ah, AR_RTC_SLEEP_CLK, AR_RTC_SLEEP_DERIVED_CLK); -} diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9001/ar9130_phy.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9001/ar9130_phy.h deleted file mode 100644 index e49436f457..0000000000 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9001/ar9130_phy.h +++ /dev/null @@ -1,27 +0,0 @@ -/*- - * SPDX-License-Identifier: ISC - * - * Copyright (c) 2010 Adrian Chadd, Xenion Pty Ltd - * Copyright (c) 2008 Sam Leffler, Errno Consulting - * Copyright (c) 2008 Atheros Communications, Inc. - * - * Permission to use, copy, modify, and/or distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar9001/ar9130_phy.h 326695 2017-12-08 15:57:29Z pfg $ - */ -#ifndef __AR9130_PHY_H__ -#define __AR9130_PHY_H__ - -extern void ar9130InitPLL(struct ath_hal *ah, const struct ieee80211_channel *chan); - -#endif diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9001/ar9130reg.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9001/ar9130reg.h deleted file mode 100644 index 659716d1cd..0000000000 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9001/ar9130reg.h +++ /dev/null @@ -1,29 +0,0 @@ -/*- - * SPDX-License-Identifier: ISC - * - * Copyright (c) 2010 Adrian Chadd, Xenion Pty Ltd - * Copyright (c) 2008 Sam Leffler, Errno Consulting - * Copyright (c) 2008 Atheros Communications, Inc. - * - * Permission to use, copy, modify, and/or distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar9001/ar9130reg.h 326695 2017-12-08 15:57:29Z pfg $ - */ -#ifndef __AR9130REG_H__ -#define __AR9130REG_H__ - -/* AR9130 shifts these registers */ -#define AR_SREV_CHIP_HOWL 0x0600 -#define AR_SREV_CHIP_HOWL_ID 0x00000FFF - -#endif /* __AR9130REG_H__ */ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9001/ar9160.ini b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9001/ar9160.ini index babec40558..ac2515395a 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9001/ar9160.ini +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9001/ar9160.ini @@ -13,8 +13,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar9001/ar9160.ini 220293 2011-04-03 11:59:52Z adrian $ */ /* Auto Generated PCI Register Writes. Created: 05/22/08 */ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9001/ar9160_attach.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9001/ar9160_attach.c index ce623ea8b3..00fa6e3d52 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9001/ar9160_attach.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9001/ar9160_attach.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar9001/ar9160_attach.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9002phy.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9002phy.h index 57af23d896..fcab92f011 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9002phy.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9002phy.h @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2010-2011 Adrian Chadd, Xenion Pty Ltd. * @@ -23,8 +23,6 @@ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar9002/ar9002phy.h 326255 2017-11-27 14:52:40Z pfg $ */ #ifndef __ATH_AR9002PHY_H__ #define __ATH_AR9002PHY_H__ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9280.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9280.c index 06b71569c9..38b09b550a 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9280.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9280.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar9002/ar9280.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9280.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9280.h index 440fefd88c..50061faf63 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9280.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9280.h @@ -14,8 +14,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar9002/ar9280.h 326695 2017-12-08 15:57:29Z pfg $ */ #ifndef _ATH_AR9280_H_ #define _ATH_AR9280_H_ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9280_attach.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9280_attach.c index 83c7481f00..c9d1d572cb 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9280_attach.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9280_attach.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar9002/ar9280_attach.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9280_olc.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9280_olc.c index aa6fb10bf8..501ad3e845 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9280_olc.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9280_olc.c @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2011 Adrian Chadd, Xenion Pty Ltd. * @@ -23,8 +23,6 @@ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar9002/ar9280_olc.c 326255 2017-11-27 14:52:40Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9280_olc.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9280_olc.h index 812ff0f37d..b9e5eae05b 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9280_olc.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9280_olc.h @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2010-2011 Adrian Chadd, Xenion Pty Ltd. * @@ -23,8 +23,6 @@ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar9002/ar9280_olc.h 326255 2017-11-27 14:52:40Z pfg $ */ #ifndef __ATH_AR9280_OLC_H__ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9280v1.ini b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9280v1.ini index 5a4e1a2fa6..15ad2b868b 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9280v1.ini +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9280v1.ini @@ -13,8 +13,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar9002/ar9280v1.ini 217631 2011-01-20 09:03:40Z adrian $ */ /* Auto Generated PCI Register Writes. Created: 10/12/07 */ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9280v2.ini b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9280v2.ini index ade8a0125e..8378cf0e6c 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9280v2.ini +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9280v2.ini @@ -12,8 +12,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar9002/ar9280v2.ini 217751 2011-01-23 14:30:35Z adrian $ */ static const uint32_t ar9280Modes_v2[][6] = { diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9285.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9285.c index 0850d7c6a8..e8a27d650b 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9285.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9285.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar9002/ar9285.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9285.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9285.h index 12397cca1d..9ff80bd99c 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9285.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9285.h @@ -14,8 +14,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar9002/ar9285.h 326695 2017-12-08 15:57:29Z pfg $ */ #ifndef _ATH_AR9285_H_ #define _ATH_AR9285_H_ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9285.ini b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9285.ini index c141862316..28ba1927c5 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9285.ini +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9285.ini @@ -12,8 +12,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar9002/ar9285.ini 217631 2011-01-20 09:03:40Z adrian $ */ /* AR9285 Revsion 10 */ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9285_attach.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9285_attach.c index 4205b4a624..1a665d55ad 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9285_attach.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9285_attach.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar9002/ar9285_attach.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9285_btcoex.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9285_btcoex.c index ce6882b9e5..01a224cbbf 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9285_btcoex.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9285_btcoex.c @@ -16,8 +16,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar9002/ar9285_btcoex.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9285_cal.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9285_cal.c index 8679fa3341..20f328feac 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9285_cal.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9285_cal.c @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2008-2010 Atheros Communications Inc. * Copyright (c) 2011 Adrian Chadd, Xenion Pty Ltd. @@ -24,8 +24,6 @@ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar9002/ar9285_cal.c 326255 2017-11-27 14:52:40Z pfg $ */ #include "opt_ah.h" #include "ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9285_cal.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9285_cal.h index b05aca5e89..d744ac1125 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9285_cal.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9285_cal.h @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2008-2010 Atheros Communications Inc. * Copyright (c) 2011 Adrian Chadd, Xenion Pty Ltd. @@ -24,8 +24,6 @@ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar9002/ar9285_cal.h 326255 2017-11-27 14:52:40Z pfg $ */ #ifndef __AR9285_CAL_H__ #define __AR9285_CAL_H__ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9285_diversity.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9285_diversity.c index 51c81700f1..5e82966fb7 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9285_diversity.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9285_diversity.c @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2008-2010 Atheros Communications Inc. * Copyright (c) 2011 Adrian Chadd, Xenion Pty Ltd. @@ -24,8 +24,6 @@ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar9002/ar9285_diversity.c 326255 2017-11-27 14:52:40Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9285_diversity.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9285_diversity.h index 5c196aa51f..421838b2e4 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9285_diversity.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9285_diversity.h @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2008-2010 Atheros Communications Inc. * Copyright (c) 2011 Adrian Chadd, Xenion Pty Ltd. @@ -24,8 +24,6 @@ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar9002/ar9285_diversity.h 326255 2017-11-27 14:52:40Z pfg $ */ #ifndef __AR9285_DIVERSITY_H__ #define __AR9285_DIVERSITY_H__ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9285_phy.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9285_phy.c index 8341e95f0b..dab8488c39 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9285_phy.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9285_phy.c @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2008-2010 Atheros Communications Inc. * Copyright (c) 2010-2011 Adrian Chadd, Xenion Pty Ltd. @@ -24,8 +24,6 @@ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar9002/ar9285_phy.c 326255 2017-11-27 14:52:40Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9285_phy.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9285_phy.h index afd5ee8eba..bbf236795f 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9285_phy.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9285_phy.h @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2008-2010 Atheros Communications Inc. * Copyright (c) 2010-2011 Adrian Chadd, Xenion Pty Ltd. @@ -24,8 +24,6 @@ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar9002/ar9285_phy.h 326255 2017-11-27 14:52:40Z pfg $ */ #ifndef __AR9285_PHY_H__ #define __AR9285_PHY_H__ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9285_reset.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9285_reset.c index 708c133834..bb6e0a20e7 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9285_reset.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9285_reset.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar9002/ar9285_reset.c 326695 2017-12-08 15:57:29Z pfg $ */ /* @@ -42,7 +40,7 @@ #include "ar9002/ar9285an.h" #include "ar9002/ar9285_diversity.h" -/* Eeprom versioning macros. Returns true if the version is equal or newer than the ver specified */ +/* Eeprom versioning macros. Returns true if the version is equal or newer than the ver specified */ #define EEP_MINOR(_ah) \ (AH_PRIVATE(_ah)->ah_eeversion & AR5416_EEP_VER_MINOR_MASK) #define IS_EEP_MINOR_V2(_ah) (EEP_MINOR(_ah) >= AR5416_EEP_MINOR_VER_2) @@ -54,16 +52,16 @@ #define RTC_PLL_SETTLE_DELAY 1000 /* 1 ms */ static HAL_BOOL ar9285SetPowerPerRateTable(struct ath_hal *ah, - struct ar5416eeprom_4k *pEepData, + struct ar5416eeprom_4k *pEepData, const struct ieee80211_channel *chan, int16_t *ratesArray, uint16_t cfgCtl, uint16_t AntennaReduction, - uint16_t twiceMaxRegulatoryPower, + uint16_t twiceMaxRegulatoryPower, uint16_t powerLimit); static HAL_BOOL ar9285SetPowerCalTable(struct ath_hal *ah, struct ar5416eeprom_4k *pEepData, const struct ieee80211_channel *chan, int16_t *pTxPowerIndexOffset); -static void ar9285GetGainBoundariesAndPdadcs(struct ath_hal *ah, +static void ar9285GetGainBoundariesAndPdadcs(struct ath_hal *ah, const struct ieee80211_channel *chan, CAL_DATA_PER_FREQ_4K *pRawDataSet, uint8_t * bChans, uint16_t availPiers, uint16_t tPdGainOverlap, int16_t *pMinCalPower, @@ -81,7 +79,7 @@ ar9285SetTransmitPower(struct ath_hal *ah, struct ath_hal_5212 *ahp = AH5212(ah); int16_t txPowerIndexOffset = 0; int i; - + uint16_t cfgCtl; uint16_t powerLimit; uint16_t twiceAntennaReduction; @@ -99,11 +97,11 @@ ar9285SetTransmitPower(struct ath_hal *ah, cfgCtl = ath_hal_getctl(ah, chan); powerLimit = chan->ic_maxregpower * 2; twiceAntennaReduction = chan->ic_maxantgain; - twiceMaxRegulatoryPower = AH_MIN(MAX_RATE_POWER, AH_PRIVATE(ah)->ah_powerLimit); + twiceMaxRegulatoryPower = AH_MIN(MAX_RATE_POWER, AH_PRIVATE(ah)->ah_powerLimit); pModal = &pEepData->modalHeader; HALDEBUG(ah, HAL_DEBUG_RESET, "%s Channel=%u CfgCtl=%u\n", - __func__,chan->ic_freq, cfgCtl ); - + __func__,chan->ic_freq, cfgCtl ); + if (IS_EEP_MINOR_V2(ah)) { AH5416(ah)->ah_ht40PowerIncForPdadc = pModal->ht40PowerIncForPdadc; } @@ -122,7 +120,7 @@ ar9285SetTransmitPower(struct ath_hal *ah, __func__); return AH_FALSE; } - + maxPower = AH_MAX(AH5416(ah)->ah_ratesArray[rate6mb], AH5416(ah)->ah_ratesArray[rateHt20_0]); maxPower = AH_MAX(maxPower, AH5416(ah)->ah_ratesArray[rate1l]); @@ -131,7 +129,7 @@ ar9285SetTransmitPower(struct ath_hal *ah, maxPower = AH_MAX(maxPower, AH5416(ah)->ah_ratesArray[rateHt40_0]); } - ahp->ah_tx6PowerInHalfDbm = maxPower; + ahp->ah_tx6PowerInHalfDbm = maxPower; AH_PRIVATE(ah)->ah_maxPowerLevel = maxPower; ahp->ah_txPowerIndexOffset = txPowerIndexOffset; @@ -364,8 +362,8 @@ ar9285SetBoardValues(struct ath_hal *ah, const struct ieee80211_channel *chan) if (AR_SREV_9271(ah) || AR_SREV_KITE(ah)) { uint8_t bb_desired_scale = (pModal->bb_scale_smrt_antenna & EEP_4K_BB_DESIRED_SCALE_MASK); if ((eep->baseEepHeader.txGainType == 0) && (bb_desired_scale != 0)) { - uint32_t pwrctrl, mask, clr; ath_hal_printf(ah, "[ath]: adjusting cck tx gain factor\n"); + uint32_t pwrctrl, mask, clr; mask = (1<<0) | (1<<5) | (1<<10) | (1<<15) | (1<<20) | (1<<25); pwrctrl = mask * bb_desired_scale; @@ -398,7 +396,7 @@ static HAL_BOOL ar9285SetPowerPerRateTable(struct ath_hal *ah, struct ar5416eeprom_4k *pEepData, const struct ieee80211_channel *chan, int16_t *ratesArray, uint16_t cfgCtl, - uint16_t AntennaReduction, + uint16_t AntennaReduction, uint16_t twiceMaxRegulatoryPower, uint16_t powerLimit) { @@ -435,7 +433,7 @@ ar9285SetPowerPerRateTable(struct ath_hal *ah, struct ar5416eeprom_4k *pEepData, /* XXX setup for 5212 use (really used?) */ ath_hal_eepromSet(ah, AR_EEP_ANTGAINMAX_2, twiceLargestAntenna); - /* + /* * scaledPower is the minimum of the user input power level and * the regulatory allowed power level */ @@ -491,7 +489,7 @@ ar9285SetPowerPerRateTable(struct ath_hal *ah, struct ar5416eeprom_4k *pEepData, /* compare test group from regulatory channel list with test mode from pCtlMode list */ if ((((cfgCtl & ~CTL_MODE_M) | (pCtlMode[ctlMode] & CTL_MODE_M)) == pEepData->ctlIndex[i]) || - (((cfgCtl & ~CTL_MODE_M) | (pCtlMode[ctlMode] & CTL_MODE_M)) == + (((cfgCtl & ~CTL_MODE_M) | (pCtlMode[ctlMode] & CTL_MODE_M)) == ((pEepData->ctlIndex[i] & CTL_MODE_M) | SD_NO_CTL))) { rep = &(pEepData->ctlData[i]); twiceMinEdgePower = ar5416GetMaxEdgePower(freq, @@ -578,12 +576,12 @@ ar9285SetPowerCalTable(struct ath_hal *ah, struct ar5416eeprom_4k *pEepData, uint32_t regChainOffset; OS_MEMZERO(xpdGainValues, sizeof(xpdGainValues)); - + xpdMask = pEepData->modalHeader.xpdGain; if (IS_EEP_MINOR_V2(ah)) { pdGainOverlap_t2 = pEepData->modalHeader.pdGainOverlap; - } else { + } else { pdGainOverlap_t2 = (uint16_t)(MS(OS_REG_READ(ah, AR_PHY_TPCRG5), AR_PHY_TPCRG5_PD_GAIN_OVERLAP)); } @@ -602,7 +600,7 @@ ar9285SetPowerCalTable(struct ath_hal *ah, struct ar5416eeprom_4k *pEepData, numXpdGain++; } } - + /* Write the detector gain biases and their number */ ar5416WriteDetectorGainBiases(ah, numXpdGain, xpdGainValues); @@ -623,7 +621,7 @@ ar9285SetPowerCalTable(struct ath_hal *ah, struct ar5416eeprom_4k *pEepData, * negative or greater than 0. Need to offset the power * values by the amount of minPower for griffin */ - ar5416SetGainBoundariesClosedLoop(ah, i, pdGainOverlap_t2, gainBoundaries); + ar5416SetGainBoundariesClosedLoop(ah, i, pdGainOverlap_t2, gainBoundaries); } /* Write the power values into the baseband power table */ @@ -636,7 +634,7 @@ ar9285SetPowerCalTable(struct ath_hal *ah, struct ar5416eeprom_4k *pEepData, } static void -ar9285GetGainBoundariesAndPdadcs(struct ath_hal *ah, +ar9285GetGainBoundariesAndPdadcs(struct ath_hal *ah, const struct ieee80211_channel *chan, CAL_DATA_PER_FREQ_4K *pRawDataSet, uint8_t * bChans, uint16_t availPiers, diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9285an.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9285an.h index dc7297d741..1e564d167f 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9285an.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9285an.h @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar9002/ar9285an.h 326695 2017-12-08 15:57:29Z pfg $ */ #ifndef __AR9285_AN_H__ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9285phy.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9285phy.h index aa9521e7ed..452019cec7 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9285phy.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9285phy.h @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2008-2010 Atheros Communications Inc. * Copyright (c) 2010-2011 Adrian Chadd, Xenion Pty Ltd. @@ -24,8 +24,6 @@ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar9002/ar9285phy.h 326255 2017-11-27 14:52:40Z pfg $ */ #ifndef __ATH_AR9285PHY_H__ #define __ATH_AR9285PHY_H__ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9285v2.ini b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9285v2.ini index 5314155c86..e97048fee0 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9285v2.ini +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9285v2.ini @@ -12,8 +12,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar9002/ar9285v2.ini 217811 2011-01-25 05:36:29Z adrian $ */ static const u_int32_t ar9285Modes_v2[][6] = { diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9287.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9287.c index 05c7fafb98..578e4f7149 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9287.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9287.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar9002/ar9287.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9287.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9287.h index caa0ca6633..400fa1ae56 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9287.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9287.h @@ -14,8 +14,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar9002/ar9287.h 326695 2017-12-08 15:57:29Z pfg $ */ #ifndef _ATH_AR9287_H_ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9287.ini b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9287.ini index e123fb2137..b626de430a 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9287.ini +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9287.ini @@ -12,8 +12,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar9002/ar9287.ini 222301 2011-05-26 09:15:33Z adrian $ */ static const uint32_t ar9287Modes_9287_1_1[][6] = { diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9287_attach.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9287_attach.c index 4c26cd4dce..694550e7f7 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9287_attach.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9287_attach.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar9002/ar9287_attach.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9287_cal.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9287_cal.c index 01232419dc..2e8ccddfa4 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9287_cal.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9287_cal.c @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2008-2010 Atheros Communications Inc. * Copyright (c) 2011 Adrian Chadd, Xenion Pty Ltd. @@ -24,8 +24,6 @@ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar9002/ar9287_cal.c 326255 2017-11-27 14:52:40Z pfg $ */ #include "opt_ah.h" #include "ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9287_cal.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9287_cal.h index 9549bcaa39..54135b79ea 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9287_cal.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9287_cal.h @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2008-2010 Atheros Communications Inc. * @@ -23,8 +23,6 @@ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar9002/ar9287_cal.h 326255 2017-11-27 14:52:40Z pfg $ */ #ifndef __AR9287_CAL_H__ #define __AR9287_CAL_H__ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9287_olc.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9287_olc.c index 62e837d712..4da008577f 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9287_olc.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9287_olc.c @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2011 Adrian Chadd, Xenion Pty Ltd. * @@ -23,8 +23,6 @@ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar9002/ar9287_olc.c 326255 2017-11-27 14:52:40Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9287_olc.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9287_olc.h index f45398c089..961c568e98 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9287_olc.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9287_olc.h @@ -14,8 +14,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar9002/ar9287_olc.h 326695 2017-12-08 15:57:29Z pfg $ */ #ifndef __AR9287_OLC_H__ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9287_reset.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9287_reset.c index 525904b8b3..00eba53ca7 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9287_reset.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9287_reset.c @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar9002/ar9287_reset.c 326695 2017-12-08 15:57:29Z pfg $ */ #include "opt_ah.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9287_reset.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9287_reset.h index 8c4c78715e..fe11cff721 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9287_reset.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9287_reset.h @@ -14,8 +14,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar9002/ar9287_reset.h 326695 2017-12-08 15:57:29Z pfg $ */ #ifndef __AR9287_RESET_H__ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9287an.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9287an.h index c6d4941578..83b860aff2 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9287an.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9287an.h @@ -14,8 +14,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar9002/ar9287an.h 326695 2017-12-08 15:57:29Z pfg $ */ #ifndef __AR9287AN_H__ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9287phy.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9287phy.h index ac1fe10f7a..395efa9755 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9287phy.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9002/ar9287phy.h @@ -14,8 +14,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar9002/ar9287phy.h 326695 2017-12-08 15:57:29Z pfg $ */ #ifndef __AR9287PHY_H__ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9003/ar9300_btcoex.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9003/ar9300_btcoex.h index a8ccf2f375..1462377609 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9003/ar9300_btcoex.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9003/ar9300_btcoex.h @@ -14,8 +14,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar9003/ar9300_btcoex.h 326695 2017-12-08 15:57:29Z pfg $ */ #ifndef __ATH_AR9300_BTCOEX_H__ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9003/ar9300_devid.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9003/ar9300_devid.h index 7397f12685..e840521e05 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9003/ar9300_devid.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_hal/ar9003/ar9300_devid.h @@ -34,8 +34,6 @@ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGES. * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_hal/ar9003/ar9300_devid.h 326255 2017-11-27 14:52:40Z pfg $ - * */ #ifndef __AR9300_DEVID_H__ #define __AR9300_DEVID_H__ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_rate/amrr/amrr.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_rate/amrr/amrr.c index 0c1c16bca2..81bd03484d 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_rate/amrr/amrr.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_rate/amrr/amrr.c @@ -39,8 +39,6 @@ */ #include -__FBSDID("$FreeBSD: releng/12.0/sys/dev/ath/ath_rate/amrr/amrr.c 326255 2017-11-27 14:52:40Z pfg $"); - /* * AMRR rate control. See: * http://www-sop.inria.fr/rapports/sophia/RR-5208.html diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_rate/amrr/amrr.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_rate/amrr/amrr.h index ab59d8bc22..908a74722d 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_rate/amrr/amrr.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_rate/amrr/amrr.h @@ -35,8 +35,6 @@ * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGES. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_rate/amrr/amrr.h 326255 2017-11-27 14:52:40Z pfg $ */ #ifndef _DEV_ATH_RATE_AMRR_H diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_rate/onoe/onoe.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_rate/onoe/onoe.c index c39419e85a..8d86f13ef7 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_rate/onoe/onoe.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_rate/onoe/onoe.c @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2002-2007 Sam Leffler, Errno Consulting * All rights reserved. @@ -30,8 +30,6 @@ */ #include -__FBSDID("$FreeBSD: releng/12.0/sys/dev/ath/ath_rate/onoe/onoe.c 326255 2017-11-27 14:52:40Z pfg $"); - /* * Atsushi Onoe's rate control algorithm. */ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_rate/onoe/onoe.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_rate/onoe/onoe.h index 77a427574a..3296702be7 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_rate/onoe/onoe.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_rate/onoe/onoe.h @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2002-2007 Sam Leffler, Errno Consulting * All rights reserved. @@ -27,8 +27,6 @@ * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGES. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_rate/onoe/onoe.h 326255 2017-11-27 14:52:40Z pfg $ */ /* diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_rate/sample/sample.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_rate/sample/sample.c index d3cef7cb71..8e70699f70 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_rate/sample/sample.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_rate/sample/sample.c @@ -38,8 +38,6 @@ */ #include -__FBSDID("$FreeBSD: releng/12.0/sys/dev/ath/ath_rate/sample/sample.c 326255 2017-11-27 14:52:40Z pfg $"); - /* * John Bicket's SampleRate control algorithm. */ @@ -1435,11 +1433,13 @@ ath_rate_fetch_node_stats(struct ath_softc *sc, struct ath_node *an, const HAL_RATE_TABLE *rt = sc->sc_currates; struct ath_rateioctl_tlv av; struct ath_rateioctl_rt *tv; - int y; + int error, y; int o = 0; ATH_NODE_LOCK_ASSERT(an); + error = 0; + /* * Ensure there's enough space for the statistics. */ @@ -1480,9 +1480,13 @@ ath_rate_fetch_node_stats(struct ath_softc *sc, struct ath_node *an, */ av.tlv_id = ATH_RATE_TLV_RATETABLE; av.tlv_len = sizeof(struct ath_rateioctl_rt); - copyout(&av, rs->buf + o, sizeof(struct ath_rateioctl_tlv)); + error = copyout(&av, rs->buf + o, sizeof(struct ath_rateioctl_tlv)); + if (error != 0) + goto out; o += sizeof(struct ath_rateioctl_tlv); - copyout(tv, rs->buf + o, sizeof(struct ath_rateioctl_rt)); + error = copyout(tv, rs->buf + o, sizeof(struct ath_rateioctl_rt)); + if (error != 0) + goto out; o += sizeof(struct ath_rateioctl_rt); /* @@ -1490,18 +1494,22 @@ ath_rate_fetch_node_stats(struct ath_softc *sc, struct ath_node *an, */ av.tlv_id = ATH_RATE_TLV_SAMPLENODE; av.tlv_len = sizeof(struct sample_node); - copyout(&av, rs->buf + o, sizeof(struct ath_rateioctl_tlv)); + error = copyout(&av, rs->buf + o, sizeof(struct ath_rateioctl_tlv)); + if (error != 0) + goto out; o += sizeof(struct ath_rateioctl_tlv); /* * Copy the statistics over to the provided buffer. */ - copyout(sn, rs->buf + o, sizeof(struct sample_node)); + error = copyout(sn, rs->buf + o, sizeof(struct sample_node)); + if (error != 0) + goto out; o += sizeof(struct sample_node); +out: free(tv, M_TEMP); - - return (0); + return (error); } static void diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_rate/sample/sample.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_rate/sample/sample.h index 6bfb1c223a..aa00b21e60 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_rate/sample/sample.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_rate/sample/sample.h @@ -34,8 +34,6 @@ * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGES. - * - * $FreeBSD: releng/12.0/sys/dev/ath/ath_rate/sample/sample.h 326255 2017-11-27 14:52:40Z pfg $ */ /* diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_rate/sample/tx_schedules.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_rate/sample/tx_schedules.h index 92331f038a..cc67dd842f 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_rate/sample/tx_schedules.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/ath_rate/sample/tx_schedules.h @@ -40,8 +40,6 @@ #define __ATH_RATE_SAMPLE_TXSCHEDULES_H__ #include -__FBSDID("$FreeBSD: releng/12.0/sys/dev/ath/ath_rate/sample/tx_schedules.h 326255 2017-11-27 14:52:40Z pfg $"); - #define A(_r) \ (((_r) == 6) ? 0 : (((_r) == 9) ? 1 : (((_r) == 12) ? 2 : \ (((_r) == 18) ? 3 : (((_r) == 24) ? 4 : (((_r) == 36) ? 5 : \ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath.c index da04d82434..d50c677b24 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath.c @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2002-2009 Sam Leffler, Errno Consulting * All rights reserved. @@ -30,8 +30,6 @@ */ #include -__FBSDID("$FreeBSD: releng/12.0/sys/dev/ath/if_ath.c 336016 2018-07-05 21:38:54Z cem $"); - /* * Driver for the Atheros Wireless LAN controller. * @@ -165,6 +163,7 @@ static void ath_parent(struct ieee80211com *); static void ath_fatal_proc(void *, int); static void ath_bmiss_vap(struct ieee80211vap *); static void ath_bmiss_proc(void *, int); +static void ath_tsfoor_proc(void *, int); static void ath_key_update_begin(struct ieee80211vap *); static void ath_key_update_end(struct ieee80211vap *); static void ath_update_mcast_hw(struct ath_softc *); @@ -763,6 +762,7 @@ ath_attach(u_int16_t devid, struct ath_softc *sc) TASK_INIT(&sc->sc_rxtask, 0, sc->sc_rx.recv_tasklet, sc); TASK_INIT(&sc->sc_bmisstask, 0, ath_bmiss_proc, sc); + TASK_INIT(&sc->sc_tsfoortask, 0, ath_tsfoor_proc, sc); TASK_INIT(&sc->sc_bstucktask,0, ath_bstuck_proc, sc); TASK_INIT(&sc->sc_resettask,0, ath_reset_proc, sc); TASK_INIT(&sc->sc_txqtask, 0, ath_txq_sched_tasklet, sc); @@ -1083,9 +1083,16 @@ ath_attach(u_int16_t devid, struct ath_softc *sc) /* * Default the maximum queue to 1/4'th the TX buffers, or - * 64, whichever is smaller. + * 128, whichever is smaller. + * + * Set it to 128 instead of the previous default (64) because + * at 64, two full A-MPDU subframes of 32 frames each is + * enough to treat this node queue as full and all subsequent + * traffic is dropped. Setting it to 128 means there'll + * hopefully be another 64 frames in the software queue + * to begin making A-MPDU frames out of. */ - sc->sc_txq_node_maxdepth = MIN(64, ath_txbuf / 4); + sc->sc_txq_node_maxdepth = MIN(128, ath_txbuf / 4); /* Enable CABQ by default */ sc->sc_cabq_enable = 1; @@ -2341,13 +2348,18 @@ ath_intr(void *arg) sc->sc_stats.ast_rxorn++; } if (status & HAL_INT_TSFOOR) { - /* out of range beacon - wake the chip up, - * but don't modify self-gen frame config */ - device_printf(sc->sc_dev, "%s: TSFOOR\n", __func__); - sc->sc_syncbeacon = 1; + /* + * out of range beacon - wake the chip up, + * but don't modify self-gen frame config. + * Do a full reset to clear any potential stuck + * PHY/MAC that generated this condition. + */ + sc->sc_stats.ast_tsfoor++; ATH_LOCK(sc); ath_power_setpower(sc, HAL_PM_AWAKE, 0); ATH_UNLOCK(sc); + taskqueue_enqueue(sc->sc_tq, &sc->sc_tsfoortask); + device_printf(sc->sc_dev, "%s: TSFOOR\n", __func__); } if (status & HAL_INT_MCI) { ath_btcoex_mci_intr(sc); @@ -2451,13 +2463,15 @@ ath_bmiss_vap(struct ieee80211vap *vap) ath_power_setpower(sc, HAL_PM_AWAKE, 0); ath_power_restore_power_state(sc); ATH_UNLOCK(sc); + DPRINTF(sc, ATH_DEBUG_BEACON, "%s: forced awake; force syncbeacon=1\n", __func__); - - /* - * Attempt to force a beacon resync. - */ - sc->sc_syncbeacon = 1; + if ((vap->iv_flags_ext & IEEE80211_FEXT_SWBMISS) == 0) { + /* + * Attempt to force a beacon resync. + */ + sc->sc_syncbeacon = 1; + } ATH_VAP(vap)->av_bmiss(vap); } @@ -2491,7 +2505,7 @@ ath_bmiss_proc(void *arg, int pending) ath_beacon_miss(sc); /* - * Do a reset upon any becaon miss event. + * Do a reset upon any beacon miss event. * * It may be a non-recognised RX clear hang which needs a reset * to clear. @@ -2513,6 +2527,39 @@ ath_bmiss_proc(void *arg, int pending) ATH_UNLOCK(sc); } +/* + * Handle a TSF out of range interrupt in STA mode. + * + * This may be due to a partially deaf looking radio, so + * do a full reset just in case it is indeed deaf and + * resync the beacon. + */ +static void +ath_tsfoor_proc(void *arg, int pending) +{ + struct ath_softc *sc = arg; + + DPRINTF(sc, ATH_DEBUG_ANY, "%s: pending %u\n", __func__, pending); + + ATH_LOCK(sc); + ath_power_set_power_state(sc, HAL_PM_AWAKE); + ATH_UNLOCK(sc); + + /* + * Do a full reset after any TSFOOR. It's possible that + * we've gone deaf or partially deaf (eg due to calibration + * failures) and this should clean things up a bit. + */ + ath_reset(sc, ATH_RESET_NOLOSS, HAL_RESET_FORCE_COLD); + + /* Force a beacon resync, in case they've drifted */ + sc->sc_syncbeacon = 1; + + ATH_LOCK(sc); + ath_power_restore_power_state(sc); + ATH_UNLOCK(sc); +} + /* * Handle TKIP MIC setup to deal hardware that doesn't do MIC * calcs together with WME. If necessary disable the crypto @@ -3591,6 +3638,25 @@ ath_update_promisc(struct ieee80211com *ic) DPRINTF(sc, ATH_DEBUG_MODE, "%s: RX filter 0x%x\n", __func__, rfilt); } +static u_int +ath_hash_maddr(void *arg, struct sockaddr_dl *sdl, u_int cnt) +{ + uint32_t val, *mfilt = arg; + char *dl; + uint8_t pos; + + /* calculate XOR of eight 6bit values */ + dl = LLADDR(sdl); + val = le32dec(dl + 0); + pos = (val >> 18) ^ (val >> 12) ^ (val >> 6) ^ val; + val = le32dec(dl + 3); + pos ^= (val >> 18) ^ (val >> 12) ^ (val >> 6) ^ val; + pos &= 0x3f; + mfilt[pos / 32] |= (1 << (pos % 32)); + + return (1); +} + /* * Driver-internal mcast update call. * @@ -3605,35 +3671,13 @@ ath_update_mcast_hw(struct ath_softc *sc) /* calculate and install multicast filter */ if (ic->ic_allmulti == 0) { struct ieee80211vap *vap; - struct ifnet *ifp; - struct ifmultiaddr *ifma; /* * Merge multicast addresses to form the hardware filter. */ mfilt[0] = mfilt[1] = 0; - TAILQ_FOREACH(vap, &ic->ic_vaps, iv_next) { - ifp = vap->iv_ifp; - if_maddr_rlock(ifp); - TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) { - caddr_t dl; - uint32_t val; - uint8_t pos; - - /* calculate XOR of eight 6bit values */ - dl = LLADDR((struct sockaddr_dl *) - ifma->ifma_addr); - val = le32dec(dl + 0); - pos = (val >> 18) ^ (val >> 12) ^ (val >> 6) ^ - val; - val = le32dec(dl + 3); - pos ^= (val >> 18) ^ (val >> 12) ^ (val >> 6) ^ - val; - pos &= 0x3f; - mfilt[pos / 32] |= (1 << (pos % 32)); - } - if_maddr_runlock(ifp); - } + TAILQ_FOREACH(vap, &ic->ic_vaps, iv_next) + if_foreach_llmaddr(vap->iv_ifp, ath_hash_maddr, &mfilt); } else mfilt[0] = mfilt[1] = ~0; @@ -4186,6 +4230,11 @@ ath_tx_update_stats(struct ath_softc *sc, struct ath_tx_status *ts, if (ts->ts_status == 0) { u_int8_t txant = ts->ts_antenna; + /* + * Handle weird/corrupted tx antenna field + */ + if (txant >= ATH_IOCTL_STATS_NUM_TX_ANTENNA) + txant = 0; sc->sc_stats.ast_ant_tx[txant]++; sc->sc_ant_tx[txant]++; if (ts->ts_finaltsi != 0) @@ -6027,19 +6076,25 @@ ath_newstate(struct ieee80211vap *vap, enum ieee80211_state nstate, int arg) * In that case, we may not receive an actual * beacon to update the beacon timer and thus we * won't get notified of the missing beacons. + * + * Also, don't do any of this if we're not running + * with hardware beacon support, as that'll interfere + * with an AP VAP. */ if (ostate != IEEE80211_S_RUN && ostate != IEEE80211_S_SLEEP) { - DPRINTF(sc, ATH_DEBUG_BEACON, - "%s: STA; syncbeacon=1\n", __func__); - sc->sc_syncbeacon = 1; + + if ((vap->iv_flags_ext & IEEE80211_FEXT_SWBMISS) == 0) { + DPRINTF(sc, ATH_DEBUG_BEACON, + "%s: STA; syncbeacon=1\n", __func__); + sc->sc_syncbeacon = 1; + if (csa_run_transition) + ath_beacon_config(sc, vap); + } /* Quiet time handling - ensure we resync */ memset(&avp->quiet_ie, 0, sizeof(avp->quiet_ie)); - if (csa_run_transition) - ath_beacon_config(sc, vap); - /* * PR: kern/175227 * @@ -6052,7 +6107,9 @@ ath_newstate(struct ieee80211vap *vap, enum ieee80211_state nstate, int arg) * timer fires (too often), leading to a STA * disassociation. */ - sc->sc_beacons = 1; + if ((vap->iv_flags_ext & IEEE80211_FEXT_SWBMISS) == 0) { + sc->sc_beacons = 1; + } } break; case IEEE80211_M_MONITOR: @@ -6574,7 +6631,7 @@ ath_parent(struct ieee80211com *ic) } ATH_UNLOCK(sc); - if (error == 0) { + if (error == 0) { #ifdef ATH_TX99_DIAG if (sc->sc_tx99 != NULL) sc->sc_tx99->start(sc->sc_tx99); diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_ahb.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_ahb.c deleted file mode 100644 index 4dc249cd2b..0000000000 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_ahb.c +++ /dev/null @@ -1,352 +0,0 @@ -/*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD - * - * Copyright (c) 2002-2008 Sam Leffler, Errno Consulting - * Copyright (c) 2010-2011 Adrian Chadd, Xenion Pty Ltd - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer, - * without modification. - * 2. Redistributions in binary form must reproduce at minimum a disclaimer - * similar to the "NO WARRANTY" disclaimer below ("Disclaimer") and any - * redistribution must be conditioned upon including a substantially - * similar Disclaimer requirement for further binary redistribution. - * - * NO WARRANTY - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF NONINFRINGEMENT, MERCHANTIBILITY - * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL - * THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, - * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF - * THE POSSIBILITY OF SUCH DAMAGES. - */ - -#include -__FBSDID("$FreeBSD: releng/12.0/sys/dev/ath/if_ath_ahb.c 326255 2017-11-27 14:52:40Z pfg $"); - -/* - * AHB bus front-end for the Atheros Wireless LAN controller driver. - */ - -#include "opt_ath.h" - -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -#include - -#include -#include -#include -#include - -#include - -#include - -#include -#include -#include - -/* For EEPROM firmware */ -#ifdef ATH_EEPROM_FIRMWARE -#include -#include -#endif /* ATH_EEPROM_FIRMWARE */ - -/* - * bus glue. - */ - -/* number of 16 bit words */ -#define ATH_EEPROM_DATA_SIZE 2048 - -struct ath_ahb_softc { - struct ath_softc sc_sc; - struct resource *sc_sr; /* memory resource */ - struct resource *sc_irq; /* irq resource */ - void *sc_ih; /* interrupt handler */ -}; - -#define VENDOR_ATHEROS 0x168c -#define AR9130_DEVID 0x000b - -static int -ath_ahb_probe(device_t dev) -{ - int vendor_id, device_id; - const char* devname; - - /* - * Check if a device/vendor ID is provided in hints. - */ - if (resource_int_value(device_get_name(dev), device_get_unit(dev), - "vendor_id", &vendor_id) != 0) { - vendor_id = VENDOR_ATHEROS; - } - - if (resource_int_value(device_get_name(dev), device_get_unit(dev), - "device_id", &device_id) != 0) { - device_id = AR9130_DEVID; - } - - device_printf(dev, "Vendor=0x%04x, Device=0x%04x\n", - vendor_id & 0xffff, - device_id & 0xffff); - - /* Attempt to probe */ - devname = ath_hal_probe(vendor_id, device_id); - - if (devname != NULL) { - device_set_desc(dev, devname); - return BUS_PROBE_DEFAULT; - } - return ENXIO; -} - -static void -ath_ahb_intr(void *arg) -{ - /* XXX TODO: check if its ours! */ - ar71xx_device_flush_ddr(AR71XX_CPU_DDR_FLUSH_WMAC); - ath_intr(arg); -} - -static int -ath_ahb_attach(device_t dev) -{ - struct ath_ahb_softc *psc = device_get_softc(dev); - struct ath_softc *sc = &psc->sc_sc; - int error = ENXIO; - int rid; - int device_id, vendor_id; -#ifdef ATH_EEPROM_FIRMWARE - const struct firmware *fw = NULL; - const char *buf; -#endif - - sc->sc_dev = dev; - - rid = 0; - psc->sc_sr = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &rid, RF_ACTIVE); - if (psc->sc_sr == NULL) { - device_printf(dev, "cannot map register space\n"); - goto bad; - } - - sc->sc_st = (HAL_BUS_TAG) rman_get_bustag(psc->sc_sr); - sc->sc_sh = (HAL_BUS_HANDLE) rman_get_bushandle(psc->sc_sr); - /* - * Mark device invalid so any interrupts (shared or otherwise) - * that arrive before the HAL is setup are discarded. - */ - sc->sc_invalid = 1; - -#ifdef ATH_EEPROM_FIRMWARE - /* - * If there's an EEPROM firmware image, load that in. - */ - if (resource_string_value(device_get_name(dev), device_get_unit(dev), - "eeprom_firmware", &buf) == 0) { - device_printf(dev, "%s: looking up firmware @ '%s'\n", - __func__, buf); - - fw = firmware_get(buf); - if (fw == NULL) { - device_printf(dev, "%s: couldn't find firmware\n", - __func__); - goto bad1; - } - - device_printf(dev, "%s: EEPROM firmware @ %p\n", - __func__, fw->data); - sc->sc_eepromdata = - malloc(fw->datasize, M_TEMP, M_WAITOK | M_ZERO); - if (! sc->sc_eepromdata) { - device_printf(dev, "%s: can't malloc eepromdata\n", - __func__); - goto bad1; - } - memcpy(sc->sc_eepromdata, fw->data, fw->datasize); - firmware_put(fw, 0); - } -#endif /* ATH_EEPROM_FIRMWARE */ - - /* - * Arrange interrupt line. - */ - rid = 0; - psc->sc_irq = bus_alloc_resource_any(dev, SYS_RES_IRQ, &rid, RF_SHAREABLE|RF_ACTIVE); - if (psc->sc_irq == NULL) { - device_printf(dev, "could not map interrupt\n"); - goto bad1; - } - if (bus_setup_intr(dev, psc->sc_irq, - INTR_TYPE_NET | INTR_MPSAFE, - NULL, ath_ahb_intr, sc, &psc->sc_ih)) { - device_printf(dev, "could not establish interrupt\n"); - goto bad2; - } - - /* - * Setup DMA descriptor area. - */ - if (bus_dma_tag_create(bus_get_dma_tag(dev), /* parent */ - 1, 0, /* alignment, bounds */ - BUS_SPACE_MAXADDR_32BIT, /* lowaddr */ - BUS_SPACE_MAXADDR, /* highaddr */ - NULL, NULL, /* filter, filterarg */ - 0x3ffff, /* maxsize XXX */ - ATH_MAX_SCATTER, /* nsegments */ - 0x3ffff, /* maxsegsize XXX */ - BUS_DMA_ALLOCNOW, /* flags */ - NULL, /* lockfunc */ - NULL, /* lockarg */ - &sc->sc_dmat)) { - device_printf(dev, "cannot allocate DMA tag\n"); - goto bad3; - } - - /* - * Check if a device/vendor ID is provided in hints. - */ - if (resource_int_value(device_get_name(dev), device_get_unit(dev), - "vendor_id", &vendor_id) != 0) { - vendor_id = VENDOR_ATHEROS; - } - - if (resource_int_value(device_get_name(dev), device_get_unit(dev), - "device_id", &device_id) != 0) { - device_id = AR9130_DEVID; - } - - ATH_LOCK_INIT(sc); - ATH_PCU_LOCK_INIT(sc); - ATH_RX_LOCK_INIT(sc); - ATH_TX_LOCK_INIT(sc); - ATH_TXSTATUS_LOCK_INIT(sc); - - error = ath_attach(device_id, sc); - if (error == 0) /* success */ - return 0; - - ATH_TXSTATUS_LOCK_DESTROY(sc); - ATH_RX_LOCK_DESTROY(sc); - ATH_TX_LOCK_DESTROY(sc); - ATH_PCU_LOCK_DESTROY(sc); - ATH_LOCK_DESTROY(sc); - bus_dma_tag_destroy(sc->sc_dmat); -bad3: - bus_teardown_intr(dev, psc->sc_irq, psc->sc_ih); -bad2: - bus_release_resource(dev, SYS_RES_IRQ, 0, psc->sc_irq); -bad1: - bus_release_resource(dev, SYS_RES_MEMORY, 0, psc->sc_sr); -bad: - /* XXX?! */ - if (sc->sc_eepromdata) - free(sc->sc_eepromdata, M_TEMP); - return (error); -} - -static int -ath_ahb_detach(device_t dev) -{ - struct ath_ahb_softc *psc = device_get_softc(dev); - struct ath_softc *sc = &psc->sc_sc; - - /* check if device was removed */ - sc->sc_invalid = !bus_child_present(dev); - - ath_detach(sc); - - bus_generic_detach(dev); - bus_teardown_intr(dev, psc->sc_irq, psc->sc_ih); - bus_release_resource(dev, SYS_RES_IRQ, 0, psc->sc_irq); - - bus_dma_tag_destroy(sc->sc_dmat); - bus_release_resource(dev, SYS_RES_MEMORY, 0, psc->sc_sr); - /* XXX?! */ - if (sc->sc_eepromdata) - free(sc->sc_eepromdata, M_TEMP); - - ATH_TXSTATUS_LOCK_DESTROY(sc); - ATH_RX_LOCK_DESTROY(sc); - ATH_TX_LOCK_DESTROY(sc); - ATH_PCU_LOCK_DESTROY(sc); - ATH_LOCK_DESTROY(sc); - - return (0); -} - -static int -ath_ahb_shutdown(device_t dev) -{ - struct ath_ahb_softc *psc = device_get_softc(dev); - - ath_shutdown(&psc->sc_sc); - return (0); -} - -static int -ath_ahb_suspend(device_t dev) -{ - struct ath_ahb_softc *psc = device_get_softc(dev); - - ath_suspend(&psc->sc_sc); - - return (0); -} - -static int -ath_ahb_resume(device_t dev) -{ - struct ath_ahb_softc *psc = device_get_softc(dev); - - ath_resume(&psc->sc_sc); - - return (0); -} - -static device_method_t ath_ahb_methods[] = { - /* Device interface */ - DEVMETHOD(device_probe, ath_ahb_probe), - DEVMETHOD(device_attach, ath_ahb_attach), - DEVMETHOD(device_detach, ath_ahb_detach), - DEVMETHOD(device_shutdown, ath_ahb_shutdown), - DEVMETHOD(device_suspend, ath_ahb_suspend), - DEVMETHOD(device_resume, ath_ahb_resume), - { 0,0 } -}; -static driver_t ath_ahb_driver = { - "ath", - ath_ahb_methods, - sizeof (struct ath_ahb_softc) -}; -static devclass_t ath_devclass; -DRIVER_MODULE(if_ath_ahb, nexus, ath_ahb_driver, ath_devclass, 0, 0); -DRIVER_MODULE(if_ath_ahb, apb, ath_ahb_driver, ath_devclass, 0, 0); -MODULE_VERSION(if_ath_ahb, 1); -MODULE_DEPEND(if_ath_ahb, wlan, 1, 1, 1); /* 802.11 media layer */ -MODULE_DEPEND(if_ath_ahb, ath_main, 1, 1, 1); /* if_ath driver */ -MODULE_DEPEND(if_ath_ahb, ath_hal, 1, 1, 1); /* ath HAL */ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_alq.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_alq.c index f8a7a5afe9..b20f9be958 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_alq.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_alq.c @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2012 Adrian Chadd * All rights reserved. @@ -27,8 +27,6 @@ * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGES. - * - * $FreeBSD: releng/12.0/sys/dev/ath/if_ath_alq.c 326255 2017-11-27 14:52:40Z pfg $ */ #include "opt_ah.h" #include "opt_ath.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_alq.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_alq.h index f1b410f013..875cc44483 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_alq.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_alq.h @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2012 Adrian Chadd * All rights reserved. @@ -27,8 +27,6 @@ * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGES. - * - * $FreeBSD: releng/12.0/sys/dev/ath/if_ath_alq.h 326255 2017-11-27 14:52:40Z pfg $ */ #ifndef __IF_ATH_ALQ_H__ #define __IF_ATH_ALQ_H__ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_beacon.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_beacon.c index 5caad041a7..b08816f3d2 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_beacon.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_beacon.c @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2002-2009 Sam Leffler, Errno Consulting * All rights reserved. @@ -30,8 +30,6 @@ */ #include -__FBSDID("$FreeBSD: releng/12.0/sys/dev/ath/if_ath_beacon.c 327479 2018-01-02 00:07:28Z adrian $"); - /* * Driver for the Atheros Wireless LAN controller. * @@ -448,9 +446,11 @@ ath_beacon_proc(void *arg, int pending) * many consecutive beacons reset the device. */ if (ath_hal_numtxpending(ah, sc->sc_bhalq) != 0) { + sc->sc_bmisscount++; sc->sc_stats.ast_be_missed++; ath_beacon_miss(sc); + DPRINTF(sc, ATH_DEBUG_BEACON, "%s: missed %u consecutive beacons\n", __func__, sc->sc_bmisscount); @@ -935,15 +935,33 @@ ath_beacon_config(struct ath_softc *sc, struct ieee80211vap *vap) u_int32_t nexttbtt_u8, intval_u8; u_int64_t tsf, tsf_beacon; - if (vap == NULL) - vap = TAILQ_FIRST(&ic->ic_vaps); /* XXX */ /* - * Just ensure that we aren't being called when the last - * VAP is destroyed. + * Find the first VAP that we /can/ use a beacon configuration for. + * If it's a STA VAP then if it has SWBMISS set we should ignore it. + * + * Yes, ideally we'd not have a STA without SWBMISS followed by an + * AP STA, and yes this isn't ready for P2P/TSF2 logic on AR9300 and + * later chips. */ if (vap == NULL) { - device_printf(sc->sc_dev, "%s: called with no VAPs\n", - __func__); + IEEE80211_LOCK(ic); + TAILQ_FOREACH(vap, &ic->ic_vaps, iv_next) { + /* A STA VAP w/ SWBMISS set can't be used for beaconing */ + if ((vap->iv_opmode == IEEE80211_M_STA) && + ((vap->iv_flags_ext & IEEE80211_FEXT_SWBMISS) != 0)) + continue; + break; + } + IEEE80211_UNLOCK(ic); + } + + if (vap == NULL) { + device_printf(sc->sc_dev, "called with no valid vaps?\n"); + return; + } + + if ((vap->iv_flags_ext & IEEE80211_FEXT_SWBMISS) != 0) { + device_printf(sc->sc_dev, "called on VAP with SWBMISS set?\n"); return; } @@ -996,7 +1014,7 @@ ath_beacon_config(struct ath_softc *sc, struct ieee80211vap *vap) * * The specification (802.11-2012 10.1.3.2 - Beacon Generation in * Infrastructure Networks) requires APs be beaconing at a - * mutiple of intval. So, if bintval=100, then we shouldn't + * multiple of intval. So, if bintval=100, then we shouldn't * get beacons at intervals other than around multiples of 100. */ if (nexttbtt == 0) /* e.g. for ap mode */ @@ -1004,8 +1022,7 @@ ath_beacon_config(struct ath_softc *sc, struct ieee80211vap *vap) else nexttbtt = roundup(nexttbtt, intval); - DPRINTF(sc, ATH_DEBUG_BEACON, "%s: nexttbtt %u intval %u (%u)\n", - __func__, nexttbtt, intval, ni->ni_intval); + if (ic->ic_opmode == IEEE80211_M_STA && !sc->sc_swbmiss) { HAL_BEACON_STATE bs; int dtimperiod, dtimcount; @@ -1196,8 +1213,8 @@ ath_beacon_config(struct ath_softc *sc, struct ieee80211vap *vap) * nexttbtt and intval is TU/8. */ if (sc->sc_isedma) { - nexttbtt_u8 = (nexttbtt << 3); - intval_u8 = (intval << 3); + nexttbtt_u8 = (nexttbtt << 3) & HAL_BEACON_PERIOD_TU8; + intval_u8 = (intval << 3) & HAL_BEACON_PERIOD_TU8; if (intval & HAL_BEACON_ENA) intval_u8 |= HAL_BEACON_ENA; if (intval & HAL_BEACON_RESET_TSF) @@ -1216,6 +1233,15 @@ ath_beacon_config(struct ath_softc *sc, struct ieee80211vap *vap) } ieee80211_free_node(ni); + tsf = ath_hal_gettsf64(ah); + DPRINTF(sc, ATH_DEBUG_BEACON, + "%s: nexttbtt %u intval %u (%u), tsf64=%llu tsfbeacon=%llu delta=%lld\n", + __func__, nexttbtt, intval, ni->ni_intval, + (unsigned long long) tsf, + (unsigned long long) tsf_beacon, + (long long) tsf - + (long long) tsf_beacon); + ATH_LOCK(sc); ath_power_restore_power_state(sc); ATH_UNLOCK(sc); diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_beacon.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_beacon.h index ed991e7d2d..467ac513b5 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_beacon.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_beacon.h @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2002-2009 Sam Leffler, Errno Consulting * All rights reserved. @@ -27,8 +27,6 @@ * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGES. - * - * $FreeBSD: releng/12.0/sys/dev/ath/if_ath_beacon.h 326255 2017-11-27 14:52:40Z pfg $ */ #ifndef __IF_ATH_BEACON_H__ #define __IF_ATH_BEACON_H__ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_btcoex.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_btcoex.c index d673651873..e9a4f336d6 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_btcoex.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_btcoex.c @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2013 Adrian Chadd * All rights reserved. @@ -27,12 +27,8 @@ * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGES. - * - * $FreeBSD: releng/12.0/sys/dev/ath/if_ath_btcoex.c 327499 2018-01-02 19:29:30Z emaste $ */ #include -__FBSDID("$FreeBSD: releng/12.0/sys/dev/ath/if_ath_btcoex.c 327499 2018-01-02 19:29:30Z emaste $"); - /* * This implements some very basic bluetooth coexistence methods for * the ath(4) hardware. diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_btcoex.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_btcoex.h index 8e1cc47c5c..7f3266cee7 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_btcoex.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_btcoex.h @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2013 Adrian Chadd * All rights reserved. @@ -27,8 +27,6 @@ * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGES. - * - * $FreeBSD: releng/12.0/sys/dev/ath/if_ath_btcoex.h 326255 2017-11-27 14:52:40Z pfg $ */ #ifndef __IF_ATH_BTCOEX_H__ #define __IF_ATH_BTCOEX_H__ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_btcoex_mci.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_btcoex_mci.c index e37afb8b65..84c90ec58d 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_btcoex_mci.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_btcoex_mci.c @@ -26,12 +26,8 @@ * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGES. - * - * $FreeBSD: releng/12.0/sys/dev/ath/if_ath_btcoex_mci.c 301182 2016-06-02 01:59:41Z gnn $ */ #include -__FBSDID("$FreeBSD: releng/12.0/sys/dev/ath/if_ath_btcoex_mci.c 301182 2016-06-02 01:59:41Z gnn $"); - /* * This implements the MCI bluetooth coexistence handling. */ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_btcoex_mci.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_btcoex_mci.h index ed982bd771..207c318e07 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_btcoex_mci.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_btcoex_mci.h @@ -25,8 +25,6 @@ * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGES. - * - * $FreeBSD: releng/12.0/sys/dev/ath/if_ath_btcoex_mci.h 301181 2016-06-02 00:51:36Z adrian $ */ #ifndef __IF_ATH_BTCOEX_MCI_H__ #define __IF_ATH_BTCOEX_MCI_H__ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_debug.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_debug.c index 08cc5e1c2a..bd30cc2858 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_debug.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_debug.c @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2002-2009 Sam Leffler, Errno Consulting * All rights reserved. @@ -30,8 +30,6 @@ */ #include -__FBSDID("$FreeBSD: releng/12.0/sys/dev/ath/if_ath_debug.c 326255 2017-11-27 14:52:40Z pfg $"); - #include "opt_inet.h" #include "opt_ath.h" #include "opt_wlan.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_debug.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_debug.h index 7cf2ddc197..ba90f014e0 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_debug.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_debug.h @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2002-2009 Sam Leffler, Errno Consulting * All rights reserved. @@ -27,8 +27,6 @@ * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGES. - * - * $FreeBSD: releng/12.0/sys/dev/ath/if_ath_debug.h 326255 2017-11-27 14:52:40Z pfg $ */ #ifndef __IF_ATH_DEBUG_H__ #define __IF_ATH_DEBUG_H__ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_descdma.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_descdma.c index fd4378843f..5066b79dd6 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_descdma.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_descdma.c @@ -28,8 +28,6 @@ */ #include -__FBSDID("$FreeBSD: releng/12.0/sys/dev/ath/if_ath_descdma.c 291233 2015-11-24 03:42:58Z adrian $"); - /* * Driver for the Atheros Wireless LAN controller. * diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_descdma.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_descdma.h index f5fe0b8651..4f41915960 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_descdma.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_descdma.h @@ -25,8 +25,6 @@ * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGES. - * - * $FreeBSD: releng/12.0/sys/dev/ath/if_ath_descdma.h 291233 2015-11-24 03:42:58Z adrian $ */ #ifndef __IF_ATH_DESCDMA_H__ #define __IF_ATH_DESCDMA_H__ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_ioctl.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_ioctl.c index 183031103a..94ea1f1459 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_ioctl.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_ioctl.c @@ -28,8 +28,6 @@ */ #include -__FBSDID("$FreeBSD: releng/12.0/sys/dev/ath/if_ath_ioctl.c 331797 2018-03-30 18:50:13Z brooks $"); - /* * Driver for the Atheros Wireless LAN controller. * @@ -242,7 +240,7 @@ ath_ioctl(struct ieee80211com *ic, u_long cmd, void *data) switch (cmd) { case SIOCGATHSTATS: { struct ieee80211vap *vap; - struct ifnet *ifp; + if_t ifp; const HAL_RATE_TABLE *rt; /* NB: embed these numbers to get a consistent view */ @@ -250,9 +248,9 @@ ath_ioctl(struct ieee80211com *ic, u_long cmd, void *data) sc->sc_stats.ast_rx_packets = 0; TAILQ_FOREACH(vap, &ic->ic_vaps, iv_next) { ifp = vap->iv_ifp; - sc->sc_stats.ast_tx_packets += ifp->if_get_counter(ifp, + sc->sc_stats.ast_tx_packets += if_getcounter(ifp, IFCOUNTER_OPACKETS); - sc->sc_stats.ast_rx_packets += ifp->if_get_counter(ifp, + sc->sc_stats.ast_rx_packets += if_getcounter(ifp, IFCOUNTER_IPACKETS); } sc->sc_stats.ast_tx_rssi = ATH_RSSI(sc->sc_halstats.ns_avgtxrssi); diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_ioctl.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_ioctl.h index c8bdc97490..3df476c76d 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_ioctl.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_ioctl.h @@ -25,8 +25,6 @@ * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGES. - * - * $FreeBSD: releng/12.0/sys/dev/ath/if_ath_ioctl.h 291233 2015-11-24 03:42:58Z adrian $ */ #ifndef __IF_ATH_IOCTL_H__ #define __IF_ATH_IOCTL_H__ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_keycache.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_keycache.c index 39d263db03..bc94273bf5 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_keycache.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_keycache.c @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2002-2009 Sam Leffler, Errno Consulting * All rights reserved. @@ -30,8 +30,6 @@ */ #include -__FBSDID("$FreeBSD: releng/12.0/sys/dev/ath/if_ath_keycache.c 326255 2017-11-27 14:52:40Z pfg $"); - /* * Driver for the Atheros Wireless LAN controller. * diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_keycache.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_keycache.h index bbdfa014c9..7881adf422 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_keycache.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_keycache.h @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2011 Sam Leffler, Errno Consulting * All rights reserved. @@ -27,8 +27,6 @@ * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGES. - * - * $FreeBSD: releng/12.0/sys/dev/ath/if_ath_keycache.h 326255 2017-11-27 14:52:40Z pfg $ */ #ifndef __IF_ATH_CRYPTO_H__ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_led.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_led.c index 020c30922a..f4bd5ac806 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_led.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_led.c @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2002-2009 Sam Leffler, Errno Consulting * All rights reserved. @@ -30,8 +30,6 @@ */ #include -__FBSDID("$FreeBSD: releng/12.0/sys/dev/ath/if_ath_led.c 326255 2017-11-27 14:52:40Z pfg $"); - /* * Driver for the Atheros Wireless LAN controller. * @@ -78,6 +76,7 @@ __FBSDID("$FreeBSD: releng/12.0/sys/dev/ath/if_ath_led.c 326255 2017-11-27 14:52 #include #include #include +#include #include #include diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_led.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_led.h index aaa86bf602..9557522d74 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_led.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_led.h @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2002-2009 Sam Leffler, Errno Consulting * All rights reserved. @@ -27,8 +27,6 @@ * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGES. - * - * $FreeBSD: releng/12.0/sys/dev/ath/if_ath_led.h 326255 2017-11-27 14:52:40Z pfg $ */ #ifndef __IF_ATH_LED_H__ #define __IF_ATH_LED_H__ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_lna_div.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_lna_div.c index 3554c63397..2457c64411 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_lna_div.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_lna_div.c @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2013 Adrian Chadd * All rights reserved. @@ -27,12 +27,8 @@ * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGES. - * - * $FreeBSD: releng/12.0/sys/dev/ath/if_ath_lna_div.c 327500 2018-01-02 19:34:23Z emaste $ */ #include -__FBSDID("$FreeBSD: releng/12.0/sys/dev/ath/if_ath_lna_div.c 327500 2018-01-02 19:34:23Z emaste $"); - /* * This module handles LNA diversity for those chips which implement LNA * mixing (AR9285/AR9485.) @@ -42,7 +38,7 @@ __FBSDID("$FreeBSD: releng/12.0/sys/dev/ath/if_ath_lna_div.c 327500 2018-01-02 1 #include "opt_wlan.h" #include -#include +#include #include #include #include diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_lna_div.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_lna_div.h index 2cf390e64b..5ef468d2f4 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_lna_div.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_lna_div.h @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2013 Adrian Chadd * All rights reserved. @@ -27,8 +27,6 @@ * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGES. - * - * $FreeBSD: releng/12.0/sys/dev/ath/if_ath_lna_div.h 326255 2017-11-27 14:52:40Z pfg $ */ #ifndef __IF_ATH_LNA_DIV_H__ #define __IF_ATH_LNA_DIV_H__ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_misc.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_misc.h index 975e770816..49012ac91d 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_misc.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_misc.h @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2002-2009 Sam Leffler, Errno Consulting * All rights reserved. @@ -27,8 +27,6 @@ * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGES. - * - * $FreeBSD: releng/12.0/sys/dev/ath/if_ath_misc.h 326255 2017-11-27 14:52:40Z pfg $ */ #ifndef __IF_ATH_MISC_H__ #define __IF_ATH_MISC_H__ @@ -105,7 +103,7 @@ extern void ath_tx_update_tim(struct ath_softc *sc, * if_ath.c and do the ath_start() call there. Once that's done, * we can kill this. */ -extern void ath_start(struct ifnet *ifp); +extern void ath_start(if_t ifp); extern void ath_start_task(void *arg, int npending); extern void ath_tx_dump(struct ath_softc *sc, struct ath_txq *txq); diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_rx.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_rx.c index 715ca1d96c..cd22d9c683 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_rx.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_rx.c @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2002-2009 Sam Leffler, Errno Consulting * All rights reserved. @@ -30,8 +30,6 @@ */ #include -__FBSDID("$FreeBSD: releng/12.0/sys/dev/ath/if_ath_rx.c 326255 2017-11-27 14:52:40Z pfg $"); - /* * Driver for the Atheros Wireless LAN controller. * @@ -463,6 +461,7 @@ ath_recv_mgmt(struct ieee80211_node *ni, struct mbuf *m, sc->sc_syncbeacon && (!sc->sc_swbmiss) && ni == vap->iv_bss && + ((vap->iv_flags_ext & IEEE80211_FEXT_SWBMISS) == 0) && (vap->iv_state == IEEE80211_S_RUN || vap->iv_state == IEEE80211_S_SLEEP)) { DPRINTF(sc, ATH_DEBUG_BEACON, "%s: syncbeacon=1; syncing\n", diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_rx.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_rx.h index 266097f5ca..9aa3762796 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_rx.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_rx.h @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2002-2009 Sam Leffler, Errno Consulting * All rights reserved. @@ -27,8 +27,6 @@ * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGES. - * - * $FreeBSD: releng/12.0/sys/dev/ath/if_ath_rx.h 326255 2017-11-27 14:52:40Z pfg $ */ #ifndef __IF_ATH_RX_H__ #define __IF_ATH_RX_H__ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_rx_edma.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_rx_edma.c index fe8dd6f8f2..fb25fb77b0 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_rx_edma.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_rx_edma.c @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2012 Adrian Chadd * All rights reserved. @@ -30,8 +30,6 @@ */ #include -__FBSDID("$FreeBSD: releng/12.0/sys/dev/ath/if_ath_rx_edma.c 337573 2018-08-10 13:38:23Z kevans $"); - /* * Driver for the Atheros Wireless LAN controller. * diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_rx_edma.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_rx_edma.h index 2855006351..d9c5bc3e50 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_rx_edma.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_rx_edma.h @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2012 Adrian Chadd * All rights reserved. @@ -27,8 +27,6 @@ * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGES. - * - * $FreeBSD: releng/12.0/sys/dev/ath/if_ath_rx_edma.h 326255 2017-11-27 14:52:40Z pfg $ */ #ifndef __IF_ATH_RX_EDMA_H__ #define __IF_ATH_RX_EDMA_H__ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_spectral.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_spectral.c index eb2ebdf2c9..58f21b526e 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_spectral.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_spectral.c @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2013 Adrian Chadd * All rights reserved. @@ -27,12 +27,8 @@ * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGES. - * - * $FreeBSD: releng/12.0/sys/dev/ath/if_ath_spectral.c 327500 2018-01-02 19:34:23Z emaste $ */ #include -__FBSDID("$FreeBSD: releng/12.0/sys/dev/ath/if_ath_spectral.c 327500 2018-01-02 19:34:23Z emaste $"); - /* * Implement some basic spectral scan control logic. */ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_spectral.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_spectral.h index 0c579ca3bb..699e5b8c2d 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_spectral.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_spectral.h @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2013 Adrian Chadd * All rights reserved. @@ -27,8 +27,6 @@ * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGES. - * - * $FreeBSD: releng/12.0/sys/dev/ath/if_ath_spectral.h 326255 2017-11-27 14:52:40Z pfg $ */ #ifndef __IF_ATH_SPECTRAL_H__ #define __IF_ATH_SPECTRAL_H__ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_sysctl.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_sysctl.c index 0ba8b24c5d..24b99f4ec3 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_sysctl.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_sysctl.c @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2002-2009 Sam Leffler, Errno Consulting * All rights reserved. @@ -30,8 +30,6 @@ */ #include -__FBSDID("$FreeBSD: releng/12.0/sys/dev/ath/if_ath_sysctl.c 326255 2017-11-27 14:52:40Z pfg $"); - /* * Driver for the Atheros Wireless LAN controller. * @@ -1237,7 +1235,7 @@ ath_sysctl_stats_attach(struct ath_softc *sc) SYSCTL_ADD_UINT(ctx, child, OID_AUTO, "ast_rx_2040", CTLFLAG_RD, &sc->sc_stats.ast_rx_2040, 0, "number of HT/40 frames received"); SYSCTL_ADD_UINT(ctx, child, OID_AUTO, "ast_rx_pre_crc_err", CTLFLAG_RD, - &sc->sc_stats.ast_rx_pre_crc_err, 0, "number of delimeter-CRC errors detected"); + &sc->sc_stats.ast_rx_pre_crc_err, 0, "number of delimiter-CRC errors detected"); SYSCTL_ADD_UINT(ctx, child, OID_AUTO, "ast_rx_post_crc_err", CTLFLAG_RD, &sc->sc_stats.ast_rx_post_crc_err, 0, "number of post-delimiter CRC errors detected"); SYSCTL_ADD_UINT(ctx, child, OID_AUTO, "ast_rx_decrypt_busy_err", CTLFLAG_RD, @@ -1301,6 +1299,10 @@ ath_sysctl_stats_attach(struct ath_softc *sc) CTLFLAG_RD, &sc->sc_stats.ast_tx_ldpc, 0, "Number of LDPC frames transmitted"); + SYSCTL_ADD_UINT(ctx, child, OID_AUTO, "ast_tsfoor", + CTLFLAG_RD, &sc->sc_stats.ast_tsfoor, 0, + "Number of TSF out of range interrupts/resets"); + /* Attach the RX phy error array */ ath_sysctl_stats_attach_rxphyerr(sc, child); diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_sysctl.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_sysctl.h index 953c6eea48..a14ba1d184 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_sysctl.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_sysctl.h @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2011 Adrian Chadd, Xenion Pty Ltd. * All rights reserved. @@ -27,8 +27,6 @@ * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGES. - * - * $FreeBSD: releng/12.0/sys/dev/ath/if_ath_sysctl.h 326255 2017-11-27 14:52:40Z pfg $ */ #ifndef __IF_ATH_SYSCTL_H__ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_tdma.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_tdma.c index 81ef09fcba..eb5204f907 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_tdma.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_tdma.c @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2002-2009 Sam Leffler, Errno Consulting * All rights reserved. @@ -30,8 +30,6 @@ */ #include -__FBSDID("$FreeBSD: releng/12.0/sys/dev/ath/if_ath_tdma.c 326255 2017-11-27 14:52:40Z pfg $"); - /* * Driver for the Atheros Wireless LAN controller. * @@ -290,7 +288,7 @@ ath_tdma_config(struct ath_softc *sc, struct ieee80211vap *vap) /* XXX short preamble assumed */ /* XXX non-11n rate assumed */ sc->sc_tdmaguard = ath_hal_computetxtime(ah, sc->sc_currates, - vap->iv_ifp->if_mtu + IEEE80211_MAXOVERHEAD, rix, AH_TRUE, + if_getmtu(vap->iv_ifp) + IEEE80211_MAXOVERHEAD, rix, AH_TRUE, AH_TRUE); } diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_tdma.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_tdma.h index 94801ce40b..e67c63b839 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_tdma.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_tdma.h @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2002-2009 Sam Leffler, Errno Consulting * All rights reserved. @@ -27,8 +27,6 @@ * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGES. - * - * $FreeBSD: releng/12.0/sys/dev/ath/if_ath_tdma.h 326255 2017-11-27 14:52:40Z pfg $ */ #ifndef __IF_ATH_TDMA_H__ #define __IF_ATH_TDMA_H__ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_tsf.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_tsf.h index fef673672f..0d8bba5a00 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_tsf.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_tsf.h @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2002-2009 Sam Leffler, Errno Consulting * All rights reserved. @@ -27,8 +27,6 @@ * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGES. - * - * $FreeBSD: releng/12.0/sys/dev/ath/if_ath_tsf.h 326255 2017-11-27 14:52:40Z pfg $ */ #ifndef __IF_ATH_TSF_H__ #define __IF_ATH_TSF_H__ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_tx.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_tx.c index f45f6523c7..69d0b5c008 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_tx.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_tx.c @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2002-2009 Sam Leffler, Errno Consulting * Copyright (c) 2010-2012 Adrian Chadd, Xenion Pty Ltd @@ -31,8 +31,6 @@ */ #include -__FBSDID("$FreeBSD: releng/12.0/sys/dev/ath/if_ath_tx.c 327479 2018-01-02 00:07:28Z adrian $"); - /* * Driver for the Atheros Wireless LAN controller. * @@ -290,7 +288,7 @@ ath_txfrag_setup(struct ath_softc *sc, ath_bufhead *frags, ath_txfrag_cleanup(sc, frags, ni); break; } - ieee80211_node_incref(ni); + (void) ieee80211_ref_node(ni); TAILQ_INSERT_TAIL(frags, bf, bf_list); } ATH_TXBUF_UNLOCK(sc); @@ -1352,7 +1350,7 @@ ath_tx_setds(struct ath_softc *sc, struct ath_buf *bf) ); /* - * This will be overriden when the descriptor chain is written. + * This will be overridden when the descriptor chain is written. */ bf->bf_lastds = ds; bf->bf_last = bf; diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_tx.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_tx.h index b3036a08bb..4d7ee9039c 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_tx.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_tx.h @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2002-2009 Sam Leffler, Errno Consulting * All rights reserved. @@ -27,8 +27,6 @@ * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGES. - * - * $FreeBSD: releng/12.0/sys/dev/ath/if_ath_tx.h 326255 2017-11-27 14:52:40Z pfg $ */ #ifndef __IF_ATH_TX_H__ #define __IF_ATH_TX_H__ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_tx_edma.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_tx_edma.c index 176f22284e..86977b7a1d 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_tx_edma.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_tx_edma.c @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2012 Adrian Chadd * All rights reserved. @@ -30,8 +30,6 @@ */ #include -__FBSDID("$FreeBSD: releng/12.0/sys/dev/ath/if_ath_tx_edma.c 326255 2017-11-27 14:52:40Z pfg $"); - /* * Driver for the Atheros Wireless LAN controller. * diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_tx_edma.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_tx_edma.h index 8ea8898ce2..bd9653d65d 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_tx_edma.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_tx_edma.h @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2012 Adrian Chadd * All rights reserved. @@ -27,8 +27,6 @@ * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGES. - * - * $FreeBSD: releng/12.0/sys/dev/ath/if_ath_tx_edma.h 326255 2017-11-27 14:52:40Z pfg $ */ #ifndef __IF_ATH_TX_EDMA_H__ #define __IF_ATH_TX_EDMA_H__ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_tx_ht.c b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_tx_ht.c index 13afb6f023..ca69d4558d 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_tx_ht.c +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_tx_ht.c @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2011 Adrian Chadd, Xenion Pty Ltd. * All rights reserved. @@ -30,8 +30,6 @@ */ #include -__FBSDID("$FreeBSD: releng/12.0/sys/dev/ath/if_ath_tx_ht.c 326255 2017-11-27 14:52:40Z pfg $"); - #include "opt_inet.h" #include "opt_ath.h" #include "opt_wlan.h" @@ -457,7 +455,7 @@ ath_compute_num_delims(struct ath_softc *sc, struct ath_buf *first_bf, ndelim += ATH_AGGR_ENCRYPTDELIM; /* - * For AR9380, there's a minimum number of delimeters + * For AR9380, there's a minimum number of delimiters * required when doing RTS. * * XXX TODO: this is only needed if (a) RTS/CTS is enabled for diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_tx_ht.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_tx_ht.h index b302458eb3..70caa70c46 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_tx_ht.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_ath_tx_ht.h @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2011 Adrian Chadd, Xenion Pty Ltd. * All rights reserved. @@ -27,8 +27,6 @@ * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGES. - * - * $FreeBSD: releng/12.0/sys/dev/ath/if_ath_tx_ht.h 326255 2017-11-27 14:52:40Z pfg $ */ #ifndef __IF_ATH_TX_HT_H__ #define __IF_ATH_TX_HT_H__ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_athdfs.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_athdfs.h index 99fb3196b4..b05b6418ee 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_athdfs.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_athdfs.h @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2011 Adrian Chadd, Xenion Pty Ltd * All rights reserved. @@ -27,8 +27,6 @@ * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGES. - * - * $FreeBSD: releng/12.0/sys/dev/ath/if_athdfs.h 326255 2017-11-27 14:52:40Z pfg $ */ #ifndef __IF_ATHDFS_H__ #define __IF_ATHDFS_H__ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_athioctl.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_athioctl.h index ec982fea22..16112ba39f 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_athioctl.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_athioctl.h @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2002-2009 Sam Leffler, Errno Consulting * All rights reserved. @@ -27,8 +27,6 @@ * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGES. - * - * $FreeBSD: releng/12.0/sys/dev/ath/if_athioctl.h 326255 2017-11-27 14:52:40Z pfg $ */ /* @@ -177,6 +175,7 @@ struct ath_stats { u_int32_t ast_tx_nodeq_overflow; /* node sw queue overflow */ u_int32_t ast_tx_ldpc; /* TX LDPC frame */ u_int32_t ast_tx_stbc; /* TX STBC frame */ + u_int32_t ast_tsfoor; /* TSFOOR interrupts */ u_int32_t ast_pad[10]; }; diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_athrate.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_athrate.h index ebca4cab4e..5b4dda9057 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_athrate.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_athrate.h @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2004-2008 Sam Leffler, Errno Consulting * Copyright (c) 2004 Video54 Technologies, Inc. @@ -28,8 +28,6 @@ * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGES. - * - * $FreeBSD: releng/12.0/sys/dev/ath/if_athrate.h 326255 2017-11-27 14:52:40Z pfg $ */ #ifndef _ATH_RATECTRL_H_ #define _ATH_RATECTRL_H_ diff --git a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_athvar.h b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_athvar.h index 3dc28fbbfd..8302153b47 100644 --- a/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_athvar.h +++ b/src/add-ons/kernel/drivers/network/wlan/atheroswifi/dev/ath/if_athvar.h @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2002-2009 Sam Leffler, Errno Consulting * All rights reserved. @@ -27,8 +27,6 @@ * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGES. - * - * $FreeBSD: releng/12.0/sys/dev/ath/if_athvar.h 326255 2017-11-27 14:52:40Z pfg $ */ /* @@ -61,6 +59,7 @@ /* * 802.11n requires more TX and RX buffers to do AMPDU. */ +#define ATH_ENABLE_11N /* 802.11n support for AR5416 and later */ #ifdef ATH_ENABLE_11N #define ATH_TXBUF 512 #define ATH_RXBUF 512 @@ -763,7 +762,7 @@ struct ath_softc { u_int sc_txqsetup; /* h/w queues setup */ u_int sc_txintrperiod;/* tx interrupt batching */ struct ath_txq sc_txq[HAL_NUM_TX_QUEUES]; - struct ath_txq *sc_ac2q[5]; /* WME AC -> h/w q map */ + struct ath_txq *sc_ac2q[5]; /* WME AC -> h/w q map */ struct task sc_txtask; /* tx int processing */ struct task sc_txqtask; /* tx proc processing */ @@ -784,6 +783,7 @@ struct ath_softc { /* recent tx frames/antenna */ struct ath_txq *sc_cabq; /* tx q for cab frames */ struct task sc_bmisstask; /* bmiss int processing */ + struct task sc_tsfoortask; /* TSFOOR int processing */ struct task sc_bstucktask; /* stuck beacon processing */ struct task sc_resettask; /* interface reset task */ struct task sc_fataltask; /* fatal task */ @@ -1495,6 +1495,10 @@ void ath_intr(void *); ((*(_ah)->ah_setChainMasks)((_ah), (_txchainmask), (_rxchainmask))) #define ath_hal_set_quiet(_ah, _p, _d, _o, _f) \ ((*(_ah)->ah_setQuiet)((_ah), (_p), (_d), (_o), (_f))) +#define ath_hal_getnav(_ah) \ + ((*(_ah)->ah_getNav)((_ah))) +#define ath_hal_setnav(_ah, _val) \ + ((*(_ah)->ah_setNav)((_ah), (_val))) #define ath_hal_spectral_supported(_ah) \ (ath_hal_getcapability(_ah, HAL_CAP_SPECTRAL_SCAN, 0, NULL) == HAL_OK) diff --git a/src/add-ons/kernel/drivers/network/wlan/broadcom43xx/dev/bwi/bitops.h b/src/add-ons/kernel/drivers/network/wlan/broadcom43xx/dev/bwi/bitops.h index 3bb6c8d279..9a5964a847 100644 --- a/src/add-ons/kernel/drivers/network/wlan/broadcom43xx/dev/bwi/bitops.h +++ b/src/add-ons/kernel/drivers/network/wlan/broadcom43xx/dev/bwi/bitops.h @@ -31,7 +31,6 @@ * OF SUCH DAMAGE. * * $DragonFly: src/sys/dev/netif/bwi/bitops.h,v 1.1 2007/09/08 06:15:54 sephe Exp $ - * $FreeBSD: releng/12.0/sys/dev/bwi/bitops.h 326255 2017-11-27 14:52:40Z pfg $ */ #ifndef _BITOPS_H diff --git a/src/add-ons/kernel/drivers/network/wlan/broadcom43xx/dev/bwi/bwimac.c b/src/add-ons/kernel/drivers/network/wlan/broadcom43xx/dev/bwi/bwimac.c index 90f1c4c5fb..2c4fea5654 100644 --- a/src/add-ons/kernel/drivers/network/wlan/broadcom43xx/dev/bwi/bwimac.c +++ b/src/add-ons/kernel/drivers/network/wlan/broadcom43xx/dev/bwi/bwimac.c @@ -37,8 +37,6 @@ */ #include -__FBSDID("$FreeBSD: releng/12.0/sys/dev/bwi/bwimac.c 326022 2017-11-20 19:36:21Z pfg $"); - #include "opt_inet.h" #include "opt_bwi.h" #include "opt_wlan.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/broadcom43xx/dev/bwi/bwimac.h b/src/add-ons/kernel/drivers/network/wlan/broadcom43xx/dev/bwi/bwimac.h index 9f7cc1d822..de1d70dfd6 100644 --- a/src/add-ons/kernel/drivers/network/wlan/broadcom43xx/dev/bwi/bwimac.h +++ b/src/add-ons/kernel/drivers/network/wlan/broadcom43xx/dev/bwi/bwimac.h @@ -34,7 +34,6 @@ * SUCH DAMAGE. * * $DragonFly: src/sys/dev/netif/bwi/bwimac.h,v 1.2 2008/02/15 11:15:38 sephe Exp $ - * $FreeBSD: releng/12.0/sys/dev/bwi/bwimac.h 326022 2017-11-20 19:36:21Z pfg $ */ #ifndef _BWI_MAC_H diff --git a/src/add-ons/kernel/drivers/network/wlan/broadcom43xx/dev/bwi/bwiphy.c b/src/add-ons/kernel/drivers/network/wlan/broadcom43xx/dev/bwi/bwiphy.c index 76d129f66f..5abb1f9ed7 100644 --- a/src/add-ons/kernel/drivers/network/wlan/broadcom43xx/dev/bwi/bwiphy.c +++ b/src/add-ons/kernel/drivers/network/wlan/broadcom43xx/dev/bwi/bwiphy.c @@ -37,8 +37,6 @@ */ #include -__FBSDID("$FreeBSD: releng/12.0/sys/dev/bwi/bwiphy.c 326022 2017-11-20 19:36:21Z pfg $"); - #include "opt_inet.h" #include "opt_wlan.h" diff --git a/src/add-ons/kernel/drivers/network/wlan/broadcom43xx/dev/bwi/bwiphy.h b/src/add-ons/kernel/drivers/network/wlan/broadcom43xx/dev/bwi/bwiphy.h index be77b89a3b..b21f009b40 100644 --- a/src/add-ons/kernel/drivers/network/wlan/broadcom43xx/dev/bwi/bwiphy.h +++ b/src/add-ons/kernel/drivers/network/wlan/broadcom43xx/dev/bwi/bwiphy.h @@ -34,7 +34,6 @@ * SUCH DAMAGE. * * $DragonFly: src/sys/dev/netif/bwi/bwiphy.h,v 1.1 2007/09/08 06:15:54 sephe Exp $ - * $FreeBSD: releng/12.0/sys/dev/bwi/bwiphy.h 326022 2017-11-20 19:36:21Z pfg $ */ #ifndef _BWI_PHY_H diff --git a/src/add-ons/kernel/drivers/network/wlan/broadcom43xx/dev/bwi/bwirf.c b/src/add-ons/kernel/drivers/network/wlan/broadcom43xx/dev/bwi/bwirf.c index c088f03361..810b905224 100644 --- a/src/add-ons/kernel/drivers/network/wlan/broadcom43xx/dev/bwi/bwirf.c +++ b/src/add-ons/kernel/drivers/network/wlan/broadcom43xx/dev/bwi/bwirf.c @@ -37,8 +37,6 @@ */ #include -__FBSDID("$FreeBSD: releng/12.0/sys/dev/bwi/bwirf.c 326022 2017-11-20 19:36:21Z pfg $"); - #include "opt_inet.h" #include "opt_bwi.h" #include "opt_wlan.h" @@ -1649,7 +1647,7 @@ bwi_rf_calc_nrssi_slope_11b(struct bwi_mac *mac) struct bwi_phy *phy = &mac->mac_phy; uint16_t save_rf[SAVE_RF_MAX]; uint16_t save_phy[SAVE_PHY_MAX]; - uint16_t ant_div, bbp_atten, chan_ex; + uint16_t ant_div, chan_ex; int16_t nrssi[2]; int i; @@ -1662,7 +1660,7 @@ bwi_rf_calc_nrssi_slope_11b(struct bwi_mac *mac) save_phy[i] = PHY_READ(mac, save_phy_regs[i]); ant_div = CSR_READ_2(sc, BWI_RF_ANTDIV); - bbp_atten = CSR_READ_2(sc, BWI_BBP_ATTEN); + CSR_READ_2(sc, BWI_BBP_ATTEN); chan_ex = CSR_READ_2(sc, BWI_RF_CHAN_EX); /* diff --git a/src/add-ons/kernel/drivers/network/wlan/broadcom43xx/dev/bwi/bwirf.h b/src/add-ons/kernel/drivers/network/wlan/broadcom43xx/dev/bwi/bwirf.h index b1fb7cc421..31424ceb02 100644 --- a/src/add-ons/kernel/drivers/network/wlan/broadcom43xx/dev/bwi/bwirf.h +++ b/src/add-ons/kernel/drivers/network/wlan/broadcom43xx/dev/bwi/bwirf.h @@ -34,7 +34,6 @@ * SUCH DAMAGE. * * $DragonFly: src/sys/dev/netif/bwi/bwirf.h,v 1.3 2007/10/03 04:53:19 sephe Exp $ - * $FreeBSD: releng/12.0/sys/dev/bwi/bwirf.h 326022 2017-11-20 19:36:21Z pfg $ */ #ifndef _BWI_RF_H diff --git a/src/add-ons/kernel/drivers/network/wlan/broadcom43xx/dev/bwi/if_bwi.c b/src/add-ons/kernel/drivers/network/wlan/broadcom43xx/dev/bwi/if_bwi.c index f0bb3a6316..c70de8e2ac 100644 --- a/src/add-ons/kernel/drivers/network/wlan/broadcom43xx/dev/bwi/if_bwi.c +++ b/src/add-ons/kernel/drivers/network/wlan/broadcom43xx/dev/bwi/if_bwi.c @@ -37,8 +37,6 @@ */ #include -__FBSDID("$FreeBSD: releng/12.0/sys/dev/bwi/if_bwi.c 337570 2018-08-10 13:06:14Z kevans $"); - #include "opt_inet.h" #include "opt_bwi.h" #include "opt_wlan.h" @@ -3397,7 +3395,7 @@ bwi_txeof(struct bwi_softc *sc) { for (;;) { - uint32_t tx_status0, tx_status1; + uint32_t tx_status0, tx_status1 __unused; uint16_t tx_id; int data_txcnt; diff --git a/src/add-ons/kernel/drivers/network/wlan/broadcom43xx/dev/bwi/if_bwi_pci.c b/src/add-ons/kernel/drivers/network/wlan/broadcom43xx/dev/bwi/if_bwi_pci.c index c4cd03dc44..eeaec02af3 100644 --- a/src/add-ons/kernel/drivers/network/wlan/broadcom43xx/dev/bwi/if_bwi_pci.c +++ b/src/add-ons/kernel/drivers/network/wlan/broadcom43xx/dev/bwi/if_bwi_pci.c @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2002-2007 Sam Leffler, Errno Consulting * All rights reserved. @@ -30,8 +30,6 @@ */ #include -__FBSDID("$FreeBSD: releng/12.0/sys/dev/bwi/if_bwi_pci.c 338948 2018-09-26 17:12:14Z imp $"); - /* * PCI/Cardbus front-end for the Broadcom Wireless LAN controller driver. */ @@ -248,13 +246,14 @@ static device_method_t bwi_pci_methods[] = { DEVMETHOD(device_resume, bwi_pci_resume), { 0,0 } }; + static driver_t bwi_driver = { "bwi", bwi_pci_methods, sizeof (struct bwi_pci_softc) }; -static devclass_t bwi_devclass; -DRIVER_MODULE(bwi, pci, bwi_driver, bwi_devclass, 0, 0); + +DRIVER_MODULE(bwi, pci, bwi_driver, 0, 0); MODULE_PNP_INFO("U16:vendor;U16:device;D:#", pci, bwi, bwi_devices, nitems(bwi_devices) - 1); MODULE_DEPEND(bwi, wlan, 1, 1, 1); /* 802.11 media layer */ diff --git a/src/add-ons/kernel/drivers/network/wlan/broadcom43xx/dev/bwi/if_bwireg.h b/src/add-ons/kernel/drivers/network/wlan/broadcom43xx/dev/bwi/if_bwireg.h index 94621aab5c..a12f9c3503 100644 --- a/src/add-ons/kernel/drivers/network/wlan/broadcom43xx/dev/bwi/if_bwireg.h +++ b/src/add-ons/kernel/drivers/network/wlan/broadcom43xx/dev/bwi/if_bwireg.h @@ -34,7 +34,6 @@ * SUCH DAMAGE. * * $DragonFly: src/sys/dev/netif/bwi/if_bwireg.h,v 1.4 2007/10/19 14:27:04 sephe Exp $ - * $FreeBSD: releng/12.0/sys/dev/bwi/if_bwireg.h 326022 2017-11-20 19:36:21Z pfg $ */ #ifndef _IF_BWIREG_H diff --git a/src/add-ons/kernel/drivers/network/wlan/broadcom43xx/dev/bwi/if_bwivar.h b/src/add-ons/kernel/drivers/network/wlan/broadcom43xx/dev/bwi/if_bwivar.h index 86aec657ac..427204ed18 100644 --- a/src/add-ons/kernel/drivers/network/wlan/broadcom43xx/dev/bwi/if_bwivar.h +++ b/src/add-ons/kernel/drivers/network/wlan/broadcom43xx/dev/bwi/if_bwivar.h @@ -34,7 +34,6 @@ * SUCH DAMAGE. * * $DragonFly: src/sys/dev/netif/bwi/if_bwivar.h,v 1.14 2008/02/15 11:15:38 sephe Exp $ - * $FreeBSD: releng/12.0/sys/dev/bwi/if_bwivar.h 326022 2017-11-20 19:36:21Z pfg $ */ #ifndef _IF_BWIVAR_H @@ -305,7 +304,7 @@ struct bwi_fw_iv { union { uint32_t val32; uint16_t val16; - } iv_val; + } __packed iv_val; } __packed; #define BWI_FW_IV_OFS_MASK __BITS(14, 0) diff --git a/src/add-ons/kernel/drivers/network/wlan/iprowifi2100/dev/ipw/if_ipw.c b/src/add-ons/kernel/drivers/network/wlan/iprowifi2100/dev/ipw/if_ipw.c index 17f398ab66..acc215e623 100644 --- a/src/add-ons/kernel/drivers/network/wlan/iprowifi2100/dev/ipw/if_ipw.c +++ b/src/add-ons/kernel/drivers/network/wlan/iprowifi2100/dev/ipw/if_ipw.c @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2004-2006 * Damien Bergamini . All rights reserved. @@ -30,8 +30,6 @@ */ #include -__FBSDID("$FreeBSD: releng/12.0/sys/dev/ipw/if_ipw.c 339975 2018-10-31 23:02:59Z glebius $"); - /*- * Intel(R) PRO/Wireless 2100 MiniPCI driver * http://www.intel.com/network/connectivity/products/wireless/prowireless_mobile.htm @@ -115,7 +113,7 @@ static struct ieee80211vap *ipw_vap_create(struct ieee80211com *, static void ipw_vap_delete(struct ieee80211vap *); static int ipw_dma_alloc(struct ipw_softc *); static void ipw_release(struct ipw_softc *); -static void ipw_media_status(struct ifnet *, struct ifmediareq *); +static void ipw_media_status(if_t, struct ifmediareq *); static int ipw_newstate(struct ieee80211vap *, enum ieee80211_state, int); static uint16_t ipw_read_prom_word(struct ipw_softc *, uint8_t); static uint16_t ipw_read_chanmask(struct ipw_softc *); @@ -199,9 +197,7 @@ static driver_t ipw_driver = { sizeof (struct ipw_softc) }; -static devclass_t ipw_devclass; - -DRIVER_MODULE(ipw, pci, ipw_driver, ipw_devclass, NULL, NULL); +DRIVER_MODULE(ipw, pci, ipw_driver, NULL, NULL); MODULE_PNP_INFO("U16:vendor;U16:device;D:#", pci, ipw, ipw_ident_table, nitems(ipw_ident_table) - 1); @@ -330,13 +326,14 @@ ipw_attach(device_t dev) */ SYSCTL_ADD_PROC(device_get_sysctl_ctx(dev), SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), OID_AUTO, "radio", - CTLTYPE_INT | CTLFLAG_RD, sc, 0, ipw_sysctl_radio, "I", + CTLTYPE_INT | CTLFLAG_RD | CTLFLAG_NEEDGIANT, sc, 0, + ipw_sysctl_radio, "I", "radio transmitter switch state (0=off, 1=on)"); SYSCTL_ADD_PROC(device_get_sysctl_ctx(dev), SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), OID_AUTO, "stats", - CTLTYPE_OPAQUE | CTLFLAG_RD, sc, 0, ipw_sysctl_stats, "S", - "statistics"); + CTLTYPE_OPAQUE | CTLFLAG_RD | CTLFLAG_NEEDGIANT, sc, 0, + ipw_sysctl_stats, "S", "statistics"); /* * Hook our interrupt after all initialization is complete. @@ -834,9 +831,9 @@ ipw_cvtrate(int ipwrate) * value here. */ static void -ipw_media_status(struct ifnet *ifp, struct ifmediareq *imr) +ipw_media_status(if_t ifp, struct ifmediareq *imr) { - struct ieee80211vap *vap = ifp->if_softc; + struct ieee80211vap *vap = if_getsoftc(ifp); struct ieee80211com *ic = vap->iv_ic; struct ipw_softc *sc = ic->ic_softc; @@ -1326,10 +1323,7 @@ ipw_release_sbd(struct ipw_softc *sc, struct ipw_soft_bd *sbd) bus_dmamap_unload(sc->txbuf_dmat, sbuf->map); SLIST_INSERT_HEAD(&sc->free_sbuf, sbuf, next); - if (sbuf->m->m_flags & M_TXCB) - ieee80211_process_callback(sbuf->ni, sbuf->m, 0/*XXX*/); - m_freem(sbuf->m); - ieee80211_free_node(sbuf->ni); + ieee80211_tx_complete(sbuf->ni, sbuf->m, 0/*XXX*/); sc->sc_tx_timer = 0; break; @@ -1526,9 +1520,8 @@ ipw_cmd(struct ipw_softc *sc, uint32_t type, void *data, uint32_t len) 0, 0, len); /* Print the data buffer in the higher debug level */ if (ipw_debug >= 9 && len > 0) { - int i; printf(" data: 0x"); - for (i = 1; i <= len; i++) + for (int i = 1; i <= len; i++) printf("%1D", (u_char *)data + len - i, ""); } printf("\n"); diff --git a/src/add-ons/kernel/drivers/network/wlan/iprowifi2100/dev/ipw/if_ipwreg.h b/src/add-ons/kernel/drivers/network/wlan/iprowifi2100/dev/ipw/if_ipwreg.h index 1ae7cf330d..05f5939ac5 100644 --- a/src/add-ons/kernel/drivers/network/wlan/iprowifi2100/dev/ipw/if_ipwreg.h +++ b/src/add-ons/kernel/drivers/network/wlan/iprowifi2100/dev/ipw/if_ipwreg.h @@ -1,7 +1,6 @@ -/* $FreeBSD: releng/12.0/sys/dev/ipw/if_ipwreg.h 326255 2017-11-27 14:52:40Z pfg $ */ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2004-2006 * Damien Bergamini . All rights reserved. diff --git a/src/add-ons/kernel/drivers/network/wlan/iprowifi2100/dev/ipw/if_ipwvar.h b/src/add-ons/kernel/drivers/network/wlan/iprowifi2100/dev/ipw/if_ipwvar.h index e7e6a7d571..e09a170202 100644 --- a/src/add-ons/kernel/drivers/network/wlan/iprowifi2100/dev/ipw/if_ipwvar.h +++ b/src/add-ons/kernel/drivers/network/wlan/iprowifi2100/dev/ipw/if_ipwvar.h @@ -1,7 +1,6 @@ -/* $FreeBSD: releng/12.0/sys/dev/ipw/if_ipwvar.h 326255 2017-11-27 14:52:40Z pfg $ */ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2004-2006 * Damien Bergamini . All rights reserved. diff --git a/src/add-ons/kernel/drivers/network/wlan/iprowifi2200/dev/iwi/if_iwi.c b/src/add-ons/kernel/drivers/network/wlan/iprowifi2200/dev/iwi/if_iwi.c index e67d2031c6..d329ca7e9b 100644 --- a/src/add-ons/kernel/drivers/network/wlan/iprowifi2200/dev/iwi/if_iwi.c +++ b/src/add-ons/kernel/drivers/network/wlan/iprowifi2200/dev/iwi/if_iwi.c @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2004, 2005 * Damien Bergamini . All rights reserved. @@ -30,8 +30,6 @@ */ #include -__FBSDID("$FreeBSD: releng/12.0/sys/dev/iwi/if_iwi.c 331797 2018-03-30 18:50:13Z brooks $"); - /*- * Intel(R) PRO/Wireless 2200BG/2225BG/2915ABG driver * http://www.intel.com/network/connectivity/products/wireless/prowireless_mobile.htm @@ -160,7 +158,7 @@ static void iwi_free_rx_ring(struct iwi_softc *, struct iwi_rx_ring *); static struct ieee80211_node *iwi_node_alloc(struct ieee80211vap *, const uint8_t [IEEE80211_ADDR_LEN]); static void iwi_node_free(struct ieee80211_node *); -static void iwi_media_status(struct ifnet *, struct ifmediareq *); +static void iwi_media_status(if_t, struct ifmediareq *); static int iwi_newstate(struct ieee80211vap *, enum ieee80211_state, int); static void iwi_wme_init(struct iwi_softc *); static int iwi_wme_setparams(struct iwi_softc *); @@ -173,7 +171,7 @@ static void iwi_rx_intr(struct iwi_softc *); static void iwi_tx_intr(struct iwi_softc *, struct iwi_tx_ring *); static void iwi_intr(void *); static int iwi_cmd(struct iwi_softc *, uint8_t, void *, uint8_t); -static void iwi_write_ibssnode(struct iwi_softc *, const u_int8_t [], int); +static void iwi_write_ibssnode(struct iwi_softc *, const u_int8_t [IEEE80211_ADDR_LEN], int); static int iwi_tx_start(struct iwi_softc *, struct mbuf *, struct ieee80211_node *, int); static int iwi_raw_xmit(struct ieee80211_node *, struct mbuf *, @@ -242,9 +240,7 @@ static driver_t iwi_driver = { sizeof (struct iwi_softc) }; -static devclass_t iwi_devclass; - -DRIVER_MODULE(iwi, pci, iwi_driver, iwi_devclass, NULL, NULL); +DRIVER_MODULE(iwi, pci, iwi_driver, NULL, NULL); MODULE_VERSION(iwi, 1); @@ -922,9 +918,9 @@ iwi_cvtrate(int iwirate) * value here. */ static void -iwi_media_status(struct ifnet *ifp, struct ifmediareq *imr) +iwi_media_status(if_t ifp, struct ifmediareq *imr) { - struct ieee80211vap *vap = ifp->if_softc; + struct ieee80211vap *vap = if_getsoftc(ifp); struct ieee80211com *ic = vap->iv_ic; struct iwi_softc *sc = ic->ic_softc; struct ieee80211_node *ni; @@ -1307,7 +1303,7 @@ iwi_checkforqos(struct ieee80211vap *vap, #define SUBTYPE(wh) ((wh)->i_fc[0] & IEEE80211_FC0_SUBTYPE_MASK) const uint8_t *frm, *efrm, *wme; struct ieee80211_node *ni; - uint16_t capinfo, status, associd; + uint16_t capinfo, associd; /* NB: +8 for capinfo, status, associd, and first ie */ if (!(sizeof(*wh)+8 < len && len < IEEE80211_MAX_LEN) || @@ -1327,7 +1323,7 @@ iwi_checkforqos(struct ieee80211vap *vap, capinfo = le16toh(*(const uint16_t *)frm); frm += 2; - status = le16toh(*(const uint16_t *)frm); + /* status */ frm += 2; associd = le16toh(*(const uint16_t *)frm); frm += 2; @@ -2582,15 +2578,18 @@ static int iwi_config(struct iwi_softc *sc) { struct ieee80211com *ic = &sc->sc_ic; + struct ieee80211vap *vap = TAILQ_FIRST(&ic->ic_vaps); struct iwi_configuration config; struct iwi_txpower power; + uint8_t *macaddr; uint32_t data; int error, i; IWI_LOCK_ASSERT(sc); - DPRINTF(("Setting MAC address to %6D\n", ic->ic_macaddr, ":")); - error = iwi_cmd(sc, IWI_CMD_SET_MAC_ADDRESS, ic->ic_macaddr, + macaddr = vap ? vap->iv_myaddr : ic->ic_macaddr; + DPRINTF(("Setting MAC address to %6D\n", macaddr, ":")); + error = iwi_cmd(sc, IWI_CMD_SET_MAC_ADDRESS, macaddr, IEEE80211_ADDR_LEN); if (error != 0) return error; @@ -2827,7 +2826,7 @@ static int iwi_auth_and_assoc(struct iwi_softc *sc, struct ieee80211vap *vap) { struct ieee80211com *ic = vap->iv_ic; - struct ifnet *ifp = vap->iv_ifp; + if_t ifp = vap->iv_ifp; struct ieee80211_node *ni; struct iwi_configuration config; struct iwi_associate *assoc = &sc->assoc; @@ -2837,13 +2836,13 @@ iwi_auth_and_assoc(struct iwi_softc *sc, struct ieee80211vap *vap) IWI_LOCK_ASSERT(sc); - ni = ieee80211_ref_node(vap->iv_bss); - if (sc->flags & IWI_FLAG_ASSOCIATED) { DPRINTF(("Already associated\n")); return (-1); } + ni = ieee80211_ref_node(vap->iv_bss); + IWI_STATE_BEGIN(sc, IWI_FW_ASSOCIATING); error = 0; mode = 0; @@ -2974,7 +2973,7 @@ iwi_auth_and_assoc(struct iwi_softc *sc, struct ieee80211vap *vap) assoc->intval = htole16(ni->ni_intval); IEEE80211_ADDR_COPY(assoc->bssid, ni->ni_bssid); if (vap->iv_opmode == IEEE80211_M_IBSS) - IEEE80211_ADDR_COPY(assoc->dst, ifp->if_broadcastaddr); + IEEE80211_ADDR_COPY(assoc->dst, if_getbroadcastaddr(ifp)); else IEEE80211_ADDR_COPY(assoc->dst, ni->ni_bssid); @@ -3334,12 +3333,13 @@ iwi_sysctlattach(struct iwi_softc *sc) struct sysctl_oid *tree = device_get_sysctl_tree(sc->sc_dev); SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, "radio", - CTLTYPE_INT | CTLFLAG_RD, sc, 0, iwi_sysctl_radio, "I", + CTLTYPE_INT | CTLFLAG_RD | CTLFLAG_NEEDGIANT, sc, 0, + iwi_sysctl_radio, "I", "radio transmitter switch state (0=off, 1=on)"); SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, "stats", - CTLTYPE_OPAQUE | CTLFLAG_RD, sc, 0, iwi_sysctl_stats, "S", - "statistics"); + CTLTYPE_OPAQUE | CTLFLAG_RD | CTLFLAG_NEEDGIANT, sc, 0, + iwi_sysctl_stats, "S", "statistics"); sc->bluetooth = 0; SYSCTL_ADD_INT(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, "bluetooth", @@ -3513,8 +3513,8 @@ iwi_ledattach(struct iwi_softc *sc) callout_init_mtx(&sc->sc_ledtimer, &sc->sc_mtx, 0); SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, - "softled", CTLTYPE_INT | CTLFLAG_RW, sc, 0, - iwi_sysctl_softled, "I", "enable/disable software LED support"); + "softled", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc, 0, + iwi_sysctl_softled, "I", "enable/disable software LED support"); SYSCTL_ADD_UINT(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, "ledpin", CTLFLAG_RW, &sc->sc_ledpin, 0, "pin setting to turn activity LED on"); diff --git a/src/add-ons/kernel/drivers/network/wlan/iprowifi2200/dev/iwi/if_iwi_ioctl.h b/src/add-ons/kernel/drivers/network/wlan/iprowifi2200/dev/iwi/if_iwi_ioctl.h index 77d5b9656e..8bb5d20cb2 100644 --- a/src/add-ons/kernel/drivers/network/wlan/iprowifi2200/dev/iwi/if_iwi_ioctl.h +++ b/src/add-ons/kernel/drivers/network/wlan/iprowifi2200/dev/iwi/if_iwi_ioctl.h @@ -12,8 +12,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/iwi/if_iwi_ioctl.h 263920 2014-03-29 19:53:04Z adrian $ */ #ifndef __IF_IWI_IOCTL_H__ #define __IF_IWI_IOCTL_H__ diff --git a/src/add-ons/kernel/drivers/network/wlan/iprowifi2200/dev/iwi/if_iwireg.h b/src/add-ons/kernel/drivers/network/wlan/iprowifi2200/dev/iwi/if_iwireg.h index 2fe7c9bc99..dd6bb91bfe 100644 --- a/src/add-ons/kernel/drivers/network/wlan/iprowifi2200/dev/iwi/if_iwireg.h +++ b/src/add-ons/kernel/drivers/network/wlan/iprowifi2200/dev/iwi/if_iwireg.h @@ -1,7 +1,6 @@ -/* $FreeBSD: releng/12.0/sys/dev/iwi/if_iwireg.h 326255 2017-11-27 14:52:40Z pfg $ */ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2004, 2005 * Damien Bergamini . All rights reserved. diff --git a/src/add-ons/kernel/drivers/network/wlan/iprowifi2200/dev/iwi/if_iwivar.h b/src/add-ons/kernel/drivers/network/wlan/iprowifi2200/dev/iwi/if_iwivar.h index f6c5873e08..c2e247b961 100644 --- a/src/add-ons/kernel/drivers/network/wlan/iprowifi2200/dev/iwi/if_iwivar.h +++ b/src/add-ons/kernel/drivers/network/wlan/iprowifi2200/dev/iwi/if_iwivar.h @@ -1,7 +1,6 @@ -/* $FreeBSD: releng/12.0/sys/dev/iwi/if_iwivar.h 326255 2017-11-27 14:52:40Z pfg $ */ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2004, 2005 * Damien Bergamini . All rights reserved. diff --git a/src/add-ons/kernel/drivers/network/wlan/iprowifi3945/dev/wpi/if_wpi.c b/src/add-ons/kernel/drivers/network/wlan/iprowifi3945/dev/wpi/if_wpi.c index e0dd74bc70..3fffe982b9 100644 --- a/src/add-ons/kernel/drivers/network/wlan/iprowifi3945/dev/wpi/if_wpi.c +++ b/src/add-ons/kernel/drivers/network/wlan/iprowifi3945/dev/wpi/if_wpi.c @@ -18,8 +18,6 @@ */ #include -__FBSDID("$FreeBSD: releng/12.0/sys/dev/wpi/if_wpi.c 327479 2018-01-02 00:07:28Z adrian $"); - /* * Driver for Intel PRO/Wireless 3945ABG 802.11 network adapters. * @@ -299,9 +297,8 @@ static driver_t wpi_driver = { wpi_methods, sizeof (struct wpi_softc) }; -static devclass_t wpi_devclass; -DRIVER_MODULE(wpi, pci, wpi_driver, wpi_devclass, NULL, NULL); +DRIVER_MODULE(wpi, pci, wpi_driver, NULL, NULL); MODULE_VERSION(wpi, 1); @@ -2187,11 +2184,10 @@ wpi_notif_intr(struct wpi_softc *sc) hw = (hw == 0) ? WPI_RX_RING_COUNT - 1 : hw - 1; while (sc->rxq.cur != hw) { - struct wpi_rx_data *data; - struct wpi_rx_desc *desc; sc->rxq.cur = (sc->rxq.cur + 1) % WPI_RX_RING_COUNT; - data = &sc->rxq.data[sc->rxq.cur]; + struct wpi_rx_data *data = &sc->rxq.data[sc->rxq.cur]; + struct wpi_rx_desc *desc; bus_dmamap_sync(sc->rxq.data_dmat, data->map, BUS_DMASYNC_POSTREAD); @@ -2310,11 +2306,10 @@ wpi_notif_intr(struct wpi_softc *sc) } case WPI_STATE_CHANGED: { - uint32_t *status; bus_dmamap_sync(sc->rxq.data_dmat, data->map, BUS_DMASYNC_POSTREAD); - status = (uint32_t *)(desc + 1); + uint32_t *status = (uint32_t *)(desc + 1); DPRINTF(sc, WPI_DEBUG_STATE, "state changed to %x\n", le32toh(*status)); @@ -2346,11 +2341,10 @@ wpi_notif_intr(struct wpi_softc *sc) #endif case WPI_STOP_SCAN: { - struct wpi_stop_scan *scan; bus_dmamap_sync(sc->rxq.data_dmat, data->map, BUS_DMASYNC_POSTREAD); - scan = + struct wpi_stop_scan *scan = (struct wpi_stop_scan *)(desc + 1); DPRINTF(sc, WPI_DEBUG_SCAN, @@ -2773,7 +2767,7 @@ wpi_cmd2(struct wpi_softc *sc, struct wpi_buf *buf) ring->pending = 0; sc->sc_update_tx_ring(sc, ring); } else - ieee80211_node_incref(data->ni); + (void) ieee80211_ref_node(data->ni); end: DPRINTF(sc, WPI_DEBUG_TRACE, error ? TRACE_STR_END_ERR : TRACE_STR_END, __func__); @@ -4549,6 +4543,7 @@ wpi_run(struct wpi_softc *sc, struct ieee80211vap *vap) sc->rxon.chan, sc->rxon.flags); if ((error = wpi_send_rxon(sc, 0, 1)) != 0) { + WPI_RXON_UNLOCK(sc); device_printf(sc->sc_dev, "%s: could not send RXON\n", __func__); return error; diff --git a/src/add-ons/kernel/drivers/network/wlan/iprowifi3945/dev/wpi/if_wpi_debug.h b/src/add-ons/kernel/drivers/network/wlan/iprowifi3945/dev/wpi/if_wpi_debug.h index 5ae439f4c1..044bc9164b 100644 --- a/src/add-ons/kernel/drivers/network/wlan/iprowifi3945/dev/wpi/if_wpi_debug.h +++ b/src/add-ons/kernel/drivers/network/wlan/iprowifi3945/dev/wpi/if_wpi_debug.h @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/wpi/if_wpi_debug.h 292176 2015-12-13 22:08:27Z avos $ */ #ifndef __IF_WPI_DEBUG_H__ diff --git a/src/add-ons/kernel/drivers/network/wlan/iprowifi3945/dev/wpi/if_wpireg.h b/src/add-ons/kernel/drivers/network/wlan/iprowifi3945/dev/wpi/if_wpireg.h index 0d70d6ae61..84d25bbeb9 100644 --- a/src/add-ons/kernel/drivers/network/wlan/iprowifi3945/dev/wpi/if_wpireg.h +++ b/src/add-ons/kernel/drivers/network/wlan/iprowifi3945/dev/wpi/if_wpireg.h @@ -1,4 +1,3 @@ -/* $FreeBSD: releng/12.0/sys/dev/wpi/if_wpireg.h 289163 2015-10-12 04:05:12Z adrian $ */ /*- * Copyright (c) 2006,2007 @@ -92,7 +91,6 @@ #define WPI_FH_MSG_CONFIG 0xe88 #define WPI_FH_TX_STATUS 0xe90 - /* * NIC internal memory offsets. */ @@ -119,7 +117,6 @@ #define WPI_BSM_DRAM_DATA_SIZE 0x349c #define WPI_BSM_SRAM_BASE 0x3800 - /* Possible flags for register WPI_HW_IF_CONFIG. */ #define WPI_HW_IF_CONFIG_ALM_MB (1 << 8) #define WPI_HW_IF_CONFIG_ALM_MM (1 << 9) @@ -558,7 +555,6 @@ struct wpi_beacon_missed { uint32_t received; } __packed; - /* Structure for command WPI_CMD_MRR_SETUP. */ #define WPI_RIDX_MAX 11 struct wpi_mrr_setup { @@ -806,7 +802,6 @@ struct wpi_stats { /* Possible flags for command WPI_CMD_GET_STATISTICS. */ #define WPI_STATISTICS_BEACON_DISABLE (1 << 1) - /* Firmware error dump entry. */ struct wpi_fw_dump { uint32_t desc; @@ -818,7 +813,6 @@ struct wpi_fw_dump { /* Firmware image file header. */ struct wpi_firmware_hdr { - #define WPI_FW_MINVERSION 2144 #define WPI_FW_NAME "wpifw" diff --git a/src/add-ons/kernel/drivers/network/wlan/iprowifi3945/dev/wpi/if_wpivar.h b/src/add-ons/kernel/drivers/network/wlan/iprowifi3945/dev/wpi/if_wpivar.h index d3d2039ec7..6e3ab1476c 100644 --- a/src/add-ons/kernel/drivers/network/wlan/iprowifi3945/dev/wpi/if_wpivar.h +++ b/src/add-ons/kernel/drivers/network/wlan/iprowifi3945/dev/wpi/if_wpivar.h @@ -1,4 +1,3 @@ -/* $FreeBSD: releng/12.0/sys/dev/wpi/if_wpivar.h 306878 2016-10-08 20:41:08Z avos $ */ /*- * Copyright (c) 2006,2007 @@ -77,7 +76,7 @@ struct wpi_tx_ring { uint8_t cur; uint8_t pending; int16_t queued; - int update:1; + bool update:1; }; struct wpi_rx_data { diff --git a/src/add-ons/kernel/drivers/network/wlan/iprowifi4965/dev/iwn/if_iwn.c b/src/add-ons/kernel/drivers/network/wlan/iprowifi4965/dev/iwn/if_iwn.c index 24006d28dc..5aaeff8ad3 100644 --- a/src/add-ons/kernel/drivers/network/wlan/iprowifi4965/dev/iwn/if_iwn.c +++ b/src/add-ons/kernel/drivers/network/wlan/iprowifi4965/dev/iwn/if_iwn.c @@ -25,7 +25,6 @@ */ #include -__FBSDID("$FreeBSD: releng/12.0/sys/dev/iwn/if_iwn.c 338949 2018-09-26 17:12:30Z imp $"); #include #include @@ -371,9 +370,8 @@ static driver_t iwn_driver = { iwn_methods, sizeof(struct iwn_softc) }; -static devclass_t iwn_devclass; -DRIVER_MODULE(iwn, pci, iwn_driver, iwn_devclass, NULL, NULL); +DRIVER_MODULE(iwn, pci, iwn_driver, NULL, NULL); MODULE_PNP_INFO("U16:vendor;U16:device;D:#", pci, iwn, iwn_ident_table, nitems(iwn_ident_table) - 1); MODULE_VERSION(iwn, 1); @@ -4457,7 +4455,7 @@ iwn_check_rate_needs_protection(struct iwn_softc *sc, /* * 11bg protection not enabled? Then don't use it. */ - if ((ic->ic_flags & IEEE80211_F_USEPROT) == 0) + if ((vap->iv_flags & IEEE80211_F_USEPROT) == 0) return (0); /* @@ -4943,7 +4941,7 @@ iwn_tx_cmd(struct iwn_softc *sc, struct mbuf *m, struct ieee80211_node *ni, data->ni = ni; DPRINTF(sc, IWN_DEBUG_XMIT, "%s: qid %d idx %d len %d nsegs %d " - "plcp %d\n", + "plcp 0x%x\n", __func__, ring->qid, ring->cur, totlen, nsegs, tx->rate); /* Fill TX descriptor. */ @@ -6663,18 +6661,18 @@ iwn5000_runtime_calib(struct iwn_softc *sc) } static uint32_t -iwn_get_rxon_ht_flags(struct iwn_softc *sc, struct ieee80211_channel *c) +iwn_get_rxon_ht_flags(struct iwn_softc *sc, struct ieee80211vap *vap, + struct ieee80211_channel *c) { - struct ieee80211com *ic = &sc->sc_ic; uint32_t htflags = 0; if (! IEEE80211_IS_CHAN_HT(c)) return (0); - htflags |= IWN_RXON_HT_PROTMODE(ic->ic_curhtprotmode); + htflags |= IWN_RXON_HT_PROTMODE(vap->iv_curhtprotmode); if (IEEE80211_IS_CHAN_HT40(c)) { - switch (ic->ic_curhtprotmode) { + switch (vap->iv_curhtprotmode) { case IEEE80211_HTINFO_OPMODE_HT20PR: htflags |= IWN_RXON_HT_MODEPURE40; break; @@ -6921,7 +6919,7 @@ iwn_config(struct iwn_softc *sc) sc->rxchainmask, sc->nrxchains); - sc->rxon->flags |= htole32(iwn_get_rxon_ht_flags(sc, ic->ic_curchan)); + sc->rxon->flags |= htole32(iwn_get_rxon_ht_flags(sc, vap, ic->ic_curchan)); DPRINTF(sc, IWN_DEBUG_RESET, "%s: setting configuration; flags=0x%08x\n", @@ -7035,7 +7033,7 @@ iwn_scan(struct iwn_softc *sc, struct ieee80211vap *vap, int buflen, error; int is_active; uint16_t dwell_active, dwell_passive; - uint32_t extra, scan_service_time; + uint32_t scan_service_time; DPRINTF(sc, IWN_DEBUG_TRACE, "->%s begin\n", __func__); @@ -7079,9 +7077,12 @@ iwn_scan(struct iwn_softc *sc, struct ieee80211vap *vap, * suspend_time: 100 (TU) * */ +#if 0 extra = (100 /* suspend_time */ / 100 /* beacon interval */) << 22; - //scan_service_time = extra | ((100 /* susp */ % 100 /* int */) * 1024); + scan_service_time = extra | ((100 /* susp */ % 100 /* int */) * 1024); +#else scan_service_time = (4 << 22) | (100 * 1024); /* Hardcode for now! */ +#endif hdr->pause_svc = htole32(scan_service_time); /* Select antennas for scanning. */ @@ -7159,9 +7160,9 @@ iwn_scan(struct iwn_softc *sc, struct ieee80211vap *vap, wh->i_fc[0] = IEEE80211_FC0_VERSION_0 | IEEE80211_FC0_TYPE_MGT | IEEE80211_FC0_SUBTYPE_PROBE_REQ; wh->i_fc[1] = IEEE80211_FC1_DIR_NODS; - IEEE80211_ADDR_COPY(wh->i_addr1, vap->iv_ifp->if_broadcastaddr); - IEEE80211_ADDR_COPY(wh->i_addr2, IF_LLADDR(vap->iv_ifp)); - IEEE80211_ADDR_COPY(wh->i_addr3, vap->iv_ifp->if_broadcastaddr); + IEEE80211_ADDR_COPY(wh->i_addr1, if_getbroadcastaddr(vap->iv_ifp)); + IEEE80211_ADDR_COPY(wh->i_addr2, if_getlladdr(vap->iv_ifp)); + IEEE80211_ADDR_COPY(wh->i_addr3, if_getbroadcastaddr(vap->iv_ifp)); *(uint16_t *)&wh->i_dur[0] = 0; /* filled by HW */ *(uint16_t *)&wh->i_seq[0] = 0; /* filled by HW */ @@ -7294,9 +7295,17 @@ iwn_auth(struct iwn_softc *sc, struct ieee80211vap *vap) sc->rxon->flags = htole32(IWN_RXON_TSF | IWN_RXON_CTS_TO_SELF); if (IEEE80211_IS_CHAN_2GHZ(ni->ni_chan)) sc->rxon->flags |= htole32(IWN_RXON_AUTO | IWN_RXON_24GHZ); - if (ic->ic_flags & IEEE80211_F_SHSLOT) + + /* + * We always set short slot on 5GHz channels. + * We optionally set it for 2.4GHz channels. + */ + if (IEEE80211_IS_CHAN_5GHZ(ni->ni_chan)) sc->rxon->flags |= htole32(IWN_RXON_SHSLOT); - if (ic->ic_flags & IEEE80211_F_SHPREAMBLE) + else if (vap->iv_flags & IEEE80211_F_SHSLOT) + sc->rxon->flags |= htole32(IWN_RXON_SHSLOT); + + if (vap->iv_flags & IEEE80211_F_SHPREAMBLE) sc->rxon->flags |= htole32(IWN_RXON_SHPREAMBLE); if (IEEE80211_IS_CHAN_A(ni->ni_chan)) { sc->rxon->cck_mask = 0; @@ -7311,7 +7320,7 @@ iwn_auth(struct iwn_softc *sc, struct ieee80211vap *vap) } /* try HT */ - sc->rxon->flags |= htole32(iwn_get_rxon_ht_flags(sc, ic->ic_curchan)); + sc->rxon->flags |= htole32(iwn_get_rxon_ht_flags(sc, vap, ic->ic_curchan)); DPRINTF(sc, IWN_DEBUG_STATE, "rxon chan %d flags %x cck %x ofdm %x\n", sc->rxon->chan, sc->rxon->flags, sc->rxon->cck_mask, @@ -7358,9 +7367,14 @@ iwn_run(struct iwn_softc *sc, struct ieee80211vap *vap) sc->rxon->flags = htole32(IWN_RXON_TSF | IWN_RXON_CTS_TO_SELF); if (IEEE80211_IS_CHAN_2GHZ(ni->ni_chan)) sc->rxon->flags |= htole32(IWN_RXON_AUTO | IWN_RXON_24GHZ); - if (ic->ic_flags & IEEE80211_F_SHSLOT) + + /* As previously - short slot only on 5GHz */ + if (IEEE80211_IS_CHAN_5GHZ(ni->ni_chan)) sc->rxon->flags |= htole32(IWN_RXON_SHSLOT); - if (ic->ic_flags & IEEE80211_F_SHPREAMBLE) + else if (vap->iv_flags & IEEE80211_F_SHSLOT) + sc->rxon->flags |= htole32(IWN_RXON_SHSLOT); + + if (vap->iv_flags & IEEE80211_F_SHPREAMBLE) sc->rxon->flags |= htole32(IWN_RXON_SHPREAMBLE); if (IEEE80211_IS_CHAN_A(ni->ni_chan)) { sc->rxon->cck_mask = 0; @@ -7374,10 +7388,10 @@ iwn_run(struct iwn_softc *sc, struct ieee80211vap *vap) sc->rxon->ofdm_mask = 0x15; } /* try HT */ - sc->rxon->flags |= htole32(iwn_get_rxon_ht_flags(sc, ni->ni_chan)); + sc->rxon->flags |= htole32(iwn_get_rxon_ht_flags(sc, vap, ni->ni_chan)); sc->rxon->filter |= htole32(IWN_FILTER_BSS); DPRINTF(sc, IWN_DEBUG_STATE, "rxon chan %d flags %x, curhtprotmode=%d\n", - sc->rxon->chan, le32toh(sc->rxon->flags), ic->ic_curhtprotmode); + sc->rxon->chan, le32toh(sc->rxon->flags), vap->iv_curhtprotmode); if ((error = iwn_send_rxon(sc, 0, 1)) != 0) { device_printf(sc->sc_dev, "%s: could not send RXON\n", @@ -7706,10 +7720,10 @@ static void iwn5000_ampdu_tx_start(struct iwn_softc *sc, struct ieee80211_node *ni, int qid, uint8_t tid, uint16_t ssn) { - struct iwn_node *wn = (void *)ni; - DPRINTF(sc, IWN_DEBUG_TRACE, "->Doing %s\n", __func__); + struct iwn_node *wn = (void *)ni; + /* Stop TX scheduler while we're changing its configuration. */ iwn_prph_write(sc, IWN5000_SCHED_QUEUE_STATUS(qid), IWN5000_TXQ_STATUS_CHGACT); @@ -9119,7 +9133,7 @@ iwn_set_channel(struct ieee80211com *ic) error = iwn_config(sc); if (error != 0) device_printf(sc->sc_dev, - "%s: error %d settting channel\n", __func__, error); + "%s: error %d setting channel\n", __func__, error); } IWN_UNLOCK(sc); } diff --git a/src/add-ons/kernel/drivers/network/wlan/iprowifi4965/dev/iwn/if_iwn_chip_cfg.h b/src/add-ons/kernel/drivers/network/wlan/iprowifi4965/dev/iwn/if_iwn_chip_cfg.h index 1547fabb22..56ede40305 100644 --- a/src/add-ons/kernel/drivers/network/wlan/iprowifi4965/dev/iwn/if_iwn_chip_cfg.h +++ b/src/add-ons/kernel/drivers/network/wlan/iprowifi4965/dev/iwn/if_iwn_chip_cfg.h @@ -13,8 +13,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/iwn/if_iwn_chip_cfg.h 335785 2018-06-28 21:59:45Z eadler $ */ #ifndef __IF_IWN_CHIP_CFG_H__ diff --git a/src/add-ons/kernel/drivers/network/wlan/iprowifi4965/dev/iwn/if_iwn_debug.h b/src/add-ons/kernel/drivers/network/wlan/iprowifi4965/dev/iwn/if_iwn_debug.h index 3f269296eb..b62241e7d4 100644 --- a/src/add-ons/kernel/drivers/network/wlan/iprowifi4965/dev/iwn/if_iwn_debug.h +++ b/src/add-ons/kernel/drivers/network/wlan/iprowifi4965/dev/iwn/if_iwn_debug.h @@ -18,8 +18,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/iwn/if_iwn_debug.h 315946 2017-03-25 13:15:43Z avos $ */ #ifndef __IF_IWN_DEBUG_H__ diff --git a/src/add-ons/kernel/drivers/network/wlan/iprowifi4965/dev/iwn/if_iwn_devid.h b/src/add-ons/kernel/drivers/network/wlan/iprowifi4965/dev/iwn/if_iwn_devid.h index f9e0987a03..8b0eab0c2a 100644 --- a/src/add-ons/kernel/drivers/network/wlan/iprowifi4965/dev/iwn/if_iwn_devid.h +++ b/src/add-ons/kernel/drivers/network/wlan/iprowifi4965/dev/iwn/if_iwn_devid.h @@ -12,8 +12,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/iwn/if_iwn_devid.h 335812 2018-06-30 04:30:08Z eadler $ */ #ifndef __IF_IWN_DEVID_H__ diff --git a/src/add-ons/kernel/drivers/network/wlan/iprowifi4965/dev/iwn/if_iwn_ioctl.h b/src/add-ons/kernel/drivers/network/wlan/iprowifi4965/dev/iwn/if_iwn_ioctl.h index 89b2f3c582..85838ef010 100644 --- a/src/add-ons/kernel/drivers/network/wlan/iprowifi4965/dev/iwn/if_iwn_ioctl.h +++ b/src/add-ons/kernel/drivers/network/wlan/iprowifi4965/dev/iwn/if_iwn_ioctl.h @@ -12,8 +12,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD: releng/12.0/sys/dev/iwn/if_iwn_ioctl.h 287312 2015-08-30 21:54:33Z adrian $ */ #ifndef __IF_IWN_IOCTL_H__ #define __IF_IWN_IOCTL_H__ diff --git a/src/add-ons/kernel/drivers/network/wlan/iprowifi4965/dev/iwn/if_iwnreg.h b/src/add-ons/kernel/drivers/network/wlan/iprowifi4965/dev/iwn/if_iwnreg.h index b429db6cab..bdea9dd961 100644 --- a/src/add-ons/kernel/drivers/network/wlan/iprowifi4965/dev/iwn/if_iwnreg.h +++ b/src/add-ons/kernel/drivers/network/wlan/iprowifi4965/dev/iwn/if_iwnreg.h @@ -1,4 +1,3 @@ -/* $FreeBSD: releng/12.0/sys/dev/iwn/if_iwnreg.h 315958 2017-03-25 15:57:47Z avos $ */ /* $OpenBSD: if_iwnreg.h,v 1.40 2010/05/05 19:41:57 damien Exp $ */ /*- diff --git a/src/add-ons/kernel/drivers/network/wlan/iprowifi4965/dev/iwn/if_iwnvar.h b/src/add-ons/kernel/drivers/network/wlan/iprowifi4965/dev/iwn/if_iwnvar.h index fc0f0c8b6f..a6247373f0 100644 --- a/src/add-ons/kernel/drivers/network/wlan/iprowifi4965/dev/iwn/if_iwnvar.h +++ b/src/add-ons/kernel/drivers/network/wlan/iprowifi4965/dev/iwn/if_iwnvar.h @@ -1,4 +1,3 @@ -/* $FreeBSD: releng/12.0/sys/dev/iwn/if_iwnvar.h 314923 2017-03-08 22:49:22Z avos $ */ /* $OpenBSD: if_iwnvar.h,v 1.18 2010/04/30 16:06:46 damien Exp $ */ /*- diff --git a/src/add-ons/kernel/drivers/network/wlan/marvell88w8335/dev/malo/if_malo.c b/src/add-ons/kernel/drivers/network/wlan/marvell88w8335/dev/malo/if_malo.c index 0edc023ff8..122372bedf 100644 --- a/src/add-ons/kernel/drivers/network/wlan/marvell88w8335/dev/malo/if_malo.c +++ b/src/add-ons/kernel/drivers/network/wlan/marvell88w8335/dev/malo/if_malo.c @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2008 Weongyo Jeong * Copyright (c) 2007 Marvell Semiconductor, Inc. @@ -33,7 +33,6 @@ #include #ifdef __FreeBSD__ -__FBSDID("$FreeBSD: releng/12.0/sys/dev/malo/if_malo.c 333813 2018-05-18 20:13:34Z mmacy $"); #endif #include "opt_malo.h" @@ -64,7 +63,7 @@ __FBSDID("$FreeBSD: releng/12.0/sys/dev/malo/if_malo.c 333813 2018-05-18 20:13:3 #include -SYSCTL_NODE(_hw, OID_AUTO, malo, CTLFLAG_RD, 0, +SYSCTL_NODE(_hw, OID_AUTO, malo, CTLFLAG_RD | CTLFLAG_MPSAFE, 0, "Marvell 88w8335 driver parameters"); static int malo_txcoalesce = 8; /* # tx pkts to q before poking f/w*/ @@ -253,7 +252,7 @@ malo_attach(uint16_t devid, struct malo_softc *sc) taskqueue_start_threads(&sc->malo_tq, 1, PI_NET, "%s taskq", device_get_nameunit(sc->malo_dev)); - TASK_INIT(&sc->malo_rxtask, 0, malo_rx_proc, sc); + NET_TASK_INIT(&sc->malo_rxtask, 0, malo_rx_proc, sc); TASK_INIT(&sc->malo_txtask, 0, malo_tx_proc, sc); ic->ic_softc = sc; @@ -1032,8 +1031,8 @@ malo_tx_start(struct malo_softc *sc, struct ieee80211_node *ni, { #define IS_DATA_FRAME(wh) \ ((wh->i_fc[0] & (IEEE80211_FC0_TYPE_MASK)) == IEEE80211_FC0_TYPE_DATA) - int error, ismcast, iswep; - int copyhdrlen, hdrlen, pktlen; + int error, iswep; + int hdrlen, pktlen; struct ieee80211_frame *wh; struct ieee80211com *ic = &sc->malo_ic; struct ieee80211vap *vap = ni->ni_vap; @@ -1044,13 +1043,10 @@ malo_tx_start(struct malo_softc *sc, struct ieee80211_node *ni, wh = mtod(m0, struct ieee80211_frame *); iswep = wh->i_fc[1] & IEEE80211_FC1_PROTECTED; - ismcast = IEEE80211_IS_MULTICAST(wh->i_addr1); - copyhdrlen = hdrlen = ieee80211_anyhdrsize(wh); + hdrlen = ieee80211_anyhdrsize(wh); pktlen = m0->m_pkthdr.len; if (IEEE80211_QOS_HAS_SEQ(wh)) { qos = *(uint16_t *)ieee80211_getqos(wh); - if (IEEE80211_IS_DSTODS(wh)) - copyhdrlen -= sizeof(qos); } else qos = 0; @@ -1507,49 +1503,46 @@ malo_init(void *arg) ieee80211_start_all(ic); /* start all vap's */ } +struct malo_copy_maddr_ctx { + uint8_t macs[IEEE80211_ADDR_LEN * MALO_HAL_MCAST_MAX]; + int nmc; +}; + +static u_int +malo_copy_maddr(void *arg, struct sockaddr_dl *sdl, u_int nmc) +{ + struct malo_copy_maddr_ctx *ctx = arg; + + if (ctx->nmc == MALO_HAL_MCAST_MAX) + return (0); + + IEEE80211_ADDR_COPY(ctx->macs + (ctx->nmc * IEEE80211_ADDR_LEN), + LLADDR(sdl)); + ctx->nmc++; + + return (1); +} + /* * Set the multicast filter contents into the hardware. */ static void malo_setmcastfilter(struct malo_softc *sc) { + struct malo_copy_maddr_ctx ctx; struct ieee80211com *ic = &sc->malo_ic; struct ieee80211vap *vap; - uint8_t macs[IEEE80211_ADDR_LEN * MALO_HAL_MCAST_MAX]; - uint8_t *mp; - int nmc; - mp = macs; - nmc = 0; if (ic->ic_opmode == IEEE80211_M_MONITOR || ic->ic_allmulti > 0 || ic->ic_promisc > 0) goto all; - TAILQ_FOREACH(vap, &ic->ic_vaps, iv_next) { - struct ifnet *ifp; - struct ifmultiaddr *ifma; + ctx.nmc = 0; + TAILQ_FOREACH(vap, &ic->ic_vaps, iv_next) + if_foreach_llmaddr(vap->iv_ifp, malo_copy_maddr, &ctx); - ifp = vap->iv_ifp; - if_maddr_rlock(ifp); - TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) { - if (ifma->ifma_addr->sa_family != AF_LINK) - continue; - - if (nmc == MALO_HAL_MCAST_MAX) { - ifp->if_flags |= IFF_ALLMULTI; - if_maddr_runlock(ifp); - goto all; - } - IEEE80211_ADDR_COPY(mp, - LLADDR((struct sockaddr_dl *)ifma->ifma_addr)); - - mp += IEEE80211_ADDR_LEN, nmc++; - } - if_maddr_runlock(ifp); - } - - malo_hal_setmcast(sc->malo_mh, nmc, macs); + malo_hal_setmcast(sc->malo_mh, ctx.nmc, ctx.macs); all: /* @@ -1576,7 +1569,7 @@ malo_tx_draintxq(struct malo_softc *sc, struct malo_txq *txq) { struct ieee80211_node *ni; struct malo_txbuf *bf; - u_int ix; + u_int ix __unused; /* * NB: this assumes output has been stopped and @@ -1749,7 +1742,7 @@ malo_newstate(struct ieee80211vap *vap, enum ieee80211_state nstate, int arg) DPRINTF(sc, MALO_DEBUG_STATE, "%s: %s(RUN): iv_flags 0x%08x bintvl %d bssid %s " "capinfo 0x%04x chan %d associd 0x%x mode %d rate %d\n", - vap->iv_ifp->if_xname, __func__, vap->iv_flags, + if_name(vap->iv_ifp), __func__, vap->iv_flags, ni->ni_intval, ether_sprintf(ni->ni_bssid), ni->ni_capinfo, ieee80211_chan2ieee(ic, ic->ic_curchan), ni->ni_associd, mode, tp->ucastrate); diff --git a/src/add-ons/kernel/drivers/network/wlan/marvell88w8335/dev/malo/if_malo.h b/src/add-ons/kernel/drivers/network/wlan/marvell88w8335/dev/malo/if_malo.h index 79d36c80b5..05c5bc90c4 100644 --- a/src/add-ons/kernel/drivers/network/wlan/marvell88w8335/dev/malo/if_malo.h +++ b/src/add-ons/kernel/drivers/network/wlan/marvell88w8335/dev/malo/if_malo.h @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2007 Marvell Semiconductor, Inc. * Copyright (c) 2007 Sam Leffler, Errno Consulting @@ -29,8 +29,6 @@ * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGES. - * - * $FreeBSD: releng/12.0/sys/dev/malo/if_malo.h 326255 2017-11-27 14:52:40Z pfg $ */ /* diff --git a/src/add-ons/kernel/drivers/network/wlan/marvell88w8335/dev/malo/if_malo_pci.c b/src/add-ons/kernel/drivers/network/wlan/marvell88w8335/dev/malo/if_malo_pci.c index c9641509f3..0693fd520f 100644 --- a/src/add-ons/kernel/drivers/network/wlan/marvell88w8335/dev/malo/if_malo_pci.c +++ b/src/add-ons/kernel/drivers/network/wlan/marvell88w8335/dev/malo/if_malo_pci.c @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2007 Marvell Semiconductor, Inc. * Copyright (c) 2007 Sam Leffler, Errno Consulting @@ -33,7 +33,6 @@ #include #ifdef __FreeBSD__ -__FBSDID("$FreeBSD: releng/12.0/sys/dev/malo/if_malo_pci.c 326255 2017-11-27 14:52:40Z pfg $"); #endif /* @@ -84,7 +83,7 @@ struct malo_pci_softc { * Tunable variables. */ SYSCTL_DECL(_hw_malo); -static SYSCTL_NODE(_hw_malo, OID_AUTO, pci, CTLFLAG_RD, 0, +static SYSCTL_NODE(_hw_malo, OID_AUTO, pci, CTLFLAG_RD | CTLFLAG_MPSAFE, 0, "Marvell 88W8335 driver PCI parameters"); static int msi_disable = 0; /* MSI disabled */ @@ -347,8 +346,7 @@ static driver_t malo_pci_driver = { sizeof(struct malo_pci_softc) }; -static devclass_t malo_devclass; -DRIVER_MODULE(malo, pci, malo_pci_driver, malo_devclass, 0, 0); +DRIVER_MODULE(malo, pci, malo_pci_driver, 0, 0); MODULE_VERSION(malo, 1); MODULE_DEPEND(malo, wlan, 1, 1, 1); /* 802.11 media layer */ MODULE_DEPEND(malo, firmware, 1, 1, 1); diff --git a/src/add-ons/kernel/drivers/network/wlan/marvell88w8335/dev/malo/if_malohal.c b/src/add-ons/kernel/drivers/network/wlan/marvell88w8335/dev/malo/if_malohal.c index 47c4b7177c..476ffd9f6c 100644 --- a/src/add-ons/kernel/drivers/network/wlan/marvell88w8335/dev/malo/if_malohal.c +++ b/src/add-ons/kernel/drivers/network/wlan/marvell88w8335/dev/malo/if_malohal.c @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2007 Marvell Semiconductor, Inc. * Copyright (c) 2007 Sam Leffler, Errno Consulting @@ -33,7 +33,6 @@ #include #ifdef __FreeBSD__ -__FBSDID("$FreeBSD: releng/12.0/sys/dev/malo/if_malohal.c 326255 2017-11-27 14:52:40Z pfg $"); #endif #include @@ -178,13 +177,12 @@ fail: static void malo_hal_send_cmd(struct malo_hal *mh) { - uint32_t dummy; bus_dmamap_sync(mh->mh_dmat, mh->mh_dmamap, BUS_DMASYNC_PREREAD | BUS_DMASYNC_PREWRITE); malo_hal_write4(mh, MALO_REG_GEN_PTR, mh->mh_cmdaddr); - dummy = malo_hal_read4(mh, MALO_REG_INT_CODE); + malo_hal_read4(mh, MALO_REG_INT_CODE); malo_hal_write4(mh, MALO_REG_H2A_INTERRUPT_EVENTS, MALO_H2ARIC_BIT_DOOR_BELL); @@ -309,19 +307,18 @@ malo_hal_fw_reset(struct malo_hal *mh) static void malo_hal_trigger_pcicmd(struct malo_hal *mh) { - uint32_t dummy; bus_dmamap_sync(mh->mh_dmat, mh->mh_dmamap, BUS_DMASYNC_PREWRITE); malo_hal_write4(mh, MALO_REG_GEN_PTR, mh->mh_cmdaddr); - dummy = malo_hal_read4(mh, MALO_REG_INT_CODE); + malo_hal_read4(mh, MALO_REG_INT_CODE); malo_hal_write4(mh, MALO_REG_INT_CODE, 0x00); - dummy = malo_hal_read4(mh, MALO_REG_INT_CODE); + malo_hal_read4(mh, MALO_REG_INT_CODE); malo_hal_write4(mh, MALO_REG_H2A_INTERRUPT_EVENTS, MALO_H2ARIC_BIT_DOOR_BELL); - dummy = malo_hal_read4(mh, MALO_REG_INT_CODE); + malo_hal_read4(mh, MALO_REG_INT_CODE); } static int @@ -347,8 +344,7 @@ malo_hal_send_helper(struct malo_hal *mh, int bsize, { mh->mh_cmdbuf[0] = htole16(MALO_HOSTCMD_CODE_DNLD); mh->mh_cmdbuf[1] = htole16(bsize); - if (data != NULL) - memcpy(&mh->mh_cmdbuf[4], data , dsize); + memcpy(&mh->mh_cmdbuf[4], data , dsize); malo_hal_trigger_pcicmd(mh); @@ -411,8 +407,7 @@ malo_hal_send_main(struct malo_hal *mh, const void *data, size_t dsize, mh->mh_cmdbuf[1] = htole16(dsize); mh->mh_cmdbuf[2] = htole16(seqnum); mh->mh_cmdbuf[3] = 0; - if (data != NULL) - memcpy(&mh->mh_cmdbuf[4], data, dsize); + memcpy(&mh->mh_cmdbuf[4], data, dsize); malo_hal_trigger_pcicmd(mh); diff --git a/src/add-ons/kernel/drivers/network/wlan/marvell88w8335/dev/malo/if_malohal.h b/src/add-ons/kernel/drivers/network/wlan/marvell88w8335/dev/malo/if_malohal.h index e294641130..bd417f6482 100644 --- a/src/add-ons/kernel/drivers/network/wlan/marvell88w8335/dev/malo/if_malohal.h +++ b/src/add-ons/kernel/drivers/network/wlan/marvell88w8335/dev/malo/if_malohal.h @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2007 Marvell Semiconductor, Inc. * Copyright (c) 2007 Sam Leffler, Errno Consulting @@ -29,8 +29,6 @@ * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGES. - * - * $FreeBSD: releng/12.0/sys/dev/malo/if_malohal.h 326255 2017-11-27 14:52:40Z pfg $ */ #ifndef _DEV_MALOHAL_H @@ -48,7 +46,7 @@ /* * Calibration data builtin to the firmware. The firmware image * has a single set of calibration tables that we retrieve right - * after download. This can be overriden by the driver (e.g. for + * after download. This can be overridden by the driver (e.g. for * a different regdomain and/or tx power setup). */ struct malo_hal_caldata { @@ -223,7 +221,7 @@ int malo_hal_setmaxtxpwr(struct malo_hal *, uint16_t); int malo_hal_settxpower(struct malo_hal *, const struct malo_hal_channel *); int malo_hal_setpromisc(struct malo_hal *, int); int malo_hal_setassocid(struct malo_hal *, - const uint8_t[], uint16_t); + const uint8_t[IEEE80211_ADDR_LEN], uint16_t); void malo_hal_txstart(struct malo_hal *, int); void malo_hal_getisr(struct malo_hal *, uint32_t *); void malo_hal_cmddone(struct malo_hal *); diff --git a/src/add-ons/kernel/drivers/network/wlan/marvell88w8335/dev/malo/if_maloioctl.h b/src/add-ons/kernel/drivers/network/wlan/marvell88w8335/dev/malo/if_maloioctl.h index d4701f7bc4..5f240d076e 100644 --- a/src/add-ons/kernel/drivers/network/wlan/marvell88w8335/dev/malo/if_maloioctl.h +++ b/src/add-ons/kernel/drivers/network/wlan/marvell88w8335/dev/malo/if_maloioctl.h @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2007 Marvell Semiconductor, Inc. * Copyright (c) 2007 Sam Leffler, Errno Consulting @@ -29,8 +29,6 @@ * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGES. - * - * $FreeBSD: releng/12.0/sys/dev/malo/if_maloioctl.h 326255 2017-11-27 14:52:40Z pfg $ */ /* diff --git a/src/add-ons/kernel/drivers/network/wlan/marvell88w8363/dev/mwl/if_mwl.c b/src/add-ons/kernel/drivers/network/wlan/marvell88w8363/dev/mwl/if_mwl.c index 7e80299413..1b33eb23b4 100644 --- a/src/add-ons/kernel/drivers/network/wlan/marvell88w8363/dev/mwl/if_mwl.c +++ b/src/add-ons/kernel/drivers/network/wlan/marvell88w8363/dev/mwl/if_mwl.c @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2007-2009 Sam Leffler, Errno Consulting * Copyright (c) 2007-2008 Marvell Semiconductor, Inc. @@ -31,8 +31,6 @@ */ #include -__FBSDID("$FreeBSD: releng/12.0/sys/dev/mwl/if_mwl.c 331797 2018-03-30 18:50:13Z brooks $"); - /* * Driver for the Marvell 88W8363 Wireless LAN controller. */ @@ -41,9 +39,9 @@ __FBSDID("$FreeBSD: releng/12.0/sys/dev/mwl/if_mwl.c 331797 2018-03-30 18:50:13Z #include "opt_mwl.h" #include -#include +#include #include -#include +#include #include #include #include @@ -97,7 +95,7 @@ static void mwl_start(struct mwl_softc *); static int mwl_transmit(struct ieee80211com *, struct mbuf *); static int mwl_raw_xmit(struct ieee80211_node *, struct mbuf *, const struct ieee80211_bpf_params *); -static int mwl_media_change(struct ifnet *); +static int mwl_media_change(if_t); static void mwl_watchdog(void *); static int mwl_ioctl(struct ieee80211com *, u_long, void *); static void mwl_radar_proc(void *, int); @@ -183,7 +181,8 @@ static int mwl_getchannels(struct mwl_softc *); static void mwl_sysctlattach(struct mwl_softc *); static void mwl_announce(struct mwl_softc *); -SYSCTL_NODE(_hw, OID_AUTO, mwl, CTLFLAG_RD, 0, "Marvell driver parameters"); +SYSCTL_NODE(_hw, OID_AUTO, mwl, CTLFLAG_RD | CTLFLAG_MPSAFE, 0, + "Marvell driver parameters"); static int mwl_rxdesc = MWL_RXDESC; /* # rx desc's to allocate */ SYSCTL_INT(_hw_mwl, OID_AUTO, rxdesc, CTLFLAG_RW, &mwl_rxdesc, @@ -355,7 +354,7 @@ mwl_attach(uint16_t devid, struct mwl_softc *sc) taskqueue_start_threads(&sc->sc_tq, 1, PI_NET, "%s taskq", device_get_nameunit(sc->sc_dev)); - TASK_INIT(&sc->sc_rxtask, 0, mwl_rx_proc, sc); + NET_TASK_INIT(&sc->sc_rxtask, 0, mwl_rx_proc, sc); TASK_INIT(&sc->sc_radartask, 0, mwl_radar_proc, sc); TASK_INIT(&sc->sc_chanswitchtask, 0, mwl_chanswitch_proc, sc); TASK_INIT(&sc->sc_bawatchdogtask, 0, mwl_bawatchdog_proc, sc); @@ -450,7 +449,7 @@ mwl_attach(uint16_t devid, struct mwl_softc *sc) * format transmit record and optional padding between * this record and the payload. Ask the net80211 layer * to arrange this when encapsulating packets so we can - * add it efficiently. + * add it efficiently. */ ic->ic_headroom = sizeof(struct mwltxrec) - sizeof(struct ieee80211_frame); @@ -1467,7 +1466,7 @@ mwl_raw_xmit(struct ieee80211_node *ni, struct mbuf *m, } static int -mwl_media_change(struct ifnet *ifp) +mwl_media_change(if_t ifp) { struct ieee80211vap *vap; int error; @@ -1477,7 +1476,7 @@ mwl_media_change(struct ifnet *ifp) if (error != 0) return (error); - vap = ifp->if_softc; + vap = if_getsoftc(ifp); mwl_setrates(vap); return (0); } @@ -1737,14 +1736,14 @@ mwl_setmcastfilter(struct mwl_softc *sc) /* XXX Punt on ranges. */ if (nmc == MWL_HAL_MCAST_MAX || !IEEE80211_ADDR_EQ(enm->enm_addrlo, enm->enm_addrhi)) { - ifp->if_flags |= IFF_ALLMULTI; + if_setflagsbit(ifp, IFF_ALLMULTI, 0); return; } IEEE80211_ADDR_COPY(mp, enm->enm_addrlo); mp += IEEE80211_ADDR_LEN, nmc++; ETHER_NEXT_MULTI(estep, enm); } - ifp->if_flags &= ~IFF_ALLMULTI; + if_setflagsbit(ifp, 0, IFF_ALLMULTI); mwl_hal_setmcast(sc->sc_mh, nmc, macs); #endif } @@ -1955,7 +1954,7 @@ mwl_desc_setup(struct mwl_softc *sc, const char *name, /* allocate descriptors */ error = bus_dmamem_alloc(dd->dd_dmat, (void**) &dd->dd_desc, - BUS_DMA_NOWAIT | BUS_DMA_COHERENT, + BUS_DMA_NOWAIT | BUS_DMA_COHERENT, &dd->dd_dmamap); if (error != 0) { device_printf(sc->sc_dev, "unable to alloc memory for %u %s descriptors, " @@ -2000,7 +1999,7 @@ mwl_desc_cleanup(struct mwl_softc *sc, struct mwl_descdma *dd) memset(dd, 0, sizeof(*dd)); } -/* +/* * Construct a tx q's free list. The order of entries on * the list must reflect the physical layout of tx descriptors * because the firmware pre-fetches descriptors. @@ -2137,7 +2136,7 @@ mwl_rxdma_setup(struct mwl_softc *sc) } error = bus_dmamem_alloc(sc->sc_rxdmat, (void**) &sc->sc_rxmem, - BUS_DMA_NOWAIT | BUS_DMA_COHERENT, + BUS_DMA_NOWAIT | BUS_DMA_COHERENT, &sc->sc_rxmap); if (error != 0) { device_printf(sc->sc_dev, "could not alloc %ju bytes of rx DMA memory\n", @@ -2421,9 +2420,9 @@ mwl_node_getmimoinfo(const struct ieee80211_node *ni, (_dst) = (_dst) > 64 ? 127 : ((_dst) << 1); \ } while (0) static const int8_t logdbtbl[32] = { - 0, 0, 24, 38, 48, 56, 62, 68, - 72, 76, 80, 83, 86, 89, 92, 94, - 96, 98, 100, 102, 104, 106, 107, 109, + 0, 0, 24, 38, 48, 56, 62, 68, + 72, 76, 80, 83, 86, 89, 92, 94, + 96, 98, 100, 102, 104, 106, 107, 109, 110, 112, 113, 115, 116, 117, 118, 119 }; const struct mwl_node *mn = MWL_NODE_CONST(ni); @@ -2638,7 +2637,7 @@ mwl_rx_proc(void *arg, int npending) * Note the firmware will not advance to the next * descriptor with a dma buffer so we must mimic * this or we'll get out of sync. - */ + */ DPRINTF(sc, MWL_DEBUG_ANY, "%s: rx buf w/o dma memory\n", __func__); (void) mwl_rxbuf_init(sc, bf); @@ -3075,7 +3074,7 @@ mwl_tx_start(struct mwl_softc *sc, struct ieee80211_node *ni, struct mwl_txbuf * struct ieee80211com *ic = &sc->sc_ic; struct ieee80211vap *vap = ni->ni_vap; int error, iswep, ismcast; - int hdrlen, copyhdrlen, pktlen; + int hdrlen, pktlen; struct mwl_txdesc *ds; struct mwl_txq *txq; struct ieee80211_frame *wh; @@ -3090,12 +3089,9 @@ mwl_tx_start(struct mwl_softc *sc, struct ieee80211_node *ni, struct mwl_txbuf * iswep = wh->i_fc[1] & IEEE80211_FC1_PROTECTED; ismcast = IEEE80211_IS_MULTICAST(wh->i_addr1); hdrlen = ieee80211_anyhdrsize(wh); - copyhdrlen = hdrlen; pktlen = m0->m_pkthdr.len; if (IEEE80211_QOS_HAS_SEQ(wh)) { qos = *(uint16_t *)ieee80211_getqos(wh); - if (IEEE80211_IS_DSTODS(wh)) - copyhdrlen -= sizeof(qos); } else qos = 0; @@ -3328,7 +3324,6 @@ mwl_tx_processq(struct mwl_softc *sc, struct mwl_txq *txq) struct mwl_txbuf *bf; struct mwl_txdesc *ds; struct ieee80211_node *ni; - struct mwl_node *an; int nreaped; uint32_t status; @@ -3356,7 +3351,6 @@ mwl_tx_processq(struct mwl_softc *sc, struct mwl_txq *txq) #endif ni = bf->bf_node; if (ni != NULL) { - an = MWL_NODE(ni); status = le32toh(ds->Status); if (status & EAGLE_TXD_STATUS_OK) { uint16_t Format = le16toh(ds->Format); @@ -3445,7 +3439,7 @@ mwl_tx_draintxq(struct mwl_softc *sc, struct mwl_txq *txq) { struct ieee80211_node *ni; struct mwl_txbuf *bf; - u_int ix; + u_int ix __unused; /* * NB: this assumes output has been stopped and @@ -3594,7 +3588,7 @@ mwl_addba_request(struct ieee80211_node *ni, struct ieee80211_tx_ampdu *tap, #if MWL_MAXBA > 0 if (mn->mn_ba[0].bastream == NULL) bas = &mn->mn_ba[0]; - else + else #endif { /* sta already has max BA streams */ @@ -3873,7 +3867,7 @@ mwl_set_channel(struct ieee80211com *ic) (void) mwl_chan_set(sc, ic->ic_curchan); } -/* +/* * Handle a channel switch request. We inform the firmware * and mark the global state to suppress various actions. * NB: we issue only one request to the fw; we may be called @@ -4018,7 +4012,7 @@ mkpeerinfo(MWL_HAL_PEERINFO *pi, const struct ieee80211_node *ni) /* HT capabilities, etc */ pi->HTCapabilitiesInfo = ni->ni_htcap; /* XXX pi.HTCapabilitiesInfo */ - pi->MacHTParamInfo = ni->ni_htparam; + pi->MacHTParamInfo = ni->ni_htparam; pi->HTRateBitMap = get_htrate_bitmap(&ni->ni_htrates); pi->AddHtInfo.ControlChan = ni->ni_htctlchan; pi->AddHtInfo.AddChan = ni->ni_ht2ndchan; @@ -4091,7 +4085,7 @@ mwl_newstate(struct ieee80211vap *vap, enum ieee80211_state nstate, int arg) int error; DPRINTF(sc, MWL_DEBUG_STATE, "%s: %s: %s -> %s\n", - vap->iv_ifp->if_xname, __func__, + if_name(vap->iv_ifp), __func__, ieee80211_state_name[ostate], ieee80211_state_name[nstate]); callout_stop(&sc->sc_timer); @@ -4153,7 +4147,7 @@ mwl_newstate(struct ieee80211vap *vap, enum ieee80211_state nstate, int arg) DPRINTF(sc, MWL_DEBUG_STATE, "%s: %s(RUN): iv_flags 0x%08x bintvl %d bssid %s " "capinfo 0x%04x chan %d\n", - vap->iv_ifp->if_xname, __func__, vap->iv_flags, + if_name(vap->iv_ifp), __func__, vap->iv_flags, ni->ni_intval, ether_sprintf(ni->ni_bssid), ni->ni_capinfo, ieee80211_chan2ieee(ic, ic->ic_curchan)); @@ -4186,7 +4180,7 @@ mwl_newstate(struct ieee80211vap *vap, enum ieee80211_state nstate, int arg) break; case IEEE80211_M_STA: DPRINTF(sc, MWL_DEBUG_STATE, "%s: %s: aid 0x%x\n", - vap->iv_ifp->if_xname, __func__, ni->ni_associd); + if_name(vap->iv_ifp), __func__, ni->ni_associd); /* * Set state now that we're associated. */ @@ -4199,7 +4193,7 @@ mwl_newstate(struct ieee80211vap *vap, enum ieee80211_state nstate, int arg) break; case IEEE80211_M_WDS: DPRINTF(sc, MWL_DEBUG_STATE, "%s: %s: bssid %s\n", - vap->iv_ifp->if_xname, __func__, + if_name(vap->iv_ifp), __func__, ether_sprintf(ni->ni_bssid)); mwl_seteapolformat(vap); break; @@ -4346,7 +4340,7 @@ mwl_setregdomain(struct ieee80211com *ic, struct ieee80211_regdomain *rd, __func__, c->ic_ieee, c->ic_freq, c->ic_flags); return EINVAL; } - /* + /* * Verify channel has cal data and cap tx power. */ hc = findhalchannel(ci, c->ic_ieee); @@ -4492,7 +4486,7 @@ mwl_printrxbuf(const struct mwl_rxbuf *bf, u_int ix) printf("R[%2u] (DS.V:%p DS.P:0x%jx) NEXT:%08x DATA:%08x RC:%02x%s\n" " STAT:%02x LEN:%04x RSSI:%02x CHAN:%02x RATE:%02x QOS:%04x HT:%04x\n", ix, ds, (uintmax_t)bf->bf_daddr, le32toh(ds->pPhysNext), - le32toh(ds->pPhysBuffData), ds->RxControl, + le32toh(ds->pPhysBuffData), ds->RxControl, ds->RxControl != EAGLE_RXD_CTRL_DRIVER_OWN ? "" : (status & EAGLE_RXD_STATUS_OK) ? " *" : " !", ds->Status, le16toh(ds->PktLen), ds->RSSI, ds->Channel, @@ -4732,9 +4726,9 @@ mwl_ioctl(struct ieee80211com *ic, u_long cmd, void *data) #if 0 /* NB: embed these numbers to get a consistent view */ sc->sc_stats.mst_tx_packets = - ifp->if_get_counter(ifp, IFCOUNTER_OPACKETS); + if_get_counter(ifp, IFCOUNTER_OPACKETS); sc->sc_stats.mst_rx_packets = - ifp->if_get_counter(ifp, IFCOUNTER_IPACKETS); + if_get_counter(ifp, IFCOUNTER_IPACKETS); #endif /* * NB: Drop the softc lock in case of a page fault; @@ -4751,7 +4745,7 @@ mwl_ioctl(struct ieee80211com *ic, u_long cmd, void *data) case SIOCGMVRESET: /* XXX check privs */ MWL_LOCK(sc); - error = mwl_ioctl_reset(sc,(struct mwl_diag *) ifr); + error = mwl_ioctl_reset(sc,(struct mwl_diag *) ifr); MWL_UNLOCK(sc); break; #endif /* MWL_DIAGAPI */ @@ -4787,9 +4781,9 @@ mwl_sysctlattach(struct mwl_softc *sc) struct sysctl_oid *tree = device_get_sysctl_tree(sc->sc_dev); sc->sc_debug = mwl_debug; - SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, - "debug", CTLTYPE_INT | CTLFLAG_RW, sc, 0, - mwl_sysctl_debug, "I", "control debugging printfs"); + SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, "debug", + CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc, 0, + mwl_sysctl_debug, "I", "control debugging printfs"); #endif } diff --git a/src/add-ons/kernel/drivers/network/wlan/marvell88w8363/dev/mwl/if_mwl_pci.c b/src/add-ons/kernel/drivers/network/wlan/marvell88w8363/dev/mwl/if_mwl_pci.c index a8899a00db..2ac2be5249 100644 --- a/src/add-ons/kernel/drivers/network/wlan/marvell88w8363/dev/mwl/if_mwl_pci.c +++ b/src/add-ons/kernel/drivers/network/wlan/marvell88w8363/dev/mwl/if_mwl_pci.c @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2007-2009 Sam Leffler, Errno Consulting * Copyright (c) 2007-2009 Marvell Semiconductor, Inc. @@ -32,7 +32,6 @@ #include #ifdef __FreeBSD__ -__FBSDID("$FreeBSD: releng/12.0/sys/dev/mwl/if_mwl_pci.c 326255 2017-11-27 14:52:40Z pfg $"); #endif /* @@ -281,13 +280,14 @@ static device_method_t mwl_pci_methods[] = { DEVMETHOD(device_resume, mwl_pci_resume), { 0,0 } }; + static driver_t mwl_pci_driver = { "mwl", mwl_pci_methods, sizeof (struct mwl_pci_softc) }; -static devclass_t mwl_devclass; -DRIVER_MODULE(mwl, pci, mwl_pci_driver, mwl_devclass, 0, 0); + +DRIVER_MODULE(mwl, pci, mwl_pci_driver, 0, 0); MODULE_VERSION(mwl, 1); MODULE_DEPEND(mwl, wlan, 1, 1, 1); /* 802.11 media layer */ MODULE_DEPEND(mwl, firmware, 1, 1, 1); diff --git a/src/add-ons/kernel/drivers/network/wlan/marvell88w8363/dev/mwl/if_mwlioctl.h b/src/add-ons/kernel/drivers/network/wlan/marvell88w8363/dev/mwl/if_mwlioctl.h index 60ddcf9b53..75b0db89a4 100644 --- a/src/add-ons/kernel/drivers/network/wlan/marvell88w8363/dev/mwl/if_mwlioctl.h +++ b/src/add-ons/kernel/drivers/network/wlan/marvell88w8363/dev/mwl/if_mwlioctl.h @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2007-2009 Sam Leffler, Errno Consulting * Copyright (c) 2007-2009 Marvell Semiconductor, Inc. @@ -28,8 +28,6 @@ * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGES. - * - * $FreeBSD: releng/12.0/sys/dev/mwl/if_mwlioctl.h 326255 2017-11-27 14:52:40Z pfg $ */ /* diff --git a/src/add-ons/kernel/drivers/network/wlan/marvell88w8363/dev/mwl/if_mwlvar.h b/src/add-ons/kernel/drivers/network/wlan/marvell88w8363/dev/mwl/if_mwlvar.h index de171edebb..9691e676f4 100644 --- a/src/add-ons/kernel/drivers/network/wlan/marvell88w8363/dev/mwl/if_mwlvar.h +++ b/src/add-ons/kernel/drivers/network/wlan/marvell88w8363/dev/mwl/if_mwlvar.h @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2007-2009 Sam Leffler, Errno Consulting * Copyright (c) 2007-2009 Marvell Semiconductor, Inc. @@ -28,8 +28,6 @@ * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGES. - * - * $FreeBSD: releng/12.0/sys/dev/mwl/if_mwlvar.h 326255 2017-11-27 14:52:40Z pfg $ */ /* diff --git a/src/add-ons/kernel/drivers/network/wlan/marvell88w8363/dev/mwl/mwldiag.h b/src/add-ons/kernel/drivers/network/wlan/marvell88w8363/dev/mwl/mwldiag.h index fcb13b093e..0d34c179c3 100644 --- a/src/add-ons/kernel/drivers/network/wlan/marvell88w8363/dev/mwl/mwldiag.h +++ b/src/add-ons/kernel/drivers/network/wlan/marvell88w8363/dev/mwl/mwldiag.h @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2007-2009 Sam Leffler, Errno Consulting * Copyright (c) 2007-2009 Marvell Semiconductor, Inc. @@ -28,8 +28,6 @@ * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGES. - * - * $FreeBSD: releng/12.0/sys/dev/mwl/mwldiag.h 326255 2017-11-27 14:52:40Z pfg $ */ #ifndef _MWL_DIAG_H_ diff --git a/src/add-ons/kernel/drivers/network/wlan/marvell88w8363/dev/mwl/mwlhal.c b/src/add-ons/kernel/drivers/network/wlan/marvell88w8363/dev/mwl/mwlhal.c index 439095106d..db466b9877 100644 --- a/src/add-ons/kernel/drivers/network/wlan/marvell88w8363/dev/mwl/mwlhal.c +++ b/src/add-ons/kernel/drivers/network/wlan/marvell88w8363/dev/mwl/mwlhal.c @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2007-2009 Sam Leffler, Errno Consulting * Copyright (c) 2007-2009 Marvell Semiconductor, Inc. @@ -28,12 +28,10 @@ * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGES. - * - * $FreeBSD: releng/12.0/sys/dev/mwl/mwlhal.c 326255 2017-11-27 14:52:40Z pfg $ */ #include -#include +#include #include #include #include @@ -192,7 +190,7 @@ static void dumpresult(struct mwl_hal_priv *, int showresult); #endif /* MWLHAL_DEBUG */ SYSCTL_DECL(_hw_mwl); -static SYSCTL_NODE(_hw_mwl, OID_AUTO, hal, CTLFLAG_RD, 0, +static SYSCTL_NODE(_hw_mwl, OID_AUTO, hal, CTLFLAG_RD | CTLFLAG_MPSAFE, 0, "Marvell HAL parameters"); static __inline void @@ -318,7 +316,7 @@ mwl_hal_attach(device_t dev, uint16_t devid, /* allocate descriptors */ error = bus_dmamem_alloc(mh->mh_dmat, (void**) &mh->mh_cmdbuf, - BUS_DMA_NOWAIT | BUS_DMA_COHERENT, + BUS_DMA_NOWAIT | BUS_DMA_COHERENT, &mh->mh_dmamap); if (error != 0) { device_printf(dev, "unable to allocate memory for cmd buffer, " @@ -622,11 +620,9 @@ mwl_hal_sethwdma(struct mwl_hal *mh0, const struct mwl_hal_txrxdma *dma) pCmd->TotalRxWcb = htole32(1); /* XXX */ pCmd->RxPdWrPtr = htole32(dma->rxDescRead); pCmd->Flags = htole32(SET_HW_SPEC_HOSTFORM_BEACON -/* #ifdef MWL_HOST_PS_SUPPORT | SET_HW_SPEC_HOST_POWERSAVE #endif -*/ | SET_HW_SPEC_HOSTFORM_PROBERESP); /* disable multi-bss operation for A1-A4 parts */ if (mh->mh_revs.mh_macRev < 5) @@ -834,7 +830,7 @@ mwl_hal_setradardetection(struct mwl_hal *mh0, MWL_HAL_RADAR action) retval = mwlExecuteCmd(mh, HostCmd_CMD_802_11H_DETECT_RADAR); MWL_HAL_UNLOCK(mh); return retval; -} +} /* * Convert public channel flags definition to a @@ -984,7 +980,7 @@ mwl_hal_settxrate(struct mwl_hal_vap *vap, MWL_HAL_TXRATE_HANDLING handling, n++; } pCmd->EntryCount = htole32(n); - } else + } else pCmd->Action = htole32(HostCmd_ACT_NOT_USE_FIXED_RATE); retval = mwlExecuteCmd(mh, HostCmd_CMD_SET_FIXED_RATE); @@ -1384,7 +1380,7 @@ bastream_check_available(struct mwl_hal_vap *vap, int qid, _VCMD_SETUP(vap, pCmd, HostCmd_FW_BASTREAM, HostCmd_CMD_BASTREAM); pCmd->ActionType = htole32(BaCheckCreateStream); pCmd->BaInfo.CreateParams.BarThrs = htole32(63); - pCmd->BaInfo.CreateParams.WindowSize = htole32(64); + pCmd->BaInfo.CreateParams.WindowSize = htole32(64); pCmd->BaInfo.CreateParams.IdleThrs = htole32(0x22000); IEEE80211_ADDR_COPY(&pCmd->BaInfo.CreateParams.PeerMacAddr[0], Macaddr); pCmd->BaInfo.CreateParams.DialogToken = 10; @@ -1568,7 +1564,7 @@ mwl_hal_bastream_get_seqno(struct mwl_hal *mh0, *pseqno = le16toh(pCmd->SeqNo); MWL_HAL_UNLOCK(mh); return retval; -} +} int mwl_hal_getwatchdogbitmap(struct mwl_hal *mh0, uint8_t bitmap[1]) @@ -1610,7 +1606,7 @@ mwl_hal_setaggampduratemode(struct mwl_hal *mh0, int mode, int threshold) pCmd->Threshold = htole32(threshold); retval = mwlExecuteCmd(mh, HostCmd_CMD_AMPDU_RETRY_RATEDROP_MODE); - MWL_HAL_UNLOCK(mh); + MWL_HAL_UNLOCK(mh); return retval; } @@ -1627,7 +1623,7 @@ mwl_hal_getaggampduratemode(struct mwl_hal *mh0, int *mode, int *threshold) pCmd->Action = htole16(0); retval = mwlExecuteCmd(mh, HostCmd_CMD_AMPDU_RETRY_RATEDROP_MODE); - MWL_HAL_UNLOCK(mh); + MWL_HAL_UNLOCK(mh); *mode = le32toh(pCmd->Option); *threshold = le32toh(pCmd->Threshold); return retval; @@ -1649,7 +1645,7 @@ mwl_hal_setcfend(struct mwl_hal *mh0, int ena) pCmd->Enable = htole32(ena); retval = mwlExecuteCmd(mh, HostCmd_CMD_CFEND_ENABLE); - MWL_HAL_UNLOCK(mh); + MWL_HAL_UNLOCK(mh); return retval; } @@ -1685,7 +1681,7 @@ cvtPeerInfo(PeerInfo_t *to, const MWL_HAL_PEERINFO *from) /* XXX station id must be in [0..63] */ int mwl_hal_newstation(struct mwl_hal_vap *vap, - const uint8_t addr[IEEE80211_ADDR_LEN], uint16_t aid, uint16_t sid, + const uint8_t addr[IEEE80211_ADDR_LEN], uint16_t aid, uint16_t sid, const MWL_HAL_PEERINFO *peer, int isQosSta, int wmeInfo) { struct mwl_hal_priv *mh = MWLVAP(vap); @@ -2006,7 +2002,7 @@ mwlGetCalTable(struct mwl_hal_priv *mh, uint8_t annex, uint8_t index) pCmd->calTbl[0] != annex && annex != 0 && annex != 255) retval = EIO; return retval; -} +} /* * Calculate the max tx power from the channel's cal data. @@ -2211,7 +2207,7 @@ mwl_hal_GetBeacon(struct mwl_hal *mh0, uint8_t *pBcn, uint16_t *pLen) } MWL_HAL_UNLOCK(mh); return retval; -} +} int mwl_hal_SetRifs(struct mwl_hal *mh0, uint8_t QNum) @@ -2347,13 +2343,12 @@ mwl_hal_getdiagstate(struct mwl_hal *mh0, int request, static void mwlSendCmd(struct mwl_hal_priv *mh) { - uint32_t dummy; bus_dmamap_sync(mh->mh_dmat, mh->mh_dmamap, BUS_DMASYNC_PREREAD | BUS_DMASYNC_PREWRITE); WR4(mh, MACREG_REG_GEN_PTR, mh->mh_cmdaddr); - dummy = RD4(mh, MACREG_REG_INT_CODE); + RD4(mh, MACREG_REG_INT_CODE); WR4(mh, MACREG_REG_H2A_INTERRUPT_EVENTS, MACREG_H2ARIC_BIT_DOOR_BELL); } @@ -2423,9 +2418,9 @@ mwlExecuteCmd(struct mwl_hal_priv *mh, unsigned short cmd) /* * Firmware download support. */ -#define FW_DOWNLOAD_BLOCK_SIZE 256 +#define FW_DOWNLOAD_BLOCK_SIZE 256 #define FW_CHECK_USECS (5*1000) /* 5ms */ -#define FW_MAX_NUM_CHECKS 200 +#define FW_MAX_NUM_CHECKS 200 #if 0 /* XXX read f/w from file */ @@ -2448,18 +2443,17 @@ mwlFwReset(struct mwl_hal_priv *mh) static void mwlTriggerPciCmd(struct mwl_hal_priv *mh) { - uint32_t dummy; bus_dmamap_sync(mh->mh_dmat, mh->mh_dmamap, BUS_DMASYNC_PREWRITE); WR4(mh, MACREG_REG_GEN_PTR, mh->mh_cmdaddr); - dummy = RD4(mh, MACREG_REG_INT_CODE); + RD4(mh, MACREG_REG_INT_CODE); WR4(mh, MACREG_REG_INT_CODE, 0x00); - dummy = RD4(mh, MACREG_REG_INT_CODE); + RD4(mh, MACREG_REG_INT_CODE); WR4(mh, MACREG_REG_H2A_INTERRUPT_EVENTS, MACREG_H2ARIC_BIT_DOOR_BELL); - dummy = RD4(mh, MACREG_REG_INT_CODE); + RD4(mh, MACREG_REG_INT_CODE); } static int diff --git a/src/add-ons/kernel/drivers/network/wlan/marvell88w8363/dev/mwl/mwlhal.h b/src/add-ons/kernel/drivers/network/wlan/marvell88w8363/dev/mwl/mwlhal.h index 0184edfcc0..252256ed1d 100644 --- a/src/add-ons/kernel/drivers/network/wlan/marvell88w8363/dev/mwl/mwlhal.h +++ b/src/add-ons/kernel/drivers/network/wlan/marvell88w8363/dev/mwl/mwlhal.h @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2007-2009 Sam Leffler, Errno Consulting * Copyright (c) 2007-2009 Marvell Semiconductor, Inc. @@ -28,8 +28,6 @@ * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGES. - * - * $FreeBSD: releng/12.0/sys/dev/mwl/mwlhal.h 326255 2017-11-27 14:52:40Z pfg $ */ #ifndef _MWL_HAL_H_ diff --git a/src/add-ons/kernel/drivers/network/wlan/marvell88w8363/dev/mwl/mwlreg.h b/src/add-ons/kernel/drivers/network/wlan/marvell88w8363/dev/mwl/mwlreg.h index 3086510edb..e3eb96a0ff 100644 --- a/src/add-ons/kernel/drivers/network/wlan/marvell88w8363/dev/mwl/mwlreg.h +++ b/src/add-ons/kernel/drivers/network/wlan/marvell88w8363/dev/mwl/mwlreg.h @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2007-2009 Sam Leffler, Errno Consulting * Copyright (c) 2007-2009 Marvell Semiconductor, Inc. @@ -28,8 +28,6 @@ * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGES. - * - * $FreeBSD: releng/12.0/sys/dev/mwl/mwlreg.h 326255 2017-11-27 14:52:40Z pfg $ */ /* diff --git a/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/ral/if_ral_pci.c b/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/ral/if_ral_pci.c index e1a89bde27..69518f573f 100644 --- a/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/ral/if_ral_pci.c +++ b/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/ral/if_ral_pci.c @@ -16,8 +16,6 @@ */ #include -__FBSDID("$FreeBSD$"); - /* * PCI/Cardbus front-end for the Ralink RT2560/RT2561/RT2561S/RT2661 driver. */ @@ -176,9 +174,7 @@ static driver_t ral_pci_driver = { sizeof (struct ral_pci_softc) }; -static devclass_t ral_devclass; - -DRIVER_MODULE(ral, pci, ral_pci_driver, ral_devclass, NULL, NULL); +DRIVER_MODULE(ral, pci, ral_pci_driver, NULL, NULL); MODULE_PNP_INFO("U16:vendor;U16:device;D:#", pci, ral, ral_pci_ids, nitems(ral_pci_ids) - 1); diff --git a/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/ral/rt2560.c b/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/ral/rt2560.c index 4627e53dfb..e2bf644b63 100644 --- a/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/ral/rt2560.c +++ b/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/ral/rt2560.c @@ -1,4 +1,3 @@ -/* $FreeBSD$ */ /*- * Copyright (c) 2005, 2006 @@ -18,8 +17,6 @@ */ #include -__FBSDID("$FreeBSD$"); - /*- * Ralink Technology RT2560 chipset driver * http://www.ralinktech.com/ @@ -2454,7 +2451,6 @@ rt2560_read_config(struct rt2560_softc *sc) sc->rssi_corr, val); } - static void rt2560_scan_start(struct ieee80211com *ic) { diff --git a/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/ral/rt2560reg.h b/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/ral/rt2560reg.h index c41149c991..af95a7626b 100644 --- a/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/ral/rt2560reg.h +++ b/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/ral/rt2560reg.h @@ -1,4 +1,3 @@ -/* $FreeBSD$ */ /*- * Copyright (c) 2005, 2006 diff --git a/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/ral/rt2560var.h b/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/ral/rt2560var.h index 51c5372aa6..e040a6b808 100644 --- a/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/ral/rt2560var.h +++ b/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/ral/rt2560var.h @@ -1,4 +1,3 @@ -/* $FreeBSD$ */ /*- * Copyright (c) 2005, 2006 diff --git a/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/ral/rt2661.c b/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/ral/rt2661.c index 23df5d7e19..aae0f035c9 100644 --- a/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/ral/rt2661.c +++ b/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/ral/rt2661.c @@ -1,4 +1,3 @@ -/* $FreeBSD$ */ /*- * Copyright (c) 2006 @@ -18,8 +17,6 @@ */ #include -__FBSDID("$FreeBSD$"); - /*- * Ralink Technology RT2561, RT2561S and RT2661 chipset driver * http://www.ralinktech.com/ @@ -1442,7 +1439,7 @@ rt2661_tx_data(struct rt2661_softc *sc, struct mbuf *m0, } rate &= IEEE80211_RATE_VAL; - if (wh->i_fc[0] & IEEE80211_FC0_SUBTYPE_QOS) + if (wh->i_fc[0] & IEEE80211_FC0_SUBTYPE_QOS_DATA) noack = !! ieee80211_wme_vap_ac_is_noack(vap, ac); if (wh->i_fc[1] & IEEE80211_FC1_PROTECTED) { diff --git a/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/ral/rt2661reg.h b/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/ral/rt2661reg.h index 53f9bcde6d..1aeffd7d2f 100644 --- a/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/ral/rt2661reg.h +++ b/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/ral/rt2661reg.h @@ -1,4 +1,3 @@ -/* $FreeBSD$ */ /*- * Copyright (c) 2006 diff --git a/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/ral/rt2661var.h b/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/ral/rt2661var.h index 9871bd9454..0f6a6c16c5 100644 --- a/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/ral/rt2661var.h +++ b/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/ral/rt2661var.h @@ -1,4 +1,3 @@ -/* $FreeBSD$ */ /*- * Copyright (c) 2005 diff --git a/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/ral/rt2860.c b/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/ral/rt2860.c index 869bbc544a..683fb6cc5d 100644 --- a/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/ral/rt2860.c +++ b/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/ral/rt2860.c @@ -18,8 +18,6 @@ */ #include -__FBSDID("$FreeBSD$"); - /*- * Ralink Technology RT2860/RT3090/RT3390/RT3562/RT5390/RT5392 chipset driver * http://www.ralinktech.com/ @@ -1469,7 +1467,7 @@ rt2860_tx(struct rt2860_softc *sc, struct mbuf *m, struct ieee80211_node *ni) bus_dma_segment_t *seg; u_int hdrlen; uint16_t qos, dur; - uint8_t type, qsel, mcs, pid, tid, qid; + uint8_t type, qsel, mcs, pid, qid; int i, nsegs, ntxds, pad, rate, ridx, error; /* the data pool contains at least one element, pick the first */ @@ -1506,10 +1504,8 @@ rt2860_tx(struct rt2860_softc *sc, struct mbuf *m, struct ieee80211_node *ni) qid = M_WME_GETAC(m); if (IEEE80211_QOS_HAS_SEQ(wh)) { qos = ((const struct ieee80211_qosframe *)wh)->i_qos[0]; - tid = qos & IEEE80211_QOS_TID; } else { qos = 0; - tid = 0; } ring = &sc->txq[qid]; ridx = ieee80211_legacy_rate_lookup(ic->ic_rt, rate); @@ -1743,7 +1739,7 @@ rt2860_tx_raw(struct rt2860_softc *sc, struct mbuf *m, bus_dma_segment_t *seg; u_int hdrlen; uint16_t dur; - uint8_t type, qsel, mcs, pid, tid, qid; + uint8_t qsel, mcs, pid, qid; int i, nsegs, ntxds, pad, rate, ridx, error; /* the data pool contains at least one element, pick the first */ @@ -1751,7 +1747,6 @@ rt2860_tx_raw(struct rt2860_softc *sc, struct mbuf *m, wh = mtod(m, struct ieee80211_frame *); hdrlen = ieee80211_hdrsize(wh); - type = wh->i_fc[0] & IEEE80211_FC0_TYPE_MASK; /* Choose a TX rate index. */ rate = params->ibp_rate0; @@ -1764,7 +1759,6 @@ rt2860_tx_raw(struct rt2860_softc *sc, struct mbuf *m, } qid = params->ibp_pri & 3; - tid = 0; ring = &sc->txq[qid]; /* get MCS code from rate index */ diff --git a/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/ral/rt2860reg.h b/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/ral/rt2860reg.h index 52fe14096f..e6cfd0165f 100644 --- a/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/ral/rt2860reg.h +++ b/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/ral/rt2860reg.h @@ -15,7 +15,6 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * * $OpenBSD: rt2860reg.h,v 1.30 2010/05/10 18:17:10 damien Exp $ - * $FreeBSD$ */ #define RT2860_NOISE_FLOOR -95 diff --git a/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/ral/rt2860var.h b/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/ral/rt2860var.h index 73daf8b5ab..a1c831b734 100644 --- a/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/ral/rt2860var.h +++ b/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/ral/rt2860var.h @@ -15,7 +15,6 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * * $OpenBSD: rt2860var.h,v 1.20 2010/09/07 16:21:42 deraadt Exp $ - * $FreeBSD$ */ #define RT2860_TX_RING_COUNT 64 diff --git a/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/usb/wlan/if_rum.c b/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/usb/wlan/if_rum.c index cdef5ee593..2720f2ffed 100644 --- a/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/usb/wlan/if_rum.c +++ b/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/usb/wlan/if_rum.c @@ -1,4 +1,3 @@ -/* $FreeBSD$ */ /*- * Copyright (c) 2005-2007 Damien Bergamini @@ -20,8 +19,6 @@ */ #include -__FBSDID("$FreeBSD$"); - /*- * Ralink Technology RT2501USB/RT2601USB chipset driver * http://www.ralinktech.com.tw/ @@ -722,10 +719,12 @@ rum_vap_delete(struct ieee80211vap *vap) struct rum_vap *rvp = RUM_VAP(vap); struct ieee80211com *ic = vap->iv_ic; struct rum_softc *sc = ic->ic_softc; + int i; /* Put vap into INIT state. */ ieee80211_new_state(vap, IEEE80211_S_INIT, -1); - ieee80211_draintask(ic, &vap->iv_nstate_task); + for (i = 0; i < NET80211_IV_NSTATE_NUM; i++) + ieee80211_draintask(ic, &vap->iv_nstate_task[i]); RUM_LOCK(sc); /* Cancel any unfinished Tx. */ @@ -1076,7 +1075,7 @@ rum_bulk_write_callback(struct usb_xfer *xfer, usb_error_t error) struct rum_tx_data *data; struct mbuf *m; struct usb_page_cache *pc; - unsigned int len; + unsigned len; int actlen, sumlen; usbd_xfer_status(xfer, &actlen, &sumlen, NULL, NULL); @@ -1169,7 +1168,6 @@ rum_bulk_read_callback(struct usb_xfer *xfer, usb_error_t error) struct ieee80211com *ic = &sc->sc_ic; struct ieee80211_frame_min *wh; struct ieee80211_node *ni; - struct epoch_tracker et; struct mbuf *m = NULL; struct usb_page_cache *pc; uint32_t flags; @@ -1288,7 +1286,6 @@ tr_setup: else ni = NULL; - NET_EPOCH_ENTER(et); if (ni != NULL) { (void) ieee80211_input(ni, m, rssi, RT2573_NOISE_FLOOR); @@ -1296,7 +1293,6 @@ tr_setup: } else (void) ieee80211_input_all(ic, m, rssi, RT2573_NOISE_FLOOR); - NET_EPOCH_EXIT(et); } RUM_LOCK(sc); rum_start(sc); @@ -1528,7 +1524,7 @@ rum_tx_mgt(struct rum_softc *sc, struct mbuf *m0, struct ieee80211_node *ni) dur = ieee80211_ack_duration(ic->ic_rt, tp->mgmtrate, ic->ic_flags & IEEE80211_F_SHPREAMBLE); - *(uint16_t *)wh->i_dur = htole16(dur); + USETW(wh->i_dur, dur); /* tell hardware to add timestamp for probe responses */ if (type == IEEE80211_FC0_TYPE_MGT && @@ -1711,7 +1707,7 @@ rum_tx_data(struct rum_softc *sc, struct mbuf *m0, struct ieee80211_node *ni) dur = ieee80211_ack_duration(ic->ic_rt, rate, ic->ic_flags & IEEE80211_F_SHPREAMBLE); - *(uint16_t *)wh->i_dur = htole16(dur); + USETW(wh->i_dur, dur); } rum_setup_tx_desc(sc, &data->desc, k, flags, xflags, ac, hdrlen, @@ -2490,7 +2486,7 @@ rum_read_eeprom(struct rum_softc *sc) static int rum_bbp_wakeup(struct rum_softc *sc) { - unsigned int ntries; + unsigned ntries; for (ntries = 0; ntries < 100; ntries++) { if (rum_read(sc, RT2573_MAC_CSR12) & 8) @@ -3294,9 +3290,7 @@ static driver_t rum_driver = { .size = sizeof(struct rum_softc), }; -static devclass_t rum_devclass; - -DRIVER_MODULE(rum, uhub, rum_driver, rum_devclass, NULL, 0); +DRIVER_MODULE(rum, uhub, rum_driver, NULL, NULL); MODULE_DEPEND(rum, wlan, 1, 1, 1); MODULE_DEPEND(rum, usb, 1, 1, 1); MODULE_VERSION(rum, 1); diff --git a/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/usb/wlan/if_rumfw.h b/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/usb/wlan/if_rumfw.h index 0f08674451..80895214d8 100644 --- a/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/usb/wlan/if_rumfw.h +++ b/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/usb/wlan/if_rumfw.h @@ -1,4 +1,3 @@ -/* $FreeBSD$ */ /*- * Copyright (c) 2005-2006, Ralink Technology, Corp. diff --git a/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/usb/wlan/if_rumreg.h b/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/usb/wlan/if_rumreg.h index 70354c4928..348a575828 100644 --- a/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/usb/wlan/if_rumreg.h +++ b/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/usb/wlan/if_rumreg.h @@ -1,4 +1,3 @@ -/* $FreeBSD$ */ /*- * Copyright (c) 2005, 2006 Damien Bergamini diff --git a/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/usb/wlan/if_rumvar.h b/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/usb/wlan/if_rumvar.h index e19a7088cf..40981f6aa4 100644 --- a/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/usb/wlan/if_rumvar.h +++ b/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/usb/wlan/if_rumvar.h @@ -1,4 +1,3 @@ -/* $FreeBSD$ */ /*- * Copyright (c) 2005, 2006 Damien Bergamini diff --git a/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/usb/wlan/if_run.c b/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/usb/wlan/if_run.c index c5f48afaa6..1247804c1a 100644 --- a/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/usb/wlan/if_run.c +++ b/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/usb/wlan/if_run.c @@ -18,8 +18,6 @@ */ #include -__FBSDID("$FreeBSD$"); - /*- * Ralink Technology RT2700U/RT2800U/RT3000U/RT3900E chipset driver. * http://www.ralinktech.com/ @@ -414,7 +412,7 @@ static void run_get_txpower(struct run_softc *); static int run_read_eeprom(struct run_softc *); static struct ieee80211_node *run_node_alloc(struct ieee80211vap *, const uint8_t mac[IEEE80211_ADDR_LEN]); -static int run_media_change(struct ifnet *); +static int run_media_change(if_t); static int run_newstate(struct ieee80211vap *, enum ieee80211_state, int); static int run_wme_update(struct ieee80211com *); static void run_key_set_cb(void *); @@ -2117,9 +2115,9 @@ run_node_alloc(struct ieee80211vap *vap, const uint8_t mac[IEEE80211_ADDR_LEN]) } static int -run_media_change(struct ifnet *ifp) +run_media_change(if_t ifp) { - struct ieee80211vap *vap = ifp->if_softc; + struct ieee80211vap *vap = if_getsoftc(ifp); struct ieee80211com *ic = vap->iv_ic; const struct ieee80211_txparam *tp; struct run_softc *sc = ic->ic_softc; @@ -2155,8 +2153,8 @@ run_media_change(struct ifnet *ifp) } #if 0 - if ((ifp->if_flags & IFF_UP) && - (ifp->if_drv_flags & RUN_RUNNING)){ + if ((if_getflags(ifp) & IFF_UP) && + (if_getdrvflags(ifp) & RUN_RUNNING)){ run_init_locked(sc); } #endif @@ -2873,7 +2871,6 @@ run_rx_frame(struct run_softc *sc, struct mbuf *m, uint32_t dmalen) struct ieee80211com *ic = &sc->sc_ic; struct ieee80211_frame *wh; struct ieee80211_node *ni; - struct epoch_tracker et; struct rt2870_rxd *rxd; struct rt2860_rxwi *rxwi; uint32_t flags; @@ -2996,14 +2993,12 @@ run_rx_frame(struct run_softc *sc, struct mbuf *m, uint32_t dmalen) } } - NET_EPOCH_ENTER(et); if (ni != NULL) { (void)ieee80211_input(ni, m, rssi, nf); ieee80211_free_node(ni); } else { (void)ieee80211_input_all(ic, m, rssi, nf); } - NET_EPOCH_EXIT(et); return; @@ -3494,7 +3489,7 @@ run_tx(struct run_softc *sc, struct mbuf *m, struct ieee80211_node *ni) dur = rt2860_rates[ctl_ridx].sp_ack_dur; else dur = rt2860_rates[ctl_ridx].lp_ack_dur; - *(uint16_t *)wh->i_dur = htole16(dur); + USETW(wh->i_dur, dur); } /* reserve slots for mgmt packets, just in case */ @@ -3610,7 +3605,7 @@ run_tx_mgt(struct run_softc *sc, struct mbuf *m, struct ieee80211_node *ni) dur = ieee80211_ack_duration(ic->ic_rt, rt2860_rates[ridx].rate, ic->ic_flags & IEEE80211_F_SHPREAMBLE); - *(uint16_t *)wh->i_dur = htole16(dur); + USETW(wh->i_dur, dur); } if (sc->sc_epq[0].tx_nfree == 0) @@ -6438,9 +6433,7 @@ static driver_t run_driver = { .size = sizeof(struct run_softc) }; -static devclass_t run_devclass; - -DRIVER_MODULE(run, uhub, run_driver, run_devclass, run_driver_loaded, NULL); +DRIVER_MODULE(run, uhub, run_driver, run_driver_loaded, NULL); MODULE_DEPEND(run, wlan, 1, 1, 1); MODULE_DEPEND(run, usb, 1, 1, 1); MODULE_DEPEND(run, firmware, 1, 1, 1); diff --git a/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/usb/wlan/if_runreg.h b/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/usb/wlan/if_runreg.h index 8e0c8f1f2b..87ea0ba860 100644 --- a/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/usb/wlan/if_runreg.h +++ b/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/usb/wlan/if_runreg.h @@ -15,8 +15,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD$ */ #ifndef _IF_RUNREG_H_ diff --git a/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/usb/wlan/if_runvar.h b/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/usb/wlan/if_runvar.h index bb6231c3f9..c81af76870 100644 --- a/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/usb/wlan/if_runvar.h +++ b/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/usb/wlan/if_runvar.h @@ -16,8 +16,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD$ */ #ifndef _IF_RUNVAR_H_ diff --git a/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/usb/wlan/if_ural.c b/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/usb/wlan/if_ural.c index 7e6b2a039d..1acae6d84b 100644 --- a/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/usb/wlan/if_ural.c +++ b/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/usb/wlan/if_ural.c @@ -1,4 +1,3 @@ -/* $FreeBSD$ */ /*- * Copyright (c) 2005, 2006 @@ -21,8 +20,6 @@ */ #include -__FBSDID("$FreeBSD$"); - /*- * Ralink Technology RT2500USB chipset driver * http://www.ralinktech.com/ @@ -401,9 +398,7 @@ static driver_t ural_driver = { .size = sizeof(struct ural_softc), }; -static devclass_t ural_devclass; - -DRIVER_MODULE(ural, uhub, ural_driver, ural_devclass, NULL, 0); +DRIVER_MODULE(ural, uhub, ural_driver, NULL, NULL); MODULE_DEPEND(ural, usb, 1, 1, 1); MODULE_DEPEND(ural, wlan, 1, 1, 1); MODULE_VERSION(ural, 1); @@ -851,7 +846,6 @@ ural_bulk_read_callback(struct usb_xfer *xfer, usb_error_t error) struct ural_softc *sc = usbd_xfer_softc(xfer); struct ieee80211com *ic = &sc->sc_ic; struct ieee80211_node *ni; - struct epoch_tracker et; struct mbuf *m = NULL; struct usb_page_cache *pc; uint32_t flags; @@ -932,13 +926,11 @@ tr_setup: if (m) { ni = ieee80211_find_rxnode(ic, mtod(m, struct ieee80211_frame_min *)); - NET_EPOCH_ENTER(et); if (ni != NULL) { (void) ieee80211_input(ni, m, rssi, nf); ieee80211_free_node(ni); } else (void) ieee80211_input_all(ic, m, rssi, nf); - NET_EPOCH_EXIT(et); } RAL_LOCK(sc); ural_start(sc); @@ -1102,7 +1094,7 @@ ural_tx_mgt(struct ural_softc *sc, struct mbuf *m0, struct ieee80211_node *ni) dur = ieee80211_ack_duration(ic->ic_rt, tp->mgmtrate, ic->ic_flags & IEEE80211_F_SHPREAMBLE); - *(uint16_t *)wh->i_dur = htole16(dur); + USETW(wh->i_dur, dur); /* tell hardware to add timestamp for probe responses */ if ((wh->i_fc[0] & IEEE80211_FC0_TYPE_MASK) == @@ -1282,7 +1274,7 @@ ural_tx_data(struct ural_softc *sc, struct mbuf *m0, struct ieee80211_node *ni) dur = ieee80211_ack_duration(ic->ic_rt, rate, ic->ic_flags & IEEE80211_F_SHPREAMBLE); - *(uint16_t *)wh->i_dur = htole16(dur); + USETW(wh->i_dur, dur); } ural_setup_tx_desc(sc, &data->desc, flags, m0->m_pkthdr.len, rate); diff --git a/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/usb/wlan/if_uralreg.h b/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/usb/wlan/if_uralreg.h index 22d763d0dc..ece13de171 100644 --- a/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/usb/wlan/if_uralreg.h +++ b/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/usb/wlan/if_uralreg.h @@ -1,4 +1,3 @@ -/* $FreeBSD$ */ /*- * Copyright (c) 2005, 2006 diff --git a/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/usb/wlan/if_uralvar.h b/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/usb/wlan/if_uralvar.h index 6f6d01ed75..c2b9074fc9 100644 --- a/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/usb/wlan/if_uralvar.h +++ b/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/dev/usb/wlan/if_uralvar.h @@ -1,4 +1,3 @@ -/* $FreeBSD$ */ /*- * Copyright (c) 2005 diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn.c index ae29ad7003..4334d5700e 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn.c @@ -19,8 +19,6 @@ */ #include -__FBSDID("$FreeBSD$"); - /* * Driver for Realtek RTL8188CE-VAU/RTL8188CUS/RTL8188EU/RTL8188RU/RTL8192CU/RTL8812AU/RTL8821AU. */ @@ -616,10 +614,12 @@ rtwn_vap_delete(struct ieee80211vap *vap) struct ieee80211com *ic = vap->iv_ic; struct rtwn_softc *sc = ic->ic_softc; struct rtwn_vap *uvp = RTWN_VAP(vap); + int i; /* Put vap into INIT state + stop device if needed. */ ieee80211_stop(vap); - ieee80211_draintask(ic, &vap->iv_nstate_task); + for (i = 0; i < NET80211_IV_NSTATE_NUM; i++) + ieee80211_draintask(ic, &vap->iv_nstate_task[i]); ieee80211_draintask(ic, &ic->ic_parent_task); RTWN_LOCK(sc); diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_beacon.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_beacon.c index 63eb7a0073..eee3499fba 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_beacon.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_beacon.c @@ -17,8 +17,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include #include #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_beacon.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_beacon.h index c38f75688e..ca567e31cf 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_beacon.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_beacon.h @@ -12,8 +12,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD$ */ #ifndef IF_RTWN_BEACON_H diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_calib.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_calib.c index 7eb7c5c021..0e7b221347 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_calib.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_calib.c @@ -19,8 +19,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_calib.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_calib.h index ee50fd06b3..594a6afb04 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_calib.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_calib.h @@ -12,8 +12,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD$ */ #ifndef IF_RTWN_CALIB_H diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_cam.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_cam.c index 6ee6305336..864c13d782 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_cam.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_cam.c @@ -19,8 +19,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include @@ -117,11 +115,7 @@ rtwn_key_alloc(struct ieee80211vap *vap, struct ieee80211_key *k, if (&vap->iv_nw_keys[0] <= k && k < &vap->iv_nw_keys[IEEE80211_WEP_NKID]) { -#if __FreeBSD_version > 1200018 *keyix = ieee80211_crypto_get_key_wepidx(vap, k); -#else - *keyix = k - vap->iv_nw_keys; -#endif if (sc->sc_hwcrypto != RTWN_CRYPTO_FULL) k->wk_flags |= IEEE80211_KEY_SWCRYPT; else { @@ -176,15 +170,9 @@ rtwn_key_alloc(struct ieee80211vap *vap, struct ieee80211_key *k, } RTWN_UNLOCK(sc); if (i == sc->cam_entry_limit) { -#if __FreeBSD_version > 1200008 /* XXX check and remove keys with the same MAC address */ k->wk_flags |= IEEE80211_KEY_SWCRYPT; *keyix = 0; -#else - device_printf(sc->sc_dev, - "%s: no free space in the key table\n", __func__); - return (0); -#endif } end: @@ -322,16 +310,7 @@ rtwn_process_key(struct ieee80211vap *vap, const struct ieee80211_key *k, if (&vap->iv_nw_keys[0] <= k && k < &vap->iv_nw_keys[IEEE80211_WEP_NKID]) { -#if __FreeBSD_version <= 1200008 - struct ieee80211_key *k1 = &vap->iv_nw_keys[k->wk_keyix]; - - if (sc->sc_hwcrypto != RTWN_CRYPTO_FULL) { - k1->wk_flags |= IEEE80211_KEY_SWCRYPT; - return (k->wk_cipher->ic_setkey(k1)); - } else { -#else if (sc->sc_hwcrypto == RTWN_CRYPTO_FULL) { -#endif struct rtwn_vap *rvp = RTWN_VAP(vap); RTWN_LOCK(sc); diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_cam.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_cam.h index 280509b95e..1e70cbc229 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_cam.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_cam.h @@ -12,8 +12,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD$ */ #ifndef IF_RTWN_CAM_H diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_debug.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_debug.h index 22504232d0..fa1b50b551 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_debug.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_debug.h @@ -16,8 +16,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD$ */ #ifndef IF_RTWN_DEBUG_H diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_efuse.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_efuse.c index b2ec82e379..8b071996b4 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_efuse.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_efuse.c @@ -19,8 +19,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_efuse.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_efuse.h index 62125c2484..fbca9dce08 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_efuse.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_efuse.h @@ -12,8 +12,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD$ */ #ifndef IF_RTWN_EFUSE_H diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_fw.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_fw.c index 75ff59dd13..551adbdb87 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_fw.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_fw.c @@ -19,8 +19,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_fw.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_fw.h index 50d2aa31b1..deea152b94 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_fw.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_fw.h @@ -15,7 +15,6 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * * $OpenBSD: if_urtwnreg.h,v 1.3 2010/11/16 18:02:59 damien Exp $ - * $FreeBSD$ */ #ifndef IF_RTWN_FW_H diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_nop.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_nop.h index 2b8b3e1a06..4d7c63c87c 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_nop.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_nop.h @@ -12,8 +12,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD$ */ #ifndef IF_RTWN_NOP_H diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_ridx.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_ridx.h index 902c470d25..dd93f2db4c 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_ridx.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_ridx.h @@ -16,8 +16,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD$ */ #ifndef IF_RTWN_RIDX_H diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_rx.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_rx.c index cc7d961515..762472eca4 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_rx.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_rx.c @@ -19,8 +19,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_rx.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_rx.h index ecfe2e0abd..73bdf0d7a0 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_rx.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_rx.h @@ -12,8 +12,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD$ */ #ifndef IF_RTWN_RX_H diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_task.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_task.c index 89822cf2a2..332c489322 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_task.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_task.c @@ -15,8 +15,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_task.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_task.h index a9d60c209c..c2b9c53378 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_task.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_task.h @@ -12,8 +12,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD$ */ #ifndef IF_RTWN_TASK_H diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_tx.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_tx.c index 32bdd1b6b3..f5e97933b3 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_tx.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_tx.c @@ -19,8 +19,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_tx.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_tx.h index e02fb56499..389a921b6e 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_tx.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwn_tx.h @@ -12,8 +12,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD$ */ #ifndef IF_RTWN_TX_H diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwnreg.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwnreg.h index b1eac291c4..9762f0482b 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwnreg.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwnreg.h @@ -15,7 +15,6 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * * $OpenBSD: if_urtwnreg.h,v 1.3 2010/11/16 18:02:59 damien Exp $ - * $FreeBSD$ */ #ifndef IF_RTWNREG_H diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwnvar.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwnvar.h index b63d4ddf29..6a44b7b739 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwnvar.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/if_rtwnvar.h @@ -15,7 +15,6 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * * $OpenBSD: if_urtwnreg.h,v 1.3 2010/11/16 18:02:59 damien Exp $ - * $FreeBSD$ */ #ifndef IF_RTWNVAR_H diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/pci/rtwn_pci_attach.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/pci/rtwn_pci_attach.c index efa6bc0150..c359d1c33a 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/pci/rtwn_pci_attach.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/pci/rtwn_pci_attach.c @@ -19,8 +19,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include #include #include @@ -783,9 +781,7 @@ static driver_t rtwn_pci_driver = { sizeof(struct rtwn_pci_softc) }; -static devclass_t rtwn_pci_devclass; - -DRIVER_MODULE(rtwn_pci, pci, rtwn_pci_driver, rtwn_pci_devclass, NULL, NULL); +DRIVER_MODULE(rtwn_pci, pci, rtwn_pci_driver, NULL, NULL); MODULE_VERSION(rtwn_pci, 1); MODULE_PNP_INFO("U16:vendor;U16:device;D:#", pci, rtwn, rtwn_pci_ident_table, nitems(rtwn_pci_ident_table)); diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/pci/rtwn_pci_attach.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/pci/rtwn_pci_attach.h index b37ef67252..0b7fb8813c 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/pci/rtwn_pci_attach.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/pci/rtwn_pci_attach.h @@ -13,7 +13,6 @@ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * $FreeBSD$ */ void r92ce_attach(struct rtwn_pci_softc *); diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/pci/rtwn_pci_reg.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/pci/rtwn_pci_reg.c index 0ee417acbd..5e383735a8 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/pci/rtwn_pci_reg.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/pci/rtwn_pci_reg.c @@ -19,8 +19,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include #include #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/pci/rtwn_pci_reg.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/pci/rtwn_pci_reg.h index 7c900345f4..1791dee348 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/pci/rtwn_pci_reg.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/pci/rtwn_pci_reg.h @@ -12,8 +12,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD$ */ #ifndef RTWN_PCI_REG_H diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/pci/rtwn_pci_rx.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/pci/rtwn_pci_rx.c index 6ecfbb4617..8540849b98 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/pci/rtwn_pci_rx.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/pci/rtwn_pci_rx.c @@ -19,8 +19,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include @@ -35,7 +33,6 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #include #include @@ -85,7 +82,6 @@ rtwn_pci_setup_rx_desc(struct rtwn_pci_softc *pc, static void rtwn_pci_rx_frame(struct rtwn_pci_softc *pc) { - struct epoch_tracker et; struct rtwn_softc *sc = &pc->pc_sc; struct rtwn_rx_ring *ring = &pc->rx_ring; struct rtwn_rx_stat_pci *rx_desc = &ring->desc[ring->cur]; @@ -165,15 +161,12 @@ rtwn_pci_rx_frame(struct rtwn_pci_softc *pc) /* Send the frame to the 802.11 layer. */ RTWN_UNLOCK(sc); - - NET_EPOCH_ENTER(et); if (ni != NULL) { (void)ieee80211_input_mimo(ni, m); /* Node is no longer needed. */ ieee80211_free_node(ni); } else (void)ieee80211_input_mimo_all(ic, m); - NET_EPOCH_EXIT(et); RTWN_LOCK(sc); diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/pci/rtwn_pci_rx.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/pci/rtwn_pci_rx.h index 30dd785a1e..01c870c6a7 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/pci/rtwn_pci_rx.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/pci/rtwn_pci_rx.h @@ -12,8 +12,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD$ */ #ifndef RTWN_PCI_RX_H diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/pci/rtwn_pci_tx.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/pci/rtwn_pci_tx.c index 6dd84f3672..acc80c410d 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/pci/rtwn_pci_tx.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/pci/rtwn_pci_tx.c @@ -19,8 +19,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/pci/rtwn_pci_tx.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/pci/rtwn_pci_tx.h index 9b9d2e3369..87901f9087 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/pci/rtwn_pci_tx.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/pci/rtwn_pci_tx.h @@ -12,8 +12,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD$ */ #ifndef RTWN_PCI_TX_H diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/pci/rtwn_pci_var.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/pci/rtwn_pci_var.h index eb71fe453f..efb04864d6 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/pci/rtwn_pci_var.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/pci/rtwn_pci_var.h @@ -17,7 +17,6 @@ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * $FreeBSD$ */ #ifndef RTWN_PCI_VAR_H diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/pci/r88ee.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/pci/r88ee.h index 319d9c6995..609f3ec405 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/pci/r88ee.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/pci/r88ee.h @@ -12,8 +12,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD$ */ #ifndef RTL8188EE_H diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/pci/r88ee_attach.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/pci/r88ee_attach.c index 31afc0f066..190a0dcd0e 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/pci/r88ee_attach.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/pci/r88ee_attach.c @@ -15,8 +15,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/pci/r88ee_init.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/pci/r88ee_init.c index 488d5dde5a..4d447a467d 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/pci/r88ee_init.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/pci/r88ee_init.c @@ -15,8 +15,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/pci/r88ee_reg.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/pci/r88ee_reg.h index a6c743c677..5da98b3e5f 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/pci/r88ee_reg.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/pci/r88ee_reg.h @@ -12,8 +12,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD$ */ #ifndef R88EE_REG_H diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/pci/r88ee_rx.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/pci/r88ee_rx.c index b20e3c1c47..b7aa4a82af 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/pci/r88ee_rx.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/pci/r88ee_rx.c @@ -15,8 +15,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/r88e.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/r88e.h index b6cd6053d0..33c6fa3432 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/r88e.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/r88e.h @@ -15,12 +15,13 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * * $OpenBSD: if_urtwnreg.h,v 1.3 2010/11/16 18:02:59 damien Exp $ - * $FreeBSD$ */ #ifndef RTL8188E_H #define RTL8188E_H +#include + /* * Global definitions. */ @@ -46,7 +47,7 @@ uint8_t r88e_temp_read(struct rtwn_softc *); /* r88e_chan.c */ void r88e_get_txpower(struct rtwn_softc *, int, - struct ieee80211_channel *, uint8_t[]); + struct ieee80211_channel *, uint8_t[RTWN_RIDX_COUNT]); void r88e_set_bw20(struct rtwn_softc *, uint8_t); void r88e_set_gain(struct rtwn_softc *, uint8_t); diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/r88e_beacon.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/r88e_beacon.c index affc768ae0..941e41151b 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/r88e_beacon.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/r88e_beacon.c @@ -15,8 +15,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/r88e_calib.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/r88e_calib.c index b4de113894..c1c8de9a10 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/r88e_calib.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/r88e_calib.c @@ -15,8 +15,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/r88e_chan.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/r88e_chan.c index be2271c6f5..c072b35540 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/r88e_chan.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/r88e_chan.c @@ -19,8 +19,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/r88e_fw.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/r88e_fw.c index ea74252fcc..e7fe7fd828 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/r88e_fw.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/r88e_fw.c @@ -19,8 +19,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/r88e_fw_cmd.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/r88e_fw_cmd.h index c152729c1e..2a43a07a31 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/r88e_fw_cmd.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/r88e_fw_cmd.h @@ -15,7 +15,6 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * * $OpenBSD: if_urtwnreg.h,v 1.3 2010/11/16 18:02:59 damien Exp $ - * $FreeBSD$ */ #ifndef R88E_FW_CMD_H diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/r88e_init.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/r88e_init.c index 8c13057e03..252c713013 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/r88e_init.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/r88e_init.c @@ -19,8 +19,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/r88e_led.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/r88e_led.c index 3c93a2b789..93f372eb61 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/r88e_led.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/r88e_led.c @@ -19,8 +19,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/r88e_priv.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/r88e_priv.h index 81d82c71d7..13fd53fcb5 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/r88e_priv.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/r88e_priv.h @@ -15,7 +15,6 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * * $OpenBSD: if_urtwnreg.h,v 1.3 2010/11/16 18:02:59 damien Exp $ - * $FreeBSD$ */ #ifndef R88E_PRIV_H diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/r88e_reg.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/r88e_reg.h index d578373f75..d9f236cddb 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/r88e_reg.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/r88e_reg.h @@ -15,7 +15,6 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * * $OpenBSD: if_urtwnreg.h,v 1.3 2010/11/16 18:02:59 damien Exp $ - * $FreeBSD$ */ #ifndef R88E_REG_H diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/r88e_rf.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/r88e_rf.c index e5966a4cc0..e7a37ec36e 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/r88e_rf.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/r88e_rf.c @@ -19,8 +19,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/r88e_rom.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/r88e_rom.c index d84d1b8149..e10ad91633 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/r88e_rom.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/r88e_rom.c @@ -19,8 +19,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/r88e_rom_defs.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/r88e_rom_defs.h index c603367825..cdaa98b4dd 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/r88e_rom_defs.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/r88e_rom_defs.h @@ -12,8 +12,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD$ */ #ifndef R88E_ROM_DEFS_H diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/r88e_rom_image.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/r88e_rom_image.h index d5d97ffb28..df1752ae99 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/r88e_rom_image.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/r88e_rom_image.h @@ -12,8 +12,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD$ */ #ifndef R88E_ROM_IMAGE_H diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/r88e_rx.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/r88e_rx.c index 29b76552bc..4f8517f1e4 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/r88e_rx.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/r88e_rx.c @@ -19,8 +19,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include @@ -55,7 +53,6 @@ __FBSDID("$FreeBSD$"); #include #include - int r88e_classify_intr(struct rtwn_softc *sc, void *buf, int len) { @@ -78,9 +75,7 @@ r88e_classify_intr(struct rtwn_softc *sc, void *buf, int len) void r88e_ratectl_tx_complete(struct rtwn_softc *sc, uint8_t *buf, int len) { -#if __FreeBSD_version >= 1200012 struct ieee80211_ratectl_tx_status txs; -#endif struct r88e_tx_rpt_ccx *rpt; struct ieee80211_node *ni; uint8_t macid; @@ -121,7 +116,6 @@ r88e_ratectl_tx_complete(struct rtwn_softc *sc, uint8_t *buf, int len) (rpt->rptb1 & R88E_RPTB1_PKT_OK) ? "" : " not", ntries); -#if __FreeBSD_version >= 1200012 txs.flags = IEEE80211_RATECTL_STATUS_LONG_RETRY | IEEE80211_RATECTL_STATUS_FINAL_RATE; txs.long_retries = ntries; @@ -140,16 +134,6 @@ r88e_ratectl_tx_complete(struct rtwn_softc *sc, uint8_t *buf, int len) else txs.status = IEEE80211_RATECTL_TX_FAIL_UNSPECIFIED; ieee80211_ratectl_tx_complete(ni, &txs); -#else - struct ieee80211vap *vap = ni->ni_vap; - if (rpt->rptb1 & R88E_RPTB1_PKT_OK) { - ieee80211_ratectl_tx_complete(vap, ni, - IEEE80211_RATECTL_TX_SUCCESS, &ntries, NULL); - } else { - ieee80211_ratectl_tx_complete(vap, ni, - IEEE80211_RATECTL_TX_FAILURE, &ntries, NULL); - } -#endif } else { RTWN_DPRINTF(sc, RTWN_DEBUG_INTR, "%s: macid %u, ni is NULL\n", __func__, macid); @@ -241,8 +225,10 @@ r88e_get_rx_stats(struct rtwn_softc *sc, struct ieee80211_rx_stats *rxs, if (!sc->sc_ht40) { /* XXX center channel */ rxs->r_flags |= IEEE80211_R_IEEE | IEEE80211_R_FREQ; + rxs->r_flags |= IEEE80211_R_BAND; rxs->c_ieee = physt->chan; rxs->c_freq = ieee80211_ieee2mhz(rxs->c_ieee, IEEE80211_CHAN_2GHZ); + rxs->c_band = IEEE80211_CHAN_2GHZ; } } diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/r88e_rx_desc.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/r88e_rx_desc.h index 2b72f3dd79..f3e1a3c1b9 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/r88e_rx_desc.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/r88e_rx_desc.h @@ -15,7 +15,6 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * * $OpenBSD: if_urtwnreg.h,v 1.3 2010/11/16 18:02:59 damien Exp $ - * $FreeBSD$ */ #ifndef R88E_RX_DESC_H diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/r88e_tx.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/r88e_tx.c index d9920f73e3..c971bf50c1 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/r88e_tx.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/r88e_tx.c @@ -19,8 +19,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/r88e_tx_desc.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/r88e_tx_desc.h index 98338fb732..7a4e12c3b8 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/r88e_tx_desc.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/r88e_tx_desc.h @@ -15,7 +15,6 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * * $OpenBSD: if_urtwnreg.h,v 1.3 2010/11/16 18:02:59 damien Exp $ - * $FreeBSD$ */ #ifndef R88E_TX_DESC_H diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/usb/r88eu.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/usb/r88eu.h index 9b9198e0a8..f72825645f 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/usb/r88eu.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/usb/r88eu.h @@ -15,7 +15,6 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * * $OpenBSD: if_urtwnreg.h,v 1.3 2010/11/16 18:02:59 damien Exp $ - * $FreeBSD$ */ #ifndef RTL8188EU_H diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/usb/r88eu_attach.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/usb/r88eu_attach.c index a264629a60..77193321bb 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/usb/r88eu_attach.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/usb/r88eu_attach.c @@ -19,8 +19,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/usb/r88eu_init.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/usb/r88eu_init.c index 156f6ea79c..f4f936493c 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/usb/r88eu_init.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/usb/r88eu_init.c @@ -19,8 +19,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/usb/r88eu_reg.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/usb/r88eu_reg.h index fc61eaae58..77959867b3 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/usb/r88eu_reg.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8188e/usb/r88eu_reg.h @@ -15,7 +15,6 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * * $OpenBSD: if_urtwnreg.h,v 1.3 2010/11/16 18:02:59 damien Exp $ - * $FreeBSD$ */ #ifndef R88EU_REG_H diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/pci/r92ce.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/pci/r92ce.h index 39e08b4afb..c46720326a 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/pci/r92ce.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/pci/r92ce.h @@ -17,7 +17,6 @@ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * $FreeBSD$ */ #ifndef RTL8192CE_H diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/pci/r92ce_attach.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/pci/r92ce_attach.c index d3f6537419..423bf2af18 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/pci/r92ce_attach.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/pci/r92ce_attach.c @@ -19,8 +19,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/pci/r92ce_calib.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/pci/r92ce_calib.c index f4e68e12af..00d2111015 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/pci/r92ce_calib.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/pci/r92ce_calib.c @@ -19,8 +19,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/pci/r92ce_fw.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/pci/r92ce_fw.c index b28f80ce08..16be61866b 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/pci/r92ce_fw.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/pci/r92ce_fw.c @@ -19,8 +19,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/pci/r92ce_init.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/pci/r92ce_init.c index 7b07f6cfc5..4b51a6f36b 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/pci/r92ce_init.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/pci/r92ce_init.c @@ -19,8 +19,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/pci/r92ce_led.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/pci/r92ce_led.c index 5959473842..abb835c1cc 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/pci/r92ce_led.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/pci/r92ce_led.c @@ -19,8 +19,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/pci/r92ce_priv.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/pci/r92ce_priv.h index 08172a607f..31c51654a8 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/pci/r92ce_priv.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/pci/r92ce_priv.h @@ -17,7 +17,6 @@ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * $FreeBSD$ */ #ifndef R92CE_PRIV_H diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/pci/r92ce_reg.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/pci/r92ce_reg.h index d76cc64e2c..bf4514db0e 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/pci/r92ce_reg.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/pci/r92ce_reg.h @@ -17,7 +17,6 @@ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * $FreeBSD$ */ #ifndef R92CE_REG_H diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/pci/r92ce_rx.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/pci/r92ce_rx.c index 7cd6283ea1..27e51da363 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/pci/r92ce_rx.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/pci/r92ce_rx.c @@ -19,8 +19,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/pci/r92ce_rx_desc.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/pci/r92ce_rx_desc.h index 476a9e882b..85fb4b0fda 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/pci/r92ce_rx_desc.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/pci/r92ce_rx_desc.h @@ -17,7 +17,6 @@ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * $FreeBSD$ */ #ifndef R92CE_RX_DESC_H diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/pci/r92ce_tx.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/pci/r92ce_tx.c index ea6535f46b..61a6e41f5e 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/pci/r92ce_tx.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/pci/r92ce_tx.c @@ -19,8 +19,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/pci/r92ce_tx_desc.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/pci/r92ce_tx_desc.h index 4153710a84..89d62fcd34 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/pci/r92ce_tx_desc.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/pci/r92ce_tx_desc.h @@ -17,7 +17,6 @@ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * $FreeBSD$ */ #ifndef R92CE_TX_DESC_H diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c.h index 4d4307c786..f73e92f7c9 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c.h @@ -15,12 +15,13 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * * $OpenBSD: if_urtwnreg.h,v 1.3 2010/11/16 18:02:59 damien Exp $ - * $FreeBSD$ */ #ifndef RTL8192C_H #define RTL8192C_H +#include + /* * Global definitions. */ @@ -54,9 +55,9 @@ uint8_t r92c_temp_read(struct rtwn_softc *); /* r92c_chan.c */ void r92c_get_txpower(struct rtwn_softc *, int, - struct ieee80211_channel *, uint8_t[]); + struct ieee80211_channel *, uint8_t[RTWN_RIDX_COUNT]); void r92c_write_txpower(struct rtwn_softc *, int, - uint8_t power[]); + uint8_t power[RTWN_RIDX_COUNT]); void r92c_set_bw20(struct rtwn_softc *, uint8_t); void r92c_set_chan(struct rtwn_softc *, struct ieee80211_channel *); void r92c_set_gain(struct rtwn_softc *, uint8_t); diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_attach.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_attach.c index d71a595dc6..baf5846bb7 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_attach.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_attach.c @@ -19,8 +19,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_beacon.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_beacon.c index 477358bbf9..9e4cdb5f13 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_beacon.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_beacon.c @@ -15,8 +15,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_calib.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_calib.c index c340c816c7..845bfa334a 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_calib.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_calib.c @@ -19,8 +19,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_chan.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_chan.c index 01e0cfb629..0edb32a97b 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_chan.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_chan.c @@ -19,8 +19,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_fw.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_fw.c index 7ad6d7d2df..5ab56a5f45 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_fw.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_fw.c @@ -19,8 +19,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include @@ -364,9 +362,7 @@ r92c_set_rssi(struct rtwn_softc *sc) static void r92c_ratectl_tx_complete(struct rtwn_softc *sc, uint8_t *buf, int len) { -#if __FreeBSD_version >= 1200012 struct ieee80211_ratectl_tx_status txs; -#endif struct r92c_c2h_tx_rpt *rpt; struct ieee80211_node *ni; uint8_t macid; @@ -412,7 +408,6 @@ r92c_ratectl_tx_complete(struct rtwn_softc *sc, uint8_t *buf, int len) (rpt->rptb7 & R92C_RPTB7_PKT_OK) ? "" : " not", ntries); -#if __FreeBSD_version >= 1200012 txs.flags = IEEE80211_RATECTL_STATUS_LONG_RETRY; txs.long_retries = ntries; if (rpt->rptb7 & R92C_RPTB7_PKT_OK) @@ -424,16 +419,6 @@ r92c_ratectl_tx_complete(struct rtwn_softc *sc, uint8_t *buf, int len) else txs.status = IEEE80211_RATECTL_TX_FAIL_UNSPECIFIED; ieee80211_ratectl_tx_complete(ni, &txs); -#else - struct ieee80211vap *vap = ni->ni_vap; - if (rpt->rptb7 & R92C_RPTB7_PKT_OK) { - ieee80211_ratectl_tx_complete(vap, ni, - IEEE80211_RATECTL_TX_SUCCESS, &ntries, NULL); - } else { - ieee80211_ratectl_tx_complete(vap, ni, - IEEE80211_RATECTL_TX_FAILURE, &ntries, NULL); - } -#endif } else { RTWN_DPRINTF(sc, RTWN_DEBUG_INTR, "%s: macid %u, ni is NULL\n", __func__, macid); diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_fw_cmd.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_fw_cmd.h index 998a7805fd..b16e281962 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_fw_cmd.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_fw_cmd.h @@ -15,7 +15,6 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * * $OpenBSD: if_urtwnreg.h,v 1.3 2010/11/16 18:02:59 damien Exp $ - * $FreeBSD$ */ #ifndef R92C_FW_CMD_H diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_init.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_init.c index 4e29fe0b03..8697c526ec 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_init.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_init.c @@ -19,8 +19,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_llt.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_llt.c index f3e4522a72..d2457cdefe 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_llt.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_llt.c @@ -19,8 +19,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_priv.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_priv.h index 645f07a587..2ae3b6b71c 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_priv.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_priv.h @@ -15,7 +15,6 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * * $OpenBSD: if_urtwnreg.h,v 1.3 2010/11/16 18:02:59 damien Exp $ - * $FreeBSD$ */ #ifndef R92C_PRIV_H diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_reg.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_reg.h index d01168fe39..e640b6b560 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_reg.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_reg.h @@ -16,7 +16,6 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * * $OpenBSD: if_urtwnreg.h,v 1.3 2010/11/16 18:02:59 damien Exp $ - * $FreeBSD$ */ #ifndef R92C_REG_H diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_rf.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_rf.c index c547a06ea9..7d24f17b11 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_rf.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_rf.c @@ -19,8 +19,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_rom.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_rom.c index ea3f3a253d..636a826efa 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_rom.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_rom.c @@ -19,8 +19,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_rom_defs.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_rom_defs.h index 35fc42df78..048d7ee246 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_rom_defs.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_rom_defs.h @@ -15,7 +15,6 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * * $OpenBSD: if_urtwnreg.h,v 1.3 2010/11/16 18:02:59 damien Exp $ - * $FreeBSD$ */ #ifndef R92C_ROM_DEFS_H diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_rom_image.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_rom_image.h index 5c2880bb19..5ec20e591c 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_rom_image.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_rom_image.h @@ -15,7 +15,6 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * * $OpenBSD: if_urtwnreg.h,v 1.3 2010/11/16 18:02:59 damien Exp $ - * $FreeBSD$ */ #ifndef R92C_ROM_IMAGE_H diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_rx.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_rx.c index 258b914d44..72f726a245 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_rx.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_rx.c @@ -19,8 +19,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_rx_desc.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_rx_desc.h index 12dfd6656e..1cb5cacd33 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_rx_desc.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_rx_desc.h @@ -15,7 +15,6 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * * $OpenBSD: if_urtwnreg.h,v 1.3 2010/11/16 18:02:59 damien Exp $ - * $FreeBSD$ */ #ifndef R92C_RX_DESC_H diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_tx.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_tx.c index b01731ba29..15beca776b 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_tx.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_tx.c @@ -19,8 +19,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_tx_desc.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_tx_desc.h index c65ece0e3c..6e546c3da2 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_tx_desc.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_tx_desc.h @@ -15,7 +15,6 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * * $OpenBSD: if_urtwnreg.h,v 1.3 2010/11/16 18:02:59 damien Exp $ - * $FreeBSD$ */ #ifndef R92C_TX_DESC_H diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_var.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_var.h index 2b35cceafe..3940e2e3f6 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_var.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/r92c_var.h @@ -15,7 +15,6 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * * $OpenBSD: if_urtwnreg.h,v 1.3 2010/11/16 18:02:59 damien Exp $ - * $FreeBSD$ */ #ifndef R92C_VAR_H diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/usb/r92cu.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/usb/r92cu.h index f9b9861867..e05570dd35 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/usb/r92cu.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/usb/r92cu.h @@ -15,7 +15,6 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * * $OpenBSD: if_urtwnreg.h,v 1.3 2010/11/16 18:02:59 damien Exp $ - * $FreeBSD$ */ #ifndef RTL8192CU_H diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/usb/r92cu_attach.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/usb/r92cu_attach.c index ef436ee3ed..5856102251 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/usb/r92cu_attach.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/usb/r92cu_attach.c @@ -19,8 +19,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/usb/r92cu_init.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/usb/r92cu_init.c index 94563fed63..42e50ff9f8 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/usb/r92cu_init.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/usb/r92cu_init.c @@ -19,8 +19,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/usb/r92cu_led.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/usb/r92cu_led.c index 534987b6a1..eaad790c32 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/usb/r92cu_led.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/usb/r92cu_led.c @@ -19,8 +19,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/usb/r92cu_priv.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/usb/r92cu_priv.h index a7f9e8d495..bdf1889da4 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/usb/r92cu_priv.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/usb/r92cu_priv.h @@ -15,7 +15,6 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * * $OpenBSD: if_urtwnreg.h,v 1.3 2010/11/16 18:02:59 damien Exp $ - * $FreeBSD$ */ #ifndef R92CU_PRIV_H diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/usb/r92cu_reg.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/usb/r92cu_reg.h index f8ab133f53..8d34be3fd1 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/usb/r92cu_reg.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/usb/r92cu_reg.h @@ -15,7 +15,6 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * * $OpenBSD: if_urtwnreg.h,v 1.3 2010/11/16 18:02:59 damien Exp $ - * $FreeBSD$ */ #ifndef R92CU_REG_H diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/usb/r92cu_rx.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/usb/r92cu_rx.c index 6710b1a8fa..926b538706 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/usb/r92cu_rx.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/usb/r92cu_rx.c @@ -19,8 +19,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/usb/r92cu_tx.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/usb/r92cu_tx.c index a9e37ba819..0ccc23963d 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/usb/r92cu_tx.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/usb/r92cu_tx.c @@ -15,8 +15,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/usb/r92cu_tx_desc.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/usb/r92cu_tx_desc.h index f160f13109..56f84a871c 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/usb/r92cu_tx_desc.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192c/usb/r92cu_tx_desc.h @@ -15,7 +15,6 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * * $OpenBSD: if_urtwnreg.h,v 1.3 2010/11/16 18:02:59 damien Exp $ - * $FreeBSD$ */ #ifndef R92CU_TX_DESC_H diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192e/r92e.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192e/r92e.h index c4a6033025..331750c487 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192e/r92e.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192e/r92e.h @@ -22,8 +22,6 @@ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. - * - * $FreeBSD$ */ #ifndef RTL8192E_H diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192e/r92e_chan.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192e/r92e_chan.c index 0211e28838..b28462873c 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192e/r92e_chan.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192e/r92e_chan.c @@ -25,8 +25,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192e/r92e_fw.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192e/r92e_fw.c index 1db375bf85..527d7ea85d 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192e/r92e_fw.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192e/r92e_fw.c @@ -25,8 +25,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192e/r92e_init.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192e/r92e_init.c index b38a966156..925221bdab 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192e/r92e_init.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192e/r92e_init.c @@ -25,8 +25,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include @@ -195,6 +193,11 @@ r92e_init_rf(struct rtwn_softc *sc) /* Write RF initialization values for this chain. */ i += r92c_init_rf_chain(sc, &sc->rf_prog[i], chain); + /* Restore RF_ENV control type. */ + reg = rtwn_bb_read(sc, R92C_FPGA0_RFIFACESW(idx)); + reg &= ~(0x10 << off) | (type << off); + rtwn_bb_write(sc, R92C_FPGA0_RFIFACESW(idx), reg); + /* Cache RF register CHNLBW. */ rs->rf_chnlbw[chain] = rtwn_rf_read(sc, chain, R92C_RF_CHNLBW); } diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192e/r92e_led.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192e/r92e_led.c index fadf2078bf..5c0f53aa37 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192e/r92e_led.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192e/r92e_led.c @@ -25,8 +25,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192e/r92e_priv.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192e/r92e_priv.h index ddf8c48ca4..b4671c6c18 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192e/r92e_priv.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192e/r92e_priv.h @@ -22,8 +22,6 @@ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. - * - * $FreeBSD$ */ #ifndef R92E_PRIV_H diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192e/r92e_reg.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192e/r92e_reg.h index eb2b1f2c71..5106bcf9d5 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192e/r92e_reg.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192e/r92e_reg.h @@ -22,8 +22,6 @@ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. - * - * $FreeBSD$ */ #ifndef R92E_REG_H diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192e/r92e_rf.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192e/r92e_rf.c index f4337d6e54..8e05a82726 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192e/r92e_rf.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192e/r92e_rf.c @@ -25,8 +25,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192e/r92e_rom.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192e/r92e_rom.c index f5646a6d42..42d2b5f2a3 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192e/r92e_rom.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192e/r92e_rom.c @@ -25,8 +25,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192e/r92e_rom_defs.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192e/r92e_rom_defs.h index 1dc4c65745..42d0772433 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192e/r92e_rom_defs.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192e/r92e_rom_defs.h @@ -22,8 +22,6 @@ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. - * - * $FreeBSD$ */ #ifndef R92E_ROM_DEFS_H diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192e/r92e_rom_image.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192e/r92e_rom_image.h index 8a5bd52462..a93186ee4b 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192e/r92e_rom_image.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192e/r92e_rom_image.h @@ -12,8 +12,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD$ */ #ifndef R92E_ROM_IMAGE_H diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192e/r92e_rx.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192e/r92e_rx.c index 1239158255..d7efdbdc75 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192e/r92e_rx.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192e/r92e_rx.c @@ -17,8 +17,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192e/r92e_var.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192e/r92e_var.h index 5da3418719..b7ca2bc066 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192e/r92e_var.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192e/r92e_var.h @@ -22,8 +22,6 @@ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. - * - * $FreeBSD$ */ #ifndef R92E_VAR_H diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192e/usb/r92eu.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192e/usb/r92eu.h index 3ca6e06758..a81af00cfa 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192e/usb/r92eu.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192e/usb/r92eu.h @@ -22,8 +22,6 @@ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. - * - * $FreeBSD$ */ #ifndef RTL8192EU_H diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192e/usb/r92eu_attach.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192e/usb/r92eu_attach.c index 6f166d99e3..a0a9392535 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192e/usb/r92eu_attach.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192e/usb/r92eu_attach.c @@ -15,8 +15,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192e/usb/r92eu_init.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192e/usb/r92eu_init.c index efee51de63..e2fc3780e9 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192e/usb/r92eu_init.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192e/usb/r92eu_init.c @@ -25,8 +25,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192e/usb/r92eu_reg.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192e/usb/r92eu_reg.h index e6c8af4166..abcb28a73b 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192e/usb/r92eu_reg.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8192e/usb/r92eu_reg.h @@ -22,8 +22,6 @@ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. - * - * $FreeBSD$ */ #ifndef R92EU_REG_H diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a.h index f3bbdf7736..19dbd1569e 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a.h @@ -22,8 +22,6 @@ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. - * - * $FreeBSD$ */ #ifndef RTL8812A_H diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_beacon.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_beacon.c index 879d513eb6..b4458d60a0 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_beacon.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_beacon.c @@ -25,8 +25,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_calib.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_calib.c index 268e06b5ba..9992c71820 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_calib.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_calib.c @@ -25,8 +25,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_caps.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_caps.c index ab175b41ec..454067b6c7 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_caps.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_caps.c @@ -25,8 +25,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include @@ -101,11 +99,11 @@ r12a_ioctl_net(struct ieee80211com *ic, u_long cmd, void *data) IEEE80211_LOCK(ic); /* XXX */ TAILQ_FOREACH(vap, &ic->ic_vaps, iv_next) { - struct ifnet *ifp = vap->iv_ifp; + if_t ifp = vap->iv_ifp; - ifp->if_capenable &= - ~(IFCAP_RXCSUM | IFCAP_RXCSUM_IPV6); - ifp->if_capenable |= rxmask; + if_setcapenablebit(ifp, 0, + IFCAP_RXCSUM | IFCAP_RXCSUM_IPV6); + if_setcapenablebit(ifp, rxmask, 0); } IEEE80211_UNLOCK(ic); break; diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_chan.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_chan.c index a1b39b97c6..6bad6345f2 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_chan.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_chan.c @@ -25,8 +25,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_fw.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_fw.c index 08847d7fff..6d383fe2f5 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_fw.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_fw.c @@ -25,8 +25,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_fw_cmd.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_fw_cmd.h index e50e918912..4b81dc4452 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_fw_cmd.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_fw_cmd.h @@ -22,8 +22,6 @@ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. - * - * $FreeBSD$ */ #ifndef R12A_FW_CMD_H diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_init.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_init.c index af1a746b75..31f255c066 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_init.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_init.c @@ -25,8 +25,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_led.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_led.c index c2b76d1abd..f8d7e3d953 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_led.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_led.c @@ -25,8 +25,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_priv.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_priv.h index f770e3b0ac..cda820941f 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_priv.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_priv.h @@ -22,8 +22,6 @@ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. - * - * $FreeBSD$ */ #ifndef R12A_PRIV_H diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_reg.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_reg.h index b6aa302e69..f9acc20474 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_reg.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_reg.h @@ -22,8 +22,6 @@ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. - * - * $FreeBSD$ */ #ifndef R12A_REG_H diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_rf.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_rf.c index a9936a1209..1e0b041df2 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_rf.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_rf.c @@ -25,8 +25,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_rom.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_rom.c index 9eaa03adf3..476b7be46d 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_rom.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_rom.c @@ -25,8 +25,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_rom_defs.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_rom_defs.h index 4cdb8b5438..bd86bdff53 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_rom_defs.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_rom_defs.h @@ -22,8 +22,6 @@ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. - * - * $FreeBSD$ */ #ifndef R12A_ROM_DEFS_H diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_rom_image.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_rom_image.h index 1f992e1e8d..3518edb7c9 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_rom_image.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_rom_image.h @@ -22,8 +22,6 @@ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. - * - * $FreeBSD$ */ #ifndef R12A_ROM_IMAGE_H diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_rx.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_rx.c index 98e0cabdff..763397636a 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_rx.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_rx.c @@ -25,8 +25,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include @@ -66,9 +64,7 @@ __FBSDID("$FreeBSD$"); void r12a_ratectl_tx_complete(struct rtwn_softc *sc, uint8_t *buf, int len) { -#if __FreeBSD_version >= 1200012 struct ieee80211_ratectl_tx_status txs; -#endif struct r12a_c2h_tx_rpt *rpt; struct ieee80211_node *ni; int ntries; @@ -108,7 +104,6 @@ r12a_ratectl_tx_complete(struct rtwn_softc *sc, uint8_t *buf, int len) (rpt->txrptb0 & (R12A_TXRPTB0_RETRY_OVER | R12A_TXRPTB0_LIFE_EXPIRE)) ? " not" : "", ntries); -#if __FreeBSD_version >= 1200012 txs.flags = IEEE80211_RATECTL_STATUS_LONG_RETRY | IEEE80211_RATECTL_STATUS_FINAL_RATE; txs.long_retries = ntries; @@ -125,16 +120,6 @@ r12a_ratectl_tx_complete(struct rtwn_softc *sc, uint8_t *buf, int len) else txs.status = IEEE80211_RATECTL_TX_SUCCESS; ieee80211_ratectl_tx_complete(ni, &txs); -#else - struct ieee80211vap *vap = ni->ni_vap; - if (rpt->txrptb0 & R12A_TXRPTB0_RETRY_OVER) { - ieee80211_ratectl_tx_complete(vap, ni, - IEEE80211_RATECTL_TX_FAILURE, &ntries, NULL); - } else { - ieee80211_ratectl_tx_complete(vap, ni, - IEEE80211_RATECTL_TX_SUCCESS, &ntries, NULL); - } -#endif } else { RTWN_DPRINTF(sc, RTWN_DEBUG_INTR, "%s: macid %u, ni is NULL\n", __func__, rpt->macid); diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_rx_desc.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_rx_desc.h index c3d19527df..474fe21ea2 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_rx_desc.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_rx_desc.h @@ -22,8 +22,6 @@ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. - * - * $FreeBSD$ */ #ifndef R12A_RX_DESC_H diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_tx.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_tx.c index 3ce171c824..9e0d8e85c0 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_tx.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_tx.c @@ -25,8 +25,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_tx_desc.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_tx_desc.h index ad01b6829d..93cc9b8674 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_tx_desc.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_tx_desc.h @@ -22,8 +22,6 @@ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. - * - * $FreeBSD$ */ #ifndef R12A_TX_DESC_H diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_var.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_var.h index 0092fb67e4..182e6b9027 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_var.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/r12a_var.h @@ -22,8 +22,6 @@ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. - * - * $FreeBSD$ */ #ifndef R12A_VAR_H diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/usb/r12au.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/usb/r12au.h index bb4173d08a..63159eeaf2 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/usb/r12au.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/usb/r12au.h @@ -22,8 +22,6 @@ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. - * - * $FreeBSD$ */ #ifndef RTL8812AU_H diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/usb/r12au_attach.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/usb/r12au_attach.c index dd5223ce96..52a8e3d7cc 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/usb/r12au_attach.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/usb/r12au_attach.c @@ -25,8 +25,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include @@ -111,14 +109,14 @@ void r12a_vap_preattach(struct rtwn_softc *sc, struct ieee80211vap *vap) { struct r12a_softc *rs = sc->sc_priv; - struct ifnet *ifp = vap->iv_ifp; + if_t ifp = vap->iv_ifp; - ifp->if_capabilities = IFCAP_RXCSUM | IFCAP_RXCSUM_IPV6; + if_setcapabilities(ifp, IFCAP_RXCSUM | IFCAP_RXCSUM_IPV6); RTWN_LOCK(sc); if (rs->rs_flags & R12A_RXCKSUM_EN) - ifp->if_capenable |= IFCAP_RXCSUM; + if_setcapenablebit(ifp, IFCAP_RXCSUM, 0); if (rs->rs_flags & R12A_RXCKSUM6_EN) - ifp->if_capenable |= IFCAP_RXCSUM_IPV6; + if_setcapenablebit(ifp, IFCAP_RXCSUM_IPV6, 0); RTWN_UNLOCK(sc); } diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/usb/r12au_init.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/usb/r12au_init.c index 109ae5cba1..ac6a599895 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/usb/r12au_init.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/usb/r12au_init.c @@ -25,8 +25,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/usb/r12au_reg.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/usb/r12au_reg.h index f768c26248..3ed11a51a8 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/usb/r12au_reg.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/usb/r12au_reg.h @@ -22,8 +22,6 @@ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. - * - * $FreeBSD$ */ #ifndef R12AU_REG_H diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/usb/r12au_rx.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/usb/r12au_rx.c index de58a87354..b4419c424a 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/usb/r12au_rx.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/usb/r12au_rx.c @@ -25,8 +25,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/usb/r12au_tx.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/usb/r12au_tx.c index bc5f2ea9a0..501969dc4f 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/usb/r12au_tx.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/usb/r12au_tx.c @@ -25,8 +25,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/usb/r12au_tx_desc.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/usb/r12au_tx_desc.h index b7613f2bf1..f887a3af43 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/usb/r12au_tx_desc.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8812a/usb/r12au_tx_desc.h @@ -22,8 +22,6 @@ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. - * - * $FreeBSD$ */ #ifndef R12AU_TX_DESC_H diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8821a/r21a.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8821a/r21a.h index 9491cf4961..3ce57eb029 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8821a/r21a.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8821a/r21a.h @@ -22,8 +22,6 @@ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. - * - * $FreeBSD$ */ #ifndef RTL8821A_H diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8821a/r21a_beacon.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8821a/r21a_beacon.c index 29de33e53f..41b8b83dbf 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8821a/r21a_beacon.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8821a/r21a_beacon.c @@ -25,8 +25,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8821a/r21a_calib.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8821a/r21a_calib.c index 395231a37b..15fd8c9d69 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8821a/r21a_calib.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8821a/r21a_calib.c @@ -25,8 +25,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8821a/r21a_chan.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8821a/r21a_chan.c index 68b3ef986f..3ffb9a806d 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8821a/r21a_chan.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8821a/r21a_chan.c @@ -25,8 +25,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8821a/r21a_fw.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8821a/r21a_fw.c index a512d8f4be..8da6183117 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8821a/r21a_fw.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8821a/r21a_fw.c @@ -25,8 +25,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8821a/r21a_init.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8821a/r21a_init.c index 8dc4faafe8..750b7968e4 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8821a/r21a_init.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8821a/r21a_init.c @@ -25,8 +25,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8821a/r21a_led.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8821a/r21a_led.c index af75d40782..65408f6871 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8821a/r21a_led.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8821a/r21a_led.c @@ -25,8 +25,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8821a/r21a_priv.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8821a/r21a_priv.h index 298dd36040..5fe83fcd6d 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8821a/r21a_priv.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8821a/r21a_priv.h @@ -22,8 +22,6 @@ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. - * - * $FreeBSD$ */ #ifndef R21A_PRIV_H diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8821a/r21a_reg.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8821a/r21a_reg.h index 287fcbd7f6..bca43a26e1 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8821a/r21a_reg.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8821a/r21a_reg.h @@ -22,8 +22,6 @@ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. - * - * $FreeBSD$ */ #ifndef R21A_REG_H diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8821a/r21a_rom.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8821a/r21a_rom.c index 45642043c0..621592ca15 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8821a/r21a_rom.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8821a/r21a_rom.c @@ -25,8 +25,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8821a/r21a_rx.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8821a/r21a_rx.c index 5670c2bf70..9f78b9fc67 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8821a/r21a_rx.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8821a/r21a_rx.c @@ -25,8 +25,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8821a/usb/r21au.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8821a/usb/r21au.h index 5e000446a9..a5736eaa6f 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8821a/usb/r21au.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8821a/usb/r21au.h @@ -22,8 +22,6 @@ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. - * - * $FreeBSD$ */ #ifndef RTL8821AU_H diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8821a/usb/r21au_attach.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8821a/usb/r21au_attach.c index 463d4876ae..480b1ae36b 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8821a/usb/r21au_attach.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8821a/usb/r21au_attach.c @@ -25,8 +25,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8821a/usb/r21au_dfs.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8821a/usb/r21au_dfs.c index d1940d23e8..d415b3189a 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8821a/usb/r21au_dfs.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8821a/usb/r21au_dfs.c @@ -25,8 +25,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8821a/usb/r21au_init.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8821a/usb/r21au_init.c index 5f092def29..38a62784db 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8821a/usb/r21au_init.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8821a/usb/r21au_init.c @@ -25,8 +25,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8821a/usb/r21au_reg.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8821a/usb/r21au_reg.h index cd0deb5f7c..2511be459a 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8821a/usb/r21au_reg.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/rtl8821a/usb/r21au_reg.h @@ -22,8 +22,6 @@ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. - * - * $FreeBSD$ */ #ifndef R21AU_REG_H diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/usb/rtwn_usb_attach.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/usb/rtwn_usb_attach.c index cb775bae31..a53b499395 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/usb/rtwn_usb_attach.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/usb/rtwn_usb_attach.c @@ -19,8 +19,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include #include #include @@ -480,9 +478,7 @@ static driver_t rtwn_usb_driver = { sizeof(struct rtwn_usb_softc) }; -static devclass_t rtwn_usb_devclass; - -DRIVER_MODULE(rtwn_usb, uhub, rtwn_usb_driver, rtwn_usb_devclass, NULL, NULL); +DRIVER_MODULE(rtwn_usb, uhub, rtwn_usb_driver, NULL, NULL); MODULE_VERSION(rtwn_usb, 1); MODULE_DEPEND(rtwn_usb, usb, 1, 1, 1); MODULE_DEPEND(rtwn_usb, wlan, 1, 1, 1); diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/usb/rtwn_usb_attach.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/usb/rtwn_usb_attach.h index 2a7c962838..728a0a6a3b 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/usb/rtwn_usb_attach.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/usb/rtwn_usb_attach.h @@ -16,8 +16,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD$ */ void r92cu_attach(struct rtwn_usb_softc *); diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/usb/rtwn_usb_ep.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/usb/rtwn_usb_ep.c index b6658b6a03..0848a45a9f 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/usb/rtwn_usb_ep.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/usb/rtwn_usb_ep.c @@ -19,8 +19,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/usb/rtwn_usb_ep.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/usb/rtwn_usb_ep.h index 0cdd738e17..f0b726a818 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/usb/rtwn_usb_ep.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/usb/rtwn_usb_ep.h @@ -12,8 +12,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD$ */ #ifndef IF_RTWN_EP_H diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/usb/rtwn_usb_reg.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/usb/rtwn_usb_reg.c index fad6d04ec5..b39f1c77aa 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/usb/rtwn_usb_reg.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/usb/rtwn_usb_reg.c @@ -19,8 +19,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include #include #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/usb/rtwn_usb_reg.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/usb/rtwn_usb_reg.h index 1149248d71..f10ef30d09 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/usb/rtwn_usb_reg.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/usb/rtwn_usb_reg.h @@ -12,8 +12,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD$ */ #ifndef RTWN_USB_REG_H diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/usb/rtwn_usb_rx.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/usb/rtwn_usb_rx.c index 5241508474..5db967ddcc 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/usb/rtwn_usb_rx.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/usb/rtwn_usb_rx.c @@ -19,8 +19,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include @@ -367,7 +365,7 @@ rtwn_bulk_rx_callback(struct usb_xfer *xfer, usb_error_t error) struct rtwn_softc *sc = &uc->uc_sc; struct ieee80211com *ic = &sc->sc_ic; struct ieee80211_node *ni; - struct mbuf *m = NULL, *next; + struct mbuf *m0, *m = NULL, *next; struct rtwn_data *data; RTWN_ASSERT_LOCKED(sc); @@ -399,23 +397,29 @@ tr_setup: * ieee80211_input() because here is at the end of a USB * callback and safe to unlock. */ + m0 = m; + while (m != NULL) { + M_ASSERTPKTHDR(m); + m->m_pkthdr.PH_loc.ptr = rtwn_rx_frame(sc, m); + m = m->m_nextpkt; + } + RTWN_UNLOCK(sc); + m = m0; while (m != NULL) { next = m->m_nextpkt; m->m_nextpkt = NULL; - ni = rtwn_rx_frame(sc, m); - - RTWN_UNLOCK(sc); - + ni = m->m_pkthdr.PH_loc.ptr; + m->m_pkthdr.PH_loc.ptr = NULL; if (ni != NULL) { (void)ieee80211_input_mimo(ni, m); ieee80211_free_node(ni); } else { (void)ieee80211_input_mimo_all(ic, m); } - RTWN_LOCK(sc); m = next; } + RTWN_LOCK(sc); break; default: /* needs it to the inactive queue due to a error. */ diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/usb/rtwn_usb_rx.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/usb/rtwn_usb_rx.h index e370816969..531c223709 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/usb/rtwn_usb_rx.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/usb/rtwn_usb_rx.h @@ -12,8 +12,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD$ */ #ifndef RTWN_USB_RX_H diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/usb/rtwn_usb_tx.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/usb/rtwn_usb_tx.c index 9e36474f1e..0fb8632d9a 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/usb/rtwn_usb_tx.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/usb/rtwn_usb_tx.c @@ -19,8 +19,6 @@ */ #include -__FBSDID("$FreeBSD$"); - #include "opt_wlan.h" #include diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/usb/rtwn_usb_tx.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/usb/rtwn_usb_tx.h index 01527080d5..7b762cc01a 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/usb/rtwn_usb_tx.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/usb/rtwn_usb_tx.h @@ -12,8 +12,6 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * $FreeBSD$ */ #ifndef RTWN_USB_TX_H diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/usb/rtwn_usb_var.h b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/usb/rtwn_usb_var.h index 7ef214632b..bad697bfa1 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/usb/rtwn_usb_var.h +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/dev/rtwn/usb/rtwn_usb_var.h @@ -15,7 +15,6 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * * $OpenBSD: if_urtwnreg.h,v 1.3 2010/11/16 18:02:59 damien Exp $ - * $FreeBSD$ */ #ifndef RTWN_USBVAR_H diff --git a/src/libs/compat/freebsd_wlan/net80211/_ieee80211.h b/src/libs/compat/freebsd_wlan/net80211/_ieee80211.h index ff55a8bbdb..1ac9328714 100644 --- a/src/libs/compat/freebsd_wlan/net80211/_ieee80211.h +++ b/src/libs/compat/freebsd_wlan/net80211/_ieee80211.h @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2001 Atsushi Onoe * Copyright (c) 2002-2008 Sam Leffler, Errno Consulting @@ -24,8 +24,6 @@ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * $FreeBSD: releng/12.0/sys/net80211/_ieee80211.h 326272 2017-11-27 15:23:17Z pfg $ */ #ifndef _NET80211__IEEE80211_H_ #define _NET80211__IEEE80211_H_ @@ -580,6 +578,7 @@ struct ieee80211_mimo_info { #define IEEE80211_RX_FW_20MHZ 1 #define IEEE80211_RX_FW_40MHZ 2 #define IEEE80211_RX_FW_80MHZ 3 +#define IEEE80211_RX_FW_160MHZ 4 /* PHY type */ #define IEEE80211_RX_FP_11B 1 @@ -601,8 +600,8 @@ struct ieee80211_rx_stats { int16_t c_rssi_ext[IEEE80211_MAX_CHAINS]; /* per-chain RSSI */ /* 32 bits */ - uint8_t c_nf; /* global NF */ - uint8_t c_rssi; /* global RSSI */ + int8_t c_nf; /* global NF */ + int8_t c_rssi; /* global RSSI */ uint8_t c_chain; /* number of RX chains involved */ uint8_t c_rate; /* legacy; 11n rate code; VHT MCS */ @@ -611,6 +610,9 @@ struct ieee80211_rx_stats { uint8_t c_ieee; /* Channel */ uint8_t c_width; /* channel width, FW flags above */ + /* 32 bits */ + uint32_t c_band; /* Band; XXX we do not have a real band. */ + /* Force alignment to DWORD */ union { uint8_t evm[IEEE80211_MAX_CHAINS][IEEE80211_MAX_EVM_PILOTS]; @@ -619,7 +621,7 @@ struct ieee80211_rx_stats { } evm; /* 32 bits */ - uint8_t c_phytype; /* PHY type, FP flags above */ + uint8_t c_phytype; /* PHY type, FW flags above */ uint8_t c_vhtnss; /* VHT - number of spatial streams */ uint8_t c_pad2[2]; }; diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211.c b/src/libs/compat/freebsd_wlan/net80211/ieee80211.c index 9f95abcb22..38a8708583 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211.c +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211.c @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2001 Atsushi Onoe * Copyright (c) 2002-2009 Sam Leffler, Errno Consulting @@ -27,8 +27,6 @@ */ #include -__FBSDID("$FreeBSD: releng/12.0/sys/net80211/ieee80211.c 336184 2018-07-10 23:30:19Z kevans $"); - /* * IEEE 802.11 generic handler */ @@ -47,6 +45,7 @@ __FBSDID("$FreeBSD: releng/12.0/sys/net80211/ieee80211.c 336184 2018-07-10 23:30 #include #include #include +#include #include #include #include @@ -337,12 +336,13 @@ ieee80211_ifattach(struct ieee80211com *ic) TAILQ_INIT(&ic->ic_vaps); /* Create a taskqueue for all state changes */ - ic->ic_tq = taskqueue_create("ic_taskq", M_WAITOK | M_ZERO, + ic->ic_tq = taskqueue_create("ic_taskq", + IEEE80211_M_WAITOK | IEEE80211_M_ZERO, taskqueue_thread_enqueue, &ic->ic_tq); taskqueue_start_threads(&ic->ic_tq, 1, PI_NET, "%s net80211 taskq", ic->ic_name); - ic->ic_ierrors = counter_u64_alloc(M_WAITOK); - ic->ic_oerrors = counter_u64_alloc(M_WAITOK); + ic->ic_ierrors = counter_u64_alloc(IEEE80211_M_WAITOK); + ic->ic_oerrors = counter_u64_alloc(IEEE80211_M_WAITOK); /* * Fill in 802.11 available channel set, mark all * available channels as active, and pick a default @@ -557,7 +557,7 @@ ieee80211_vap_setup(struct ieee80211com *ic, struct ieee80211vap *vap, vap->iv_htextcaps = ic->ic_htextcaps; /* 11ac capabilities - XXX methodize */ - vap->iv_vhtcaps = ic->ic_vhtcaps; + vap->iv_vht_cap.vht_cap_info = ic->ic_vht_cap.vht_cap_info; vap->iv_vhtextcaps = ic->ic_vhtextcaps; vap->iv_opmode = opmode; @@ -734,6 +734,7 @@ ieee80211_vap_detach(struct ieee80211vap *vap) { struct ieee80211com *ic = vap->iv_ic; struct ifnet *ifp = vap->iv_ifp; + int i; CURVNET_SET(ifp->if_vnet); @@ -748,7 +749,8 @@ ieee80211_vap_detach(struct ieee80211vap *vap) /* * Flush any deferred vap tasks. */ - ieee80211_draintask(ic, &vap->iv_nstate_task); + for (i = 0; i < NET80211_IV_NSTATE_NUM; i++) + ieee80211_draintask(ic, &vap->iv_nstate_task[i]); ieee80211_draintask(ic, &vap->iv_swbmiss_task); ieee80211_draintask(ic, &vap->iv_wme_task); ieee80211_draintask(ic, &ic->ic_parent_task); @@ -943,14 +945,14 @@ ieee80211_syncflag_vht_locked(struct ieee80211com *ic, int flag) bit = 0; TAILQ_FOREACH(vap, &ic->ic_vaps, iv_next) - if (vap->iv_flags_vht & flag) { + if (vap->iv_vht_flags & flag) { bit = 1; break; } if (bit) - ic->ic_flags_vht |= flag; + ic->ic_vht_flags |= flag; else - ic->ic_flags_vht &= ~flag; + ic->ic_vht_flags &= ~flag; } void @@ -961,9 +963,9 @@ ieee80211_syncflag_vht(struct ieee80211vap *vap, int flag) IEEE80211_LOCK(ic); if (flag < 0) { flag = -flag; - vap->iv_flags_vht &= ~flag; + vap->iv_vht_flags &= ~flag; } else - vap->iv_flags_vht |= flag; + vap->iv_vht_flags |= flag; ieee80211_syncflag_vht_locked(ic, flag); IEEE80211_UNLOCK(ic); } @@ -1291,8 +1293,8 @@ addchan(struct ieee80211_channel chans[], int maxchans, int *nchans, return (ENOBUFS); #if 0 - printf("%s: %d: ieee=%d, freq=%d, flags=0x%08x\n", - __func__, *nchans, ieee, freq, flags); + printf("%s: %d of %d: ieee=%d, freq=%d, flags=0x%08x\n", + __func__, *nchans, maxchans, ieee, freq, flags); #endif c = &chans[(*nchans)++]; @@ -1321,8 +1323,8 @@ copychan_prev(struct ieee80211_channel chans[], int maxchans, int *nchans, return (ENOBUFS); #if 0 - printf("%s: %d: flags=0x%08x\n", - __func__, *nchans, flags); + printf("%s: %d of %d: flags=0x%08x\n", + __func__, *nchans, maxchans, flags); #endif c = &chans[(*nchans)++]; @@ -1555,7 +1557,7 @@ ieee80211_get_channel_center_freq(const struct ieee80211_channel *c) * For 5, 10, 20MHz channels it'll be the normally configured channel * frequency. * - * For 40MHz, 80MHz, 160Mhz channels it'll the the centre of the + * For 40MHz, 80MHz, 160MHz channels it will be the centre of the * wide channel, not the centre of the primary channel (that's ic_freq). * * For 80+80MHz channels this will be the centre of the primary @@ -1822,6 +1824,8 @@ ieee80211_lookup_channel_rxstatus(struct ieee80211vap *vap, return (NULL); if ((rxs->r_flags & IEEE80211_R_IEEE) == 0) return (NULL); + if ((rxs->r_flags & IEEE80211_R_BAND) == 0) + return (NULL); /* * If the rx status contains a valid ieee/freq, then @@ -1832,11 +1836,20 @@ ieee80211_lookup_channel_rxstatus(struct ieee80211vap *vap, */ /* Determine a band */ - /* XXX should be done by the driver? */ - if (rxs->c_freq < 3000) { + switch (rxs->c_band) { + case IEEE80211_CHAN_2GHZ: flags = IEEE80211_CHAN_G; - } else { + break; + case IEEE80211_CHAN_5GHZ: flags = IEEE80211_CHAN_A; + break; + default: + if (rxs->c_freq < 3000) { + flags = IEEE80211_CHAN_G; + } else { + flags = IEEE80211_CHAN_A; + } + break; } /* Channel lookup */ @@ -2197,7 +2210,11 @@ media_status(enum ieee80211_opmode opmode, const struct ieee80211_channel *chan) status |= IFM_IEEE80211_MBSS; break; } - if (IEEE80211_IS_CHAN_HTA(chan)) { + if (IEEE80211_IS_CHAN_VHT_5GHZ(chan)) { + status |= IFM_IEEE80211_VHT5G; + } else if (IEEE80211_IS_CHAN_VHT_2GHZ(chan)) { + status |= IFM_IEEE80211_VHT2G; + } else if (IEEE80211_IS_CHAN_HTA(chan)) { status |= IFM_IEEE80211_11NA; } else if (IEEE80211_IS_CHAN_HTG(chan)) { status |= IFM_IEEE80211_11NG; diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211.h b/src/libs/compat/freebsd_wlan/net80211/ieee80211.h index 93d6127273..47e496bf42 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211.h +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211.h @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2001 Atsushi Onoe * Copyright (c) 2002-2009 Sam Leffler, Errno Consulting @@ -24,8 +24,6 @@ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * $FreeBSD: releng/12.0/sys/net80211/ieee80211.h 326272 2017-11-27 15:23:17Z pfg $ */ #ifndef _NET80211_IEEE80211_H_ #define _NET80211_IEEE80211_H_ @@ -117,51 +115,80 @@ struct ieee80211_qosframe_addr4 { #define IEEE80211_FC0_VERSION_0 0x00 #define IEEE80211_FC0_TYPE_MASK 0x0c #define IEEE80211_FC0_TYPE_SHIFT 2 -#define IEEE80211_FC0_TYPE_MGT 0x00 -#define IEEE80211_FC0_TYPE_CTL 0x04 -#define IEEE80211_FC0_TYPE_DATA 0x08 +#define IEEE80211_FC0_TYPE_MGT 0x00 /* Management */ +#define IEEE80211_FC0_TYPE_CTL 0x04 /* Control */ +#define IEEE80211_FC0_TYPE_DATA 0x08 /* Data */ +#define IEEE80211_FC0_TYPE_EXT 0x0c /* Extension */ #define IEEE80211_FC0_SUBTYPE_MASK 0xf0 #define IEEE80211_FC0_SUBTYPE_SHIFT 4 -/* for TYPE_MGT */ -#define IEEE80211_FC0_SUBTYPE_ASSOC_REQ 0x00 -#define IEEE80211_FC0_SUBTYPE_ASSOC_RESP 0x10 -#define IEEE80211_FC0_SUBTYPE_REASSOC_REQ 0x20 -#define IEEE80211_FC0_SUBTYPE_REASSOC_RESP 0x30 -#define IEEE80211_FC0_SUBTYPE_PROBE_REQ 0x40 -#define IEEE80211_FC0_SUBTYPE_PROBE_RESP 0x50 -#define IEEE80211_FC0_SUBTYPE_TIMING_ADV 0x60 -#define IEEE80211_FC0_SUBTYPE_BEACON 0x80 -#define IEEE80211_FC0_SUBTYPE_ATIM 0x90 -#define IEEE80211_FC0_SUBTYPE_DISASSOC 0xa0 -#define IEEE80211_FC0_SUBTYPE_AUTH 0xb0 -#define IEEE80211_FC0_SUBTYPE_DEAUTH 0xc0 -#define IEEE80211_FC0_SUBTYPE_ACTION 0xd0 -#define IEEE80211_FC0_SUBTYPE_ACTION_NOACK 0xe0 -/* for TYPE_CTL */ -#define IEEE80211_FC0_SUBTYPE_CONTROL_WRAP 0x70 -#define IEEE80211_FC0_SUBTYPE_BAR 0x80 -#define IEEE80211_FC0_SUBTYPE_BA 0x90 -#define IEEE80211_FC0_SUBTYPE_PS_POLL 0xa0 -#define IEEE80211_FC0_SUBTYPE_RTS 0xb0 -#define IEEE80211_FC0_SUBTYPE_CTS 0xc0 -#define IEEE80211_FC0_SUBTYPE_ACK 0xd0 -#define IEEE80211_FC0_SUBTYPE_CF_END 0xe0 -#define IEEE80211_FC0_SUBTYPE_CF_END_ACK 0xf0 -/* for TYPE_DATA (bit combination) */ -#define IEEE80211_FC0_SUBTYPE_DATA 0x00 -#define IEEE80211_FC0_SUBTYPE_CF_ACK 0x10 -#define IEEE80211_FC0_SUBTYPE_CF_POLL 0x20 -#define IEEE80211_FC0_SUBTYPE_CF_ACPL 0x30 -#define IEEE80211_FC0_SUBTYPE_NODATA 0x40 -#define IEEE80211_FC0_SUBTYPE_CFACK 0x50 -#define IEEE80211_FC0_SUBTYPE_CFPOLL 0x60 -#define IEEE80211_FC0_SUBTYPE_CF_ACK_CF_ACK 0x70 -#define IEEE80211_FC0_SUBTYPE_QOS 0x80 -#define IEEE80211_FC0_SUBTYPE_QOS_CFACK 0x90 -#define IEEE80211_FC0_SUBTYPE_QOS_CFPOLL 0xa0 -#define IEEE80211_FC0_SUBTYPE_QOS_CFACKPOLL 0xb0 -#define IEEE80211_FC0_SUBTYPE_QOS_NULL 0xc0 +/* 802.11-2020 Table 9-1-Valid type and subtype combinations */ +/* For type 00 Management (IEEE80211_FC0_TYPE_MGT) */ +#define IEEE80211_FC0_SUBTYPE_ASSOC_REQ 0x00 /* Association Request */ +#define IEEE80211_FC0_SUBTYPE_ASSOC_RESP 0x10 /* Association Response */ +#define IEEE80211_FC0_SUBTYPE_REASSOC_REQ 0x20 /* Reassociation Request */ +#define IEEE80211_FC0_SUBTYPE_REASSOC_RESP 0x30 /* Reassociation Response */ +#define IEEE80211_FC0_SUBTYPE_PROBE_REQ 0x40 /* Probe Request */ +#define IEEE80211_FC0_SUBTYPE_PROBE_RESP 0x50 /* Probe Response */ +#define IEEE80211_FC0_SUBTYPE_TIMING_ADV 0x60 /* Timing Advertisement */ +/* 0111 Reserved 0x70 */ +#define IEEE80211_FC0_SUBTYPE_BEACON 0x80 /* Beacon */ +#define IEEE80211_FC0_SUBTYPE_ATIM 0x90 /* ATIM */ +#define IEEE80211_FC0_SUBTYPE_DISASSOC 0xa0 /* Disassociation */ +#define IEEE80211_FC0_SUBTYPE_AUTH 0xb0 /* Authentication */ +#define IEEE80211_FC0_SUBTYPE_DEAUTH 0xc0 /* Deauthentication */ +#define IEEE80211_FC0_SUBTYPE_ACTION 0xd0 /* Action */ +#define IEEE80211_FC0_SUBTYPE_ACTION_NOACK 0xe0 /* Action No Ack */ +/* 1111 Reserved 0xf0 */ +/* For type 01 Control (IEEE80211_FC0_TYPE_CTL) */ +/* 0000-0001 Reserved 0x00-0x10 */ +#define IEEE80211_FC0_SUBTYPE_TRIGGER 0x20 /* Trigger, 80211ax-2021 */ +#define IEEE80211_FC0_SUBTYPE_TACK 0x30 /* TACK */ +#define IEEE80211_FC0_SUBTYPE_BF_REPORT_POLL 0x40 /* Beamforming Report Poll */ +#define IEEE80211_FC0_SUBTYPE_VHT_HE_NDP 0x50 /* VHT/HE NDP Announcement, 80211ac/ax-2013/2021 */ +#define IEEE80211_FC0_SUBTYPE_CTL_EXT 0x60 /* Control Frame Extension */ +#define IEEE80211_FC0_SUBTYPE_CONTROL_WRAP 0x70 /* Control Wrapper */ +#define IEEE80211_FC0_SUBTYPE_BAR 0x80 /* Block Ack Request (BlockAckReq) */ +#define IEEE80211_FC0_SUBTYPE_BA 0x90 /* Block Ack (BlockAck) */ +#define IEEE80211_FC0_SUBTYPE_PS_POLL 0xa0 /* PS-Poll */ +#define IEEE80211_FC0_SUBTYPE_RTS 0xb0 /* RTS */ +#define IEEE80211_FC0_SUBTYPE_CTS 0xc0 /* CTS */ +#define IEEE80211_FC0_SUBTYPE_ACK 0xd0 /* Ack */ +#define IEEE80211_FC0_SUBTYPE_CF_END 0xe0 /* CF-End */ +#define IEEE80211_FC0_SUBTYPE_CF_END_ACK 0xf0 /* 1111 Reserved - what was CF_END_ACK? */ +/* For type 10 Data (IEEE80211_FC0_TYPE_DATA) */ +#define IEEE80211_FC0_SUBTYPE_DATA 0x00 /* Data */ +/* 0001-0011 Reserved 0x10-0x30 */ /* Were: CF_ACK, CF_POLL, CF_ACPL */ +#define IEEE80211_FC0_SUBTYPE_NODATA 0x40 /* Null */ +/* 0101-0111 Reserved 0x50-0x70 */ /* Were: CFACK, CFPOLL, CF_ACK_CF_ACK */ +#define IEEE80211_FC0_SUBTYPE_QOS_DATA 0x80 /* QoS Data */ +#define IEEE80211_FC0_SUBTYPE_QOS_DATA_CFACK 0x90 /* QoS Data +CF-Ack */ +#define IEEE80211_FC0_SUBTYPE_QOS_DATA_CFPOLL 0xa0 /* QoS Data +CF-Poll */ +#define IEEE80211_FC0_SUBTYPE_QOS_DATA_CFACKPOLL 0xb0 /* QoS Data +CF-Ack +CF-Poll */ +#define IEEE80211_FC0_SUBTYPE_QOS_NULL 0xc0 /* QoS Null */ +/* 1101 Reserved 0xd0 */ +#define IEEE80211_FC0_SUBTYPE_QOS_CFPOLL 0xe0 /* QoS CF-Poll */ +#define IEEE80211_FC0_SUBTYPE_QOS_CFACKPOLL 0xf0 /* QoS CF-Ack +CF-Poll */ +/* For type 11 Extension (IEEE80211_FC0_TYPE_EXT) */ +#define IEEE80211_FC0_SUBTYPE_DMG_BEACON 0x00 /* DMG Beacon */ +#define IEEE80211_FC0_SUBTYPE_S1G_BEACON 0x10 /* S1G Beacon */ +/* 0010-1111 Reserved 0x20-0xff */ + +/* 802.11-2020 Table 9-2-Control Frame Extension */ +/* Reusing B11..B8, part of FC1 */ +#define IEEE80211_CTL_EXT_SECTOR_ACK 0x00 /* Sector Ack, 80211ay-2021 */ +#define IEEE80211_CTL_EXT_BA_SCHED 0x01 /* Block Ack Schedule, 80211ay-2021 */ +#define IEEE80211_CTL_EXT_POLL 0x02 /* Poll */ +#define IEEE80211_CTL_EXT_SPR 0x03 /* SPR */ +#define IEEE80211_CTL_EXT_GRANT 0x04 /* Grant */ +#define IEEE80211_CTL_EXT_DMG_CTS 0x05 /* DMG CTS */ +#define IEEE80211_CTL_EXT_DMG_DTS 0x06 /* DMG DTS */ +#define IEEE80211_CTL_EXT_GRANT_ACK 0x07 /* Grant Ack */ +#define IEEE80211_CTL_EXT_SSW 0x08 /* SSW */ +#define IEEE80211_CTL_EXT_SSW_FBACK 0x09 /* SSW-Feedback */ +#define IEEE80211_CTL_EXT_SSW_ACK 0x0a /* SSW-Ack */ +#define IEEE80211_CTL_EXT_TDD_BF 0x0b /* TDD Beamforming, 80211ay-2021 */ +/* 1100-1111 Reserved 0xc-0xf */ #define IEEE80211_IS_MGMT(wh) \ (!! (((wh)->i_fc[0] & IEEE80211_FC0_TYPE_MASK) \ @@ -172,9 +199,12 @@ struct ieee80211_qosframe_addr4 { #define IEEE80211_IS_DATA(wh) \ (!! (((wh)->i_fc[0] & IEEE80211_FC0_TYPE_MASK) \ == IEEE80211_FC0_TYPE_DATA)) +#define IEEE80211_IS_EXT(wh) \ + (!! (((wh)->i_fc[0] & IEEE80211_FC0_TYPE_MASK) \ + == IEEE80211_FC0_TYPE_EXT)) #define IEEE80211_FC0_QOSDATA \ - (IEEE80211_FC0_TYPE_DATA|IEEE80211_FC0_SUBTYPE_QOS|IEEE80211_FC0_VERSION_0) + (IEEE80211_FC0_TYPE_DATA|IEEE80211_FC0_SUBTYPE_QOS_DATA|IEEE80211_FC0_VERSION_0) #define IEEE80211_IS_QOSDATA(wh) \ ((wh)->i_fc[0] == IEEE80211_FC0_QOSDATA) @@ -195,6 +225,9 @@ struct ieee80211_qosframe_addr4 { #define IEEE80211_FC1_PROTECTED 0x40 #define IEEE80211_FC1_ORDER 0x80 +#define IEEE80211_IS_PROTECTED(wh) \ + ((wh)->i_fc[1] & IEEE80211_FC1_PROTECTED) + #define IEEE80211_HAS_SEQ(type, subtype) \ ((type) != IEEE80211_FC0_TYPE_CTL && \ !((type) == IEEE80211_FC0_TYPE_DATA && \ @@ -243,8 +276,8 @@ struct ieee80211_qosframe_addr4 { /* does frame have QoS sequence control data */ #define IEEE80211_QOS_HAS_SEQ(wh) \ (((wh)->i_fc[0] & \ - (IEEE80211_FC0_TYPE_MASK | IEEE80211_FC0_SUBTYPE_QOS)) == \ - (IEEE80211_FC0_TYPE_DATA | IEEE80211_FC0_SUBTYPE_QOS)) + (IEEE80211_FC0_TYPE_MASK | IEEE80211_FC0_SUBTYPE_QOS_DATA)) == \ + (IEEE80211_FC0_TYPE_DATA | IEEE80211_FC0_SUBTYPE_QOS_DATA)) /* * WME/802.11e information element. @@ -381,16 +414,65 @@ struct ieee80211_action { uint8_t ia_action; } __packed; -#define IEEE80211_ACTION_CAT_SM 0 /* Spectrum Management */ -#define IEEE80211_ACTION_CAT_QOS 1 /* QoS */ -#define IEEE80211_ACTION_CAT_DLS 2 /* DLS */ -#define IEEE80211_ACTION_CAT_BA 3 /* BA */ -#define IEEE80211_ACTION_CAT_HT 7 /* HT */ -#define IEEE80211_ACTION_CAT_MESH 13 /* Mesh */ -#define IEEE80211_ACTION_CAT_SELF_PROT 15 /* Self-protected */ -/* 16 - 125 reserved */ -#define IEEE80211_ACTION_CAT_VHT 21 -#define IEEE80211_ACTION_CAT_VENDOR 127 /* Vendor Specific */ +/* 80211-2020 Table 9-51-Category values */ +#define IEEE80211_ACTION_CAT_SM 0 /* 9.6.2 Spectrum Management */ +#define IEEE80211_ACTION_CAT_QOS 1 /* 9.6.3 QoS */ +/* Reserved 2 was IEEE80211_ACTION_CAT_DLS */ +#define IEEE80211_ACTION_CAT_BA 3 /* 9.6.4 Block Ack */ +#define IEEE80211_ACTION_CAT_PUBLIC 4 /* 9.6.7 Public */ +#define IEEE80211_ACTION_CAT_RADIO_MEASUREMENT 5 /* 9.6.6 Radio Measurement */ +#define IEEE80211_ACTION_CAT_FAST_BBS_TRANSITION 6 /* 9.6.8 Fast BSS Transition */ +#define IEEE80211_ACTION_CAT_HT 7 /* 9.6.11 HT */ +#define IEEE80211_ACTION_CAT_SA_QUERY 8 /* 9.6.9 SA Query */ +#define IEEE80211_ACTION_CAT_PROTECTED_DUAL_OF_PUBLIC_ACTION 9 /* 9.6.10 Protected Dual of Public Action */ +#define IEEE80211_ACTION_CAT_WNM 10 /* 9.6.13 WNM */ +#define IEEE80211_ACTION_CAT_UNPROTECTED_WNM 11 /* 9.6.14 Unprotected WNM */ +#define IEEE80211_ACTION_CAT_TDLS 12 /* 9.6.12 TDLS */ +#define IEEE80211_ACTION_CAT_MESH 13 /* 9.6.16 Mesh */ +#define IEEE80211_ACTION_CAT_MULTIHOP 14 /* 9.6.17 Multihop */ +#define IEEE80211_ACTION_CAT_SELF_PROT 15 /* 9.6.15 Self-protected */ +#define IEEE80211_ACTION_CAT_DMG 16 /* 9.6.19 DMG */ +/* Reserved 17 (R)Wi-Fi Alliance */ +#define IEEE80211_ACTION_CAT_FAST_SESSION_TRANSFER 18 /* 9.6.20 Fast Session Transfer */ +#define IEEE80211_ACTION_CAT_ROBUST_AV_STREAMING 19 /* 9.6.18 Robust AV Streaming */ +#define IEEE80211_ACTION_CAT_UNPROTECTED_DMG 20 /* 9.6.21 Unprotected DMG */ +#define IEEE80211_ACTION_CAT_VHT 21 /* 9.6.22 VHT */ +#define IEEE80211_ACTION_CAT_UNPROTECTED_S1G 22 /* 9.6.24 Unprotected S1G */ +#define IEEE80211_ACTION_CAT_S1G 23 /* 9.6.25 S1G */ +#define IEEE80211_ACTION_CAT_FLOW_CONTROL 24 /* 9.6.26 Flow Control */ +#define IEEE80211_ACTION_CAT_CTL_RESP_MCS_NEG 25 /* 9.6.27 Control Response MCS Negotiation */ +#define IEEE80211_ACTION_CAT_FILS 26 /* 9.6.23 FILS */ +#define IEEE80211_ACTION_CAT_CDMG 27 /* 9.6.28 CDMG */ +#define IEEE80211_ACTION_CAT_CMMG 28 /* 9.6.29 CMMG */ +#define IEEE80211_ACTION_CAT_GLK 29 /* 9.6.30 GLK */ +#define IEEE80211_ACTION_CAT_HE 30 /* 9.6.31 HE, 80211ax-2021 */ +#define IEEE80211_ACTION_CAT_PROTECTED_HE 31 /* 9.6.32 Protected HE, 80211ax-2021 */ +/* Reserved 32-125 */ +#define IEEE80211_ACTION_CAT_VENDOR_SPECIFIC_PROTECTED 126 /* 9.6.5 Vendor-specific Protected */ +#define IEEE80211_ACTION_CAT_VENDOR 127 /* 9.6.5 Vendor-specific */ +/* Error 128-255 */ + + +/* 80211-2020 Table 9-346-Spectrum Management Action field values */ +enum ieee80211_action_sm { + IEEE80211_ACTION_SM_SMREQ = 0, /* Spectrum Measurement Request */ + IEEE80211_ACTION_SM_SMREP = 1, /* Spectrum Measurement Report */ + IEEE80211_ACTION_SM_TPCREQ = 2, /* TPC Request */ + IEEE80211_ACTION_SM_TPCREP = 3, /* TPC Report */ + IEEE80211_ACTION_SM_CSA = 4, /* Channel Switch Announcement */ + /* Reserved = 5-255 */ +}; + +/* 80211-2020 Table 9-363-Radio Measurement Action field values */ +enum ieee80211_action_radio_measurement { + IEEE80211_ACTION_RADIO_MEASUREMENT_RMREQ = 0, /* Radio Measurement Request */ + IEEE80211_ACTION_RADIO_MEASUREMENT_RMREP = 1, /* Radio Measurement Report */ + IEEE80211_ACTION_RADIO_MEASUREMENT_LMREQ = 2, /* Link Measurement Request */ + IEEE80211_ACTION_RADIO_MEASUREMENT_LMREP = 3, /* Link Measurement Report */ + IEEE80211_ACTION_RADIO_MEASUREMENT_NRREQ = 4, /* Neighbor Report Request */ + IEEE80211_ACTION_RADIO_MEASUREMENT_NRRESP = 5, /* Neighbor Report Response */ + /* Reserved = 6-255 */ +}; #define IEEE80211_ACTION_HT_TXCHWIDTH 0 /* recommended xmit chan width*/ #define IEEE80211_ACTION_HT_MIMOPWRSAVE 1 /* MIMO power save */ @@ -765,10 +847,14 @@ struct ieee80211_ie_htinfo { * + rx_mcs_map/tx_mcs_map: bitmap of per-stream supported MCS; * 2 bits each. */ -#define IEEE80211_VHT_MCS_SUPPORT_0_7 0 /* MCS0-7 */ -#define IEEE80211_VHT_MCS_SUPPORT_0_8 1 /* MCS0-8 */ -#define IEEE80211_VHT_MCS_SUPPORT_0_9 2 /* MCS0-9 */ -#define IEEE80211_VHT_MCS_NOT_SUPPORTED 3 /* not supported */ + +/* 802.11ac-2013, 8.4.2.160.3 Supported VHT-MCS and NSS Set field */ +enum ieee80211_vht_mcs_support { + IEEE80211_VHT_MCS_SUPPORT_0_7 = 0, /* MCS0-7 */ + IEEE80211_VHT_MCS_SUPPORT_0_8 = 1, /* MCS0-8 */ + IEEE80211_VHT_MCS_SUPPORT_0_9 = 2, /* MCS0-9 */ + IEEE80211_VHT_MCS_NOT_SUPPORTED = 3 /* not supported */ +}; struct ieee80211_vht_mcs_info { uint16_t rx_mcs_map; @@ -777,29 +863,31 @@ struct ieee80211_vht_mcs_info { uint16_t tx_highest; } __packed; -/* VHT capabilities element: 802.11ac-2013 8.4.2.160 */ -struct ieee80211_ie_vhtcap { - uint8_t ie; - uint8_t len; - uint32_t vht_cap_info; - struct ieee80211_vht_mcs_info supp_mcs; +/* 802.11ac-2013, 8.4.2.160.1 VHT Capabilities element structure */ +struct ieee80211_vht_cap { + uint32_t vht_cap_info; + struct ieee80211_vht_mcs_info supp_mcs; } __packed; -/* VHT operation mode subfields - 802.11ac-2013 Table 8.183x */ -#define IEEE80211_VHT_CHANWIDTH_USE_HT 0 /* Use HT IE for chw */ -#define IEEE80211_VHT_CHANWIDTH_80MHZ 1 /* 80MHz */ -#define IEEE80211_VHT_CHANWIDTH_160MHZ 2 /* 160MHz */ -#define IEEE80211_VHT_CHANWIDTH_80P80MHZ 3 /* 80+80MHz */ +/* 802.11ac-2013, Table 8-183x-VHT Operation Information subfields */ +enum ieee80211_vht_chanwidth { + IEEE80211_VHT_CHANWIDTH_USE_HT = 0, /* 20 MHz or 40 MHz */ + IEEE80211_VHT_CHANWIDTH_80MHZ = 1, /* 80MHz */ + IEEE80211_VHT_CHANWIDTH_160MHZ = 2, /* 160MHz */ + IEEE80211_VHT_CHANWIDTH_80P80MHZ = 3, /* 80+80MHz */ + /* 4..255 reserved. */ +}; -/* VHT operation IE - 802.11ac-2013 8.4.2.161 */ -struct ieee80211_ie_vht_operation { - uint8_t ie; - uint8_t len; - uint8_t chan_width; - uint8_t center_freq_seg1_idx; - uint8_t center_freq_seg2_idx; - uint16_t basic_mcs_set; +/* The name conflicts with the same structure in wpa. Only ifconfig needs this. */ +#if defined(_KERNEL) || defined(WANT_NET80211) +/* 802.11ac-2013 8.4.2.161 VHT Operation element */ +struct ieee80211_vht_operation { + uint8_t chan_width; /* enum ieee80211_vht_chanwidth */ + uint8_t center_freq_seq0_idx; /* 20/40/80/160 - VHT chan1 */ + uint8_t center_freq_seq1_idx; /* 80+80 - VHT chan2 */ + uint16_t basic_mcs_set; /* Basic VHT-MCS and NSS Set */ } __packed; +#endif /* 802.11ac VHT Capabilities */ #define IEEE80211_VHTCAP_MAX_MPDU_LENGTH_3895 0x00000000 @@ -1008,10 +1096,16 @@ enum { IEEE80211_ELEMID_MESHPXUC = 138, IEEE80211_ELEMID_MESHAH = 60, /* XXX: remove */ - /* 802.11ac */ + /* 802.11ac-2013, Table 8-54-Element IDs */ IEEE80211_ELEMID_VHT_CAP = 191, IEEE80211_ELEMID_VHT_OPMODE = 192, + IEEE80211_ELEMID_EXTENDED_BSS_LOAD = 193, + IEEE80211_ELEMID_WIDE_BW_CHANNEL_SWITCH = 194, IEEE80211_ELEMID_VHT_PWR_ENV = 195, + IEEE80211_ELEMID_CHANNEL_SWITCH_WRAPPER = 196, + IEEE80211_ELEMID_AID = 197, + IEEE80211_ELEMID_QUIET_CHANNEL = 198, + IEEE80211_ELEMID_OPMODE_NOTIF = 199, }; struct ieee80211_tim_ie { diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_acl.c b/src/libs/compat/freebsd_wlan/net80211/ieee80211_acl.c index 8006da7d69..51f016c5aa 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_acl.c +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_acl.c @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2004-2008 Sam Leffler, Errno Consulting * All rights reserved. @@ -26,8 +26,6 @@ */ #include -__FBSDID("$FreeBSD: releng/12.0/sys/net80211/ieee80211_acl.c 326272 2017-11-27 15:23:17Z pfg $"); - /* * IEEE 802.11 MAC ACL support. * diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_action.c b/src/libs/compat/freebsd_wlan/net80211/ieee80211_action.c index fb7d8af892..5dcb2438a6 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_action.c +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_action.c @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2009 Sam Leffler, Errno Consulting * All rights reserved. @@ -27,7 +27,6 @@ #include #ifdef __FreeBSD__ -__FBSDID("$FreeBSD: releng/12.0/sys/net80211/ieee80211_action.c 326272 2017-11-27 15:23:17Z pfg $"); #endif /* diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_action.h b/src/libs/compat/freebsd_wlan/net80211/ieee80211_action.h index fa0c93fc27..d7522fe6f4 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_action.h +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_action.h @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2009 Sam Leffler, Errno Consulting * All rights reserved. @@ -23,8 +23,6 @@ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * $FreeBSD: releng/12.0/sys/net80211/ieee80211_action.h 326272 2017-11-27 15:23:17Z pfg $ */ #ifndef _NET80211_IEEE80211_ACTION_H_ #define _NET80211_IEEE80211_ACTION_H_ diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_adhoc.c b/src/libs/compat/freebsd_wlan/net80211/ieee80211_adhoc.c index b1b5a76bcb..7455500a91 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_adhoc.c +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_adhoc.c @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2007-2009 Sam Leffler, Errno Consulting * All rights reserved. @@ -27,7 +27,6 @@ #include #ifdef __FreeBSD__ -__FBSDID("$FreeBSD: releng/12.0/sys/net80211/ieee80211_adhoc.c 326272 2017-11-27 15:23:17Z pfg $"); #endif /* @@ -53,6 +52,7 @@ __FBSDID("$FreeBSD: releng/12.0/sys/net80211/ieee80211_adhoc.c 326272 2017-11-27 #include #include #include +#include #include #include @@ -341,7 +341,7 @@ adhoc_input(struct ieee80211_node *ni, struct mbuf *m, wh = mtod(m, struct ieee80211_frame *); type = IEEE80211_FC0_TYPE_DATA; dir = wh->i_fc[1] & IEEE80211_FC1_DIR_MASK; - subtype = IEEE80211_FC0_SUBTYPE_QOS; + subtype = IEEE80211_FC0_SUBTYPE_QOS_DATA; hdrspace = ieee80211_hdrspace(ic, wh); /* XXX optimize? */ goto resubmit_ampdu; } @@ -495,7 +495,7 @@ adhoc_input(struct ieee80211_node *ni, struct mbuf *m, * crypto cipher modules used to do delayed update * of replay sequence numbers. */ - if (is_hw_decrypted || wh->i_fc[1] & IEEE80211_FC1_PROTECTED) { + if (is_hw_decrypted || IEEE80211_IS_PROTECTED(wh)) { if ((vap->iv_flags & IEEE80211_F_PRIVACY) == 0) { /* * Discard encrypted frames when privacy is off. @@ -522,7 +522,7 @@ adhoc_input(struct ieee80211_node *ni, struct mbuf *m, /* * Save QoS bits for use below--before we strip the header. */ - if (subtype == IEEE80211_FC0_SUBTYPE_QOS) + if (subtype == IEEE80211_FC0_SUBTYPE_QOS_DATA) qos = ieee80211_getqos(wh)[0]; else qos = 0; @@ -531,7 +531,7 @@ adhoc_input(struct ieee80211_node *ni, struct mbuf *m, * Next up, any fragmentation. */ if (!IEEE80211_IS_MULTICAST(wh->i_addr1)) { - m = ieee80211_defrag(ni, m, hdrspace); + m = ieee80211_defrag(ni, m, hdrspace, has_decrypted); if (m == NULL) { /* Fragment dropped or frame not complete yet */ goto out; @@ -558,7 +558,7 @@ adhoc_input(struct ieee80211_node *ni, struct mbuf *m, /* * Finally, strip the 802.11 header. */ - m = ieee80211_decap(vap, m, hdrspace); + m = ieee80211_decap(vap, m, hdrspace, qos); if (m == NULL) { /* XXX mask bit to check for both */ /* don't count Null data frames as errors */ @@ -571,7 +571,10 @@ adhoc_input(struct ieee80211_node *ni, struct mbuf *m, IEEE80211_NODE_STAT(ni, rx_decap); goto err; } - eh = mtod(m, struct ether_header *); + if (!(qos & IEEE80211_QOS_AMSDU)) + eh = mtod(m, struct ether_header *); + else + eh = NULL; if (!ieee80211_node_is_authorized(ni)) { /* * Deny any non-PAE frames received prior to @@ -581,11 +584,13 @@ adhoc_input(struct ieee80211_node *ni, struct mbuf *m, * the port is not marked authorized by the * authenticator until the handshake has completed. */ - if (eh->ether_type != htons(ETHERTYPE_PAE)) { + if (eh == NULL || + eh->ether_type != htons(ETHERTYPE_PAE)) { IEEE80211_DISCARD_MAC(vap, IEEE80211_MSG_INPUT, - eh->ether_shost, "data", - "unauthorized port: ether type 0x%x len %u", - eh->ether_type, m->m_pkthdr.len); + ni->ni_macaddr, "data", "unauthorized or " + "unknown port: ether type 0x%x len %u", + eh == NULL ? -1 : eh->ether_type, + m->m_pkthdr.len); vap->iv_stats.is_rx_unauth++; IEEE80211_NODE_STAT(ni, rx_unauth); goto err; @@ -598,7 +603,8 @@ adhoc_input(struct ieee80211_node *ni, struct mbuf *m, if ((vap->iv_flags & IEEE80211_F_DROPUNENC) && ((has_decrypted == 0) && (m->m_flags & M_WEP) == 0) && (is_hw_decrypted == 0) && - eh->ether_type != htons(ETHERTYPE_PAE)) { + (eh == NULL || + eh->ether_type != htons(ETHERTYPE_PAE))) { /* * Drop unencrypted frames. */ @@ -649,7 +655,7 @@ adhoc_input(struct ieee80211_node *ni, struct mbuf *m, ether_sprintf(wh->i_addr2), rssi); } #endif - if (wh->i_fc[1] & IEEE80211_FC1_PROTECTED) { + if (IEEE80211_IS_PROTECTED(wh)) { IEEE80211_DISCARD(vap, IEEE80211_MSG_INPUT, wh, NULL, "%s", "WEP set but not permitted"); vap->iv_stats.is_rx_mgtdiscard++; /* XXX */ @@ -1003,7 +1009,6 @@ ahdemo_recv_mgmt(struct ieee80211_node *ni, struct mbuf *m0, { struct ieee80211vap *vap = ni->ni_vap; struct ieee80211com *ic = ni->ni_ic; - struct ieee80211_frame *wh; /* * Process management frames when scanning; useful for doing @@ -1012,7 +1017,11 @@ ahdemo_recv_mgmt(struct ieee80211_node *ni, struct mbuf *m0, if (ic->ic_flags & IEEE80211_F_SCAN) adhoc_recv_mgmt(ni, m0, subtype, rxs, rssi, nf); else { +#ifdef IEEE80211_DEBUG + struct ieee80211_frame *wh; + wh = mtod(m0, struct ieee80211_frame *); +#endif switch (subtype) { case IEEE80211_FC0_SUBTYPE_ASSOC_REQ: case IEEE80211_FC0_SUBTYPE_ASSOC_RESP: diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_adhoc.h b/src/libs/compat/freebsd_wlan/net80211/ieee80211_adhoc.h index 925fe6e799..43ad856780 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_adhoc.h +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_adhoc.h @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2007-2008 Sam Leffler, Errno Consulting * All rights reserved. @@ -23,8 +23,6 @@ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * $FreeBSD: releng/12.0/sys/net80211/ieee80211_adhoc.h 326272 2017-11-27 15:23:17Z pfg $ */ #ifndef _NET80211_IEEE80211_ADHOC_H_ #define _NET80211_IEEE80211_ADHOC_H_ diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_ageq.c b/src/libs/compat/freebsd_wlan/net80211/ieee80211_ageq.c index 8226233938..c6960d53e0 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_ageq.c +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_ageq.c @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2009 Sam Leffler, Errno Consulting * All rights reserved. @@ -26,8 +26,6 @@ */ #include -__FBSDID("$FreeBSD: releng/12.0/sys/net80211/ieee80211_ageq.c 326272 2017-11-27 15:23:17Z pfg $"); - /* * IEEE 802.11 age queue support. */ diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_ageq.h b/src/libs/compat/freebsd_wlan/net80211/ieee80211_ageq.h index 1a52a2f5fa..3380f23986 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_ageq.h +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_ageq.h @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2009 Sam Leffler, Errno Consulting * All rights reserved. @@ -23,8 +23,6 @@ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * $FreeBSD: releng/12.0/sys/net80211/ieee80211_ageq.h 326272 2017-11-27 15:23:17Z pfg $ */ #ifndef _NET80211_IEEE80211_STAGEQ_H_ #define _NET80211_IEEE80211_STAGEQ_H_ diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_alq.c b/src/libs/compat/freebsd_wlan/net80211/ieee80211_alq.c index ec5e7fed02..4a714bb51a 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_alq.c +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_alq.c @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2011 Adrian Chadd, Xenion Lty Ltd * All rights reserved. @@ -27,7 +27,6 @@ #include #ifdef __FreeBSD__ -__FBSDID("$FreeBSD: releng/12.0/sys/net80211/ieee80211_alq.c 326272 2017-11-27 15:23:17Z pfg $"); #endif /* diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_alq.h b/src/libs/compat/freebsd_wlan/net80211/ieee80211_alq.h index 7515671453..155c5691bf 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_alq.h +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_alq.h @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2011 Adrian Chadd, Xenion Lty Ltd * All rights reserved. @@ -23,8 +23,6 @@ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * $FreeBSD: releng/12.0/sys/net80211/ieee80211_alq.h 326272 2017-11-27 15:23:17Z pfg $ */ #ifndef __IEEE80211_ALQ_H__ #define __IEEE80211_ALQ_H__ diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_amrr.c b/src/libs/compat/freebsd_wlan/net80211/ieee80211_amrr.c index 531b05b664..461554d75e 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_amrr.c +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_amrr.c @@ -19,8 +19,6 @@ */ #include -__FBSDID("$FreeBSD: releng/12.0/sys/net80211/ieee80211_amrr.c 321401 2017-07-23 22:38:00Z avos $"); - /*- * Naive implementation of the Adaptive Multi Rate Retry algorithm: * @@ -134,8 +132,9 @@ amrr_init(struct ieee80211vap *vap) static void amrr_deinit(struct ieee80211vap *vap) { - IEEE80211_FREE(vap->iv_rs, M_80211_RATECTL); KASSERT(nrefs > 0, ("imbalanced attach/detach")); + IEEE80211_FREE(vap->iv_rs, M_80211_RATECTL); + vap->iv_rs = NULL; /* guard */ nrefs--; /* XXX locking */ } diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_amrr.h b/src/libs/compat/freebsd_wlan/net80211/ieee80211_amrr.h index 02fa783169..795cbf673e 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_amrr.h +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_amrr.h @@ -1,4 +1,3 @@ -/* $FreeBSD: releng/12.0/sys/net80211/ieee80211_amrr.h 206358 2010-04-07 15:29:13Z rpaulo $ */ /* $OpenBSD: ieee80211_amrr.h,v 1.3 2006/06/17 19:34:31 damien Exp $ */ /*- diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_crypto.c b/src/libs/compat/freebsd_wlan/net80211/ieee80211_crypto.c index 51ce8ebecb..6a1182b524 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_crypto.c +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_crypto.c @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2001 Atsushi Onoe * Copyright (c) 2002-2008 Sam Leffler, Errno Consulting @@ -27,8 +27,6 @@ */ #include -__FBSDID("$FreeBSD: releng/12.0/sys/net80211/ieee80211_crypto.c 326272 2017-11-27 15:23:17Z pfg $"); - /* * IEEE 802.11 generic crypto support. */ @@ -37,7 +35,7 @@ __FBSDID("$FreeBSD: releng/12.0/sys/net80211/ieee80211_crypto.c 326272 2017-11-2 #include #include #include -#include +#include #include @@ -112,7 +110,7 @@ cipher_attach(struct ieee80211vap *vap, struct ieee80211_key *key) return key->wk_cipher->ic_attach(vap, key); } -/* +/* * Wrappers for driver key management methods. */ static __inline int @@ -560,13 +558,17 @@ ieee80211_crypto_get_txkey(struct ieee80211_node *ni, struct mbuf *m) /* * Multicast traffic always uses the multicast key. - * Otherwise if a unicast key is set we use that and - * it is always key index 0. When no unicast key is - * set we fall back to the default transmit key. + * + * Historically we would fall back to the default + * transmit key if there was no unicast key. This + * behaviour was documented up to IEEE Std 802.11-2016, + * 12.9.2.2 Per-MSDU/Per-A-MSDU Tx pseudocode, in the + * 'else' case but is no longer in later versions of + * the standard. Additionally falling back to the + * group key for unicast was a security risk. */ wh = mtod(m, struct ieee80211_frame *); - if (IEEE80211_IS_MULTICAST(wh->i_addr1) || - IEEE80211_KEY_UNDEFINED(&ni->ni_ucastkey)) { + if (IEEE80211_IS_MULTICAST(wh->i_addr1)) { if (vap->iv_def_txkey == IEEE80211_KEYIX_NONE) { IEEE80211_NOTE_MAC(vap, IEEE80211_MSG_CRYPTO, wh->i_addr1, @@ -578,6 +580,8 @@ ieee80211_crypto_get_txkey(struct ieee80211_node *ni, struct mbuf *m) return &vap->iv_nw_keys[vap->iv_def_txkey]; } + if (IEEE80211_KEY_UNDEFINED(&ni->ni_ucastkey)) + return NULL; return &ni->ni_ucastkey; } diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_crypto.h b/src/libs/compat/freebsd_wlan/net80211/ieee80211_crypto.h index 33672e8d4f..fc7c13cfdf 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_crypto.h +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_crypto.h @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2001 Atsushi Onoe * Copyright (c) 2002-2008 Sam Leffler, Errno Consulting @@ -24,8 +24,6 @@ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * $FreeBSD: releng/12.0/sys/net80211/ieee80211_crypto.h 326272 2017-11-27 15:23:17Z pfg $ */ #ifndef _NET80211_IEEE80211_CRYPTO_H_ #define _NET80211_IEEE80211_CRYPTO_H_ diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_crypto_ccmp.c b/src/libs/compat/freebsd_wlan/net80211/ieee80211_crypto_ccmp.c index 6e03f42d8f..45e795a879 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_crypto_ccmp.c +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_crypto_ccmp.c @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2002-2008 Sam Leffler, Errno Consulting * All rights reserved. @@ -26,8 +26,6 @@ */ #include -__FBSDID("$FreeBSD: releng/12.0/sys/net80211/ieee80211_crypto_ccmp.c 326272 2017-11-27 15:23:17Z pfg $"); - /* * IEEE 802.11i AES-CCMP crypto support. * @@ -189,7 +187,7 @@ ccmp_encap(struct ieee80211_key *k, struct mbuf *m) /* * Copy down 802.11 header and add the IV, KeyID, and ExtIV. */ - M_PREPEND(m, ccmp.ic_header, M_NOWAIT); + M_PREPEND(m, ccmp.ic_header, IEEE80211_M_NOWAIT); if (m == NULL) return 0; ivp = mtod(m, uint8_t *); diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_crypto_none.c b/src/libs/compat/freebsd_wlan/net80211/ieee80211_crypto_none.c index 93c512e487..4493bb37b4 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_crypto_none.c +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_crypto_none.c @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2002-2008 Sam Leffler, Errno Consulting * All rights reserved. @@ -26,8 +26,6 @@ */ #include -__FBSDID("$FreeBSD: releng/12.0/sys/net80211/ieee80211_crypto_none.c 326272 2017-11-27 15:23:17Z pfg $"); - /* * IEEE 802.11 NULL crypto support. */ diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_crypto_tkip.c b/src/libs/compat/freebsd_wlan/net80211/ieee80211_crypto_tkip.c index f162f3d25d..d2bc281f15 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_crypto_tkip.c +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_crypto_tkip.c @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2002-2008 Sam Leffler, Errno Consulting * All rights reserved. @@ -26,8 +26,6 @@ */ #include -__FBSDID("$FreeBSD: releng/12.0/sys/net80211/ieee80211_crypto_tkip.c 326272 2017-11-27 15:23:17Z pfg $"); - /* * IEEE 802.11i TKIP crypto support. * @@ -214,7 +212,7 @@ tkip_encap(struct ieee80211_key *k, struct mbuf *m) /* * Copy down 802.11 header and add the IV, KeyID, and ExtIV. */ - M_PREPEND(m, tkip.ic_header, M_NOWAIT); + M_PREPEND(m, tkip.ic_header, IEEE80211_M_NOWAIT); if (m == NULL) return 0; ivp = mtod(m, uint8_t *); @@ -862,7 +860,7 @@ michael_mic_hdr(const struct ieee80211_frame *wh0, uint8_t hdr[16]) break; } - if (wh->i_fc[0] & IEEE80211_FC0_SUBTYPE_QOS) { + if (wh->i_fc[0] & IEEE80211_FC0_SUBTYPE_QOS_DATA) { const struct ieee80211_qosframe *qwh = (const struct ieee80211_qosframe *) wh; hdr[12] = qwh->i_qos[0] & IEEE80211_QOS_TID; diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_crypto_wep.c b/src/libs/compat/freebsd_wlan/net80211/ieee80211_crypto_wep.c index dd6b25ba6c..e1b261a0be 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_crypto_wep.c +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_crypto_wep.c @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2002-2008 Sam Leffler, Errno Consulting * All rights reserved. @@ -26,8 +26,6 @@ */ #include -__FBSDID("$FreeBSD: releng/12.0/sys/net80211/ieee80211_crypto_wep.c 326272 2017-11-27 15:23:17Z pfg $"); - /* * IEEE 802.11 WEP crypto support. */ @@ -100,7 +98,7 @@ wep_attach(struct ieee80211vap *vap, struct ieee80211_key *k) ctx->wc_vap = vap; ctx->wc_ic = vap->iv_ic; - get_random_bytes(&ctx->wc_iv, sizeof(ctx->wc_iv)); + net80211_get_random_bytes(&ctx->wc_iv, sizeof(ctx->wc_iv)); nrefs++; /* NB: we assume caller locking */ return ctx; } @@ -202,7 +200,7 @@ wep_encap(struct ieee80211_key *k, struct mbuf *m) /* * Copy down 802.11 header and add the IV + KeyID. */ - M_PREPEND(m, wep.ic_header, M_NOWAIT); + M_PREPEND(m, wep.ic_header, IEEE80211_M_NOWAIT); if (m == NULL) return 0; ivp = mtod(m, uint8_t *); @@ -241,11 +239,8 @@ wep_decap(struct ieee80211_key *k, struct mbuf *m, int hdrlen) { struct wep_ctx *ctx = k->wk_private; struct ieee80211vap *vap = ctx->wc_vap; - struct ieee80211_frame *wh; const struct ieee80211_rx_stats *rxs; - wh = mtod(m, struct ieee80211_frame *); - rxs = ieee80211_get_rx_params_ptr(m); if ((rxs != NULL) && (rxs->c_pktflags & IEEE80211_RX_F_IV_STRIP)) @@ -258,6 +253,11 @@ wep_decap(struct ieee80211_key *k, struct mbuf *m, int hdrlen) */ if ((k->wk_flags & IEEE80211_KEY_SWDECRYPT) && !wep_decrypt(k, m, hdrlen)) { +#ifdef IEEE80211_DEBUG + struct ieee80211_frame *wh; + + wh = mtod(m, struct ieee80211_frame *); +#endif IEEE80211_NOTE_MAC(vap, IEEE80211_MSG_CRYPTO, wh->i_addr2, "%s", "WEP ICV mismatch on decrypt"); vap->iv_stats.is_rx_wepfail++; diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_ddb.c b/src/libs/compat/freebsd_wlan/net80211/ieee80211_ddb.c index 2f92f67af5..eca893fa68 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_ddb.c +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_ddb.c @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2007-2009 Sam Leffler, Errno Consulting * All rights reserved. @@ -26,8 +26,6 @@ */ #include -__FBSDID("$FreeBSD: releng/12.0/sys/net80211/ieee80211_ddb.c 326272 2017-11-27 15:23:17Z pfg $"); - #include "opt_ddb.h" #include "opt_wlan.h" @@ -50,6 +48,7 @@ __FBSDID("$FreeBSD: releng/12.0/sys/net80211/ieee80211_ddb.c 326272 2017-11-27 1 #include #include +#include #ifdef IEEE80211_SUPPORT_TDMA #include #endif @@ -69,7 +68,7 @@ __FBSDID("$FreeBSD: releng/12.0/sys/net80211/ieee80211_ddb.c 326272 2017-11-27 1 static void _db_show_sta(const struct ieee80211_node *); static void _db_show_vap(const struct ieee80211vap *, int, int); static void _db_show_com(const struct ieee80211com *, - int showvaps, int showsta, int showmesh, int showprocs); + int showvaps, int showsta, int showmesh, int showprocs, int); static void _db_show_all_vaps(void *, struct ieee80211com *); @@ -134,7 +133,7 @@ DB_SHOW_COMMAND(vap, db_show_vap) DB_SHOW_COMMAND(com, db_show_com) { const struct ieee80211com *ic; - int i, showprocs = 0, showvaps = 0, showsta = 0, showmesh = 0; + int i, showprocs = 0, showvaps = 0, showsta = 0, showmesh = 0, showscan = 0; if (!have_addr) { db_printf("usage: show com \n"); @@ -143,7 +142,10 @@ DB_SHOW_COMMAND(com, db_show_com) for (i = 0; modif[i] != '\0'; i++) switch (modif[i]) { case 'a': - showsta = showmesh = showvaps = showprocs = 1; + showsta = showmesh = showvaps = showprocs = showscan = 1; + break; + case 'S': + showscan = 1; break; case 's': showsta = 1; @@ -160,7 +162,7 @@ DB_SHOW_COMMAND(com, db_show_com) } ic = (const struct ieee80211com *) addr; - _db_show_com(ic, showvaps, showsta, showmesh, showprocs); + _db_show_com(ic, showvaps, showsta, showmesh, showprocs, showscan); } DB_SHOW_ALL_COMMAND(vaps, db_show_all_vaps) @@ -220,7 +222,7 @@ _db_show_rxampdu(const char *sep, int ix, const struct ieee80211_rx_ampdu *rap) db_printf("%s age %d nframes %d\n", sep, rap->rxa_age, rap->rxa_nframes); for (i = 0; i < IEEE80211_AGGR_BAWMAX; i++) - if (mbufq_len(&rap->rxa_mq[i]) > 0) { + if (!mbufq_empty(&rap->rxa_mq[i])) { db_printf("%s m[%2u:%4u] ", sep, i, IEEE80211_SEQ_ADD(rap->rxa_start, i)); STAILQ_FOREACH(m, &rap->rxa_mq[i].mq_head, @@ -236,7 +238,7 @@ _db_show_sta(const struct ieee80211_node *ni) { int i; - db_printf("0x%p: mac %s refcnt %d\n", ni, + db_printf("STA: %p: mac %s refcnt %d\n", ni, ether_sprintf(ni->ni_macaddr), ieee80211_node_refcnt(ni)); db_printf("\tvap %p wdsvap %p ic %p table %p\n", ni->ni_vap, ni->ni_wdsvap, ni->ni_ic, ni->ni_table); @@ -254,6 +256,9 @@ _db_show_sta(const struct ieee80211_node *ni) ni->ni_ies.ath_ie); db_printf("\t htcap_ie %p htinfo_ie %p]\n", ni->ni_ies.htcap_ie, ni->ni_ies.htinfo_ie); + db_printf("\t vhtcap_ie %p vhtopmode_ie %p vhtpwrenv_ie %p]\n", + ni->ni_ies.vhtcap_ie, ni->ni_ies.vhtopmode_ie, + ni->ni_ies.vhtpwrenv_ie); if (ni->ni_flags & IEEE80211_NODE_QOS) { for (i = 0; i < WME_NUM_TID; i++) { if (ni->ni_txseqs[i] || ni->ni_rxseqs[i]) @@ -263,6 +268,7 @@ _db_show_sta(const struct ieee80211_node *ni) ni->ni_rxseqs[i] & IEEE80211_SEQ_FRAG_MASK); } } + db_printf("\ttxseq %u rxseq %u fragno %u rxfragstamp %u\n", ni->ni_txseqs[IEEE80211_NONQOS_TID], ni->ni_rxseqs[IEEE80211_NONQOS_TID] >> IEEE80211_SEQ_SEQ_SHIFT, @@ -307,6 +313,46 @@ _db_show_sta(const struct ieee80211_node *ni) ni->ni_mlstate, IEEE80211_MESH_MLSTATE_BITS, ni->ni_mllid, ni->ni_mlpid, ni->ni_mlrcnt, ni->ni_mltval); #endif + + /* VHT state */ + db_printf("\tvhtcap %b vht_basicmcs %#06x vht_pad2 %#06x\n", + ni->ni_vhtcap, IEEE80211_VHTCAP_BITS, + ni->ni_vht_basicmcs, ni->ni_vht_pad2); + db_printf("\tvht_mcsinfo: { rx_mcs_map %#06x rx_highest %#06x " + "tx_mcs_map %#06x tx_highest %#06x }\n", + ni->ni_vht_mcsinfo.rx_mcs_map, ni->ni_vht_mcsinfo.rx_highest, + ni->ni_vht_mcsinfo.tx_mcs_map, ni->ni_vht_mcsinfo.tx_highest); + db_printf("\tvht_chan1/chan2 %u/%u vht_chanwidth %#04x\n", + ni->ni_vht_chan1, ni->ni_vht_chan2, ni->ni_vht_chanwidth); + db_printf("\tvht_pad1 %#04x vht_spare { %#x %#x %#x %#x %#x %#x %#x %#x }\n", + ni->ni_vht_pad1, ni->ni_vht_spare[0], ni->ni_vht_spare[1], + ni->ni_vht_spare[2], ni->ni_vht_spare[3], ni->ni_vht_spare[4], + ni->ni_vht_spare[5], ni->ni_vht_spare[6], ni->ni_vht_spare[7]); + + db_printf("\tni_tx_superg[] = {"); + for (i = 0; i < WME_NUM_TID; i++) + db_printf(" %p%s", ni->ni_tx_superg[i], (i == 0) ? "" : ","); + db_printf(" }\n"); + + db_printf("\tni_rctls = %p", ni->ni_rctls); + db_printf("\tni_drv_data = %p", ni->ni_drv_data); + db_printf("\n"); + + db_printf("\tni_spare[3] = { %#jx %#jx %#jx }", + ni->ni_spare[0], ni->ni_spare[1], ni->ni_spare[2]); + db_printf("\n"); + +#ifdef __notyet__ + struct ieee80211_psq ni_psq; /* power save queue */ + struct ieee80211_nodestats ni_stats; /* per-node statistics */ + + /* quiet time IE state for the given node */ + uint32_t ni_quiet_ie_set; /* Quiet time IE was seen */ + struct ieee80211_quiet_ie ni_quiet_ie; /* last seen quiet IE */ + + /* U-APSD */ + uint8_t ni_uapsd; /* U-APSD per-node flags matching WMM STA QoS Info field */ +#endif } #ifdef IEEE80211_SUPPORT_TDMA @@ -328,13 +374,93 @@ _db_show_tdma(const char *sep, const struct ieee80211_tdma_state *ts, int showpr } #endif /* IEEE80211_SUPPORT_TDMA */ +static void +_db_show_scan(const struct ieee80211_scan_state *ss, int showprocs) +{ + int i; + const struct ieee80211_scanner *ss_ops; + + db_printf("SCAN %p:", ss); + db_printf(" vap %p ic %p", ss->ss_vap, ss->ss_ic); + db_printf("\n"); + + db_printf("\tss_ops %p (%s) ss_priv %p", + ss->ss_ops, ss->ss_ops->scan_name, ss->ss_priv); + db_printf("\n"); + if (showprocs) { + ss_ops = ss->ss_ops; + DB_PRINTSYM("\t", "scan_attach", ss_ops->scan_attach); + DB_PRINTSYM("\t", "scan_detach", ss_ops->scan_detach); + DB_PRINTSYM("\t", "scan_start", ss_ops->scan_start); + DB_PRINTSYM("\t", "scan_restart", ss_ops->scan_restart); + DB_PRINTSYM("\t", "scan_cancel", ss_ops->scan_cancel); + DB_PRINTSYM("\t", "scan_end", ss_ops->scan_end); + DB_PRINTSYM("\t", "scan_flush", ss_ops->scan_flush); + DB_PRINTSYM("\t", "scan_pickchan", ss_ops->scan_pickchan); + DB_PRINTSYM("\t", "scan_add", ss_ops->scan_add); + DB_PRINTSYM("\t", "scan_age", ss_ops->scan_age); + DB_PRINTSYM("\t", "scan_assoc_fail", ss_ops->scan_assoc_fail); + DB_PRINTSYM("\t", "scan_assoc_success", ss_ops->scan_assoc_success); + DB_PRINTSYM("\t", "scan_iterate", ss_ops->scan_iterate); + DB_PRINTSYM("\t", "scan_spare0", ss_ops->scan_spare0); + DB_PRINTSYM("\t", "scan_spare1", ss_ops->scan_spare1); + DB_PRINTSYM("\t", "scan_spare2", ss_ops->scan_spare2); + DB_PRINTSYM("\t", "scan_spare3", ss_ops->scan_spare3); + } + + db_printf("\tss_flags %b", ss->ss_flags, IEEE80211_SS_FLAGS_BITS); + db_printf("\n"); + + db_printf("\tss_nssid %u", ss->ss_nssid); + for (i = 0; i < ss->ss_nssid && i < IEEE80211_SCAN_MAX_SSID; i++) + _db_show_ssid(" ss_nssid[%d]", i, + ss->ss_ssid[i].len, ss->ss_ssid[i].ssid); + db_printf("\n"); + + db_printf("\tss_chans:\n"); + for (i = 0; i < ss->ss_last && i < IEEE80211_SCAN_MAX; i++) { + db_printf("\t%-3d", i); + _db_show_channel(" ", ss->ss_chans[i]); + db_printf("\n"); + } + + db_printf("\tss_next %u ss_last %u ss_mindwell %lu ss_maxdwell %lu", + ss->ss_next, ss->ss_last, ss->ss_mindwell, ss->ss_maxdwell); + db_printf("\n"); +} + +static void +_db_show_rate(const struct ieee80211_ratectl *rate, const void *rs, + const int showprocs) +{ + + db_printf("\tiv_rate %p", rate); + db_printf(" iv_rs %p", rs); + db_printf("\n"); + if (showprocs) { + db_printf("\t ir_name %s", rate->ir_name); + db_printf("\n"); + DB_PRINTSYM("\t ", "ir_attach", rate->ir_attach); + DB_PRINTSYM("\t ", "ir_detach", rate->ir_detach); + DB_PRINTSYM("\t ", "ir_init", rate->ir_init); + DB_PRINTSYM("\t ", "ir_deinit", rate->ir_deinit); + DB_PRINTSYM("\t ", "ir_node_init", rate->ir_node_init); + DB_PRINTSYM("\t ", "ir_node_deinit", rate->ir_node_deinit); + DB_PRINTSYM("\t ", "ir_rate", rate->ir_rate); + DB_PRINTSYM("\t ", "ir_tx_complete", rate->ir_tx_complete); + DB_PRINTSYM("\t ", "ir_tx_update", rate->ir_tx_update); + DB_PRINTSYM("\t ", "ir_setinterval", rate->ir_setinterval); + DB_PRINTSYM("\t ", "ir_node_stats", rate->ir_node_stats); + } +} + static void _db_show_vap(const struct ieee80211vap *vap, int showmesh, int showprocs) { const struct ieee80211com *ic = vap->iv_ic; int i; - db_printf("%p:", vap); + db_printf("VAP %p:", vap); db_printf(" bss %p", vap->iv_bss); db_printf(" myaddr %s", ether_sprintf(vap->iv_myaddr)); db_printf("\n"); @@ -344,8 +470,9 @@ _db_show_vap(const struct ieee80211vap *vap, int showmesh, int showprocs) if (vap->iv_opmode == IEEE80211_M_MBSS) db_printf("(%p)", vap->iv_mesh); #endif - db_printf(" state %s", ieee80211_state_name[vap->iv_state]); - db_printf(" ifp %p(%s)", vap->iv_ifp, vap->iv_ifp->if_xname); + db_printf(" state %#x %s", vap->iv_state, + ieee80211_state_name[vap->iv_state]); + db_printf(" ifp %p(%s)", vap->iv_ifp, if_name(vap->iv_ifp)); db_printf("\n"); db_printf("\tic %p", vap->iv_ic); @@ -356,6 +483,16 @@ _db_show_vap(const struct ieee80211vap *vap, int showmesh, int showprocs) struct sysctllog *iv_sysctl; /* dynamic sysctl context */ #endif db_printf("\n"); + + db_printf("\tiv_nstate %#x %s iv_nstate_b %d iv_nstate_n %d\n", + vap->iv_nstate, ieee80211_state_name[vap->iv_nstate], /* historic */ + vap->iv_nstate_b, vap->iv_nstate_n); + for (i = 0; i < NET80211_IV_NSTATE_NUM; i++) { + db_printf("\t [%d] iv_nstates %#x %s _task %p _args %d\n", i, + vap->iv_nstates[i], ieee80211_state_name[vap->iv_nstates[i]], + &vap->iv_nstate_task[i], vap->iv_nstate_args[i]); + } + db_printf("\tdebug=%b\n", vap->iv_debug, IEEE80211_MSG_BITS); db_printf("\tflags=%b\n", vap->iv_flags, IEEE80211_F_BITS); @@ -364,6 +501,7 @@ _db_show_vap(const struct ieee80211vap *vap, int showmesh, int showprocs) db_printf("\tflags_ven=%b\n", vap->iv_flags_ven, IEEE80211_FVEN_BITS); db_printf("\tcaps=%b\n", vap->iv_caps, IEEE80211_C_BITS); db_printf("\thtcaps=%b\n", vap->iv_htcaps, IEEE80211_C_HTCAP_BITS); + db_printf("\tvhtcap=%b\n", vap->iv_vht_cap.vht_cap_info, IEEE80211_VHTCAP_BITS); _db_show_stats(&vap->iv_stats); @@ -488,11 +626,13 @@ _db_show_vap(const struct ieee80211vap *vap, int showmesh, int showprocs) db_printf(" ht_sta_assoc %u", vap->iv_ht_sta_assoc); db_printf(" ht40_sta_assoc %u", vap->iv_ht40_sta_assoc); db_printf("\n"); - db_printf(" nonerpsta %u", vap->iv_nonerpsta); + db_printf("\tnonerpsta %u", vap->iv_nonerpsta); db_printf(" longslotsta %u", vap->iv_longslotsta); db_printf(" lastnonerp %d", vap->iv_lastnonerp); db_printf(" lastnonht %d", vap->iv_lastnonht); db_printf("\n"); + if (vap->iv_rate != NULL) + _db_show_rate(vap->iv_rate, vap->iv_rs, showprocs); if (showprocs) { DB_PRINTSYM("\t", "iv_key_alloc", vap->iv_key_alloc); @@ -514,13 +654,13 @@ _db_show_vap(const struct ieee80211vap *vap, int showmesh, int showprocs) static void _db_show_com(const struct ieee80211com *ic, int showvaps, int showsta, - int showmesh, int showprocs) + int showmesh, int showprocs, int showscan) { struct ieee80211vap *vap; - db_printf("%p:", ic); + db_printf("COM: %p:", ic); TAILQ_FOREACH(vap, &ic->ic_vaps, iv_next) - db_printf(" %s(%p)", vap->iv_ifp->if_xname, vap); + db_printf(" %s(%p)", if_name(vap->iv_ifp), vap); db_printf("\n"); db_printf("\tsoftc %p", ic->ic_softc); db_printf("\tname %s", ic->ic_name); @@ -532,7 +672,7 @@ _db_show_com(const struct ieee80211com *ic, int showvaps, int showsta, db_printf(" phytype %d", ic->ic_phytype); db_printf(" opmode %s", ieee80211_opmode_name[ic->ic_opmode]); db_printf("\n"); - db_printf(" inact %p", &ic->ic_inact); + db_printf("\tinact %p", &ic->ic_inact); db_printf("\n"); db_printf("\tflags=%b\n", ic->ic_flags, IEEE80211_F_BITS); @@ -543,6 +683,7 @@ _db_show_com(const struct ieee80211com *ic, int showvaps, int showsta, db_printf("\tcryptocaps=%b\n", ic->ic_cryptocaps, IEEE80211_CRYPTO_BITS); db_printf("\thtcaps=%b\n", ic->ic_htcaps, IEEE80211_HTCAP_BITS); + db_printf("\tvhtcaps=%b\n", ic->ic_vht_cap.vht_cap_info, IEEE80211_VHTCAP_BITS); #if 0 uint8_t ic_modecaps[2]; /* set of mode capabilities */ @@ -660,6 +801,10 @@ _db_show_com(const struct ieee80211com *ic, int showvaps, int showsta, DB_PRINTSYM("\t", "ic_addba_response", ic->ic_addba_response); DB_PRINTSYM("\t", "ic_addba_stop", ic->ic_addba_stop); } + if (showscan) { + db_printf("\n"); + _db_show_scan(ic->ic_scan, showprocs); + } if (showvaps && !TAILQ_EMPTY(&ic->ic_vaps)) { db_printf("\n"); TAILQ_FOREACH(vap, &ic->ic_vaps, iv_next) @@ -685,10 +830,10 @@ _db_show_all_vaps(void *arg, struct ieee80211com *ic) const struct ieee80211vap *vap; db_printf("%s: com %p vaps:", ic->ic_name, ic); TAILQ_FOREACH(vap, &ic->ic_vaps, iv_next) - db_printf(" %s(%p)", vap->iv_ifp->if_xname, vap); + db_printf(" %s(%p)", if_name(vap->iv_ifp), vap); db_printf("\n"); } else - _db_show_com(ic, 1, 1, 1, 1); + _db_show_com(ic, 1, 1, 1, 1, 1); } static void diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_dfs.c b/src/libs/compat/freebsd_wlan/net80211/ieee80211_dfs.c index 30a4eefa0c..fed9e98c72 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_dfs.c +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_dfs.c @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2007-2008 Sam Leffler, Errno Consulting * All rights reserved. @@ -27,7 +27,6 @@ #include #ifdef __FreeBSD__ -__FBSDID("$FreeBSD: releng/12.0/sys/net80211/ieee80211_dfs.c 326272 2017-11-27 15:23:17Z pfg $"); #endif /* @@ -421,7 +420,7 @@ ieee80211_dfs_pickchannel(struct ieee80211com *ic) * one at random (skipping channels where radar has * been detected). */ - get_random_bytes(&v, sizeof(v)); + net80211_get_random_bytes(&v, sizeof(v)); v %= ic->ic_nchans; for (i = v; i < ic->ic_nchans; i++) { c = &ic->ic_channels[i]; diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_dfs.h b/src/libs/compat/freebsd_wlan/net80211/ieee80211_dfs.h index d586cb8f4f..a9c8bd8776 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_dfs.h +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_dfs.h @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2007-2008 Sam Leffler, Errno Consulting * All rights reserved. @@ -23,8 +23,6 @@ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * $FreeBSD: releng/12.0/sys/net80211/ieee80211_dfs.h 326272 2017-11-27 15:23:17Z pfg $ */ #ifndef _NET80211_IEEE80211_DFS_H_ #define _NET80211_IEEE80211_DFS_H_ diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_haiku.cpp b/src/libs/compat/freebsd_wlan/net80211/ieee80211_haiku.cpp index 63b366ae00..ac2d40c6fa 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_haiku.cpp +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_haiku.cpp @@ -1,6 +1,6 @@ /* * Copyright 2009, Colin Günther, coling@gmx.de. All rights reserved. - * Copyright 2018, Haiku, Inc. All rights reserved. + * Copyright 2018-2024, Haiku, Inc. All rights reserved. * Distributed under the terms of the MIT License. */ @@ -263,7 +263,7 @@ wlan_control(void* cookie, uint32 op, void* arg, size_t length) void -get_random_bytes(void* p, size_t n) +net80211_get_random_bytes(void* p, size_t n) { uint8_t* dp = (uint8_t*)p; @@ -924,8 +924,8 @@ ieee80211_notify_radio(struct ieee80211com* ic, int state) } -void -ieee80211_notify_ifnet_change(struct ieee80211vap *vap) +extern "C" void +ieee80211_notify_ifnet_change(struct ieee80211vap *vap, int if_flags_mask) { dprintf("%s not implemented, yet.\n", __func__); } diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_haiku.h b/src/libs/compat/freebsd_wlan/net80211/ieee80211_haiku.h index 70ef2fe3e9..3cc197481b 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_haiku.h +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_haiku.h @@ -382,6 +382,8 @@ struct ieee80211com; int ieee80211_parent_xmitpkt(struct ieee80211com *ic, struct mbuf *m); int ieee80211_vap_xmitpkt(struct ieee80211vap *vap, struct mbuf *m); +void net80211_get_random_bytes(void *, size_t); + void ieee80211_sysctl_attach(struct ieee80211com *); void ieee80211_sysctl_detach(struct ieee80211com *); void ieee80211_sysctl_vattach(struct ieee80211vap *); diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_hostap.c b/src/libs/compat/freebsd_wlan/net80211/ieee80211_hostap.c index 70bff9016a..b30dd8715b 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_hostap.c +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_hostap.c @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2007-2008 Sam Leffler, Errno Consulting * All rights reserved. @@ -27,7 +27,6 @@ #include #ifdef __FreeBSD__ -__FBSDID("$FreeBSD: releng/12.0/sys/net80211/ieee80211_hostap.c 326272 2017-11-27 15:23:17Z pfg $"); #endif /* @@ -41,6 +40,7 @@ __FBSDID("$FreeBSD: releng/12.0/sys/net80211/ieee80211_hostap.c 326272 2017-11-2 #include #include #include +#include #include #include @@ -53,6 +53,7 @@ __FBSDID("$FreeBSD: releng/12.0/sys/net80211/ieee80211_hostap.c 326272 2017-11-2 #include #include #include +#include #include #include @@ -386,7 +387,7 @@ hostap_deliver_data(struct ieee80211vap *vap, struct mbuf *mcopy = NULL; if (m->m_flags & M_MCAST) { - mcopy = m_dup(m, M_NOWAIT); + mcopy = m_dup(m, IEEE80211_M_NOWAIT); if (mcopy == NULL) if_inc_counter(ifp, IFCOUNTER_OERRORS, 1); else @@ -423,6 +424,8 @@ hostap_deliver_data(struct ieee80211vap *vap, (void) ieee80211_vap_xmitpkt(vap, mcopy); } if (m != NULL) { + struct epoch_tracker et; + /* * Mark frame as coming from vap's interface. */ @@ -439,7 +442,9 @@ hostap_deliver_data(struct ieee80211vap *vap, m->m_pkthdr.ether_vtag = ni->ni_vlan; m->m_flags |= M_VLANTAG; } + NET_EPOCH_ENTER(et); ifp->if_input(ifp, m); + NET_EPOCH_EXIT(et); } } @@ -507,7 +512,7 @@ hostap_input(struct ieee80211_node *ni, struct mbuf *m, wh = mtod(m, struct ieee80211_frame *); type = IEEE80211_FC0_TYPE_DATA; dir = wh->i_fc[1] & IEEE80211_FC1_DIR_MASK; - subtype = IEEE80211_FC0_SUBTYPE_QOS; + subtype = IEEE80211_FC0_SUBTYPE_QOS_DATA; hdrspace = ieee80211_hdrspace(ic, wh); /* XXX optimize? */ goto resubmit_ampdu; } @@ -683,7 +688,7 @@ hostap_input(struct ieee80211_node *ni, struct mbuf *m, * crypto cipher modules used to do delayed update * of replay sequence numbers. */ - if (is_hw_decrypted || wh->i_fc[1] & IEEE80211_FC1_PROTECTED) { + if (is_hw_decrypted || IEEE80211_IS_PROTECTED(wh)) { if ((vap->iv_flags & IEEE80211_F_PRIVACY) == 0) { /* * Discard encrypted frames when privacy is off. @@ -710,7 +715,7 @@ hostap_input(struct ieee80211_node *ni, struct mbuf *m, /* * Save QoS bits for use below--before we strip the header. */ - if (subtype == IEEE80211_FC0_SUBTYPE_QOS) + if (subtype == IEEE80211_FC0_SUBTYPE_QOS_DATA) qos = ieee80211_getqos(wh)[0]; else qos = 0; @@ -719,7 +724,7 @@ hostap_input(struct ieee80211_node *ni, struct mbuf *m, * Next up, any fragmentation. */ if (!IEEE80211_IS_MULTICAST(wh->i_addr1)) { - m = ieee80211_defrag(ni, m, hdrspace); + m = ieee80211_defrag(ni, m, hdrspace, has_decrypted); if (m == NULL) { /* Fragment dropped or frame not complete yet */ goto out; @@ -744,7 +749,7 @@ hostap_input(struct ieee80211_node *ni, struct mbuf *m, /* * Finally, strip the 802.11 header. */ - m = ieee80211_decap(vap, m, hdrspace); + m = ieee80211_decap(vap, m, hdrspace, qos); if (m == NULL) { /* XXX mask bit to check for both */ /* don't count Null data frames as errors */ @@ -757,7 +762,10 @@ hostap_input(struct ieee80211_node *ni, struct mbuf *m, IEEE80211_NODE_STAT(ni, rx_decap); goto err; } - eh = mtod(m, struct ether_header *); + if (!(qos & IEEE80211_QOS_AMSDU)) + eh = mtod(m, struct ether_header *); + else + eh = NULL; if (!ieee80211_node_is_authorized(ni)) { /* * Deny any non-PAE frames received prior to @@ -767,11 +775,13 @@ hostap_input(struct ieee80211_node *ni, struct mbuf *m, * the port is not marked authorized by the * authenticator until the handshake has completed. */ - if (eh->ether_type != htons(ETHERTYPE_PAE)) { + if (eh == NULL || + eh->ether_type != htons(ETHERTYPE_PAE)) { IEEE80211_DISCARD_MAC(vap, IEEE80211_MSG_INPUT, - eh->ether_shost, "data", - "unauthorized port: ether type 0x%x len %u", - eh->ether_type, m->m_pkthdr.len); + ni->ni_macaddr, "data", "unauthorized or " + "unknown port: ether type 0x%x len %u", + eh == NULL ? -1 : eh->ether_type, + m->m_pkthdr.len); vap->iv_stats.is_rx_unauth++; IEEE80211_NODE_STAT(ni, rx_unauth); goto err; @@ -784,7 +794,8 @@ hostap_input(struct ieee80211_node *ni, struct mbuf *m, if ((vap->iv_flags & IEEE80211_F_DROPUNENC) && ((has_decrypted == 0) && (m->m_flags & M_WEP) == 0) && (is_hw_decrypted == 0) && - eh->ether_type != htons(ETHERTYPE_PAE)) { + (eh == NULL || + eh->ether_type != htons(ETHERTYPE_PAE))) { /* * Drop unencrypted frames. */ @@ -843,7 +854,7 @@ hostap_input(struct ieee80211_node *ni, struct mbuf *m, ether_sprintf(wh->i_addr2), rssi); } #endif - if (wh->i_fc[1] & IEEE80211_FC1_PROTECTED) { + if (IEEE80211_IS_PROTECTED(wh)) { if (subtype != IEEE80211_FC0_SUBTYPE_AUTH) { /* * Only shared key auth frames with a challenge @@ -968,7 +979,7 @@ hostap_auth_open(struct ieee80211_node *ni, struct ieee80211_frame *wh, */ IEEE80211_NOTE_MAC(vap, IEEE80211_MSG_AUTH | IEEE80211_MSG_ACL, ni->ni_macaddr, - "%s", "station authentication defered (radius acl)"); + "%s", "station authentication deferred (radius acl)"); ieee80211_notify_node_auth(ni); } else { IEEE80211_SEND_MGMT(ni, IEEE80211_FC0_SUBTYPE_AUTH, seq + 1); @@ -991,7 +1002,7 @@ hostap_auth_shared(struct ieee80211_node *ni, struct ieee80211_frame *wh, { struct ieee80211vap *vap = ni->ni_vap; uint8_t *challenge; - int allocbs, estatus; + int estatus; KASSERT(vap->iv_state == IEEE80211_S_RUN, ("state %d", vap->iv_state)); @@ -1064,17 +1075,26 @@ hostap_auth_shared(struct ieee80211_node *ni, struct ieee80211_frame *wh, } switch (seq) { case IEEE80211_AUTH_SHARED_REQUEST: + { +#ifdef IEEE80211_DEBUG + bool allocbs; +#endif + if (ni == vap->iv_bss) { ni = ieee80211_dup_bss(vap, wh->i_addr2); if (ni == NULL) { /* NB: no way to return an error */ return; } +#ifdef IEEE80211_DEBUG allocbs = 1; +#endif } else { if ((ni->ni_flags & IEEE80211_NODE_AREF) == 0) (void) ieee80211_ref_node(ni); +#ifdef IEEE80211_DEBUG allocbs = 0; +#endif } /* * Mark the node as referenced to reflect that it's @@ -1093,7 +1113,7 @@ hostap_auth_shared(struct ieee80211_node *ni, struct ieee80211_frame *wh, /* NB: don't return error so they rexmit */ return; } - get_random_bytes(ni->ni_challenge, + net80211_get_random_bytes(ni->ni_challenge, IEEE80211_CHALLENGE_LEN); IEEE80211_NOTE(vap, IEEE80211_MSG_DEBUG | IEEE80211_MSG_AUTH, ni, "shared key %sauth request", allocbs ? "" : "re"); @@ -1109,11 +1129,12 @@ hostap_auth_shared(struct ieee80211_node *ni, struct ieee80211_frame *wh, IEEE80211_NOTE_MAC(vap, IEEE80211_MSG_AUTH | IEEE80211_MSG_ACL, ni->ni_macaddr, - "%s", "station authentication defered (radius acl)"); + "%s", "station authentication deferred (radius acl)"); ieee80211_notify_node_auth(ni); return; } break; + } case IEEE80211_AUTH_SHARED_RESPONSE: if (ni == vap->iv_bss) { IEEE80211_DISCARD_MAC(vap, IEEE80211_MSG_AUTH, @@ -1638,7 +1659,7 @@ ieee80211_deliver_l2uf(struct ieee80211_node *ni) struct l2_update_frame *l2uf; struct ether_header *eh; - m = m_gethdr(M_NOWAIT, MT_DATA); + m = m_gethdr(IEEE80211_M_NOWAIT, MT_DATA); if (m == NULL) { IEEE80211_NOTE(vap, IEEE80211_MSG_ASSOC, ni, "%s", "no mbuf for l2uf frame"); @@ -2109,12 +2130,12 @@ hostap_recv_mgmt(struct ieee80211_node *ni, struct mbuf *m0, /* Validate VHT IEs */ if (vhtcap != NULL) { IEEE80211_VERIFY_LENGTH(vhtcap[1], - sizeof(struct ieee80211_ie_vhtcap) - 2, + sizeof(struct ieee80211_vht_cap), return); } if (vhtinfo != NULL) { IEEE80211_VERIFY_LENGTH(vhtinfo[1], - sizeof(struct ieee80211_ie_vht_operation) - 2, + sizeof(struct ieee80211_vht_operation), return); } @@ -2293,7 +2314,9 @@ hostap_recv_mgmt(struct ieee80211_node *ni, struct mbuf *m0, case IEEE80211_FC0_SUBTYPE_DEAUTH: case IEEE80211_FC0_SUBTYPE_DISASSOC: { +#ifdef IEEE80211_DEBUG uint16_t reason; +#endif if (vap->iv_state != IEEE80211_S_RUN || /* NB: can happen when in promiscuous mode */ @@ -2306,7 +2329,9 @@ hostap_recv_mgmt(struct ieee80211_node *ni, struct mbuf *m0, * [2] reason */ IEEE80211_VERIFY_LENGTH(efrm - frm, 2, return); +#ifdef IEEE80211_DEBUG reason = le16toh(*(uint16_t *)frm); +#endif if (subtype == IEEE80211_FC0_SUBTYPE_DEAUTH) { vap->iv_stats.is_rx_deauth++; IEEE80211_NODE_STAT(ni, rx_deauth); diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_hostap.h b/src/libs/compat/freebsd_wlan/net80211/ieee80211_hostap.h index fcbc42adf9..97f34c7f51 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_hostap.h +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_hostap.h @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2007-2008 Sam Leffler, Errno Consulting * All rights reserved. @@ -23,8 +23,6 @@ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * $FreeBSD: releng/12.0/sys/net80211/ieee80211_hostap.h 326272 2017-11-27 15:23:17Z pfg $ */ #ifndef _NET80211_IEEE80211_HOSTAP_H_ #define _NET80211_IEEE80211_HOSTAP_H_ diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_ht.c b/src/libs/compat/freebsd_wlan/net80211/ieee80211_ht.c index 21e2c35026..cb981014fd 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_ht.c +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_ht.c @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2007-2008 Sam Leffler, Errno Consulting * All rights reserved. @@ -27,7 +27,6 @@ #include #ifdef __FreeBSD__ -__FBSDID("$FreeBSD: releng/12.0/sys/net80211/ieee80211_ht.c 327231 2017-12-27 03:23:21Z eadler $"); #endif /* @@ -495,7 +494,7 @@ ieee80211_decap_amsdu(struct ieee80211_node *ni, struct mbuf *m) } if (m->m_pkthdr.len == framelen) break; - n = m_split(m, framelen, M_NOWAIT); + n = m_split(m, framelen, IEEE80211_M_NOWAIT); if (n == NULL) { IEEE80211_DISCARD_MAC(vap, IEEE80211_MSG_ANY, ni->ni_macaddr, "a-msdu", @@ -522,7 +521,7 @@ ampdu_rx_purge_slot(struct ieee80211_rx_ampdu *rap, int i) struct mbuf *m; /* Walk the queue, removing frames as appropriate */ - while (mbufq_len(&rap->rxa_mq[i]) != 0) { + for (;;) { m = mbufq_dequeue(&rap->rxa_mq[i]); if (m == NULL) break; @@ -572,7 +571,7 @@ ampdu_rx_add_slot(struct ieee80211_rx_ampdu *rap, int off, int tid, /* * Get the rxs of the final mbuf in the slot, if one exists. */ - if (mbufq_len(&rap->rxa_mq[off]) != 0) { + if (!mbufq_empty(&rap->rxa_mq[off])) { rxs_final = ieee80211_get_rx_params_ptr(mbufq_last(&rap->rxa_mq[off])); } @@ -602,7 +601,7 @@ ampdu_rx_add_slot(struct ieee80211_rx_ampdu *rap, int off, int tid, * If the list is empty OR we have determined we can put more * driver decap'ed AMSDU frames in here, then insert. */ - if ((mbufq_len(&rap->rxa_mq[off]) == 0) || (toss_dup == 0)) { + if (mbufq_empty(&rap->rxa_mq[off]) || (toss_dup == 0)) { if (mbufq_enqueue(&rap->rxa_mq[off], m) != 0) { IEEE80211_DISCARD_MAC(vap, IEEE80211_MSG_INPUT | IEEE80211_MSG_11N, ni->ni_macaddr, @@ -817,7 +816,7 @@ ampdu_dispatch_slot(struct ieee80211_rx_ampdu *rap, struct ieee80211_node *ni, struct mbuf *m; int n = 0; - while (mbufq_len(&rap->rxa_mq[i]) != 0) { + for (;;) { m = mbufq_dequeue(&rap->rxa_mq[i]); if (m == NULL) break; @@ -1080,7 +1079,7 @@ again: /* * Dispatch as many packets as we can. */ - KASSERT((mbufq_len(&rap->rxa_mq[0]) == 0), ("unexpected dup")); + KASSERT(mbufq_empty(&rap->rxa_mq[0]), ("unexpected dup")); ampdu_dispatch(ni, m); ampdu_rx_dispatch(rap, ni); return CONSUMED; @@ -1936,12 +1935,12 @@ ieee80211_vht_get_vhtflags(struct ieee80211_node *ni, uint32_t htflags) uint32_t vhtflags = 0; vhtflags = 0; - if (ni->ni_flags & IEEE80211_NODE_VHT && vap->iv_flags_vht & IEEE80211_FVHT_VHT) { + if (ni->ni_flags & IEEE80211_NODE_VHT && vap->iv_vht_flags & IEEE80211_FVHT_VHT) { if ((ni->ni_vht_chanwidth == IEEE80211_VHT_CHANWIDTH_160MHZ) && /* XXX 2 means "160MHz and 80+80MHz", 1 means "160MHz" */ - (_IEEE80211_MASKSHIFT(vap->iv_vhtcaps, + (_IEEE80211_MASKSHIFT(vap->iv_vht_cap.vht_cap_info, IEEE80211_VHTCAP_SUPP_CHAN_WIDTH_MASK) >= 1) && - (vap->iv_flags_vht & IEEE80211_FVHT_USEVHT160)) { + (vap->iv_vht_flags & IEEE80211_FVHT_USEVHT160)) { vhtflags = IEEE80211_CHAN_VHT160; /* Mirror the HT40 flags */ if (htflags == IEEE80211_CHAN_HT40U) { @@ -1951,9 +1950,9 @@ ieee80211_vht_get_vhtflags(struct ieee80211_node *ni, uint32_t htflags) } } else if ((ni->ni_vht_chanwidth == IEEE80211_VHT_CHANWIDTH_80P80MHZ) && /* XXX 2 means "160MHz and 80+80MHz" */ - (_IEEE80211_MASKSHIFT(vap->iv_vhtcaps, + (_IEEE80211_MASKSHIFT(vap->iv_vht_cap.vht_cap_info, IEEE80211_VHTCAP_SUPP_CHAN_WIDTH_MASK) == 2) && - (vap->iv_flags_vht & IEEE80211_FVHT_USEVHT80P80)) { + (vap->iv_vht_flags & IEEE80211_FVHT_USEVHT80P80)) { vhtflags = IEEE80211_CHAN_VHT80P80; /* Mirror the HT40 flags */ if (htflags == IEEE80211_CHAN_HT40U) { @@ -1962,7 +1961,7 @@ ieee80211_vht_get_vhtflags(struct ieee80211_node *ni, uint32_t htflags) vhtflags |= IEEE80211_CHAN_HT40D; } } else if ((ni->ni_vht_chanwidth == IEEE80211_VHT_CHANWIDTH_80MHZ) && - (vap->iv_flags_vht & IEEE80211_FVHT_USEVHT80)) { + (vap->iv_vht_flags & IEEE80211_FVHT_USEVHT80)) { vhtflags = IEEE80211_CHAN_VHT80; /* Mirror the HT40 flags */ if (htflags == IEEE80211_CHAN_HT40U) { @@ -1980,11 +1979,11 @@ ieee80211_vht_get_vhtflags(struct ieee80211_node *ni, uint32_t htflags) * 'ht40' as that flag. */ if ((htflags == IEEE80211_CHAN_HT40U) && - (vap->iv_flags_vht & IEEE80211_FVHT_USEVHT40)) { + (vap->iv_vht_flags & IEEE80211_FVHT_USEVHT40)) { vhtflags = IEEE80211_CHAN_VHT40U | IEEE80211_CHAN_HT40U; } else if (htflags == IEEE80211_CHAN_HT40D && - (vap->iv_flags_vht & IEEE80211_FVHT_USEVHT40)) { + (vap->iv_vht_flags & IEEE80211_FVHT_USEVHT40)) { vhtflags = IEEE80211_CHAN_VHT40D | IEEE80211_CHAN_HT40D; } else if (htflags == IEEE80211_CHAN_HT20) { @@ -2351,7 +2350,7 @@ ieee80211_addba_response(struct ieee80211_node *ni, int status, int baparamset, int batimeout) { struct ieee80211vap *vap = ni->ni_vap; - int bufsiz, tid; + int bufsiz; /* XXX locking */ addba_stop_timeout(tap); @@ -2360,7 +2359,9 @@ ieee80211_addba_response(struct ieee80211_node *ni, /* XXX override our request? */ tap->txa_wnd = (bufsiz == 0) ? IEEE80211_AGGR_BAWMAX : min(bufsiz, IEEE80211_AGGR_BAWMAX); +#ifdef __notyet__ tid = _IEEE80211_MASKSHIFT(baparamset, IEEE80211_BAPS_TID); +#endif tap->txa_flags |= IEEE80211_AGGR_RUNNING; tap->txa_attempts = 0; /* TODO: this should be a vap flag */ @@ -2486,16 +2487,20 @@ ht_recv_action_ba_addba_response(struct ieee80211_node *ni, struct ieee80211_tx_ampdu *tap; uint8_t dialogtoken, policy; uint16_t baparamset, batimeout, code; - int tid, bufsiz; - int amsdu; + int tid; +#ifdef IEEE80211_DEBUG + int amsdu, bufsiz; +#endif dialogtoken = frm[2]; code = le16dec(frm+3); baparamset = le16dec(frm+5); tid = _IEEE80211_MASKSHIFT(baparamset, IEEE80211_BAPS_TID); +#ifdef IEEE80211_DEBUG bufsiz = _IEEE80211_MASKSHIFT(baparamset, IEEE80211_BAPS_BUFSIZ); - policy = _IEEE80211_MASKSHIFT(baparamset, IEEE80211_BAPS_POLICY); amsdu = !! _IEEE80211_MASKSHIFT(baparamset, IEEE80211_BAPS_AMSDU); +#endif + policy = _IEEE80211_MASKSHIFT(baparamset, IEEE80211_BAPS_POLICY); batimeout = le16dec(frm+7); tap = &ni->ni_tx_ampdu[tid]; @@ -2563,11 +2568,16 @@ ht_recv_action_ba_delba(struct ieee80211_node *ni, struct ieee80211com *ic = ni->ni_ic; struct ieee80211_rx_ampdu *rap; struct ieee80211_tx_ampdu *tap; - uint16_t baparamset, code; + uint16_t baparamset; +#ifdef IEEE80211_DEBUG + uint16_t code; +#endif int tid; baparamset = le16dec(frm+2); +#ifdef IEEE80211_DEBUG code = le16dec(frm+4); +#endif tid = _IEEE80211_MASKSHIFT(baparamset, IEEE80211_DELBAPS_TID); @@ -3192,20 +3202,20 @@ ieee80211_set_mcsset(struct ieee80211com *ic, uint8_t *frm) for (i = 39; i <= 52; i++) setbit(frm, i); } - if (ic->ic_txstream >= 4) { + if (ic->ic_rxstream >= 4) { for (i = 53; i <= 76; i++) setbit(frm, i); } } + txparams = 0x1; /* TX MCS set defined */ if (ic->ic_rxstream != ic->ic_txstream) { - txparams = 0x1; /* TX MCS set defined */ txparams |= 0x2; /* TX RX MCS not equal */ txparams |= (ic->ic_txstream - 1) << 2; /* num TX streams */ if (ic->ic_htcaps & IEEE80211_HTC_TXUNEQUAL) txparams |= 0x16; /* TX unequal modulation sup */ - } else - txparams = 0; + } + frm[12] = txparams; } diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_ht.h b/src/libs/compat/freebsd_wlan/net80211/ieee80211_ht.h index a594de3e99..6ba791065d 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_ht.h +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_ht.h @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2007-2008 Sam Leffler, Errno Consulting * All rights reserved. @@ -23,8 +23,6 @@ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * $FreeBSD: releng/12.0/sys/net80211/ieee80211_ht.h 326272 2017-11-27 15:23:17Z pfg $ */ #ifndef _NET80211_IEEE80211_HT_H_ #define _NET80211_IEEE80211_HT_H_ diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_hwmp.c b/src/libs/compat/freebsd_wlan/net80211/ieee80211_hwmp.c index 4788176226..1dea4ec301 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_hwmp.c +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_hwmp.c @@ -1,36 +1,34 @@ -/*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD +/*- + * SPDX-License-Identifier: BSD-2-Clause + * + * Copyright (c) 2009 The FreeBSD Foundation * - * Copyright (c) 2009 The FreeBSD Foundation - * All rights reserved. - * * This software was developed by Rui Paulo under sponsorship from the - * FreeBSD Foundation. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ + * FreeBSD Foundation. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ #include #ifdef __FreeBSD__ -__FBSDID("$FreeBSD: releng/12.0/sys/net80211/ieee80211_hwmp.c 337589 2018-08-10 20:37:32Z dteske $"); #endif /* @@ -173,7 +171,7 @@ SYSCTL_PROC(_net_wlan_hwmp, OID_AUTO, net_diameter_traversal_time, CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_MPSAFE, &ieee80211_hwmp_net_diameter_traversaltime, 0, ieee80211_sysctl_msecs_ticks, "I", - "estimate travelse time across the MBSS (ms)"); + "estimate traversal time across the MBSS (ms)"); static int ieee80211_hwmp_roottimeout = -1; SYSCTL_PROC(_net_wlan_hwmp, OID_AUTO, roottimeout, CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_MPSAFE, @@ -282,7 +280,7 @@ hwmp_vdetach(struct ieee80211vap *vap) callout_drain(&hs->hs_roottimer); IEEE80211_FREE(vap->iv_hwmp, M_80211_VAP); vap->iv_hwmp = NULL; -} +} static int hwmp_newstate(struct ieee80211vap *vap, enum ieee80211_state ostate, int arg) @@ -378,7 +376,7 @@ verify_mesh_perr_len(struct ieee80211vap *vap, } iefrm_t += IEEE80211_MESHPERR_NDEST_OFFSET + 1; /* flag is next field */ - /* We need to check each destionation flag to know size */ + /* We need to check each destination flag to know size */ for(i = 0; ipreq_lifetime = le32dec(iefrm_t); iefrm_t += 4; preq->preq_metric = le32dec(iefrm_t); iefrm_t += 4; preq->preq_tcount = *iefrm_t++; - + for (i = 0; i < preq->preq_tcount; i++) { preq->preq_targets[i].target_flags = *iefrm_t++; IEEE80211_ADDR_COPY( @@ -647,7 +645,7 @@ hwmp_send_action(struct ieee80211vap *vap, } m->m_pkthdr.len = m->m_len = frm - mtod(m, uint8_t *); - M_PREPEND(m, sizeof(struct ieee80211_frame), M_NOWAIT); + M_PREPEND(m, sizeof(struct ieee80211_frame), IEEE80211_M_NOWAIT); if (m == NULL) { ieee80211_free_node(ni); vap->iv_stats.is_tx_nobuf++; @@ -983,7 +981,7 @@ hwmp_recv_preq(struct ieee80211vap *vap, struct ieee80211_node *ni, return; } /* - * Acceptance criteria: if unicast addressed + * Acceptance criteria: if unicast addressed * AND no valid forwarding for Target of PREQ, discard this PREQ. */ if(rttarg != NULL) @@ -1400,7 +1398,7 @@ hwmp_recv_prep(struct ieee80211vap *vap, struct ieee80211_node *ni, /* * Check if we received a PREP w/ AE and store target external address. - * We may store target external address if recevied PREP w/ AE + * We may store target external address if received PREP w/ AE * and we are not final destination */ if (prep->prep_flags & IEEE80211_MESHPREP_FLAGS_AE) { @@ -1840,7 +1838,7 @@ hwmp_send_rann(struct ieee80211vap *vap, * [6] addr3 = sa * [1] action * [1] category - * [tlv] root annoucement + * [tlv] root announcement */ rann->rann_ie = IEEE80211_ELEMID_MESHRANN; rann->rann_len = IEEE80211_MESHRANN_BASE_SZ; @@ -1929,8 +1927,8 @@ hwmp_discover(struct ieee80211vap *vap, if (rt == NULL) { rt = ieee80211_mesh_rt_add(vap, dest); if (rt == NULL) { - IEEE80211_NOTE(vap, IEEE80211_MSG_HWMP, - ni, "unable to add discovery path to %6D", + IEEE80211_DPRINTF(vap, IEEE80211_MSG_HWMP, + "unable to add discovery path to %6D", dest, ":"); vap->iv_stats.is_mesh_rtaddfailed++; goto done; @@ -2020,6 +2018,7 @@ done: */ IEEE80211_NOTE_MAC(vap, IEEE80211_MSG_HWMP, dest, "%s", "queue frame until path found"); + MPASS((m->m_pkthdr.csum_flags & CSUM_SND_TAG) == 0); m->m_pkthdr.rcvif = (void *)(uintptr_t) ieee80211_mac_hash(ic, dest); /* XXX age chosen randomly */ diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_input.c b/src/libs/compat/freebsd_wlan/net80211/ieee80211_input.c index f434f10795..d285f230ec 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_input.c +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_input.c @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2001 Atsushi Onoe * Copyright (c) 2002-2009 Sam Leffler, Errno Consulting @@ -27,8 +27,6 @@ */ #include -__FBSDID("$FreeBSD: releng/12.0/sys/net80211/ieee80211_input.c 326272 2017-11-27 15:23:17Z pfg $"); - #include "opt_wlan.h" #include @@ -37,6 +35,7 @@ __FBSDID("$FreeBSD: releng/12.0/sys/net80211/ieee80211_input.c 326272 2017-11-27 #include #include #include +#include #include @@ -45,6 +44,7 @@ __FBSDID("$FreeBSD: releng/12.0/sys/net80211/ieee80211_input.c 326272 2017-11-27 #include #include #include +#include #include #include @@ -146,7 +146,7 @@ ieee80211_input_mimo_all(struct ieee80211com *ic, struct mbuf *m) * so do a deep copy of the packet. * NB: tags are copied too. */ - mcopy = m_dup(m, M_NOWAIT); + mcopy = m_dup(m, IEEE80211_M_NOWAIT); if (mcopy == NULL) { /* XXX stat+msg */ continue; @@ -170,7 +170,8 @@ ieee80211_input_mimo_all(struct ieee80211com *ic, struct mbuf *m) * XXX should handle 3 concurrent reassemblies per-spec. */ struct mbuf * -ieee80211_defrag(struct ieee80211_node *ni, struct mbuf *m, int hdrspace) +ieee80211_defrag(struct ieee80211_node *ni, struct mbuf *m, int hdrspace, + int has_decrypted) { struct ieee80211vap *vap = ni->ni_vap; struct ieee80211_frame *wh = mtod(m, struct ieee80211_frame *); @@ -189,6 +190,11 @@ ieee80211_defrag(struct ieee80211_node *ni, struct mbuf *m, int hdrspace) if (!more_frag && fragno == 0 && ni->ni_rxfrag[0] == NULL) return m; + /* Temporarily set flag to remember if fragment was encrypted. */ + /* XXX use a non-packet altering storage for this in the future. */ + if (has_decrypted) + wh->i_fc[1] |= IEEE80211_FC1_PROTECTED; + /* * Remove frag to insure it doesn't get reaped by timer. */ @@ -219,10 +225,14 @@ ieee80211_defrag(struct ieee80211_node *ni, struct mbuf *m, int hdrspace) lwh = mtod(mfrag, struct ieee80211_frame *); last_rxseq = le16toh(*(uint16_t *)lwh->i_seq); - /* NB: check seq # and frag together */ + /* + * NB: check seq # and frag together. Also check that both + * fragments are plaintext or that both are encrypted. + */ if (rxseq == last_rxseq+1 && IEEE80211_ADDR_EQ(wh->i_addr1, lwh->i_addr1) && - IEEE80211_ADDR_EQ(wh->i_addr2, lwh->i_addr2)) { + IEEE80211_ADDR_EQ(wh->i_addr2, lwh->i_addr2) && + !((wh->i_fc[1] ^ lwh->i_fc[1]) & IEEE80211_FC1_PROTECTED)) { /* XXX clear MORE_FRAG bit? */ /* track last seqnum and fragno */ *(uint16_t *) lwh->i_seq = *(uint16_t *) wh->i_seq; @@ -253,6 +263,11 @@ ieee80211_defrag(struct ieee80211_node *ni, struct mbuf *m, int hdrspace) ni->ni_rxfrag[0] = mfrag; mfrag = NULL; } + /* Remember to clear protected flag that was temporarily set. */ + if (mfrag != NULL) { + wh = mtod(mfrag, struct ieee80211_frame *); + wh->i_fc[1] &= ~IEEE80211_FC1_PROTECTED; + } return mfrag; } @@ -260,6 +275,7 @@ void ieee80211_deliver_data(struct ieee80211vap *vap, struct ieee80211_node *ni, struct mbuf *m) { + struct epoch_tracker et; struct ether_header *eh = mtod(m, struct ether_header *); struct ifnet *ifp = vap->iv_ifp; @@ -290,11 +306,14 @@ ieee80211_deliver_data(struct ieee80211vap *vap, m->m_pkthdr.ether_vtag = ni->ni_vlan; m->m_flags |= M_VLANTAG; } + NET_EPOCH_ENTER(et); ifp->if_input(ifp, m); + NET_EPOCH_EXIT(et); } struct mbuf * -ieee80211_decap(struct ieee80211vap *vap, struct mbuf *m, int hdrlen) +ieee80211_decap(struct ieee80211vap *vap, struct mbuf *m, int hdrlen, + uint8_t qos) { struct ieee80211_qosframe_addr4 wh; struct ether_header *eh; @@ -316,7 +335,9 @@ ieee80211_decap(struct ieee80211vap *vap, struct mbuf *m, int hdrlen) llc->llc_snap.org_code[1] == 0 && llc->llc_snap.org_code[2] == 0 && /* NB: preserve AppleTalk frames that have a native SNAP hdr */ !(llc->llc_snap.ether_type == htons(ETHERTYPE_AARP) || - llc->llc_snap.ether_type == htons(ETHERTYPE_IPX))) { + llc->llc_snap.ether_type == htons(ETHERTYPE_IPX)) && + /* Do not want to touch A-MSDU frames. */ + !(qos & IEEE80211_QOS_AMSDU)) { m_adj(m, hdrlen + sizeof(struct llc) - sizeof(*eh)); llc = NULL; } else { @@ -364,6 +385,10 @@ ieee80211_decap1(struct mbuf *m, int *framelen) #define FF_LLC_SIZE (sizeof(struct ether_header) + sizeof(struct llc)) struct ether_header *eh; struct llc *llc; + const uint8_t llc_hdr_mac[ETHER_ADDR_LEN] = { + /* MAC address matching the 802.2 LLC header */ + LLC_SNAP_LSAP, LLC_SNAP_LSAP, LLC_UI, 0, 0, 0 + }; /* * The frame has an 802.3 header followed by an 802.2 @@ -376,6 +401,15 @@ ieee80211_decap1(struct mbuf *m, int *framelen) if (m->m_len < FF_LLC_SIZE && (m = m_pullup(m, FF_LLC_SIZE)) == NULL) return NULL; eh = mtod(m, struct ether_header *); /* 802.3 header is first */ + + /* + * Detect possible attack where a single 802.11 frame is processed + * as an A-MSDU frame due to an adversary setting the A-MSDU present + * bit in the 802.11 QoS header. [FragAttacks] + */ + if (memcmp(eh->ether_dhost, llc_hdr_mac, ETHER_ADDR_LEN) == 0) + return NULL; + llc = (struct llc *)&eh[1]; /* 802.2 header follows */ *framelen = ntohs(eh->ether_type) /* encap'd frame size */ + sizeof(struct ether_header) - sizeof(struct llc); @@ -711,6 +745,12 @@ ieee80211_parse_beacon(struct ieee80211_node *ni, struct mbuf *m, IEEE80211_VERIFY_LENGTH(scan->csa[1], 3 * sizeof(uint8_t), scan->status |= IEEE80211_BPARSE_CSA_INVALID); } +#ifdef IEEE80211_SUPPORT_MESH + if (scan->meshid != NULL) { + IEEE80211_VERIFY_ELEMENT(scan->meshid, IEEE80211_MESHID_LEN, + scan->status |= IEEE80211_BPARSE_MESHID_INVALID); + } +#endif /* * Process HT ie's. This is complicated by our * accepting both the standard ie's and the pre-draft @@ -734,12 +774,12 @@ ieee80211_parse_beacon(struct ieee80211_node *ni, struct mbuf *m, /* Process VHT IEs */ if (scan->vhtcap != NULL) { IEEE80211_VERIFY_LENGTH(scan->vhtcap[1], - sizeof(struct ieee80211_ie_vhtcap) - 2, + sizeof(struct ieee80211_vht_cap), scan->vhtcap = NULL); } if (scan->vhtopmode != NULL) { IEEE80211_VERIFY_LENGTH(scan->vhtopmode[1], - sizeof(struct ieee80211_ie_vht_operation) - 2, + sizeof(struct ieee80211_vht_operation), scan->vhtopmode = NULL); } @@ -905,14 +945,18 @@ ieee80211_getbssid(const struct ieee80211vap *vap, void ieee80211_note(const struct ieee80211vap *vap, const char *fmt, ...) { - char buf[128]; /* XXX */ + char buf[256]; /* XXX */ va_list ap; + int len; va_start(ap, fmt); - vsnprintf(buf, sizeof(buf), fmt, ap); + len = vsnprintf(buf, sizeof(buf), fmt, ap); va_end(ap); if_printf(vap->iv_ifp, "%s", buf); /* NB: no \n */ + + if (len >= sizeof(buf)) + printf("%s: XXX buffer too small: len = %d\n", __func__, len); } void @@ -920,14 +964,18 @@ ieee80211_note_frame(const struct ieee80211vap *vap, const struct ieee80211_frame *wh, const char *fmt, ...) { - char buf[128]; /* XXX */ + char buf[256]; /* XXX */ va_list ap; + int len; va_start(ap, fmt); - vsnprintf(buf, sizeof(buf), fmt, ap); + len = vsnprintf(buf, sizeof(buf), fmt, ap); va_end(ap); if_printf(vap->iv_ifp, "[%s] %s\n", ether_sprintf(ieee80211_getbssid(vap, wh)), buf); + + if (len >= sizeof(buf)) + printf("%s: XXX buffer too small: len = %d\n", __func__, len); } void @@ -935,13 +983,17 @@ ieee80211_note_mac(const struct ieee80211vap *vap, const uint8_t mac[IEEE80211_ADDR_LEN], const char *fmt, ...) { - char buf[128]; /* XXX */ + char buf[256]; /* XXX */ va_list ap; + int len; va_start(ap, fmt); - vsnprintf(buf, sizeof(buf), fmt, ap); + len = vsnprintf(buf, sizeof(buf), fmt, ap); va_end(ap); if_printf(vap->iv_ifp, "[%s] %s\n", ether_sprintf(mac), buf); + + if (len >= sizeof(buf)) + printf("%s: XXX buffer too small: len = %d\n", __func__, len); } void @@ -949,16 +1001,21 @@ ieee80211_discard_frame(const struct ieee80211vap *vap, const struct ieee80211_frame *wh, const char *type, const char *fmt, ...) { + char buf[256]; /* XXX */ va_list ap; + int len; - if_printf(vap->iv_ifp, "[%s] discard ", - ether_sprintf(ieee80211_getbssid(vap, wh))); - printf("%s frame, ", type != NULL ? type : - ieee80211_mgt_subtype_name(wh->i_fc[0])); va_start(ap, fmt); - vprintf(fmt, ap); + len = vsnprintf(buf, sizeof(buf), fmt, ap); va_end(ap); - printf("\n"); + + if_printf(vap->iv_ifp, "[%s] discard %s frame, %s\n", + ether_sprintf(ieee80211_getbssid(vap, wh)), + type != NULL ? type : ieee80211_mgt_subtype_name(wh->i_fc[0]), + buf); + + if (len >= sizeof(buf)) + printf("%s: XXX buffer too small: len = %d\n", __func__, len); } void @@ -966,18 +1023,20 @@ ieee80211_discard_ie(const struct ieee80211vap *vap, const struct ieee80211_frame *wh, const char *type, const char *fmt, ...) { + char buf[256]; /* XXX */ va_list ap; + int len; - if_printf(vap->iv_ifp, "[%s] discard ", - ether_sprintf(ieee80211_getbssid(vap, wh))); - if (type != NULL) - printf("%s information element, ", type); - else - printf("information element, "); va_start(ap, fmt); - vprintf(fmt, ap); + len = vsnprintf(buf, sizeof(buf), fmt, ap); va_end(ap); - printf("\n"); + + if_printf(vap->iv_ifp, "[%s] discard%s%s information element, %s\n", + ether_sprintf(ieee80211_getbssid(vap, wh)), + type != NULL ? " " : "", type != NULL ? type : "", buf); + + if (len >= sizeof(buf)) + printf("%s: XXX buffer too small: len = %d\n", __func__, len); } void @@ -985,16 +1044,19 @@ ieee80211_discard_mac(const struct ieee80211vap *vap, const uint8_t mac[IEEE80211_ADDR_LEN], const char *type, const char *fmt, ...) { + char buf[256]; /* XXX */ va_list ap; + int len; - if_printf(vap->iv_ifp, "[%s] discard ", ether_sprintf(mac)); - if (type != NULL) - printf("%s frame, ", type); - else - printf("frame, "); va_start(ap, fmt); - vprintf(fmt, ap); + len = vsnprintf(buf, sizeof(buf), fmt, ap); va_end(ap); - printf("\n"); + + if_printf(vap->iv_ifp, "[%s] discard%s%s frame, %s\n", + ether_sprintf(mac), + type != NULL ? " " : "", type != NULL ? type : "", buf); + + if (len >= sizeof(buf)) + printf("%s: XXX buffer too small: len = %d\n", __func__, len); } #endif /* IEEE80211_DEBUG */ diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_input.h b/src/libs/compat/freebsd_wlan/net80211/ieee80211_input.h index 5fc85249d2..21dc55920e 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_input.h +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_input.h @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2007-2009 Sam Leffler, Errno Consulting * All rights reserved. @@ -23,8 +23,6 @@ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * $FreeBSD: releng/12.0/sys/net80211/ieee80211_input.h 326272 2017-11-27 15:23:17Z pfg $ */ #ifndef _NET80211_IEEE80211_INPUT_H_ #define _NET80211_IEEE80211_INPUT_H_ @@ -178,7 +176,7 @@ ieee80211_check_rxseq_amsdu_more(const struct ieee80211_rx_stats *rxs) * * The routine only eliminates packets whose sequence/fragment * match or are less than the last seen sequence/fragment number - * AND are retransmits It doesn't try to eliminate out of order packets. + * AND are retransmits. It doesn't try to eliminate out of order packets. * * Since all frames after sequence number 4095 will be less than 4095 * (as the seqnum wraps), handle that special case so packets aren't @@ -309,9 +307,10 @@ fail: void ieee80211_deliver_data(struct ieee80211vap *, struct ieee80211_node *, struct mbuf *); struct mbuf *ieee80211_defrag(struct ieee80211_node *, - struct mbuf *, int); + struct mbuf *, int, int); struct mbuf *ieee80211_realign(struct ieee80211vap *, struct mbuf *, size_t); -struct mbuf *ieee80211_decap(struct ieee80211vap *, struct mbuf *, int); +struct mbuf *ieee80211_decap(struct ieee80211vap *, struct mbuf *, int, + uint8_t); struct mbuf *ieee80211_decap1(struct mbuf *, int *); int ieee80211_setup_rates(struct ieee80211_node *ni, const uint8_t *rates, const uint8_t *xrates, int flags); diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_ioctl.c b/src/libs/compat/freebsd_wlan/net80211/ieee80211_ioctl.c index 4740dda5d7..00b7437c3b 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_ioctl.c +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_ioctl.c @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2001 Atsushi Onoe * Copyright (c) 2002-2009 Sam Leffler, Errno Consulting @@ -27,8 +27,6 @@ */ #include -__FBSDID("$FreeBSD: releng/12.0/sys/net80211/ieee80211_ioctl.c 331797 2018-03-30 18:50:13Z brooks $"); - /* * IEEE 802.11 ioctl support (FreeBSD-specific) */ @@ -43,11 +41,13 @@ __FBSDID("$FreeBSD: releng/12.0/sys/net80211/ieee80211_ioctl.c 331797 2018-03-30 #include #include #include +#include #include #include #include #include +#include #include #ifdef INET @@ -332,7 +332,7 @@ ieee80211_ioctl_getscanresults(struct ieee80211vap *vap, void *p; space = req.space; - /* XXX M_WAITOK after driver lock released */ + /* XXX IEEE80211_M_WAITOK after driver lock released */ p = IEEE80211_MALLOC(space, M_TEMP, IEEE80211_M_NOWAIT | IEEE80211_M_ZERO); if (p == NULL) @@ -478,7 +478,7 @@ getstainfo_common(struct ieee80211vap *vap, struct ieee80211req *ireq, req.space = ireq->i_len; if (req.space > 0) { space = req.space; - /* XXX M_WAITOK after driver lock released */ + /* XXX IEEE80211_M_WAITOK after driver lock released */ p = IEEE80211_MALLOC(space, M_TEMP, IEEE80211_M_NOWAIT | IEEE80211_M_ZERO); if (p == NULL) { @@ -712,7 +712,7 @@ ieee80211_ioctl_getdevcaps(struct ieee80211com *ic, dc->dc_drivercaps = ic->ic_caps; dc->dc_cryptocaps = ic->ic_cryptocaps; dc->dc_htcaps = ic->ic_htcaps; - dc->dc_vhtcaps = ic->ic_vhtcaps; + dc->dc_vhtcaps = ic->ic_vht_cap.vht_cap_info; ci = &dc->dc_chaninfo; ic->ic_getradiocaps(ic, maxchans, &ci->ic_nchans, ci->ic_chans); KASSERT(ci->ic_nchans <= maxchans, @@ -1157,7 +1157,7 @@ ieee80211_ioctl_get80211(struct ieee80211vap *vap, u_long cmd, ireq->i_val = 1; break; case IEEE80211_IOC_VHTCONF: - ireq->i_val = vap->iv_flags_vht & IEEE80211_FVHT_MASK; + ireq->i_val = vap->iv_vht_flags & IEEE80211_FVHT_MASK; break; default: error = ieee80211_ioctl_getdefault(vap, ireq); @@ -1349,7 +1349,7 @@ domlme(void *arg, struct ieee80211_node *ni) * NB: if ni_associd is zero then the node is already cleaned * up and we don't need to do this (we're safely holding a * reference but should otherwise not modify it's state). - */ + */ if (ni->ni_associd == 0) return; mlmedebug(vap, ni->ni_macaddr, mop->op, mop->reason); @@ -1591,7 +1591,7 @@ setmlme_assoc_adhoc(struct ieee80211vap *vap, ("expected opmode IBSS or AHDEMO not %s", ieee80211_opmode_name[vap->iv_opmode])); - if (ssid_len == 0) + if (ssid_len == 0 || ssid_len > IEEE80211_NWID_LEN) return EINVAL; sr = IEEE80211_MALLOC(sizeof(*sr), M_TEMP, @@ -2608,8 +2608,10 @@ ieee80211_scanreq(struct ieee80211vap *vap, struct ieee80211_scan_req *sr) sr->sr_flags |= IEEE80211_IOC_SCAN_NOPICK; IEEE80211_DPRINTF(vap, IEEE80211_MSG_SCAN, - "%s: flags 0x%x%s duration 0x%x mindwell %u maxdwell %u nssid %d\n", - __func__, sr->sr_flags, + "%s: vap %p iv_state %#x (%s) flags 0x%x%s " + "duration 0x%x mindwell %u maxdwell %u nssid %d\n", + __func__, vap, vap->iv_state, ieee80211_state_name[vap->iv_state], + sr->sr_flags, (vap->iv_ifp->if_flags & IFF_UP) == 0 ? " (!IFF_UP)" : "", sr->sr_duration, sr->sr_mindwell, sr->sr_maxdwell, sr->sr_nssid); /* @@ -3611,6 +3613,8 @@ ieee80211_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data) IEEE80211_UNLOCK(ic); /* Wait for parent ioctl handler if it was queued */ if (wait) { + struct epoch_tracker et; + ieee80211_waitfor_parent(ic); /* @@ -3620,13 +3624,13 @@ ieee80211_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data) * NB: device may be detached during initialization; * use if_ioctl for existence check. */ - if_addr_rlock(ifp); + NET_EPOCH_ENTER(et); if (ifp->if_ioctl == ieee80211_ioctl && (ifp->if_flags & IFF_UP) == 0 && !IEEE80211_ADDR_EQ(vap->iv_myaddr, IF_LLADDR(ifp))) IEEE80211_ADDR_COPY(vap->iv_myaddr, IF_LLADDR(ifp)); - if_addr_runlock(ifp); + NET_EPOCH_EXIT(et); } break; case SIOCADDMULTI: @@ -3650,8 +3654,8 @@ ieee80211_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data) break; case SIOCG80211STATS: ifr = (struct ifreq *)data; - copyout(&vap->iv_stats, ifr_data_get_ptr(ifr), - sizeof (vap->iv_stats)); + error = copyout(&vap->iv_stats, ifr_data_get_ptr(ifr), + sizeof(vap->iv_stats)); break; case SIOCSIFMTU: ifr = (struct ifreq *)data; diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_ioctl.h b/src/libs/compat/freebsd_wlan/net80211/ieee80211_ioctl.h index 77235fd59d..e28bcd98b0 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_ioctl.h +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_ioctl.h @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2001 Atsushi Onoe * Copyright (c) 2002-2009 Sam Leffler, Errno Consulting @@ -24,8 +24,6 @@ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * $FreeBSD: releng/12.0/sys/net80211/ieee80211_ioctl.h 326272 2017-11-27 15:23:17Z pfg $ */ #ifndef _NET80211_IEEE80211_IOCTL_H_ #define _NET80211_IEEE80211_IOCTL_H_ diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_mesh.c b/src/libs/compat/freebsd_wlan/net80211/ieee80211_mesh.c index e883e24c04..477527b345 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_mesh.c +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_mesh.c @@ -1,8 +1,7 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2009 The FreeBSD Foundation - * All rights reserved. * * This software was developed by Rui Paulo under sponsorship from the * FreeBSD Foundation. @@ -30,7 +29,6 @@ */ #include #ifdef __FreeBSD__ -__FBSDID("$FreeBSD: releng/12.0/sys/net80211/ieee80211_mesh.c 326272 2017-11-27 15:23:17Z pfg $"); #endif /* @@ -59,6 +57,7 @@ __FBSDID("$FreeBSD: releng/12.0/sys/net80211/ieee80211_mesh.c 326272 2017-11-27 #include #include #include +#include #include #include @@ -962,7 +961,7 @@ mesh_generateid(struct ieee80211vap *vap) uint16_t r; do { - get_random_bytes(&r, 2); + net80211_get_random_bytes(&r, 2); ieee80211_iterate_nodes(&vap->iv_ic->ic_sta, mesh_checkid, &r); maxiter--; } while (r == 0 && maxiter > 0); @@ -1120,7 +1119,7 @@ ieee80211_mesh_forward_to_gates(struct ieee80211vap *vap, ieee80211_mesh_rt_update(rt_dest, ms->ms_ppath->mpp_inact); MESH_RT_UNLOCK(ms); /* XXX: lock?? */ - mcopy = m_dup(m, M_NOWAIT); + mcopy = m_dup(m, IEEE80211_M_NOWAIT); for (; mcopy != NULL; mcopy = next) { next = mcopy->m_nextpkt; mcopy->m_nextpkt = NULL; @@ -1176,7 +1175,7 @@ mesh_forward(struct ieee80211vap *vap, struct mbuf *m, vap->iv_stats.is_mesh_fwd_disabled++; return; } - mcopy = m_dup(m, M_NOWAIT); + mcopy = m_dup(m, IEEE80211_M_NOWAIT); if (mcopy == NULL) { IEEE80211_NOTE_FRAME(vap, IEEE80211_MSG_MESH, wh, "%s", "frame not fwd'd, cannot dup"); @@ -1229,6 +1228,7 @@ mesh_forward(struct ieee80211vap *vap, struct mbuf *m, M_WME_SETAC(mcopy, WME_AC_BE); /* XXX do we know m_nextpkt is NULL? */ + MPASS((mcopy->m_pkthdr.csum_flags & CSUM_SND_TAG) == 0); mcopy->m_pkthdr.rcvif = (void *) ni; /* @@ -1641,7 +1641,7 @@ mesh_input(struct ieee80211_node *ni, struct mbuf *m, */ hdrspace = ieee80211_hdrspace(ic, wh); if (!IEEE80211_IS_MULTICAST(wh->i_addr1)) { - m = ieee80211_defrag(ni, m, hdrspace); + m = ieee80211_defrag(ni, m, hdrspace, 0); if (m == NULL) { /* Fragment dropped or frame not complete yet */ goto out; @@ -1797,7 +1797,7 @@ mesh_input(struct ieee80211_node *ni, struct mbuf *m, ether_sprintf(wh->i_addr2), rssi); } #endif - if (wh->i_fc[1] & IEEE80211_FC1_PROTECTED) { + if (IEEE80211_IS_PROTECTED(wh)) { IEEE80211_DISCARD(vap, IEEE80211_MSG_INPUT, wh, NULL, "%s", "WEP set but not permitted"); vap->iv_stats.is_rx_mgtdiscard++; /* XXX */ @@ -2194,7 +2194,7 @@ mesh_parse_meshpeering_action(struct ieee80211_node *ni, sendclose = 1; IEEE80211_DISCARD(vap, IEEE80211_MSG_ACTION | IEEE80211_MSG_MESH, - wh, NULL, "%s", "configuration missmatch"); + wh, NULL, "%s", "configuration mismatch"); } if (sendclose) { @@ -2668,7 +2668,7 @@ mesh_send_action(struct ieee80211_node *ni, return EIO; /* XXX */ } - M_PREPEND(m, sizeof(struct ieee80211_frame), M_NOWAIT); + M_PREPEND(m, sizeof(struct ieee80211_frame), IEEE80211_M_NOWAIT); if (m == NULL) { ieee80211_free_node(ni); return ENOMEM; @@ -2959,7 +2959,7 @@ mesh_send_action_meshgate(struct ieee80211_node *ni, * mesh link metric * [1] category * [1] action - * [tlv] mesh gate annoucement + * [tlv] mesh gate announcement */ *frm++ = category; *frm++ = action; diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_mesh.h b/src/libs/compat/freebsd_wlan/net80211/ieee80211_mesh.h index 085f6f0050..c87ec2f95e 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_mesh.h +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_mesh.h @@ -1,8 +1,7 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2009 The FreeBSD Foundation - * All rights reserved. * * This software was developed by Rui Paulo under sponsorship from the * FreeBSD Foundation. @@ -28,7 +27,6 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: releng/12.0/sys/net80211/ieee80211_mesh.h 326272 2017-11-27 15:23:17Z pfg $ */ #ifndef _NET80211_IEEE80211_MESH_H_ #define _NET80211_IEEE80211_MESH_H_ diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_monitor.c b/src/libs/compat/freebsd_wlan/net80211/ieee80211_monitor.c index 011810343a..5dd11c2052 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_monitor.c +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_monitor.c @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2007-2008 Sam Leffler, Errno Consulting * All rights reserved. @@ -27,7 +27,6 @@ #include #ifdef __FreeBSD__ -__FBSDID("$FreeBSD: releng/12.0/sys/net80211/ieee80211_monitor.c 326272 2017-11-27 15:23:17Z pfg $"); #endif /* diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_monitor.h b/src/libs/compat/freebsd_wlan/net80211/ieee80211_monitor.h index f47affb678..6da88d3653 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_monitor.h +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_monitor.h @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2007-2008 Sam Leffler, Errno Consulting * All rights reserved. @@ -23,8 +23,6 @@ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * $FreeBSD: releng/12.0/sys/net80211/ieee80211_monitor.h 326272 2017-11-27 15:23:17Z pfg $ */ #ifndef _NET80211_IEEE80211_MONITOR_H_ #define _NET80211_IEEE80211_MONITOR_H_ diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_node.c b/src/libs/compat/freebsd_wlan/net80211/ieee80211_node.c index 93179cfa99..8f8dc5f378 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_node.c +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_node.c @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2001 Atsushi Onoe * Copyright (c) 2002-2009 Sam Leffler, Errno Consulting @@ -27,8 +27,6 @@ */ #include -__FBSDID("$FreeBSD: releng/12.0/sys/net80211/ieee80211_node.c 337572 2018-08-10 13:34:23Z kevans $"); - #include "opt_wlan.h" #include @@ -59,6 +57,12 @@ __FBSDID("$FreeBSD: releng/12.0/sys/net80211/ieee80211_node.c 337572 2018-08-10 #include +#ifdef IEEE80211_DEBUG_REFCNT +#define __debrefcnt_used +#else +#define __debrefcnt_used __unused +#endif + /* * IEEE80211_NODE_HASHSIZE must be a power of 2. */ @@ -78,6 +82,9 @@ CTASSERT((IEEE80211_NODE_HASHSIZE & (IEEE80211_NODE_HASHSIZE-1)) == 0); static int ieee80211_sta_join1(struct ieee80211_node *); +static struct ieee80211_node *ieee80211_alloc_node( + struct ieee80211_node_table *, struct ieee80211vap *, + const uint8_t macaddr[IEEE80211_ADDR_LEN], const char *, int); static struct ieee80211_node *node_alloc(struct ieee80211vap *, const uint8_t [IEEE80211_ADDR_LEN]); static int node_init(struct ieee80211_node *); @@ -89,7 +96,7 @@ static void node_getsignal(const struct ieee80211_node *, int8_t *, int8_t *); static void node_getmimoinfo(const struct ieee80211_node *, struct ieee80211_mimo_info *); -static void _ieee80211_free_node(struct ieee80211_node *); +static void __ieee80211_free_node(struct ieee80211_node *); static void node_reclaim(struct ieee80211_node_table *nt, struct ieee80211_node *ni); @@ -149,7 +156,7 @@ ieee80211_node_vattach(struct ieee80211vap *vap) /* NB: driver can override */ vap->iv_max_aid = IEEE80211_AID_DEF; - /* default station inactivity timer setings */ + /* default station inactivity timer settings */ vap->iv_inact_init = IEEE80211_INACT_INIT; vap->iv_inact_auth = IEEE80211_INACT_AUTH; vap->iv_inact_run = IEEE80211_INACT_RUN; @@ -164,6 +171,10 @@ ieee80211_node_vattach(struct ieee80211vap *vap) void ieee80211_node_latevattach(struct ieee80211vap *vap) { + + /* XXX should ieee80211_vap_attach(), our only caller hold the lock? */ + IEEE80211_UNLOCK_ASSERT(vap->iv_ic); + if (vap->iv_opmode == IEEE80211_M_HOSTAP) { /* XXX should we allow max aid to be zero? */ if (vap->iv_max_aid < IEEE80211_AID_MIN) { @@ -184,7 +195,9 @@ ieee80211_node_latevattach(struct ieee80211vap *vap) } } + IEEE80211_LOCK(vap->iv_ic); ieee80211_reset_bss(vap); + IEEE80211_UNLOCK(vap->iv_ic); vap->iv_auth = ieee80211_authenticator_get(vap->iv_bss->ni_authmode); } @@ -194,11 +207,16 @@ ieee80211_node_vdetach(struct ieee80211vap *vap) { struct ieee80211com *ic = vap->iv_ic; + /* XXX should ieee80211_vap_detach(), our only caller hold the lock? */ + IEEE80211_UNLOCK_ASSERT(vap->iv_ic); + ieee80211_node_table_reset(&ic->ic_sta, vap); + IEEE80211_LOCK(ic); if (vap->iv_bss != NULL) { ieee80211_free_node(vap->iv_bss); - vap->iv_bss = NULL; + vap->iv_update_bss(vap, NULL); } + IEEE80211_UNLOCK(ic); if (vap->iv_aid_bitmap != NULL) { IEEE80211_FREE(vap->iv_aid_bitmap, M_80211_NODE); vap->iv_aid_bitmap = NULL; @@ -341,7 +359,8 @@ ieee80211_create_ibss(struct ieee80211vap* vap, struct ieee80211_channel *chan) ieee80211_channel_type_char(chan), chan->ic_flags); - ni = ieee80211_alloc_node(&ic->ic_sta, vap, vap->iv_myaddr); + ni = ieee80211_alloc_node(&ic->ic_sta, vap, vap->iv_myaddr, + __func__, __LINE__); if (ni == NULL) { /* XXX recovery? */ return; @@ -363,7 +382,8 @@ ieee80211_create_ibss(struct ieee80211vap* vap, struct ieee80211_channel *chan) if (vap->iv_flags & IEEE80211_F_DESBSSID) IEEE80211_ADDR_COPY(ni->ni_bssid, vap->iv_des_bssid); else { - get_random_bytes(ni->ni_bssid, IEEE80211_ADDR_LEN); + net80211_get_random_bytes(ni->ni_bssid, + IEEE80211_ADDR_LEN); /* clear group bit, add local bit */ ni->ni_bssid[0] = (ni->ni_bssid[0] &~ 0x01) | 0x02; } @@ -446,14 +466,16 @@ ieee80211_reset_bss(struct ieee80211vap *vap) struct ieee80211com *ic = vap->iv_ic; struct ieee80211_node *ni, *obss; + IEEE80211_LOCK_ASSERT(ic); + ieee80211_node_table_reset(&ic->ic_sta, vap); /* XXX multi-bss: wrong */ ieee80211_vap_reset_erp(vap); - ni = ieee80211_alloc_node(&ic->ic_sta, vap, vap->iv_myaddr); + ni = ieee80211_alloc_node(&ic->ic_sta, vap, vap->iv_myaddr, + __func__, __LINE__); KASSERT(ni != NULL, ("unable to setup initial BSS node")); - obss = vap->iv_bss; - vap->iv_bss = ieee80211_ref_node(ni); + obss = vap->iv_update_bss(vap, ieee80211_ref_node(ni)); if (obss != NULL) { copy_bss(ni, obss); ni->ni_intval = ic->ic_bintval; @@ -800,7 +822,7 @@ ieee80211_setupcurchan(struct ieee80211com *ic, struct ieee80211_channel *c) * based on what HT has done; it may further promote the * channel to VHT80 or above. */ - if (ic->ic_vhtcaps != 0) { + if (ic->ic_vht_cap.vht_cap_info != 0) { int flags = getvhtadjustflags(ic); if (flags > ieee80211_vhtchanflags(c)) c = ieee80211_vht_adjust_channel(ic, c, flags); @@ -845,24 +867,29 @@ ieee80211_sta_join1(struct ieee80211_node *selbs) /* * Committed to selbs, setup state. */ - obss = vap->iv_bss; + IEEE80211_LOCK(ic); /* XXX may recurse here, check callers. */ + obss = vap->iv_update_bss(vap, selbs); /* NB: caller assumed to bump refcnt */ + IEEE80211_UNLOCK(ic); /* * Check if old+new node have the same address in which * case we can reassociate when operating in sta mode. */ + /* XXX We'll not be in RUN anymore as iv_state got updated already? */ canreassoc = (obss != NULL && vap->iv_state == IEEE80211_S_RUN && IEEE80211_ADDR_EQ(obss->ni_macaddr, selbs->ni_macaddr)); - vap->iv_bss = selbs; /* NB: caller assumed to bump refcnt */ if (obss != NULL) { struct ieee80211_node_table *nt = obss->ni_table; copy_bss(selbs, obss); - ieee80211_node_decref(obss); /* iv_bss reference */ - - IEEE80211_NODE_LOCK(nt); - node_reclaim(nt, obss); /* station table reference */ - IEEE80211_NODE_UNLOCK(nt); + if (nt != NULL) { + ieee80211_node_decref(obss); /* iv_bss reference */ + IEEE80211_NODE_LOCK(nt); + node_reclaim(nt, obss); /* station table reference */ + IEEE80211_NODE_UNLOCK(nt); + } else { + ieee80211_free_node(obss); /* iv_bss reference */ + } obss = NULL; /* NB: guard against later use */ } @@ -894,6 +921,10 @@ ieee80211_sta_join1(struct ieee80211_node *selbs) * us to try to re-authenticate if we are operating * as a station. */ + IEEE80211_DPRINTF(vap, IEEE80211_MSG_AUTH, + "%s %p<%s> %s -> AUTH, FC0_SUBTYPE_DEAUTH\n", + __func__, selbs, ether_sprintf(selbs->ni_macaddr), + ieee80211_state_name[vap->iv_state]); ieee80211_new_state(vap, IEEE80211_S_AUTH, IEEE80211_FC0_SUBTYPE_DEAUTH); } @@ -910,7 +941,8 @@ ieee80211_sta_join(struct ieee80211vap *vap, struct ieee80211_channel *chan, struct ieee80211_node *ni; int do_ht = 0; - ni = ieee80211_alloc_node(&ic->ic_sta, vap, se->se_macaddr); + ni = ieee80211_alloc_node(&ic->ic_sta, vap, se->se_macaddr, + __func__, __LINE__); if (ni == NULL) { /* XXX msg */ return 0; @@ -1001,7 +1033,7 @@ ieee80211_sta_join(struct ieee80211vap *vap, struct ieee80211_channel *chan, */ if (ni->ni_ies.vhtopmode_ie != NULL && ni->ni_ies.vhtcap_ie != NULL && - vap->iv_flags_vht & IEEE80211_FVHT_VHT) { + vap->iv_vht_flags & IEEE80211_FVHT_VHT) { if (IEEE80211_IS_CHAN_2GHZ(ni->ni_chan)) { printf("%s: BSS %6D: 2GHz channel, VHT info; ignoring\n", __func__, @@ -1132,7 +1164,15 @@ ieee80211_ies_expand(struct ieee80211_ies *ies) ie = ies->data; ielen = ies->len; - while (ielen > 0) { + while (ielen > 1) { + /* Make sure the given IE length fits into the total length. */ + if ((2 + ie[1]) > ielen) { + printf("%s: malformed IEs! ies %p { data %p len %d }: " + "ie %u len 2+%u > total len left %d\n", + __func__, ies, ies->data, ies->len, + ie[0], ie[1], ielen); + return; + } switch (ie[0]) { case IEEE80211_ELEMID_VENDOR: if (iswpaoui(ie)) @@ -1380,9 +1420,10 @@ ieee80211_del_node_nt(struct ieee80211_node_table *nt, ni->ni_table = NULL; } -struct ieee80211_node * +static struct ieee80211_node * ieee80211_alloc_node(struct ieee80211_node_table *nt, - struct ieee80211vap *vap, const uint8_t macaddr[IEEE80211_ADDR_LEN]) + struct ieee80211vap *vap, const uint8_t macaddr[IEEE80211_ADDR_LEN], + const char *func __debrefcnt_used, int line __debrefcnt_used) { struct ieee80211com *ic = nt->nt_ic; struct ieee80211_node *ni; @@ -1399,6 +1440,11 @@ ieee80211_alloc_node(struct ieee80211_node_table *nt, IEEE80211_ADDR_COPY(ni->ni_macaddr, macaddr); ieee80211_node_initref(ni); /* mark referenced */ +#ifdef IEEE80211_DEBUG_REFCNT + IEEE80211_DPRINTF(vap, IEEE80211_MSG_NODE, + "%s (%s:%u) %p<%s> refcnt %d\n", __func__, func, line, ni, + ether_sprintf(ni->ni_macaddr), ieee80211_node_refcnt(ni)); +#endif ni->ni_chan = IEEE80211_CHAN_ANYC; ni->ni_authmode = IEEE80211_AUTH_OPEN; ni->ni_txpower = ic->ic_txpowlimit; /* max power */ @@ -1424,7 +1470,7 @@ ieee80211_alloc_node(struct ieee80211_node_table *nt, vap->iv_stats.is_rx_nodealloc++; ieee80211_psq_cleanup(&ni->ni_psq); ieee80211_ratectl_node_deinit(ni); - _ieee80211_free_node(ni); + __ieee80211_free_node(ni); return NULL; } @@ -1461,6 +1507,12 @@ ieee80211_tmp_node(struct ieee80211vap *vap, IEEE80211_ADDR_COPY(ni->ni_macaddr, macaddr); IEEE80211_ADDR_COPY(ni->ni_bssid, bss->ni_bssid); ieee80211_node_initref(ni); /* mark referenced */ +#ifdef IEEE80211_DEBUG_REFCNT + /* Only one caller so we skip func/line passing into the func. */ + IEEE80211_DPRINTF(vap, IEEE80211_MSG_NODE, + "%s (%s:%u) %p<%s> refcnt %d\n", __func__, "", -1, ni, + ether_sprintf(ni->ni_macaddr), ieee80211_node_refcnt(ni)); +#endif /* NB: required by ieee80211_fix_rate */ ieee80211_node_set_chan(ni, bss->ni_chan); ieee80211_crypto_resetkey(vap, &ni->ni_ucastkey, @@ -1476,7 +1528,7 @@ ieee80211_tmp_node(struct ieee80211vap *vap, vap->iv_stats.is_rx_nodealloc++; ieee80211_psq_cleanup(&ni->ni_psq); ieee80211_ratectl_node_deinit(ni); - _ieee80211_free_node(ni); + __ieee80211_free_node(ni); return NULL; } @@ -1494,7 +1546,7 @@ ieee80211_dup_bss(struct ieee80211vap *vap, struct ieee80211com *ic = vap->iv_ic; struct ieee80211_node *ni; - ni = ieee80211_alloc_node(&ic->ic_sta, vap, macaddr); + ni = ieee80211_alloc_node(&ic->ic_sta, vap, macaddr, __func__, __LINE__); if (ni != NULL) { struct ieee80211_node *bss = vap->iv_bss; /* @@ -1522,7 +1574,7 @@ ieee80211_node_create_wds(struct ieee80211vap *vap, struct ieee80211_node *ni; /* XXX check if node already in sta table? */ - ni = ieee80211_alloc_node(&ic->ic_sta, vap, bssid); + ni = ieee80211_alloc_node(&ic->ic_sta, vap, bssid, __func__, __LINE__); if (ni != NULL) { ni->ni_wdsvap = vap; IEEE80211_ADDR_COPY(ni->ni_bssid, bssid); @@ -1555,7 +1607,7 @@ ieee80211_node_create_wds(struct ieee80211vap *vap, * ni_chan will be adjusted to an HT channel. */ ieee80211_ht_wds_init(ni); - if (vap->iv_flags_vht & IEEE80211_FVHT_VHT) { + if (vap->iv_vht_flags & IEEE80211_FVHT_VHT) { printf("%s: TODO: vht_wds_init\n", __func__); } } else { @@ -1574,13 +1626,9 @@ ieee80211_node_create_wds(struct ieee80211vap *vap, } struct ieee80211_node * -#ifdef IEEE80211_DEBUG_REFCNT -ieee80211_find_node_locked_debug(struct ieee80211_node_table *nt, - const uint8_t macaddr[IEEE80211_ADDR_LEN], const char *func, int line) -#else -ieee80211_find_node_locked(struct ieee80211_node_table *nt, - const uint8_t macaddr[IEEE80211_ADDR_LEN]) -#endif +_ieee80211_find_node_locked(struct ieee80211_node_table *nt, + const uint8_t macaddr[IEEE80211_ADDR_LEN], + const char *func __debrefcnt_used, int line __debrefcnt_used) { struct ieee80211_node *ni; int hash; @@ -1605,32 +1653,22 @@ ieee80211_find_node_locked(struct ieee80211_node_table *nt, } struct ieee80211_node * -#ifdef IEEE80211_DEBUG_REFCNT -ieee80211_find_node_debug(struct ieee80211_node_table *nt, - const uint8_t macaddr[IEEE80211_ADDR_LEN], const char *func, int line) -#else -ieee80211_find_node(struct ieee80211_node_table *nt, - const uint8_t macaddr[IEEE80211_ADDR_LEN]) -#endif +_ieee80211_find_node(struct ieee80211_node_table *nt, + const uint8_t macaddr[IEEE80211_ADDR_LEN], + const char *func __debrefcnt_used, int line __debrefcnt_used) { struct ieee80211_node *ni; IEEE80211_NODE_LOCK(nt); - ni = ieee80211_find_node_locked(nt, macaddr); + ni = _ieee80211_find_node_locked(nt, macaddr, func, line); IEEE80211_NODE_UNLOCK(nt); return ni; } struct ieee80211_node * -#ifdef IEEE80211_DEBUG_REFCNT -ieee80211_find_vap_node_locked_debug(struct ieee80211_node_table *nt, - const struct ieee80211vap *vap, - const uint8_t macaddr[IEEE80211_ADDR_LEN], const char *func, int line) -#else -ieee80211_find_vap_node_locked(struct ieee80211_node_table *nt, - const struct ieee80211vap *vap, - const uint8_t macaddr[IEEE80211_ADDR_LEN]) -#endif +_ieee80211_find_vap_node_locked(struct ieee80211_node_table *nt, + const struct ieee80211vap *vap, const uint8_t macaddr[IEEE80211_ADDR_LEN], + const char *func __debrefcnt_used, int line __debrefcnt_used) { struct ieee80211_node *ni; int hash; @@ -1656,27 +1694,21 @@ ieee80211_find_vap_node_locked(struct ieee80211_node_table *nt, } struct ieee80211_node * -#ifdef IEEE80211_DEBUG_REFCNT -ieee80211_find_vap_node_debug(struct ieee80211_node_table *nt, - const struct ieee80211vap *vap, - const uint8_t macaddr[IEEE80211_ADDR_LEN], const char *func, int line) -#else -ieee80211_find_vap_node(struct ieee80211_node_table *nt, - const struct ieee80211vap *vap, - const uint8_t macaddr[IEEE80211_ADDR_LEN]) -#endif +_ieee80211_find_vap_node(struct ieee80211_node_table *nt, + const struct ieee80211vap *vap, const uint8_t macaddr[IEEE80211_ADDR_LEN], + const char *func __debrefcnt_used, int line __debrefcnt_used) { struct ieee80211_node *ni; IEEE80211_NODE_LOCK(nt); - ni = ieee80211_find_vap_node_locked(nt, vap, macaddr); + ni = _ieee80211_find_vap_node_locked(nt, vap, macaddr, func, line); IEEE80211_NODE_UNLOCK(nt); return ni; } /* * Fake up a node; this handles node discovery in adhoc mode. - * Note that for the driver's benefit we we treat this like + * Note that for the driver's benefit we treat this like * an association so the driver has an opportunity to setup * it's private state. */ @@ -1810,7 +1842,7 @@ ieee80211_init_neighbor(struct ieee80211_node *ni, if ((ni->ni_ies.vhtcap_ie != NULL) && (ni->ni_ies.vhtopmode_ie != NULL) && - (ni->ni_vap->iv_flags_vht & IEEE80211_FVHT_VHT)) { + (ni->ni_vap->iv_vht_flags & IEEE80211_FVHT_VHT)) { do_vht_setup = 1; } } @@ -1883,7 +1915,7 @@ ieee80211_init_neighbor(struct ieee80211_node *ni, /* * Do node discovery in adhoc mode on receipt of a beacon * or probe response frame. Note that for the driver's - * benefit we we treat this like an association so the + * benefit we treat this like an association so the * driver has an opportunity to setup it's private state. */ struct ieee80211_node * @@ -1921,11 +1953,12 @@ ieee80211_add_neighbor(struct ieee80211vap *vap, static __inline struct ieee80211_node * _find_rxnode(struct ieee80211_node_table *nt, - const struct ieee80211_frame_min *wh) + const struct ieee80211_frame_min *wh, + const char *func __debrefcnt_used, int line __debrefcnt_used) { if (IS_BCAST_PROBEREQ(wh)) return NULL; /* spam bcast probe req to all vap's */ - return ieee80211_find_node_locked(nt, wh->i_addr2); + return _ieee80211_find_node_locked(nt, wh->i_addr2, func, line); } /* @@ -1934,20 +1967,16 @@ _find_rxnode(struct ieee80211_node_table *nt, * we can return NULL if the sender is not in the table. */ struct ieee80211_node * -#ifdef IEEE80211_DEBUG_REFCNT -ieee80211_find_rxnode_debug(struct ieee80211com *ic, - const struct ieee80211_frame_min *wh, const char *func, int line) -#else -ieee80211_find_rxnode(struct ieee80211com *ic, - const struct ieee80211_frame_min *wh) -#endif +_ieee80211_find_rxnode(struct ieee80211com *ic, + const struct ieee80211_frame_min *wh, + const char *func __debrefcnt_used, int line __debrefcnt_used) { struct ieee80211_node_table *nt; struct ieee80211_node *ni; nt = &ic->ic_sta; IEEE80211_NODE_LOCK(nt); - ni = _find_rxnode(nt, wh); + ni = _find_rxnode(nt, wh, func, line); IEEE80211_NODE_UNLOCK(nt); return ni; @@ -1962,14 +1991,9 @@ ieee80211_find_rxnode(struct ieee80211com *ic, * key assigned to it. */ struct ieee80211_node * -#ifdef IEEE80211_DEBUG_REFCNT -ieee80211_find_rxnode_withkey_debug(struct ieee80211com *ic, - const struct ieee80211_frame_min *wh, ieee80211_keyix keyix, - const char *func, int line) -#else -ieee80211_find_rxnode_withkey(struct ieee80211com *ic, - const struct ieee80211_frame_min *wh, ieee80211_keyix keyix) -#endif +_ieee80211_find_rxnode_withkey(struct ieee80211com *ic, + const struct ieee80211_frame_min *wh, ieee80211_keyix keyix, + const char *func __debrefcnt_used, int line __debrefcnt_used) { struct ieee80211_node_table *nt; struct ieee80211_node *ni; @@ -1981,7 +2005,7 @@ ieee80211_find_rxnode_withkey(struct ieee80211com *ic, else ni = NULL; if (ni == NULL) { - ni = _find_rxnode(nt, wh); + ni = _find_rxnode(nt, wh, func, line); if (ni != NULL && nt->nt_keyixmap != NULL) { /* * If the station has a unicast key cache slot @@ -2017,14 +2041,9 @@ ieee80211_find_rxnode_withkey(struct ieee80211com *ic, * a data frame. This handles node discovery in adhoc networks. */ struct ieee80211_node * -#ifdef IEEE80211_DEBUG_REFCNT -ieee80211_find_txnode_debug(struct ieee80211vap *vap, - const uint8_t macaddr[IEEE80211_ADDR_LEN], - const char *func, int line) -#else -ieee80211_find_txnode(struct ieee80211vap *vap, - const uint8_t macaddr[IEEE80211_ADDR_LEN]) -#endif +_ieee80211_find_txnode(struct ieee80211vap *vap, + const uint8_t macaddr[IEEE80211_ADDR_LEN], + const char *func __debrefcnt_used, int line __debrefcnt_used) { struct ieee80211_node_table *nt = &vap->iv_ic->ic_sta; struct ieee80211_node *ni; @@ -2042,7 +2061,7 @@ ieee80211_find_txnode(struct ieee80211vap *vap, IEEE80211_IS_MULTICAST(macaddr)) ni = ieee80211_ref_node(vap->iv_bss); else - ni = ieee80211_find_node_locked(nt, macaddr); + ni = _ieee80211_find_node_locked(nt, macaddr, func, line); IEEE80211_NODE_UNLOCK(nt); if (ni == NULL) { @@ -2070,8 +2089,22 @@ ieee80211_find_txnode(struct ieee80211vap *vap, return ni; } +struct ieee80211_node * +_ieee80211_ref_node(struct ieee80211_node *ni, + const char *func __debrefcnt_used, int line __debrefcnt_used) +{ + +#ifdef IEEE80211_DEBUG_REFCNT + IEEE80211_DPRINTF(ni->ni_vap, IEEE80211_MSG_NODE, + "%s (%s:%u) %p<%s> refcnt %d\n", __func__, func, line, ni, + ether_sprintf(ni->ni_macaddr), ieee80211_node_refcnt(ni)+1); +#endif + ieee80211_node_incref(ni); + return (ni); +} + static void -_ieee80211_free_node(struct ieee80211_node *ni) +__ieee80211_free_node(struct ieee80211_node *ni) { struct ieee80211_node_table *nt = ni->ni_table; @@ -2120,11 +2153,8 @@ node_clear_keyixmap(struct ieee80211_node_table *nt, struct ieee80211_node *ni) } void -#ifdef IEEE80211_DEBUG_REFCNT -ieee80211_free_node_debug(struct ieee80211_node *ni, const char *func, int line) -#else -ieee80211_free_node(struct ieee80211_node *ni) -#endif +_ieee80211_free_node(struct ieee80211_node *ni, + const char *func __debrefcnt_used, int line __debrefcnt_used) { struct ieee80211_node_table *nt = ni->ni_table; @@ -2139,14 +2169,14 @@ ieee80211_free_node(struct ieee80211_node *ni) /* * Last reference, reclaim state. */ - _ieee80211_free_node(ni); + __ieee80211_free_node(ni); } else if (ieee80211_node_refcnt(ni) == 1) if (node_clear_keyixmap(nt, ni)) - _ieee80211_free_node(ni); + __ieee80211_free_node(ni); IEEE80211_NODE_UNLOCK(nt); } else { if (ieee80211_node_dectestref(ni)) - _ieee80211_free_node(ni); + __ieee80211_free_node(ni); } } @@ -2234,7 +2264,7 @@ node_reclaim(struct ieee80211_node_table *nt, struct ieee80211_node *ni) */ ieee80211_del_node_nt(nt, ni); } else - _ieee80211_free_node(ni); + __ieee80211_free_node(ni); } /* @@ -2615,9 +2645,10 @@ ieee80211_iterate_nodes(struct ieee80211_node_table *nt, } void -ieee80211_dump_node(struct ieee80211_node_table *nt, struct ieee80211_node *ni) +ieee80211_dump_node(struct ieee80211_node_table *nt __unused, + struct ieee80211_node *ni) { - printf("0x%p: mac %s refcnt %d\n", ni, + printf("%p: mac %s refcnt %d\n", ni, ether_sprintf(ni->ni_macaddr), ieee80211_node_refcnt(ni)); printf("\tauthmode %u flags 0x%x\n", ni->ni_authmode, ni->ni_flags); @@ -2634,7 +2665,8 @@ ieee80211_dump_node(struct ieee80211_node_table *nt, struct ieee80211_node *ni) printf("\tbssid %s essid \"%.*s\" channel %u:0x%x\n", ether_sprintf(ni->ni_bssid), ni->ni_esslen, ni->ni_essid, - ni->ni_chan->ic_freq, ni->ni_chan->ic_flags); + (ni->ni_chan != IEEE80211_CHAN_ANYC) ? ni->ni_chan->ic_freq : 0, + (ni->ni_chan != IEEE80211_CHAN_ANYC) ? ni->ni_chan->ic_flags : 0); printf("\tinact %u inact_reload %u txrate %u\n", ni->ni_inact, ni->ni_inact_reload, ni->ni_txrate); printf("\thtcap %x htparam %x htctlchan %u ht2ndchan %u\n", diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_node.h b/src/libs/compat/freebsd_wlan/net80211/ieee80211_node.h index f95d075a1d..954e8e0356 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_node.h +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_node.h @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2001 Atsushi Onoe * Copyright (c) 2002-2009 Sam Leffler, Errno Consulting @@ -24,8 +24,6 @@ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * $FreeBSD: releng/12.0/sys/net80211/ieee80211_node.h 326272 2017-11-27 15:23:17Z pfg $ */ #ifndef _NET80211_IEEE80211_NODE_H_ #define _NET80211_IEEE80211_NODE_H_ @@ -260,6 +258,8 @@ struct ieee80211_node { /* U-APSD */ uint8_t ni_uapsd; /* U-APSD per-node flags matching WMM STA QoS Info field */ + void *ni_drv_data; /* driver specific */ + uint64_t ni_spare[3]; }; MALLOC_DECLARE(M_80211_NODE); @@ -319,20 +319,6 @@ MALLOC_DECLARE(M_80211_NODE_IE); #define IEEE80211_RSSI_GET(x) \ IEEE80211_RSSI_EP_RND(x, IEEE80211_RSSI_EP_MULTIPLIER) -static __inline struct ieee80211_node * -ieee80211_ref_node(struct ieee80211_node *ni) -{ - ieee80211_node_incref(ni); - return ni; -} - -static __inline void -ieee80211_unref_node(struct ieee80211_node **ni) -{ - ieee80211_node_decref(*ni); - *ni = NULL; /* guard against use */ -} - void ieee80211_node_attach(struct ieee80211com *); void ieee80211_node_lateattach(struct ieee80211com *); void ieee80211_node_detach(struct ieee80211com *); @@ -395,9 +381,6 @@ struct ieee80211_node_table { int nt_inact_init; /* initial node inact setting */ }; -struct ieee80211_node *ieee80211_alloc_node(struct ieee80211_node_table *, - struct ieee80211vap *, - const uint8_t macaddr[IEEE80211_ADDR_LEN]); struct ieee80211_node *ieee80211_tmp_node(struct ieee80211vap *, const uint8_t macaddr[IEEE80211_ADDR_LEN]); struct ieee80211_node *ieee80211_dup_bss(struct ieee80211vap *, @@ -405,71 +388,58 @@ struct ieee80211_node *ieee80211_dup_bss(struct ieee80211vap *, struct ieee80211_node *ieee80211_node_create_wds(struct ieee80211vap *, const uint8_t bssid[IEEE80211_ADDR_LEN], struct ieee80211_channel *); -#ifdef IEEE80211_DEBUG_REFCNT -void ieee80211_free_node_debug(struct ieee80211_node *, + +/* These functions are taking __func__, __LINE__ for IEEE80211_DEBUG_REFCNT */ +struct ieee80211_node *_ieee80211_ref_node(struct ieee80211_node *, const char *func, int line); -struct ieee80211_node *ieee80211_find_node_locked_debug( +void _ieee80211_free_node(struct ieee80211_node *, + const char *func, int line); +struct ieee80211_node *_ieee80211_find_node_locked( struct ieee80211_node_table *, const uint8_t macaddr[IEEE80211_ADDR_LEN], const char *func, int line); -struct ieee80211_node *ieee80211_find_node_debug(struct ieee80211_node_table *, +struct ieee80211_node *_ieee80211_find_node(struct ieee80211_node_table *, const uint8_t macaddr[IEEE80211_ADDR_LEN], const char *func, int line); -struct ieee80211_node *ieee80211_find_vap_node_locked_debug( +struct ieee80211_node *_ieee80211_find_vap_node_locked( struct ieee80211_node_table *, const struct ieee80211vap *vap, const uint8_t macaddr[IEEE80211_ADDR_LEN], const char *func, int line); -struct ieee80211_node *ieee80211_find_vap_node_debug( +struct ieee80211_node *_ieee80211_find_vap_node( struct ieee80211_node_table *, const struct ieee80211vap *vap, const uint8_t macaddr[IEEE80211_ADDR_LEN], const char *func, int line); -struct ieee80211_node * ieee80211_find_rxnode_debug(struct ieee80211com *, +struct ieee80211_node *_ieee80211_find_rxnode(struct ieee80211com *, const struct ieee80211_frame_min *, const char *func, int line); -struct ieee80211_node * ieee80211_find_rxnode_withkey_debug( +struct ieee80211_node *_ieee80211_find_rxnode_withkey( struct ieee80211com *, const struct ieee80211_frame_min *, uint16_t keyix, const char *func, int line); -struct ieee80211_node *ieee80211_find_txnode_debug(struct ieee80211vap *, - const uint8_t *, +struct ieee80211_node *_ieee80211_find_txnode(struct ieee80211vap *, + const uint8_t macaddr[IEEE80211_ADDR_LEN], const char *func, int line); +#define ieee80211_ref_node(ni) \ + _ieee80211_ref_node(ni, __func__, __LINE__) #define ieee80211_free_node(ni) \ - ieee80211_free_node_debug(ni, __func__, __LINE__) + _ieee80211_free_node(ni, __func__, __LINE__) #define ieee80211_find_node_locked(nt, mac) \ - ieee80211_find_node_locked_debug(nt, mac, __func__, __LINE__) + _ieee80211_find_node_locked(nt, mac, __func__, __LINE__) #define ieee80211_find_node(nt, mac) \ - ieee80211_find_node_debug(nt, mac, __func__, __LINE__) + _ieee80211_find_node(nt, mac, __func__, __LINE__) #define ieee80211_find_vap_node_locked(nt, vap, mac) \ - ieee80211_find_vap_node_locked_debug(nt, vap, mac, __func__, __LINE__) + _ieee80211_find_vap_node_locked(nt, vap, mac, __func__, __LINE__) #define ieee80211_find_vap_node(nt, vap, mac) \ - ieee80211_find_vap_node_debug(nt, vap, mac, __func__, __LINE__) + _ieee80211_find_vap_node(nt, vap, mac, __func__, __LINE__) #define ieee80211_find_rxnode(ic, wh) \ - ieee80211_find_rxnode_debug(ic, wh, __func__, __LINE__) + _ieee80211_find_rxnode(ic, wh, __func__, __LINE__) #define ieee80211_find_rxnode_withkey(ic, wh, keyix) \ - ieee80211_find_rxnode_withkey_debug(ic, wh, keyix, __func__, __LINE__) + _ieee80211_find_rxnode_withkey(ic, wh, keyix, __func__, __LINE__) #define ieee80211_find_txnode(vap, mac) \ - ieee80211_find_txnode_debug(vap, mac, __func__, __LINE__) -#else -void ieee80211_free_node(struct ieee80211_node *); -struct ieee80211_node *ieee80211_find_node_locked(struct ieee80211_node_table *, - const uint8_t macaddr[IEEE80211_ADDR_LEN]); -struct ieee80211_node *ieee80211_find_node(struct ieee80211_node_table *, - const uint8_t macaddr[IEEE80211_ADDR_LEN]); -struct ieee80211_node *ieee80211_find_vap_node_locked( - struct ieee80211_node_table *, const struct ieee80211vap *, - const uint8_t macaddr[IEEE80211_ADDR_LEN]); -struct ieee80211_node *ieee80211_find_vap_node( - struct ieee80211_node_table *, const struct ieee80211vap *, - const uint8_t macaddr[IEEE80211_ADDR_LEN]); -struct ieee80211_node * ieee80211_find_rxnode(struct ieee80211com *, - const struct ieee80211_frame_min *); -struct ieee80211_node * ieee80211_find_rxnode_withkey(struct ieee80211com *, - const struct ieee80211_frame_min *, uint16_t keyix); -struct ieee80211_node *ieee80211_find_txnode(struct ieee80211vap *, - const uint8_t macaddr[IEEE80211_ADDR_LEN]); -#endif + _ieee80211_find_txnode(vap, mac, __func__, __LINE__) + int ieee80211_node_delucastkey(struct ieee80211_node *); void ieee80211_node_timeout(void *arg); diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_output.c b/src/libs/compat/freebsd_wlan/net80211/ieee80211_output.c index e1ff8a32e9..bafb20608e 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_output.c +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_output.c @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2001 Atsushi Onoe * Copyright (c) 2002-2009 Sam Leffler, Errno Consulting @@ -27,17 +27,15 @@ */ #include -__FBSDID("$FreeBSD: releng/12.0/sys/net80211/ieee80211_output.c 330688 2018-03-09 11:33:56Z avos $"); - #include "opt_inet.h" #include "opt_inet6.h" #include "opt_wlan.h" #include -#include +#include #include #include -#include +#include #include #include @@ -48,6 +46,7 @@ __FBSDID("$FreeBSD: releng/12.0/sys/net80211/ieee80211_output.c 330688 2018-03-0 #include #include #include +#include #include #include @@ -63,7 +62,7 @@ __FBSDID("$FreeBSD: releng/12.0/sys/net80211/ieee80211_output.c 330688 2018-03-0 #include #if defined(INET) || defined(INET6) -#include +#include #endif #ifdef INET @@ -126,10 +125,12 @@ ieee80211_vap_pkt_send_dest(struct ieee80211vap *vap, struct mbuf *m, struct ifnet *ifp = vap->iv_ifp; int mcast; int do_ampdu = 0; +#ifdef IEEE80211_SUPPORT_SUPERG int do_amsdu = 0; int do_ampdu_amsdu = 0; int no_ampdu = 1; /* Will be set to 0 if ampdu is active */ int do_ff = 0; +#endif if ((ni->ni_flags & IEEE80211_NODE_PWR_MGT) && (m->m_flags & M_PWR_SAV) == 0) { @@ -168,12 +169,12 @@ ieee80211_vap_pkt_send_dest(struct ieee80211vap *vap, struct mbuf *m, * uses any existing value for rcvif to identify the * interface it (might have been) received on. */ + //MPASS((m->m_pkthdr.csum_flags & CSUM_SND_TAG) == 0); m->m_pkthdr.rcvif = (void *)ni; mcast = (m->m_flags & (M_MCAST | M_BCAST)) ? 1: 0; BPF_MTAP(ifp, m); /* 802.3 tx */ - /* * Figure out if we can do A-MPDU, A-MSDU or FF. * @@ -187,12 +188,14 @@ ieee80211_vap_pkt_send_dest(struct ieee80211vap *vap, struct mbuf *m, */ do_ampdu = ((ni->ni_flags & IEEE80211_NODE_AMPDU_TX) && (vap->iv_flags_ht & IEEE80211_FHT_AMPDU_TX)); +#ifdef IEEE80211_SUPPORT_SUPERG do_amsdu = ((ni->ni_flags & IEEE80211_NODE_AMSDU_TX) && (vap->iv_flags_ht & IEEE80211_FHT_AMSDU_TX)); do_ff = ((ni->ni_flags & IEEE80211_NODE_HT) == 0) && ((ni->ni_flags & IEEE80211_NODE_VHT) == 0) && (IEEE80211_ATH_CAP(vap, ni, IEEE80211_NODE_FF)); +#endif /* * Check if A-MPDU tx aggregation is setup or if we @@ -246,9 +249,11 @@ ieee80211_vap_pkt_send_dest(struct ieee80211vap *vap, struct mbuf *m, * have also set or cleared the amsdu-in-ampdu txa_flags * combination so we can correctly do A-MPDU + A-MSDU. */ +#ifdef IEEE80211_SUPPORT_SUPERG no_ampdu = (! IEEE80211_AMPDU_RUNNING(tap) || (IEEE80211_AMPDU_NACKED(tap))); do_ampdu_amsdu = IEEE80211_AMPDU_RUNNING_AMSDU(tap); +#endif } } @@ -326,8 +331,6 @@ ieee80211_vap_pkt_send_dest(struct ieee80211vap *vap, struct mbuf *m, return (0); } - - /* * Send the given mbuf through the given vap. * @@ -354,7 +357,7 @@ ieee80211_start_pkt(struct ieee80211vap *vap, struct mbuf *m) */ if (ic->ic_flags & IEEE80211_F_SCAN) ieee80211_cancel_anyscan(vap); - /* + /* * Find the node for the destination so we can do * things like power save and fast frames aggregation. * @@ -565,6 +568,7 @@ ieee80211_raw_output(struct ieee80211vap *vap, struct ieee80211_node *ni, * that the mbuf has the same node value that * it would if it were going via the normal path. */ + //MPASS((m->m_pkthdr.csum_flags & CSUM_SND_TAG) == 0); m->m_pkthdr.rcvif = (void *)ni; /* @@ -617,7 +621,7 @@ ieee80211_validate_frame(struct mbuf *m, } if ((params && (params->ibp_flags & IEEE80211_BPF_CRYPTO) != 0) || - (wh->i_fc[1] & IEEE80211_FC1_PROTECTED) != 0) { + (IEEE80211_IS_PROTECTED(wh))) { int subtype; subtype = wh->i_fc[0] & IEEE80211_FC0_SUBTYPE_MASK; @@ -1032,7 +1036,7 @@ ieee80211_mgmt_output(struct ieee80211_node *ni, struct mbuf *m, int type, return EIO; /* XXX */ } - M_PREPEND(m, sizeof(struct ieee80211_frame), M_NOWAIT); + M_PREPEND(m, sizeof(struct ieee80211_frame), IEEE80211_M_NOWAIT); if (m == NULL) { ieee80211_free_node(ni); return ENOMEM; @@ -1058,7 +1062,7 @@ ieee80211_mgmt_output(struct ieee80211_node *ni, struct mbuf *m, int type, /* avoid printing too many frames */ if ((ieee80211_msg_debug(vap) && doprint(vap, type)) || ieee80211_msg_dumppkts(vap)) { - printf("[%s] send %s on channel %u\n", + ieee80211_note(vap, "[%s] send %s on channel %u\n", ether_sprintf(wh->i_addr1), ieee80211_mgt_subtype_name(type), ieee80211_chan2ieee(ic, ic->ic_curchan)); @@ -1106,7 +1110,7 @@ ieee80211_send_nulldata(struct ieee80211_node *ni) if (vap->iv_state == IEEE80211_S_CAC) { IEEE80211_NOTE(vap, IEEE80211_MSG_OUTPUT | IEEE80211_MSG_DOTH, ni, "block %s frame in CAC state", "null data"); - ieee80211_unref_node(&ni); + ieee80211_node_decref(ni); vap->iv_stats.is_tx_badstate++; return EIO; /* XXX */ } @@ -1124,13 +1128,13 @@ ieee80211_send_nulldata(struct ieee80211_node *ni) m = ieee80211_getmgtframe(&frm, ic->ic_headroom + hdrlen, 0); if (m == NULL) { /* XXX debug msg */ - ieee80211_unref_node(&ni); + ieee80211_node_decref(ni); vap->iv_stats.is_tx_nobuf++; return ENOMEM; } KASSERT(M_LEADINGSPACE(m) >= hdrlen, ("leading space %zd", M_LEADINGSPACE(m))); - M_PREPEND(m, hdrlen, M_NOWAIT); + M_PREPEND(m, hdrlen, IEEE80211_M_NOWAIT); if (m == NULL) { /* NB: cannot happen */ ieee80211_free_node(ni); @@ -1191,7 +1195,7 @@ ieee80211_send_nulldata(struct ieee80211_node *ni) return (ret); } -/* +/* * Assign priority to a frame based on any vlan tag assigned * to the station and/or any Diffserv setting in an IP header. * Finally, if an ACM policy is setup (in station mode) it's @@ -1251,7 +1255,7 @@ ieee80211_classify(struct ieee80211_node *ni, struct mbuf *m) goto done; } - /* + /* * If node has a vlan tag then all traffic * to it must have a matching tag. */ @@ -1270,9 +1274,14 @@ ieee80211_classify(struct ieee80211_node *ni, struct mbuf *m) v_wme_ac = TID_TO_WME_AC(EVL_PRIOFTAG(ni->ni_vlan)); } + if (eh == NULL) + goto no_eh; + /* XXX m_copydata may be too slow for fast path */ + switch (ntohs(eh->ether_type)) { #ifdef INET - if (eh && eh->ether_type == htons(ETHERTYPE_IP)) { + case ETHERTYPE_IP: + { uint8_t tos; /* * IP frame, map the DSCP bits from the TOS field. @@ -1282,10 +1291,12 @@ ieee80211_classify(struct ieee80211_node *ni, struct mbuf *m) offsetof(struct ip, ip_tos), sizeof(tos), &tos); tos >>= 5; /* NB: ECN + low 3 bits of DSCP */ d_wme_ac = TID_TO_WME_AC(tos); - } else { -#endif /* INET */ + break; + } +#endif #ifdef INET6 - if (eh && eh->ether_type == htons(ETHERTYPE_IPV6)) { + case ETHERTYPE_IPV6: + { uint32_t flow; uint8_t tos; /* @@ -1297,15 +1308,15 @@ ieee80211_classify(struct ieee80211_node *ni, struct mbuf *m) tos = (uint8_t)(ntohl(flow) >> 20); tos >>= 5; /* NB: ECN + low 3 bits of DSCP */ d_wme_ac = TID_TO_WME_AC(tos); - } else { -#endif /* INET6 */ + break; + } +#endif + default: +no_eh: d_wme_ac = WME_AC_BE; -#ifdef INET6 + break; } -#endif -#ifdef INET - } -#endif + /* * Use highest priority AC. */ @@ -1359,7 +1370,7 @@ ieee80211_mbuf_adjust(struct ieee80211vap *vap, int hdrsize, * XXX handle SWMIC specially */ if (key->wk_flags & (IEEE80211_KEY_SWENCRYPT|IEEE80211_KEY_SWENMIC)) { - m = m_unshare(m, M_NOWAIT); + m = m_unshare(m, IEEE80211_M_NOWAIT); if (m == NULL) { IEEE80211_DPRINTF(vap, IEEE80211_MSG_OUTPUT, "%s: cannot get writable mbuf\n", __func__); @@ -1378,7 +1389,7 @@ ieee80211_mbuf_adjust(struct ieee80211vap *vap, int hdrsize, */ /* XXX check trailing space and copy instead? */ if (M_LEADINGSPACE(m) < needed_space - TO_BE_RECLAIMED) { - struct mbuf *n = m_gethdr(M_NOWAIT, m->m_type); + struct mbuf *n = m_gethdr(IEEE80211_M_NOWAIT, m->m_type); if (n == NULL) { IEEE80211_DPRINTF(vap, IEEE80211_MSG_OUTPUT, "%s: cannot expand storage\n", __func__); @@ -1422,7 +1433,7 @@ ieee80211_mbuf_adjust(struct ieee80211vap *vap, int hdrsize, * Return the transmit key to use in sending a unicast frame. * If a unicast key is set we use that. When no unicast key is set * we fall back to the default transmit key. - */ + */ static __inline struct ieee80211_key * ieee80211_crypto_getucastkey(struct ieee80211vap *vap, struct ieee80211_node *ni) @@ -1441,7 +1452,7 @@ ieee80211_crypto_getucastkey(struct ieee80211vap *vap, * Return the transmit key to use in sending a multicast frame. * Multicast traffic always uses the group key which is installed as * the default tx key. - */ + */ static __inline struct ieee80211_key * ieee80211_crypto_getmcastkey(struct ieee80211vap *vap, struct ieee80211_node *ni) @@ -1683,7 +1694,7 @@ ieee80211_encap(struct ieee80211vap *vap, struct ieee80211_node *ni, } datalen = m->m_pkthdr.len; /* NB: w/o 802.11 header */ - M_PREPEND(m, hdrspace + meshhdrsize, M_NOWAIT); + M_PREPEND(m, hdrspace + meshhdrsize, IEEE80211_M_NOWAIT); if (m == NULL) { vap->iv_stats.is_tx_nobuf++; goto bad; @@ -1810,7 +1821,7 @@ ieee80211_encap(struct ieee80211vap *vap, struct ieee80211_node *ni, else #endif qos[1] = 0; - wh->i_fc[0] |= IEEE80211_FC0_SUBTYPE_QOS; + wh->i_fc[0] |= IEEE80211_FC0_SUBTYPE_QOS_DATA; /* * If this is an A-MSDU then ensure we set the @@ -1992,7 +2003,7 @@ ieee80211_fragment(struct ieee80211vap *vap, struct mbuf *m0, prev = m0; do { fragsize = MIN(totalhdrsize + remainder, mtu); - m = m_get2(fragsize, M_NOWAIT, MT_DATA, M_PKTHDR); + m = m_get2(fragsize, IEEE80211_M_NOWAIT, MT_DATA, M_PKTHDR); if (m == NULL) goto bad; /* leave room to prepend any cipher header */ @@ -2088,7 +2099,7 @@ ieee80211_add_xrates(uint8_t *frm, const struct ieee80211_rateset *rs) return frm; } -/* +/* * Add an ssid element to a frame. */ uint8_t * @@ -2421,85 +2432,77 @@ ieee80211_add_qos(uint8_t *frm, const struct ieee80211_node *ni) } /* - * Send a probe request frame with the specified ssid - * and any optional information element data. + * ieee80211_send_probereq(): send a probe request frame with the specified ssid + * and any optional information element data; some helper functions as FW based + * HW scans need some of that information passed too. */ -int -ieee80211_send_probereq(struct ieee80211_node *ni, - const uint8_t sa[IEEE80211_ADDR_LEN], - const uint8_t da[IEEE80211_ADDR_LEN], - const uint8_t bssid[IEEE80211_ADDR_LEN], - const uint8_t *ssid, size_t ssidlen) +static uint32_t +ieee80211_probereq_ie_len(struct ieee80211vap *vap, struct ieee80211com *ic) { - struct ieee80211vap *vap = ni->ni_vap; - struct ieee80211com *ic = ni->ni_ic; - struct ieee80211_node *bss; - const struct ieee80211_txparam *tp; - struct ieee80211_bpf_params params; const struct ieee80211_rateset *rs; - struct mbuf *m; - uint8_t *frm; - int ret; - bss = ieee80211_ref_node(vap->iv_bss); - - if (vap->iv_state == IEEE80211_S_CAC) { - IEEE80211_NOTE(vap, IEEE80211_MSG_OUTPUT, ni, - "block %s frame in CAC state", "probe request"); - vap->iv_stats.is_tx_badstate++; - ieee80211_free_node(bss); - return EIO; /* XXX */ - } - - /* - * Hold a reference on the node so it doesn't go away until after - * the xmit is complete all the way in the driver. On error we - * will remove our reference. - */ -#ifndef __HAIKU__ - IEEE80211_DPRINTF(vap, IEEE80211_MSG_NODE, - "ieee80211_ref_node (%s:%u) %p<%s> refcnt %d\n", - __func__, __LINE__, - ni, ether_sprintf(ni->ni_macaddr), - ieee80211_node_refcnt(ni)+1); -#endif - ieee80211_ref_node(ni); + rs = ieee80211_get_suprates(ic, ic->ic_curchan); /* * prreq frame format * [tlv] ssid * [tlv] supported rates - * [tlv] RSN (optional) - * [tlv] extended supported rates + * [tlv] extended supported rates (if needed) * [tlv] HT cap (optional) * [tlv] VHT cap (optional) * [tlv] WPA (optional) * [tlv] user-specified ie's */ - m = ieee80211_getmgtframe(&frm, - ic->ic_headroom + sizeof(struct ieee80211_frame), - 2 + IEEE80211_NWID_LEN + return ( 2 + IEEE80211_NWID_LEN + 2 + IEEE80211_RATE_SIZE - + sizeof(struct ieee80211_ie_htcap) - + sizeof(struct ieee80211_ie_vhtcap) + + ((rs->rs_nrates > IEEE80211_RATE_SIZE) ? + 2 + (rs->rs_nrates - IEEE80211_RATE_SIZE) : 0) + + (((vap->iv_opmode == IEEE80211_M_IBSS) && + (vap->iv_flags_ht & IEEE80211_FHT_HT)) ? + sizeof(struct ieee80211_ie_htcap) : 0) +#ifdef notyet + sizeof(struct ieee80211_ie_htinfo) /* XXX not needed? */ - + sizeof(struct ieee80211_ie_wpa) - + 2 + (IEEE80211_RATE_MAXSIZE - IEEE80211_RATE_SIZE) - + sizeof(struct ieee80211_ie_wpa) + + 2 + sizeof(struct ieee80211_vht_cap) +#endif + + ((vap->iv_flags & IEEE80211_F_WPA1 && vap->iv_wpa_ie != NULL) ? + vap->iv_wpa_ie[1] : 0) + (vap->iv_appie_probereq != NULL ? vap->iv_appie_probereq->ie_len : 0) ); - if (m == NULL) { - vap->iv_stats.is_tx_nobuf++; - ieee80211_free_node(ni); - ieee80211_free_node(bss); - return ENOMEM; - } +} - frm = ieee80211_add_ssid(frm, ssid, ssidlen); +int +ieee80211_probereq_ie(struct ieee80211vap *vap, struct ieee80211com *ic, + uint8_t **frmp, uint32_t *frmlen, const uint8_t *ssid, size_t ssidlen, + bool alloc) +{ + const struct ieee80211_rateset *rs; + uint8_t *frm; + uint32_t len; + + if (!alloc && (frmp == NULL || frmlen == NULL)) + return (EINVAL); + + len = ieee80211_probereq_ie_len(vap, ic); + if (!alloc && len > *frmlen) + return (ENOBUFS); + + /* For HW scans we usually do not pass in the SSID as IE. */ + if (ssidlen == -1) + len -= (2 + IEEE80211_NWID_LEN); + + if (alloc) { + frm = IEEE80211_MALLOC(len, M_80211_VAP, + IEEE80211_M_WAITOK | IEEE80211_M_ZERO); + *frmp = frm; + *frmlen = len; + } else + frm = *frmp; + + if (ssidlen != -1) + frm = ieee80211_add_ssid(frm, ssid, ssidlen); rs = ieee80211_get_suprates(ic, ic->ic_curchan); frm = ieee80211_add_rates(frm, rs); - frm = ieee80211_add_rsn(frm, vap); frm = ieee80211_add_xrates(frm, rs); /* @@ -2526,13 +2529,13 @@ ieee80211_send_probereq(struct ieee80211_node *ni, * XXX TODO: need to figure out what/how to update the * VHT channel. */ -#if 0 - (vap->iv_flags_vht & IEEE80211_FVHT_VHT) { +#ifdef notyet + if (vap->iv_vht_flags & IEEE80211_FVHT_VHT) { struct ieee80211_channel *c; c = ieee80211_ht_adjust_channel(ic, ic->ic_curchan, vap->iv_flags_ht); - c = ieee80211_vht_adjust_channel(ic, c, vap->iv_flags_vht); + c = ieee80211_vht_adjust_channel(ic, c, vap->iv_vht_flags); frm = ieee80211_add_vhtcap_ch(frm, vap, c); } #endif @@ -2540,11 +2543,76 @@ ieee80211_send_probereq(struct ieee80211_node *ni, frm = ieee80211_add_wpa(frm, vap); if (vap->iv_appie_probereq != NULL) frm = add_appie(frm, vap->iv_appie_probereq); - m->m_pkthdr.len = m->m_len = frm - mtod(m, uint8_t *); + if (!alloc) { + *frmp = frm; + *frmlen = len; + } + + return (0); +} + +int +ieee80211_send_probereq(struct ieee80211_node *ni, + const uint8_t sa[IEEE80211_ADDR_LEN], + const uint8_t da[IEEE80211_ADDR_LEN], + const uint8_t bssid[IEEE80211_ADDR_LEN], + const uint8_t *ssid, size_t ssidlen) +{ + struct ieee80211vap *vap = ni->ni_vap; + struct ieee80211com *ic = ni->ni_ic; + struct ieee80211_node *bss; + const struct ieee80211_txparam *tp; + struct ieee80211_bpf_params params; + struct mbuf *m; + uint8_t *frm; + uint32_t frmlen; + int ret; + + bss = ieee80211_ref_node(vap->iv_bss); + + if (vap->iv_state == IEEE80211_S_CAC) { + IEEE80211_NOTE(vap, IEEE80211_MSG_OUTPUT, ni, + "block %s frame in CAC state", "probe request"); + vap->iv_stats.is_tx_badstate++; + ieee80211_free_node(bss); + return EIO; /* XXX */ + } + + /* + * Hold a reference on the node so it doesn't go away until after + * the xmit is complete all the way in the driver. On error we + * will remove our reference. + */ +#ifndef __HAIKU__ + IEEE80211_DPRINTF(vap, IEEE80211_MSG_NODE, + "ieee80211_ref_node (%s:%u) %p<%s> refcnt %d\n", + __func__, __LINE__, + ni, ether_sprintf(ni->ni_macaddr), + ieee80211_node_refcnt(ni)+1); +#endif + ieee80211_ref_node(ni); + + /* See comments above for entire frame format. */ + frmlen = ieee80211_probereq_ie_len(vap, ic); + m = ieee80211_getmgtframe(&frm, + ic->ic_headroom + sizeof(struct ieee80211_frame), frmlen); + if (m == NULL) { + vap->iv_stats.is_tx_nobuf++; + ieee80211_free_node(ni); + ieee80211_free_node(bss); + return ENOMEM; + } + + ret = ieee80211_probereq_ie(vap, ic, &frm, &frmlen, ssid, ssidlen, + false); + KASSERT(ret == 0, + ("%s: ieee80211_probereq_ie failed: %d\n", __func__, ret)); + + m->m_pkthdr.len = m->m_len = frm - mtod(m, uint8_t *); KASSERT(M_LEADINGSPACE(m) >= sizeof(struct ieee80211_frame), ("leading space %zd", M_LEADINGSPACE(m))); - M_PREPEND(m, sizeof(struct ieee80211_frame), M_NOWAIT); + M_PREPEND(m, sizeof(struct ieee80211_frame), IEEE80211_M_NOWAIT); if (m == NULL) { /* NB: cannot happen */ ieee80211_free_node(ni); @@ -2651,7 +2719,6 @@ ieee80211_send_mgmt(struct ieee80211_node *ni, int type, int arg) memset(¶ms, 0, sizeof(params)); switch (type) { - case IEEE80211_FC0_SUBTYPE_AUTH: status = arg >> 16; arg &= 0xffff; @@ -2675,8 +2742,7 @@ ieee80211_send_mgmt(struct ieee80211_node *ni, int type, int arg) ic->ic_headroom + sizeof(struct ieee80211_frame), 3 * sizeof(uint16_t) + (has_challenge && status == IEEE80211_STATUS_SUCCESS ? - sizeof(uint16_t)+IEEE80211_CHALLENGE_LEN : 0) - ); + sizeof(uint16_t)+IEEE80211_CHALLENGE_LEN : 0)); if (m == NULL) senderr(ENOMEM, is_tx_nobuf); @@ -2763,7 +2829,7 @@ ieee80211_send_mgmt(struct ieee80211_node *ni, int type, int arg) + 2 + 26 + sizeof(struct ieee80211_wme_info) + sizeof(struct ieee80211_ie_htcap) - + sizeof(struct ieee80211_ie_vhtcap) + + 2 + sizeof(struct ieee80211_vht_cap) + 4 + sizeof(struct ieee80211_ie_htcap) #ifdef IEEE80211_SUPPORT_SUPERG + sizeof(struct ieee80211_ath_ie) @@ -2829,7 +2895,7 @@ ieee80211_send_mgmt(struct ieee80211_node *ni, int type, int arg) frm = ieee80211_add_htcap(frm, ni); } - if ((vap->iv_flags_vht & IEEE80211_FVHT_VHT) && + if ((vap->iv_vht_flags & IEEE80211_FVHT_VHT) && IEEE80211_IS_CHAN_VHT(ni->ni_chan) && ni->ni_ies.vhtcap_ie != NULL && ni->ni_ies.vhtcap_ie[0] == IEEE80211_ELEMID_VHT_CAP) { @@ -2837,7 +2903,7 @@ ieee80211_send_mgmt(struct ieee80211_node *ni, int type, int arg) } frm = ieee80211_add_wpa(frm, vap); - if ((ic->ic_flags & IEEE80211_F_WME) && + if ((vap->iv_flags & IEEE80211_F_WME) && ni->ni_ies.wme_ie != NULL) frm = ieee80211_add_wme_info(frm, &ic->ic_wme, ni); @@ -2853,7 +2919,7 @@ ieee80211_send_mgmt(struct ieee80211_node *ni, int type, int arg) } #ifdef IEEE80211_SUPPORT_SUPERG if (IEEE80211_ATH_CAP(vap, ni, IEEE80211_F_ATHEROS)) { - frm = ieee80211_add_ath(frm, + frm = ieee80211_add_ath(frm, IEEE80211_ATH_CAP(vap, ni, IEEE80211_F_ATHEROS), ((vap->iv_flags & IEEE80211_F_WPA) == 0 && ni->ni_authmode != IEEE80211_AUTH_8021X) ? @@ -2896,8 +2962,8 @@ ieee80211_send_mgmt(struct ieee80211_node *ni, int type, int arg) + 2 + (IEEE80211_RATE_MAXSIZE - IEEE80211_RATE_SIZE) + sizeof(struct ieee80211_ie_htcap) + 4 + sizeof(struct ieee80211_ie_htinfo) + 4 - + sizeof(struct ieee80211_ie_vhtcap) - + sizeof(struct ieee80211_ie_vht_operation) + + 2 + sizeof(struct ieee80211_vht_cap) + + 2 + sizeof(struct ieee80211_vht_operation) + sizeof(struct ieee80211_wme_param) #ifdef IEEE80211_SUPPORT_SUPERG + sizeof(struct ieee80211_ath_ie) @@ -2943,7 +3009,7 @@ ieee80211_send_mgmt(struct ieee80211_node *ni, int type, int arg) } #ifdef IEEE80211_SUPPORT_SUPERG if (IEEE80211_ATH_CAP(vap, ni, IEEE80211_F_ATHEROS)) - frm = ieee80211_add_ath(frm, + frm = ieee80211_add_ath(frm, IEEE80211_ATH_CAP(vap, ni, IEEE80211_F_ATHEROS), ((vap->iv_flags & IEEE80211_F_WPA) == 0 && ni->ni_authmode != IEEE80211_AUTH_8021X) ? @@ -3055,8 +3121,8 @@ ieee80211_alloc_proberesp(struct ieee80211_node *bss, int legacy) + sizeof(struct ieee80211_wme_param) + 4 + sizeof(struct ieee80211_ie_htcap) + 4 + sizeof(struct ieee80211_ie_htinfo) - + sizeof(struct ieee80211_ie_vhtcap) - + sizeof(struct ieee80211_ie_vht_operation) + + 2 + sizeof(struct ieee80211_vht_cap) + + 2 + sizeof(struct ieee80211_vht_operation) #ifdef IEEE80211_SUPPORT_SUPERG + sizeof(struct ieee80211_ath_ie) #endif @@ -3208,7 +3274,7 @@ ieee80211_send_proberesp(struct ieee80211vap *vap, return ENOMEM; } - M_PREPEND(m, sizeof(struct ieee80211_frame), M_NOWAIT); + M_PREPEND(m, sizeof(struct ieee80211_frame), IEEE80211_M_NOWAIT); KASSERT(m != NULL, ("no room for header")); IEEE80211_TX_LOCK(ic); @@ -3244,7 +3310,7 @@ ieee80211_alloc_rts(struct ieee80211com *ic, struct mbuf *m; /* XXX honor ic_headroom */ - m = m_gethdr(M_NOWAIT, MT_DATA); + m = m_gethdr(IEEE80211_M_NOWAIT, MT_DATA); if (m != NULL) { rts = mtod(m, struct ieee80211_frame_rts *); rts->i_fc[0] = IEEE80211_FC0_VERSION_0 | @@ -3270,7 +3336,7 @@ ieee80211_alloc_cts(struct ieee80211com *ic, struct mbuf *m; /* XXX honor ic_headroom */ - m = m_gethdr(M_NOWAIT, MT_DATA); + m = m_gethdr(IEEE80211_M_NOWAIT, MT_DATA); if (m != NULL) { cts = mtod(m, struct ieee80211_frame_cts *); cts->i_fc[0] = IEEE80211_FC0_VERSION_0 | @@ -3323,6 +3389,12 @@ ieee80211_tx_mgt_timeout(void *arg) { struct ieee80211vap *vap = arg; + IEEE80211_DPRINTF(vap, IEEE80211_MSG_STATE | IEEE80211_MSG_DEBUG, + "vap %p mode %s state %s flags %#x & %#x\n", vap, + ieee80211_opmode_name[vap->iv_opmode], + ieee80211_state_name[vap->iv_state], + vap->iv_ic->ic_flags, IEEE80211_F_SCAN); + IEEE80211_LOCK(vap->iv_ic); if (vap->iv_state != IEEE80211_S_INIT && (vap->iv_ic->ic_flags & IEEE80211_F_SCAN) == 0) { @@ -3368,6 +3440,11 @@ ieee80211_tx_mgt_cb(struct ieee80211_node *ni, void *arg, int status) * XXX what happens if !acked but response shows up before callback? */ if (vap->iv_state == ostate) { + IEEE80211_DPRINTF(vap, IEEE80211_MSG_STATE | IEEE80211_MSG_DEBUG, + "ni %p mode %s state %s arg %p status %d\n", ni, + ieee80211_opmode_name[vap->iv_opmode], + ieee80211_state_name[vap->iv_state], arg, status); + callout_reset(&vap->iv_mgtsend, status == 0 ? IEEE80211_TRANS_WAIT*hz : 0, ieee80211_tx_mgt_timeout, vap); @@ -3481,7 +3558,7 @@ ieee80211_beacon_construct(struct mbuf *m, uint8_t *frm, tie->tim_ie = IEEE80211_ELEMID_TIM; tie->tim_len = 4; /* length */ - tie->tim_count = 0; /* DTIM count */ + tie->tim_count = 0; /* DTIM count */ tie->tim_period = vap->iv_dtim_period; /* DTIM period */ tie->tim_bitctl = 0; /* bitmap control */ tie->tim_bitmap[0] = 0; /* Partial Virtual Bitmap */ @@ -3497,7 +3574,7 @@ ieee80211_beacon_construct(struct mbuf *m, uint8_t *frm, frm = ieee80211_add_powerconstraint(frm, vap); bo->bo_csa = frm; if (ic->ic_flags & IEEE80211_F_CSAPENDING) - frm = ieee80211_add_csa(frm, vap); + frm = ieee80211_add_csa(frm, vap); } else bo->bo_csa = frm; @@ -3659,8 +3736,8 @@ ieee80211_beacon_alloc(struct ieee80211_node *ni) /* XXX conditional? */ + 4+2*sizeof(struct ieee80211_ie_htcap)/* HT caps */ + 4+2*sizeof(struct ieee80211_ie_htinfo)/* HT info */ - + sizeof(struct ieee80211_ie_vhtcap)/* VHT caps */ - + sizeof(struct ieee80211_ie_vht_operation)/* VHT info */ + + 2 + sizeof(struct ieee80211_vht_cap)/* VHT caps */ + + 2 + sizeof(struct ieee80211_vht_operation)/* VHT info */ + (vap->iv_caps & IEEE80211_C_WME ? /* WME */ sizeof(struct ieee80211_wme_param) : 0) #ifdef IEEE80211_SUPPORT_SUPERG @@ -3686,7 +3763,7 @@ ieee80211_beacon_alloc(struct ieee80211_node *ni) } ieee80211_beacon_construct(m, frm, ni); - M_PREPEND(m, sizeof(struct ieee80211_frame), M_NOWAIT); + M_PREPEND(m, sizeof(struct ieee80211_frame), IEEE80211_M_NOWAIT); KASSERT(m != NULL, ("no space for 802.11 header?")); wh = mtod(m, struct ieee80211_frame *); wh->i_fc[0] = IEEE80211_FC0_VERSION_0 | IEEE80211_FC0_TYPE_MGT | @@ -3865,7 +3942,7 @@ ieee80211_beacon_update(struct ieee80211_node *ni, struct mbuf *m, int mcast) (struct ieee80211_tim_ie *) bo->bo_tim; if (isset(bo->bo_flags, IEEE80211_BEACON_TIM)) { u_int timlen, timoff, i; - /* + /* * ATIM/DTIM needs updating. If it fits in the * current space allocated then just copy in the * new bits. Otherwise we need to move any trailing @@ -4070,7 +4147,7 @@ ieee80211_ff_encap1(struct ieee80211vap *vap, struct mbuf *m, llc->llc_snap.ether_type = eh->ether_type; payload = m->m_pkthdr.len; /* NB: w/o Ethernet header */ - M_PREPEND(m, sizeof(struct ether_header), M_NOWAIT); + M_PREPEND(m, sizeof(struct ether_header), IEEE80211_M_NOWAIT); if (m == NULL) { /* XXX cannot happen */ IEEE80211_DPRINTF(vap, IEEE80211_MSG_SUPERG, "%s: no space for ether_header\n", __func__); @@ -4115,8 +4192,13 @@ ieee80211_tx_complete(struct ieee80211_node *ni, struct mbuf *m, int status) if_inc_counter(ifp, IFCOUNTER_OMCASTS, 1); } else if_inc_counter(ifp, IFCOUNTER_OERRORS, 1); - if (m->m_flags & M_TXCB) + if (m->m_flags & M_TXCB) { + IEEE80211_DPRINTF(ni->ni_vap, IEEE80211_MSG_STATE | IEEE80211_MSG_DEBUG, + "ni %p vap %p mode %s state %s m %p status %d\n", ni, ni->ni_vap, + ieee80211_opmode_name[ni->ni_vap->iv_opmode], + ieee80211_state_name[ni->ni_vap->iv_state], m, status); ieee80211_process_callback(ni, m, status); + } ieee80211_free_node(ni); } m_freem(m); diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_phy.c b/src/libs/compat/freebsd_wlan/net80211/ieee80211_phy.c index e7e11c6362..eaad7dde06 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_phy.c +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_phy.c @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2007-2008 Sam Leffler, Errno Consulting * All rights reserved. @@ -26,8 +26,6 @@ */ #include -__FBSDID("$FreeBSD: releng/12.0/sys/net80211/ieee80211_phy.c 326272 2017-11-27 15:23:17Z pfg $"); - /* * IEEE 802.11 PHY-related support. */ diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_phy.h b/src/libs/compat/freebsd_wlan/net80211/ieee80211_phy.h index 249b27fc47..32e63f8d45 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_phy.h +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_phy.h @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2007-2008 Sam Leffler, Errno Consulting * All rights reserved. @@ -23,8 +23,6 @@ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * $FreeBSD: releng/12.0/sys/net80211/ieee80211_phy.h 326272 2017-11-27 15:23:17Z pfg $ */ #ifndef _NET80211_IEEE80211_PHY_H_ @@ -106,7 +104,6 @@ const struct ieee80211_rate_table *ieee80211_get_ratetable( static __inline__ uint8_t ieee80211_ack_rate(const struct ieee80211_rate_table *rt, uint8_t rate) { - uint8_t cix; /* * XXX Assert this is for a legacy rate; not for an MCS rate. * If the caller wishes to use it for a basic rate, they should @@ -114,7 +111,7 @@ ieee80211_ack_rate(const struct ieee80211_rate_table *rt, uint8_t rate) */ KASSERT(! (rate & 0x80), ("rate %d is basic/mcs?", rate)); - cix = rt->info[rt->rateCodeToIndex[rate & IEEE80211_RATE_VAL]].ctlRateIndex; + uint8_t cix = rt->info[rt->rateCodeToIndex[rate & IEEE80211_RATE_VAL]].ctlRateIndex; KASSERT(cix != (uint8_t)-1, ("rate %d has no info", rate)); return rt->info[cix].dot11Rate; } @@ -122,7 +119,6 @@ ieee80211_ack_rate(const struct ieee80211_rate_table *rt, uint8_t rate) static __inline__ uint8_t ieee80211_ctl_rate(const struct ieee80211_rate_table *rt, uint8_t rate) { - uint8_t cix; /* * XXX Assert this is for a legacy rate; not for an MCS rate. * If the caller wishes to use it for a basic rate, they should @@ -130,7 +126,7 @@ ieee80211_ctl_rate(const struct ieee80211_rate_table *rt, uint8_t rate) */ KASSERT(! (rate & 0x80), ("rate %d is basic/mcs?", rate)); - cix = rt->info[rt->rateCodeToIndex[rate & IEEE80211_RATE_VAL]].ctlRateIndex; + uint8_t cix = rt->info[rt->rateCodeToIndex[rate & IEEE80211_RATE_VAL]].ctlRateIndex; KASSERT(cix != (uint8_t)-1, ("rate %d has no info", rate)); return rt->info[cix].dot11Rate; } @@ -138,7 +134,6 @@ ieee80211_ctl_rate(const struct ieee80211_rate_table *rt, uint8_t rate) static __inline__ enum ieee80211_phytype ieee80211_rate2phytype(const struct ieee80211_rate_table *rt, uint8_t rate) { - uint8_t rix; /* * XXX Assert this is for a legacy rate; not for an MCS rate. * If the caller wishes to use it for a basic rate, they should @@ -146,7 +141,7 @@ ieee80211_rate2phytype(const struct ieee80211_rate_table *rt, uint8_t rate) */ KASSERT(! (rate & 0x80), ("rate %d is basic/mcs?", rate)); - rix = rt->rateCodeToIndex[rate & IEEE80211_RATE_VAL]; + uint8_t rix = rt->rateCodeToIndex[rate & IEEE80211_RATE_VAL]; KASSERT(rix != (uint8_t)-1, ("rate %d has no info", rate)); return (enum ieee80211_phytype)rt->info[rix].phy; } diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_power.c b/src/libs/compat/freebsd_wlan/net80211/ieee80211_power.c index a6e381ffd0..13a49940f6 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_power.c +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_power.c @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2002-2008 Sam Leffler, Errno Consulting * All rights reserved. @@ -26,8 +26,6 @@ */ #include -__FBSDID("$FreeBSD: releng/12.0/sys/net80211/ieee80211_power.c 326272 2017-11-27 15:23:17Z pfg $"); - /* * IEEE 802.11 power save support. */ @@ -582,7 +580,7 @@ ieee80211_sta_tim_notify(struct ieee80211vap *vap, int set) "%s: wake up from bgscan vap sleep\n", __func__); /* - * We may be in BGSCAN mode - this means the VAP is is in STA + * We may be in BGSCAN mode - this means the VAP is in STA * mode powersave. If it is, we need to wake it up so we * can process outbound traffic. */ diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_power.h b/src/libs/compat/freebsd_wlan/net80211/ieee80211_power.h index eaa2845126..f135be3792 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_power.h +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_power.h @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2002-2008 Sam Leffler, Errno Consulting * All rights reserved. @@ -23,8 +23,6 @@ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * $FreeBSD: releng/12.0/sys/net80211/ieee80211_power.h 326272 2017-11-27 15:23:17Z pfg $ */ #ifndef _NET80211_IEEE80211_POWER_H_ #define _NET80211_IEEE80211_POWER_H_ diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_proto.c b/src/libs/compat/freebsd_wlan/net80211/ieee80211_proto.c index 0df15bd6b8..4206d137aa 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_proto.c +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_proto.c @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2001 Atsushi Onoe * Copyright (c) 2002-2008 Sam Leffler, Errno Consulting @@ -28,8 +28,6 @@ */ #include -__FBSDID("$FreeBSD: releng/12.0/sys/net80211/ieee80211_proto.c 326737 2017-12-09 23:16:02Z adrian $"); - /* * IEEE 802.11 protocol support. */ @@ -48,6 +46,7 @@ __FBSDID("$FreeBSD: releng/12.0/sys/net80211/ieee80211_proto.c 326737 2017-12-09 #include #include #include +#include #include /* XXX for ether_sprintf */ #include @@ -249,6 +248,8 @@ static void vap_update_erp_protmode(void *, int); static void vap_update_preamble(void *, int); static void vap_update_ht_protmode(void *, int); static void ieee80211_newstate_cb(void *, int); +static struct ieee80211_node *vap_update_bss(struct ieee80211vap *, + struct ieee80211_node *); static int null_raw_xmit(struct ieee80211_node *ni, struct mbuf *m, @@ -271,12 +272,16 @@ ieee80211_proto_attach(struct ieee80211com *ic) + IEEE80211_WEP_IVLEN + IEEE80211_WEP_KIDLEN + IEEE80211_WEP_EXTIVLEN; /* XXX no way to recalculate on ifdetach */ +#ifdef __HAIKU__ if (ALIGN(hdrlen) > max_linkhdr) { /* XXX sanity check... */ max_linkhdr = ALIGN(hdrlen); max_hdr = max_linkhdr + max_protohdr; max_datalen = MHLEN - max_hdr; } +#else + max_linkhdr_grow(ALIGN(hdrlen)); +#endif //ic->ic_protmode = IEEE80211_PROT_CTSONLY; TASK_INIT(&ic->ic_parent_task, 0, parent_updown, ic); @@ -340,7 +345,8 @@ ieee80211_proto_vattach(struct ieee80211vap *vap) vap->iv_bmiss_max = IEEE80211_BMISS_MAX; callout_init_mtx(&vap->iv_swbmiss, IEEE80211_LOCK_OBJ(ic), 0); callout_init(&vap->iv_mgtsend, 1); - TASK_INIT(&vap->iv_nstate_task, 0, ieee80211_newstate_cb, vap); + for (i = 0; i < NET80211_IV_NSTATE_NUM; i++) + TASK_INIT(&vap->iv_nstate_task[i], 0, ieee80211_newstate_cb, vap); TASK_INIT(&vap->iv_swbmiss_task, 0, beacon_swmiss, vap); TASK_INIT(&vap->iv_wme_task, 0, vap_update_wme, vap); TASK_INIT(&vap->iv_slot_task, 0, vap_update_slot, vap); @@ -354,11 +360,10 @@ ieee80211_proto_vattach(struct ieee80211vap *vap) * driver and/or user applications. */ for (i = IEEE80211_MODE_11A; i < IEEE80211_MODE_MAX; i++) { - const struct ieee80211_rateset *rs; if (isclr(ic->ic_modecaps, i)) continue; - rs = &ic->ic_sup_rates[i]; + const struct ieee80211_rateset *rs = &ic->ic_sup_rates[i]; vap->iv_txparms[i].ucastrate = IEEE80211_FIXED_RATE_NONE; @@ -395,6 +400,7 @@ ieee80211_proto_vattach(struct ieee80211vap *vap) vap->iv_update_beacon = null_update_beacon; vap->iv_deliver_data = ieee80211_deliver_data; vap->iv_protmode = IEEE80211_PROT_CTSONLY; + vap->iv_update_bss = vap_update_bss; /* attach support for operating mode */ ic->ic_vattach[vap->iv_opmode](vap); @@ -600,7 +606,7 @@ ieee80211_dump_pkt(struct ieee80211com *ic, printf(" QoS [TID %u%s]", qwh->i_qos[0] & IEEE80211_QOS_TID, qwh->i_qos[0] & IEEE80211_QOS_ACKPOLICY ? " ACM" : ""); } - if (wh->i_fc[1] & IEEE80211_FC1_PROTECTED) { + if (IEEE80211_IS_PROTECTED(wh)) { int off; off = ieee80211_anyhdrspace(ic, wh); @@ -825,6 +831,19 @@ ieee80211_reset_erp(struct ieee80211com *ic) /* XXX TODO: schedule a new per-VAP ERP calculation */ } +static struct ieee80211_node * +vap_update_bss(struct ieee80211vap *vap, struct ieee80211_node *ni) +{ + struct ieee80211_node *obss; + + IEEE80211_LOCK_ASSERT(vap->iv_ic); + + obss = vap->iv_bss; + vap->iv_bss = ni; + + return (obss); +} + /* * Deferred slot time update. * @@ -1038,7 +1057,7 @@ vap_update_preamble(void *arg, int npending) IEEE80211_UNLOCK(ic); /* Driver notification */ - if (vap->iv_erp_protmode_update != NULL) + if (vap->iv_preamble_update != NULL) vap->iv_preamble_update(vap); } @@ -1054,7 +1073,7 @@ vap_update_ht_protmode(void *arg, int npending) struct ieee80211vap *vap = arg; struct ieee80211vap *iv; struct ieee80211com *ic = vap->iv_ic; - int num_vaps = 0, num_pure = 0, num_mixed = 0; + int num_vaps = 0, num_pure = 0; int num_optional = 0, num_ht2040 = 0, num_nonht = 0; int num_ht_sta = 0, num_ht40_sta = 0, num_sta = 0; int num_nonhtpr = 0; @@ -1095,9 +1114,6 @@ vap_update_ht_protmode(void *arg, int npending) case IEEE80211_HTINFO_OPMODE_HT20PR: num_ht2040++; break; - case IEEE80211_HTINFO_OPMODE_MIXED: - num_mixed++; - break; } IEEE80211_DPRINTF(vap, IEEE80211_MSG_11N, @@ -1181,7 +1197,7 @@ vap_update_ht_protmode(void *arg, int npending) ic->ic_curhtprotmode); /* Driver update */ - if (vap->iv_erp_protmode_update != NULL) + if (vap->iv_ht_protmode_update != NULL) vap->iv_ht_protmode_update(vap); } @@ -1677,7 +1693,7 @@ ieee80211_wme_updateparams_locked(struct ieee80211vap *vap) do_aggrmode = 1; /* - * IBSS? Only if we we have WME enabled. + * IBSS? Only if we have WME enabled. */ else if ((vap->iv_opmode == IEEE80211_M_IBSS) && (vap->iv_flags & IEEE80211_F_WME)) @@ -1782,7 +1798,7 @@ ieee80211_wme_vap_getparams(struct ieee80211vap *vap, struct chanAccParams *wp) } /* - * For NICs which only support one set of WME paramaters (ie, softmac NICs) + * For NICs which only support one set of WME parameters (ie, softmac NICs) * there may be different VAP WME parameters but only one is "active". * This returns the "NIC" WME parameters for the currently active * context. @@ -1988,7 +2004,7 @@ ieee80211_start_locked(struct ieee80211vap *vap) * back in here and complete the work. */ ifp->if_drv_flags |= IFF_DRV_RUNNING; - ieee80211_notify_ifnet_change(vap); + ieee80211_notify_ifnet_change(vap, IFF_DRV_RUNNING); /* * We are not running; if this we are the first vap @@ -2102,7 +2118,7 @@ ieee80211_stop_locked(struct ieee80211vap *vap) ieee80211_new_state_locked(vap, IEEE80211_S_INIT, -1); if (ifp->if_drv_flags & IFF_DRV_RUNNING) { ifp->if_drv_flags &= ~IFF_DRV_RUNNING; /* mark us stopped */ - ieee80211_notify_ifnet_change(vap); + ieee80211_notify_ifnet_change(vap, IFF_DRV_RUNNING); if (--ic->ic_nrunning == 0) { IEEE80211_DPRINTF(vap, IEEE80211_MSG_STATE | IEEE80211_MSG_DEBUG, @@ -2456,6 +2472,29 @@ wakeupwaiting(struct ieee80211vap *vap0) vap->iv_flags_ext &= ~IEEE80211_FEXT_SCANWAIT; /* NB: sta's cannot go INIT->RUN */ /* NB: iv_newstate may drop the lock */ + + /* + * This is problematic if the interface has OACTIVE + * set. Only the deferred ieee80211_newstate_cb() + * will end up actually /clearing/ the OACTIVE + * flag on a state transition to RUN from a non-RUN + * state. + * + * But, we're not actually deferring this callback; + * and when the deferred call occurs it shows up as + * a RUN->RUN transition! So the flag isn't/wasn't + * cleared! + * + * I'm also not sure if it's correct to actually + * do the transitions here fully through the deferred + * paths either as other things can be invoked as + * part of that state machine. + * + * So just keep this in mind when looking at what + * the markwaiting/wakeupwaiting routines are doing + * and how they invoke vap state changes. + */ + vap->iv_newstate(vap, vap->iv_opmode == IEEE80211_M_STA ? IEEE80211_S_SCAN : IEEE80211_S_RUN, 0); @@ -2464,6 +2503,51 @@ wakeupwaiting(struct ieee80211vap *vap0) } } +static int +_ieee80211_newstate_get_next_empty_slot(struct ieee80211vap *vap) +{ + int nstate_num; + + IEEE80211_LOCK_ASSERT(vap->iv_ic); + + if (vap->iv_nstate_n >= NET80211_IV_NSTATE_NUM) + return (-1); + + nstate_num = vap->iv_nstate_b + vap->iv_nstate_n; + nstate_num %= NET80211_IV_NSTATE_NUM; + vap->iv_nstate_n++; + + return (nstate_num); +} + +static int +_ieee80211_newstate_get_next_pending_slot(struct ieee80211vap *vap) +{ + int nstate_num; + + IEEE80211_LOCK_ASSERT(vap->iv_ic); + + KASSERT(vap->iv_nstate_n > 0, ("%s: vap %p iv_nstate_n %d\n", + __func__, vap, vap->iv_nstate_n)); + + nstate_num = vap->iv_nstate_b; + vap->iv_nstate_b++; + if (vap->iv_nstate_b >= NET80211_IV_NSTATE_NUM) + vap->iv_nstate_b = 0; + vap->iv_nstate_n--; + + return (nstate_num); +} + +static int +_ieee80211_newstate_get_npending(struct ieee80211vap *vap) +{ + + IEEE80211_LOCK_ASSERT(vap->iv_ic); + + return (vap->iv_nstate_n); +} + /* * Handle post state change work common to all operating modes. */ @@ -2473,11 +2557,26 @@ ieee80211_newstate_cb(void *xvap, int npending) struct ieee80211vap *vap = xvap; struct ieee80211com *ic = vap->iv_ic; enum ieee80211_state nstate, ostate; - int arg, rc; + int arg, rc, nstate_num; + KASSERT(npending == 1, ("%s: vap %p with npending %d != 1\n", + __func__, vap, npending)); IEEE80211_LOCK(ic); - nstate = vap->iv_nstate; - arg = vap->iv_nstate_arg; + nstate_num = _ieee80211_newstate_get_next_pending_slot(vap); + + /* + * Update the historic fields for now as they are used in some + * drivers and reduce code changes for now. + */ + vap->iv_nstate = nstate = vap->iv_nstates[nstate_num]; + arg = vap->iv_nstate_args[nstate_num]; + + IEEE80211_DPRINTF(vap, IEEE80211_MSG_STATE, + "%s:%d: running state update %s -> %s (%d)\n", + __func__, __LINE__, + ieee80211_state_name[vap->iv_state], + ieee80211_state_name[nstate], + npending); if (vap->iv_flags_ext & IEEE80211_FEXT_REINIT) { /* @@ -2487,9 +2586,10 @@ ieee80211_newstate_cb(void *xvap, int npending) /* Deny any state changes while we are here. */ vap->iv_nstate = IEEE80211_S_INIT; IEEE80211_DPRINTF(vap, IEEE80211_MSG_STATE, - "%s: %s -> %s arg %d\n", __func__, + "%s: %s -> %s arg %d -> %s arg %d\n", __func__, ieee80211_state_name[vap->iv_state], - ieee80211_state_name[vap->iv_nstate], arg); + ieee80211_state_name[vap->iv_nstate], 0, + ieee80211_state_name[nstate], arg); vap->iv_newstate(vap, vap->iv_nstate, 0); IEEE80211_LOCK_ASSERT(ic); vap->iv_flags_ext &= ~(IEEE80211_FEXT_REINIT | @@ -2530,10 +2630,22 @@ ieee80211_newstate_cb(void *xvap, int npending) goto done; } - /* No actual transition, skip post processing */ - if (ostate == nstate) - goto done; - + /* + * Handle the case of a RUN->RUN transition occuring when STA + AP + * VAPs occur on the same radio. + * + * The mark and wakeup waiting routines call iv_newstate() directly, + * but they do not end up deferring state changes here. + * Thus, although the VAP newstate method sees a transition + * of RUN->INIT->RUN, the deferred path here only sees a RUN->RUN + * transition. If OACTIVE is set then it is never cleared. + * + * So, if we're here and the state is RUN, just clear OACTIVE. + * At some point if the markwaiting/wakeupwaiting paths end up + * also invoking the deferred state updates then this will + * be no-op code - and also if OACTIVE is finally retired, it'll + * also be no-op code. + */ if (nstate == IEEE80211_S_RUN) { /* * OACTIVE may be set on the vap if the upper layer @@ -2542,12 +2654,28 @@ ieee80211_newstate_cb(void *xvap, int npending) * * Note this can also happen as a result of SLEEP->RUN * (i.e. coming out of power save mode). + * + * Historically this was done only for a state change + * but is needed earlier; see next comment. The 2nd half + * of the work is still only done in case of an actual + * state change below. + */ + /* + * Unblock the VAP queue; a RUN->RUN state can happen + * on a STA+AP setup on the AP vap. See wakeupwaiting(). */ vap->iv_ifp->if_drv_flags &= ~IFF_DRV_OACTIVE; /* * XXX TODO Kick-start a VAP queue - this should be a method! */ + } + + /* No actual transition, skip post processing */ + if (ostate == nstate) + goto done; + + if (nstate == IEEE80211_S_RUN) { /* bring up any vaps waiting on us */ wakeupwaiting(vap); @@ -2602,7 +2730,7 @@ ieee80211_new_state_locked(struct ieee80211vap *vap, struct ieee80211com *ic = vap->iv_ic; struct ieee80211vap *vp; enum ieee80211_state ostate; - int nrunning, nscanning; + int nrunning, nscanning, nstate_num; IEEE80211_LOCK_ASSERT(ic); @@ -2618,29 +2746,22 @@ ieee80211_new_state_locked(struct ieee80211vap *vap, * until this is completed. */ IEEE80211_DPRINTF(vap, IEEE80211_MSG_STATE, - "%s: %s -> %s (%s) transition discarded\n", - __func__, + "%s:%d: %s -> %s (%s) transition discarded\n", + __func__, __LINE__, ieee80211_state_name[vap->iv_state], ieee80211_state_name[nstate], ieee80211_state_name[vap->iv_nstate]); return -1; - } else if (vap->iv_state != vap->iv_nstate) { -#if 0 - /* Warn if the previous state hasn't completed. */ - IEEE80211_DPRINTF(vap, IEEE80211_MSG_STATE, - "%s: pending %s -> %s transition lost\n", __func__, - ieee80211_state_name[vap->iv_state], - ieee80211_state_name[vap->iv_nstate]); -#else - /* XXX temporarily enable to identify issues */ - if_printf(vap->iv_ifp, - "%s: pending %s -> %s transition lost\n", - __func__, ieee80211_state_name[vap->iv_state], - ieee80211_state_name[vap->iv_nstate]); -#endif } } + IEEE80211_DPRINTF(vap, IEEE80211_MSG_STATE, + "%s:%d: starting state update %s -> %s (%s)\n", + __func__, __LINE__, + ieee80211_state_name[vap->iv_state], + ieee80211_state_name[vap->iv_nstate], + ieee80211_state_name[nstate]); + nrunning = nscanning = 0; /* XXX can track this state instead of calculating */ TAILQ_FOREACH(vp, &ic->ic_vaps, iv_next) { @@ -2653,10 +2774,19 @@ ieee80211_new_state_locked(struct ieee80211vap *vap, nscanning++; } } - ostate = vap->iv_state; + /* + * Look ahead for the "old state" at that point when the last queued + * state transition is run. + */ + if (vap->iv_nstate_n == 0) { + ostate = vap->iv_state; + } else { + nstate_num = (vap->iv_nstate_b + vap->iv_nstate_n - 1) % NET80211_IV_NSTATE_NUM; + ostate = vap->iv_nstates[nstate_num]; + } IEEE80211_DPRINTF(vap, IEEE80211_MSG_STATE, - "%s: %s -> %s (nrunning %d nscanning %d)\n", __func__, - ieee80211_state_name[ostate], ieee80211_state_name[nstate], + "%s: %s -> %s (arg %d) (nrunning %d nscanning %d)\n", __func__, + ieee80211_state_name[ostate], ieee80211_state_name[nstate], arg, nrunning, nscanning); switch (nstate) { case IEEE80211_S_SCAN: @@ -2747,11 +2877,37 @@ ieee80211_new_state_locked(struct ieee80211vap *vap, default: break; } - /* defer the state change to a thread */ - vap->iv_nstate = nstate; - vap->iv_nstate_arg = arg; + /* + * Defer the state change to a thread. + * We support up-to NET80211_IV_NSTATE_NUM pending state changes + * using a separate task for each. Otherwise, if we enqueue + * more than one state change they will be folded together, + * npedning will be > 1 and we may run then out of sequence with + * other events. + * This is kind-of a hack after 10 years but we know how to provoke + * these cases now (and seen them in the wild). + */ + nstate_num = _ieee80211_newstate_get_next_empty_slot(vap); + if (nstate_num == -1) { + /* + * This is really bad and we should just go kaboom. + * Instead drop it. No one checks the return code anyway. + */ + ic_printf(ic, "%s:%d: pending %s -> %s (now to %s) " + "transition lost. %d/%d pending state changes:\n", + __func__, __LINE__, + ieee80211_state_name[vap->iv_state], + ieee80211_state_name[vap->iv_nstate], + ieee80211_state_name[nstate], + _ieee80211_newstate_get_npending(vap), + NET80211_IV_NSTATE_NUM); + + return (EAGAIN); + } + vap->iv_nstates[nstate_num] = nstate; + vap->iv_nstate_args[nstate_num] = arg; vap->iv_flags_ext |= IEEE80211_FEXT_STATEWAIT; - ieee80211_runtask(ic, &vap->iv_nstate_task); + ieee80211_runtask(ic, &vap->iv_nstate_task[nstate_num]); return EINPROGRESS; } diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_proto.h b/src/libs/compat/freebsd_wlan/net80211/ieee80211_proto.h index 0666601f58..799f12d221 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_proto.h +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_proto.h @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2001 Atsushi Onoe * Copyright (c) 2002-2009 Sam Leffler, Errno Consulting @@ -24,8 +24,6 @@ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * $FreeBSD: releng/12.0/sys/net80211/ieee80211_proto.h 330688 2018-03-09 11:33:56Z avos $ */ #ifndef _NET80211_IEEE80211_PROTO_H_ #define _NET80211_IEEE80211_PROTO_H_ @@ -114,6 +112,8 @@ struct mbuf *ieee80211_encap(struct ieee80211vap *, struct ieee80211_node *, void ieee80211_free_mbuf(struct mbuf *); int ieee80211_send_mgmt(struct ieee80211_node *, int, int); struct ieee80211_appie; +int ieee80211_probereq_ie(struct ieee80211vap *, struct ieee80211com *, + uint8_t **, uint32_t *, const uint8_t *, size_t, bool); int ieee80211_send_probereq(struct ieee80211_node *ni, const uint8_t sa[IEEE80211_ADDR_LEN], const uint8_t da[IEEE80211_ADDR_LEN], @@ -170,7 +170,7 @@ void ieee80211_addbasicrates(struct ieee80211_rateset *, static __inline int ieee80211_hdrsize(const void *data) { - const struct ieee80211_frame *wh = (const struct ieee80211_frame*)data; + const struct ieee80211_frame *wh = (const struct ieee80211_frame *)data; int size = sizeof(struct ieee80211_frame); /* NB: we don't handle control frames */ @@ -189,7 +189,7 @@ ieee80211_hdrsize(const void *data) static __inline int ieee80211_anyhdrsize(const void *data) { - const struct ieee80211_frame *wh = (const struct ieee80211_frame*)data; + const struct ieee80211_frame *wh = (const struct ieee80211_frame *)data; if ((wh->i_fc[0]&IEEE80211_FC0_TYPE_MASK) == IEEE80211_FC0_TYPE_CTL) { switch (wh->i_fc[0] & IEEE80211_FC0_SUBTYPE_MASK) { @@ -457,8 +457,8 @@ void ieee80211_notify_cac(struct ieee80211com *, enum ieee80211_notify_cac_event); void ieee80211_notify_node_deauth(struct ieee80211_node *); void ieee80211_notify_node_auth(struct ieee80211_node *); -void ieee80211_notify_country(struct ieee80211vap *, const uint8_t [], - const uint8_t cc[2]); +void ieee80211_notify_country(struct ieee80211vap *, + const uint8_t [IEEE80211_ADDR_LEN], const uint8_t cc[2]); void ieee80211_notify_radio(struct ieee80211com *, int); -void ieee80211_notify_ifnet_change(struct ieee80211vap *); +void ieee80211_notify_ifnet_change(struct ieee80211vap *, int); #endif /* _NET80211_IEEE80211_PROTO_H_ */ diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_radiotap.c b/src/libs/compat/freebsd_wlan/net80211/ieee80211_radiotap.c index 8bc1b6aecf..34e27b323f 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_radiotap.c +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_radiotap.c @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2009 Sam Leffler, Errno Consulting * All rights reserved. @@ -26,8 +26,6 @@ */ #include -__FBSDID("$FreeBSD: releng/12.0/sys/net80211/ieee80211_radiotap.c 326272 2017-11-27 15:23:17Z pfg $"); - /* * IEEE 802.11 radiotap support. */ diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_radiotap.h b/src/libs/compat/freebsd_wlan/net80211/ieee80211_radiotap.h index 6332b044cc..d44f81b68b 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_radiotap.h +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_radiotap.h @@ -1,4 +1,3 @@ -/* $FreeBSD: releng/12.0/sys/net80211/ieee80211_radiotap.h 326272 2017-11-27 15:23:17Z pfg $ */ /* $NetBSD: ieee80211_radiotap.h,v 1.16 2007/01/06 05:51:15 dyoung Exp $ */ /*- @@ -234,9 +233,13 @@ enum ieee80211_radiotap_type { IEEE80211_RADIOTAP_AMPDU_STATUS = 20, IEEE80211_RADIOTAP_VHT = 21, + IEEE80211_RADIOTAP_TLV = 28, IEEE80211_RADIOTAP_RADIOTAP_NAMESPACE = 29, - IEEE80211_RADIOTAP_VENDOREXT = 30, + IEEE80211_RADIOTAP_VENDOREXT = 30, /* obsolete? */ + IEEE80211_RADIOTAP_VENDOR_NAMESPACE = 30, IEEE80211_RADIOTAP_EXT = 31, + IEEE80211_RADIOTAP_EHT_USIG = 33, + IEEE80211_RADIOTAP_EHT = 34, }; #ifndef _KERNEL @@ -367,4 +370,270 @@ enum ieee80211_radiotap_type { #define IEEE80211_RADIOTAP_VHT_BW_20UUL 24 #define IEEE80211_RADIOTAP_VHT_BW_20UUU 25 +/* + * These are found in various drivers already so use them rather than + * going by our own names and changing everything. + */ + +/* https://www.radiotap.org/fields/VHT.html */ +#define IEEE80211_RADIOTAP_VHT_KNOWN_STBC 0x0001 /* net80211::IEEE80211_RADIOTAP_VHT_HAVE_STBC */ +#define IEEE80211_RADIOTAP_VHT_KNOWN_BEAMFORMED 0x0020 /* net80211::IEEE80211_RADIOTAP_VHT_HAVE_BF */ + +/* https://www.radiotap.org/fields/0-length-PSDU.html */ +#define IEEE80211_RADIOTAP_ZERO_LEN_PSDU_SOUNDING 0x00 +#define IEEE80211_RADIOTAP_ZERO_LEN_PSDU_NOT_CAPTURED 0x01 +#define IEEE80211_RADIOTAP_ZERO_LEN_PSDU_VENDOR 0xFF + +/* http://www.radiotap.org/fields/TLV.html */ +struct ieee80211_radiotap_tlv { + uint16_t type; + uint16_t len; + uint8_t data[]; +} __packed; + +struct ieee80211_radiotap_vendor_content { + uint8_t oui[3]; + uint8_t oui_subtype; + uint16_t vendor_type; + uint16_t __padding; + uint8_t data[]; +} __packed; + +/* https://www.radiotap.org/fields/HE.html */ +struct ieee80211_radiotap_he { + uint16_t data1, data2, data3, data4, data5, data6; +} __packed; + +#define IEEE80211_RADIOTAP_HE_DATA1_FORMAT_SU 0x0000 +#define IEEE80211_RADIOTAP_HE_DATA1_FORMAT_EXT_SU 0x0001 +#define IEEE80211_RADIOTAP_HE_DATA1_FORMAT_MU 0x0002 +#define IEEE80211_RADIOTAP_HE_DATA1_FORMAT_TRIG 0x0003 +#define IEEE80211_RADIOTAP_HE_DATA1_BSS_COLOR_KNOWN 0x0004 +#define IEEE80211_RADIOTAP_HE_DATA1_BEAM_CHANGE_KNOWN 0x0008 +#define IEEE80211_RADIOTAP_HE_DATA1_UL_DL_KNOWN 0x0010 +#define IEEE80211_RADIOTAP_HE_DATA1_DATA_MCS_KNOWN 0x0020 +#define IEEE80211_RADIOTAP_HE_DATA1_DATA_DCM_KNOWN 0x0040 +#define IEEE80211_RADIOTAP_HE_DATA1_CODING_KNOWN 0x0080 +#define IEEE80211_RADIOTAP_HE_DATA1_LDPC_XSYMSEG_KNOWN 0x0100 +#define IEEE80211_RADIOTAP_HE_DATA1_STBC_KNOWN 0x0200 +#define IEEE80211_RADIOTAP_HE_DATA1_SPTL_REUSE_KNOWN 0x0400 +#define IEEE80211_RADIOTAP_HE_DATA1_SPTL_REUSE2_KNOWN 0x0800 +#define IEEE80211_RADIOTAP_HE_DATA1_SPTL_REUSE3_KNOWN 0x1000 +#define IEEE80211_RADIOTAP_HE_DATA1_SPTL_REUSE4_KNOWN 0x2000 +#define IEEE80211_RADIOTAP_HE_DATA1_BW_RU_ALLOC_KNOWN 0x4000 +#define IEEE80211_RADIOTAP_HE_DATA1_DOPPLER_KNOWN 0x8000 + +#define IEEE80211_RADIOTAP_HE_DATA2_PRISEC_80_KNOWN 0x0001 +#define IEEE80211_RADIOTAP_HE_DATA2_GI_KNOWN 0x0002 +#define IEEE80211_RADIOTAP_HE_DATA2_NUM_LTF_SYMS_KNOWN 0x0004 +#define IEEE80211_RADIOTAP_HE_DATA2_PRE_FEC_PAD_KNOWN 0x0008 +#define IEEE80211_RADIOTAP_HE_DATA2_TXBF_KNOWN 0x0010 +#define IEEE80211_RADIOTAP_HE_DATA2_PE_DISAMBIG_KNOWN 0x0020 +#define IEEE80211_RADIOTAP_HE_DATA2_TXOP_KNOWN 0x0040 +#define IEEE80211_RADIOTAP_HE_DATA2_MIDAMBLE_KNOWN 0x0080 +#define IEEE80211_RADIOTAP_HE_DATA2_RU_OFFSET 0x3F00 +#define IEEE80211_RADIOTAP_HE_DATA2_RU_OFFSET_KNOWN 0x4000 +#define IEEE80211_RADIOTAP_HE_DATA2_PRISEC_80_SEC 0x8000 + +#define IEEE80211_RADIOTAP_HE_DATA3_BSS_COLOR 0x003F +#define IEEE80211_RADIOTAP_HE_DATA3_BEAM_CHANGE 0x0040 +#define IEEE80211_RADIOTAP_HE_DATA3_UL_DL 0x0080 +#define IEEE80211_RADIOTAP_HE_DATA3_DATA_MCS 0x0F00 +#define IEEE80211_RADIOTAP_HE_DATA3_DATA_DCM 0x1000 +#define IEEE80211_RADIOTAP_HE_DATA3_CODING 0x2000 +#define IEEE80211_RADIOTAP_HE_DATA3_LDPC_XSYMSEG 0x4000 +#define IEEE80211_RADIOTAP_HE_DATA3_STBC 0x8000 + +#define IEEE80211_RADIOTAP_HE_DATA4_SU_MU_SPTL_REUSE 0x000F +#define IEEE80211_RADIOTAP_HE_DATA4_MU_STA_ID 0x7FF0 +#define IEEE80211_RADIOTAP_HE_DATA4_TB_SPTL_REUSE1 0x000F +#define IEEE80211_RADIOTAP_HE_DATA4_TB_SPTL_REUSE2 0x00F0 +#define IEEE80211_RADIOTAP_HE_DATA4_TB_SPTL_REUSE3 0x0F00 +#define IEEE80211_RADIOTAP_HE_DATA4_TB_SPTL_REUSE4 0xF000 + +#define IEEE80211_RADIOTAP_HE_DATA5_DATA_BW_RU_ALLOC 0x000F +#define IEEE80211_RADIOTAP_HE_DATA5_GI 0x0030 +#define IEEE80211_RADIOTAP_HE_DATA5_LTF_SIZE 0x00C0 +#define IEEE80211_RADIOTAP_HE_DATA5_LTF_SIZE_UNKNOWN 0x0 +#define IEEE80211_RADIOTAP_HE_DATA5_LTF_SIZE_1X 0x1 +#define IEEE80211_RADIOTAP_HE_DATA5_LTF_SIZE_2X 0x2 +#define IEEE80211_RADIOTAP_HE_DATA5_LTF_SIZE_4X 0x3 +#define IEEE80211_RADIOTAP_HE_DATA5_NUM_LTF_SYMS 0x0700 +#define IEEE80211_RADIOTAP_HE_DATA5_PRE_FEC_PAD 0x3000 +#define IEEE80211_RADIOTAP_HE_DATA5_TXBF 0x4000 +#define IEEE80211_RADIOTAP_HE_DATA5_PE_DISAMBIG 0x8000 + +#define IEEE80211_RADIOTAP_HE_DATA6_NSTS 0x000F +#define IEEE80211_RADIOTAP_HE_DATA6_DOPPLER 0x0010 +/* 0x00e0 (reserved) ; use these for the following undocumented. */ +#define IEEE80211_RADIOTAP_HE_DATA6_TB_PPDU_BW_KNOWN 0x0020 +#define IEEE80211_RADIOTAP_HE_DATA6_TB_PPDU_BW 0x00C0 +#define IEEE80211_RADIOTAP_HE_DATA6_TB_PPDU_BW_20MHZ 0x0 +#define IEEE80211_RADIOTAP_HE_DATA6_TB_PPDU_BW_40MHZ 0x1 +#define IEEE80211_RADIOTAP_HE_DATA6_TB_PPDU_BW_80MHZ 0x2 +#define IEEE80211_RADIOTAP_HE_DATA6_TB_PPDU_BW_160MHZ 0x3 +#define IEEE80211_RADIOTAP_HE_DATA6_TXOP 0x7F00 + +/* https://www.radiotap.org/fields/HE-MU.html */ +struct ieee80211_radiotap_he_mu { + uint16_t flags1; + uint16_t flags2; + uint8_t ru_ch1[4]; + uint8_t ru_ch2[4]; +} __packed; + +#define IEEE80211_RADIOTAP_HE_MU_FLAGS1_SIG_B_MCS 0x000F +#define IEEE80211_RADIOTAP_HE_MU_FLAGS1_SIG_B_MCS_KNOWN 0x0010 +#define IEEE80211_RADIOTAP_HE_MU_FLAGS1_SIG_B_DCM 0x0020 +#define IEEE80211_RADIOTAP_HE_MU_FLAGS1_SIG_B_DCM_KNOWN 0x0040 +#define IEEE80211_RADIOTAP_HE_MU_FLAGS1_CH2_CTR_26T_RU_KNOWN 0x0080 +#define IEEE80211_RADIOTAP_HE_MU_FLAGS1_CH1_RU_KNOWN 0x0100 +#define IEEE80211_RADIOTAP_HE_MU_FLAGS1_CH2_RU_KNOWN 0x0200 +/* reserved 0x0C00 */ +#define IEEE80211_RADIOTAP_HE_MU_FLAGS1_CH1_CTR_26T_RU_KNOWN 0x1000 +#define IEEE80211_RADIOTAP_HE_MU_FLAGS1_CH1_CTR_26T_RU 0x2000 +#define IEEE80211_RADIOTAP_HE_MU_FLAGS1_SIG_B_COMP_KNOWN 0x4000 +#define IEEE80211_RADIOTAP_HE_MU_FLAGS1_SIG_B_SYMS_USERS_KNOWN 0x8000 + +#define IEEE80211_RADIOTAP_HE_MU_FLAGS2_BW_FROM_SIG_A_BW 0x0003 +#define IEEE80211_RADIOTAP_HE_MU_FLAGS2_BW_FROM_SIG_A_BW_20MHZ 0x0000 +#define IEEE80211_RADIOTAP_HE_MU_FLAGS2_BW_FROM_SIG_A_BW_40MHZ 0x0001 +#define IEEE80211_RADIOTAP_HE_MU_FLAGS2_BW_FROM_SIG_A_BW_80MHZ 0x0002 +#define IEEE80211_RADIOTAP_HE_MU_FLAGS2_BW_FROM_SIG_A_BW_160MHZ 0x0003 +#define IEEE80211_RADIOTAP_HE_MU_FLAGS2_BW_FROM_SIG_A_BW_KNOWN 0x0004 +#define IEEE80211_RADIOTAP_HE_MU_FLAGS2_SIG_B_COMP 0x0008 +#define IEEE80211_RADIOTAP_HE_MU_FLAGS2_SIG_B_SYMS_USERS 0x00F0 +#define IEEE80211_RADIOTAP_HE_MU_FLAGS2_PUNC_FROM_SIG_A_BW 0x0300 +#define IEEE80211_RADIOTAP_HE_MU_FLAGS2_PUNC_FROM_SIG_A_BW_KNOWN 0x0400 +#define IEEE80211_RADIOTAP_HE_MU_FLAGS2_CH2_CTR_26T_RU 0x0800 + +/* https://www.radiotap.org/fields/L-SIG.html */ +struct ieee80211_radiotap_lsig { + uint16_t data1; + uint16_t data2; +} __packed; +#define IEEE80211_RADIOTAP_LSIG_DATA1_LENGTH_KNOWN 0x0002 + +#define IEEE80211_RADIOTAP_LSIG_DATA2_LENGTH 0xFFF0 + +/* https://www.radiotap.org/fields/MCS.html */ +#define IEEE80211_RADIOTAP_MCS_HAVE_FEC 0x10 +#define IEEE80211_RADIOTAP_MCS_HAVE_STBC 0x20 + +/* https://www.radiotap.org/fields/timestamp.html */ +#define IEEE80211_RADIOTAP_TIMESTAMP_UNIT_US 0x01 +#define IEEE80211_RADIOTAP_TIMESTAMP_SPOS_PLCP_SIG_ACQ 0x10 + +/* http://www.radiotap.org/fields/U-SIG.html */ +struct ieee80211_radiotap_eht_usig { + uint32_t common; + uint32_t value; + uint32_t mask; +} __packed; +#define IEEE80211_RADIOTAP_EHT_USIG_COMMON_PHY_VER_KNOWN 0x00000001 +#define IEEE80211_RADIOTAP_EHT_USIG_COMMON_BW_KNOWN 0x00000002 +#define IEEE80211_RADIOTAP_EHT_USIG_COMMON_UL_DL_KNOWN 0x00000004 +#define IEEE80211_RADIOTAP_EHT_USIG_COMMON_BSS_COLOR_KNOWN 0x00000008 +#define IEEE80211_RADIOTAP_EHT_USIG_COMMON_TXOP_KNOWN 0x00000010 +#define IEEE80211_RADIOTAP_EHT_USIG_COMMON_BAD_USIG_CRC 0x00000020 +#define IEEE80211_RADIOTAP_EHT_USIG_COMMON_VALIDATE_BITS_CHECKED 0x00000040 +#define IEEE80211_RADIOTAP_EHT_USIG_COMMON_VALIDATE_BITS_OK 0x00000080 +#define IEEE80211_RADIOTAP_EHT_USIG_COMMON_PHY_VER 0x00007000 +#define IEEE80211_RADIOTAP_EHT_USIG_COMMON_BW 0x00038000 +#define IEEE80211_RADIOTAP_EHT_USIG_COMMON_BW_20MHZ 0x0 +#define IEEE80211_RADIOTAP_EHT_USIG_COMMON_BW_40MHZ 0x1 +#define IEEE80211_RADIOTAP_EHT_USIG_COMMON_BW_80MHZ 0x2 +#define IEEE80211_RADIOTAP_EHT_USIG_COMMON_BW_160MHZ 0x3 +#define IEEE80211_RADIOTAP_EHT_USIG_COMMON_BW_320MHZ_1 0x4 +#define IEEE80211_RADIOTAP_EHT_USIG_COMMON_UL_DL 0x00040000 +#define IEEE80211_RADIOTAP_EHT_USIG_COMMON_BSS_COLOR 0x01f80000 +#define IEEE80211_RADIOTAP_EHT_USIG_COMMON_TXOP 0xfe000000 + +#define IEEE80211_RADIOTAP_EHT_USIG1_MU_B20_B24_DISREGARD 0x0000001f +#define IEEE80211_RADIOTAP_EHT_USIG1_MU_B25_VALIDATE 0x00000020 +#define IEEE80211_RADIOTAP_EHT_USIG2_MU_B0_B1_PPDU_TYPE 0x000000c0 +#define IEEE80211_RADIOTAP_EHT_USIG2_MU_B2_VALIDATE 0x00000100 +#define IEEE80211_RADIOTAP_EHT_USIG2_MU_B3_B7_PUNCTURED_INFO 0x00003e00 +#define IEEE80211_RADIOTAP_EHT_USIG2_MU_B8_VALIDATE 0x00004000 +#define IEEE80211_RADIOTAP_EHT_USIG2_MU_B9_B10_SIG_MCS 0x00018000 +#define IEEE80211_RADIOTAP_EHT_USIG2_MU_B11_B15_EHT_SIG_SYMBOLS 0x003e0000 +#define IEEE80211_RADIOTAP_EHT_USIG2_MU_B16_B19_CRC 0x03c00000 +#define IEEE80211_RADIOTAP_EHT_USIG2_MU_B20_B25_TAIL 0xfc000000 + +#define IEEE80211_RADIOTAP_EHT_USIG1_TB_B20_B25_DISREGARD 0x0000003f +#define IEEE80211_RADIOTAP_EHT_USIG2_TB_B0_B1_PPDU_TYPE 0x000000c0 +#define IEEE80211_RADIOTAP_EHT_USIG2_TB_B2_VALIDATE 0x00000100 +#define IEEE80211_RADIOTAP_EHT_USIG2_TB_B3_B6_SPATIAL_REUSE_1 0x00001e00 +#define IEEE80211_RADIOTAP_EHT_USIG2_TB_B7_B10_SPATIAL_REUSE_2 0x0001e000 +#define IEEE80211_RADIOTAP_EHT_USIG2_TB_B11_B15_DISREGARD 0x003e0000 +#define IEEE80211_RADIOTAP_EHT_USIG2_TB_B16_B19_CRC 0x03c00000 +#define IEEE80211_RADIOTAP_EHT_USIG2_TB_B20_B25_TAIL 0xfc000000 + +/* http://www.radiotap.org/fields/EHT.html */ +struct ieee80211_radiotap_eht { + uint32_t known; + uint32_t data[9]; + uint32_t user_info[]; +} __packed; +#define IEEE80211_RADIOTAP_EHT_KNOWN_SPATIAL_REUSE 0x00000002 +#define IEEE80211_RADIOTAP_EHT_KNOWN_GI 0x00000004 +#define IEEE80211_RADIOTAP_EHT_KNOWN_EHT_LTF 0x00000010 +#define IEEE80211_RADIOTAP_EHT_KNOWN_LDPC_EXTRA_SYM_OM 0x00000020 +#define IEEE80211_RADIOTAP_EHT_KNOWN_PRE_PADD_FACOR_OM 0x00000040 +#define IEEE80211_RADIOTAP_EHT_KNOWN_PE_DISAMBIGUITY_OM 0x00000080 +#define IEEE80211_RADIOTAP_EHT_KNOWN_NSS_S 0x00020000 +#define IEEE80211_RADIOTAP_EHT_KNOWN_BEAMFORMED_S 0x00040000 +#define IEEE80211_RADIOTAP_EHT_KNOWN_NR_NON_OFDMA_USERS_M 0x00080000 +#define IEEE80211_RADIOTAP_EHT_KNOWN_RU_ALLOC_TB_FMT 0x01000000 +#define IEEE80211_RADIOTAP_EHT_KNOWN_PRIMARY_80 0x02000000 + +#define IEEE80211_RADIOTAP_EHT_DATA0_SPATIAL_REUSE 0x00000078 +#define IEEE80211_RADIOTAP_EHT_DATA0_GI 0x00000180 +#define IEEE80211_RADIOTAP_EHT_DATA0_LTF 0x00000600 +#define IEEE80211_RADIOTAP_EHT_DATA0_EHT_LTF 0x00003800 +#define IEEE80211_RADIOTAP_EHT_DATA0_LDPC_EXTRA_SYM_OM 0x00004000 +#define IEEE80211_RADIOTAP_EHT_DATA0_PRE_PADD_FACOR_OM 0x00018000 +#define IEEE80211_RADIOTAP_EHT_DATA0_PE_DISAMBIGUITY_OM 0x00020000 + +#define IEEE80211_RADIOTAP_EHT_DATA1_RU_ALLOC_CC_1_1_1 0x003fe000 +#define IEEE80211_RADIOTAP_EHT_DATA1_RU_ALLOC_CC_1_1_1_KNOWN 0x00400000 +#define IEEE80211_RADIOTAP_EHT_DATA1_PRIMARY_80 0xc0000000 + +#define IEEE80211_RADIOTAP_EHT_DATA2_RU_ALLOC_CC_2_1_1 0x000001ff +#define IEEE80211_RADIOTAP_EHT_DATA2_RU_ALLOC_CC_2_1_1_KNOWN 0x00000200 +#define IEEE80211_RADIOTAP_EHT_DATA2_RU_ALLOC_CC_1_1_2 0x0007fc00 +#define IEEE80211_RADIOTAP_EHT_DATA2_RU_ALLOC_CC_1_1_2_KNOWN 0x00080000 +#define IEEE80211_RADIOTAP_EHT_DATA2_RU_ALLOC_CC_2_1_2 0x1ff00000 +#define IEEE80211_RADIOTAP_EHT_DATA2_RU_ALLOC_CC_2_1_2_KNOWN 0x20000000 + +#define IEEE80211_RADIOTAP_EHT_DATA3_RU_ALLOC_CC_1_2_1 0x000001ff +#define IEEE80211_RADIOTAP_EHT_DATA3_RU_ALLOC_CC_1_2_1_KNOWN 0x00000200 +#define IEEE80211_RADIOTAP_EHT_DATA3_RU_ALLOC_CC_2_2_1 0x0007fc00 +#define IEEE80211_RADIOTAP_EHT_DATA3_RU_ALLOC_CC_2_2_1_KNOWN 0x00080000 +#define IEEE80211_RADIOTAP_EHT_DATA3_RU_ALLOC_CC_1_2_2 0x1ff00000 +#define IEEE80211_RADIOTAP_EHT_DATA3_RU_ALLOC_CC_1_2_2_KNOWN 0x20000000 + +#define IEEE80211_RADIOTAP_EHT_DATA4_RU_ALLOC_CC_2_2_2 0x000001ff +#define IEEE80211_RADIOTAP_EHT_DATA4_RU_ALLOC_CC_2_2_2_KNOWN 0x00000200 + +#define IEEE80211_RADIOTAP_EHT_DATA7_NSS_S 0x0000f000 +#define IEEE80211_RADIOTAP_EHT_DATA7_BEAMFORMED_S 0x00010000 +#define IEEE80211_RADIOTAP_EHT_DATA7_NUM_OF_NON_OFDMA_USERS 0x000e0000 + +#define IEEE80211_RADIOTAP_EHT_DATA8_RU_ALLOC_TB_FMT_PS_160 0x00000001 +#define IEEE80211_RADIOTAP_EHT_DATA8_RU_ALLOC_TB_FMT_B0 0x00000002 +#define IEEE80211_RADIOTAP_EHT_DATA8_RU_ALLOC_TB_FMT_B7_B1 0x000001fc + +#define IEEE80211_RADIOTAP_EHT_USER_INFO_STA_ID_KNOWN 0x00000001 +#define IEEE80211_RADIOTAP_EHT_USER_INFO_MCS_KNOWN 0x00000002 +#define IEEE80211_RADIOTAP_EHT_USER_INFO_CODING_KNOWN 0x00000004 +#define IEEE80211_RADIOTAP_EHT_USER_INFO_NSS_KNOWN_O 0x00000010 +#define IEEE80211_RADIOTAP_EHT_USER_INFO_BEAMFORMING_KNOWN_O 0x00000020 +#define IEEE80211_RADIOTAP_EHT_USER_INFO_DATA_FOR_USER 0x00000080 +#define IEEE80211_RADIOTAP_EHT_USER_INFO_STA_ID 0x0007ff00 +#define IEEE80211_RADIOTAP_EHT_USER_INFO_CODING 0x00080000 +#define IEEE80211_RADIOTAP_EHT_USER_INFO_MCS 0x00f00000 +#define IEEE80211_RADIOTAP_EHT_USER_INFO_NSS_O 0x0f000000 +#define IEEE80211_RADIOTAP_EHT_USER_INFO_BEAMFORMING_O 0x20000000 + #endif /* !_NET80211_IEEE80211_RADIOTAP_H_ */ diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_ratectl.c b/src/libs/compat/freebsd_wlan/net80211/ieee80211_ratectl.c index 4fd449c0a0..2783c23fb9 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_ratectl.c +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_ratectl.c @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2010 Rui Paulo * All rights reserved. @@ -26,8 +26,6 @@ */ #include -__FBSDID("$FreeBSD: releng/12.0/sys/net80211/ieee80211_ratectl.c 326272 2017-11-27 15:23:17Z pfg $"); - #include #include #include diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_ratectl.h b/src/libs/compat/freebsd_wlan/net80211/ieee80211_ratectl.h index d134c2d46c..2eae34763e 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_ratectl.h +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_ratectl.h @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2010 Rui Paulo * All rights reserved. @@ -23,10 +23,11 @@ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * $FreeBSD: releng/12.0/sys/net80211/ieee80211_ratectl.h 326272 2017-11-27 15:23:17Z pfg $ */ +#ifndef _NET80211_IEEE80211_RATECTL_H_ +#define _NET80211_IEEE80211_RATECTL_H_ + enum ieee80211_ratealgs { IEEE80211_RATECTL_AMRR = 0, IEEE80211_RATECTL_RSSADAPT = 1, @@ -169,3 +170,5 @@ ieee80211_ratectl_node_stats(struct ieee80211_node *ni, struct sbuf *s) return; vap->iv_rate->ir_node_stats(ni, s); } + +#endif /* _NET80211_IEEE80211_RATECTL_H_ */ diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_ratectl_none.c b/src/libs/compat/freebsd_wlan/net80211/ieee80211_ratectl_none.c index 85a70623f4..4ab122fbab 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_ratectl_none.c +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_ratectl_none.c @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2010 Bernhard Schmidt * All rights reserved. @@ -26,8 +26,6 @@ */ #include -__FBSDID("$FreeBSD: releng/12.0/sys/net80211/ieee80211_ratectl_none.c 326272 2017-11-27 15:23:17Z pfg $"); - #include "opt_wlan.h" #include diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_regdomain.c b/src/libs/compat/freebsd_wlan/net80211/ieee80211_regdomain.c index 12c3229e10..3f222dc31a 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_regdomain.c +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_regdomain.c @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2005-2008 Sam Leffler, Errno Consulting * All rights reserved. @@ -26,8 +26,6 @@ */ #include -__FBSDID("$FreeBSD: releng/12.0/sys/net80211/ieee80211_regdomain.c 326272 2017-11-27 15:23:17Z pfg $"); - /* * IEEE 802.11 regdomain support. */ @@ -151,10 +149,10 @@ ieee80211_init_channels(struct ieee80211com *ic, if (isset(bands, IEEE80211_MODE_VHT_5GHZ)) { cbw_flags |= NET80211_CBW_FLAG_HT40; /* Make sure this is set; or assert? */ cbw_flags |= NET80211_CBW_FLAG_VHT80; - if (IEEE80211_VHTCAP_SUPP_CHAN_WIDTH_IS_160MHZ(ic->ic_vhtcaps)) + if (IEEE80211_VHTCAP_SUPP_CHAN_WIDTH_IS_160MHZ(ic->ic_vht_cap.vht_cap_info)) cbw_flags |= NET80211_CBW_FLAG_VHT160; if (IEEE80211_VHTCAP_SUPP_CHAN_WIDTH_IS_160_80P80MHZ( - ic->ic_vhtcaps)) + ic->ic_vht_cap.vht_cap_info)) cbw_flags |= NET80211_CBW_FLAG_VHT80P80; ieee80211_add_channel_list_5ghz(chans, IEEE80211_CHAN_MAX, nchans, def_chan_5ghz_band1, nitems(def_chan_5ghz_band1), diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_regdomain.h b/src/libs/compat/freebsd_wlan/net80211/ieee80211_regdomain.h index af87a02190..dcfaea02a2 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_regdomain.h +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_regdomain.h @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2005-2008 Sam Leffler, Errno Consulting * All rights reserved. @@ -23,8 +23,6 @@ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * $FreeBSD: releng/12.0/sys/net80211/ieee80211_regdomain.h 326272 2017-11-27 15:23:17Z pfg $ */ #ifndef _NET80211_IEEE80211_REGDOMAIN_H_ #define _NET80211_IEEE80211_REGDOMAIN_H_ diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_rssadapt.c b/src/libs/compat/freebsd_wlan/net80211/ieee80211_rssadapt.c index 87a58e9177..6c77727d75 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_rssadapt.c +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_rssadapt.c @@ -1,4 +1,3 @@ -/* $FreeBSD: releng/12.0/sys/net80211/ieee80211_rssadapt.c 326272 2017-11-27 15:23:17Z pfg $ */ /* $NetBSD: ieee80211_rssadapt.c,v 1.9 2005/02/26 22:45:09 perry Exp $ */ /*- * SPDX-License-Identifier: BSD-3-Clause diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_rssadapt.h b/src/libs/compat/freebsd_wlan/net80211/ieee80211_rssadapt.h index 95ceaad2d5..a4c1975b42 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_rssadapt.h +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_rssadapt.h @@ -1,4 +1,3 @@ -/* $FreeBSD: releng/12.0/sys/net80211/ieee80211_rssadapt.h 326272 2017-11-27 15:23:17Z pfg $ */ /* $NetBSD: ieee80211_rssadapt.h,v 1.4 2005/02/26 22:45:09 perry Exp $ */ /*- * SPDX-License-Identifier: BSD-3-Clause diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_scan.c b/src/libs/compat/freebsd_wlan/net80211/ieee80211_scan.c index 204e1ace71..1feb7f6ce7 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_scan.c +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_scan.c @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2002-2008 Sam Leffler, Errno Consulting * All rights reserved. @@ -26,15 +26,13 @@ */ #include -__FBSDID("$FreeBSD: releng/12.0/sys/net80211/ieee80211_scan.c 326272 2017-11-27 15:23:17Z pfg $"); - /* * IEEE 802.11 scanning support. */ #include "opt_wlan.h" #include -#include +#include #include #include #include @@ -45,6 +43,7 @@ __FBSDID("$FreeBSD: releng/12.0/sys/net80211/ieee80211_scan.c 326272 2017-11-27 #include #include #include +#include #include #include @@ -277,7 +276,8 @@ ieee80211_scan_update_locked(struct ieee80211vap *vap, } } -void +#ifdef IEEE80211_DEBUG +static void ieee80211_scan_dump_channels(const struct ieee80211_scan_state *ss) { struct ieee80211com *ic = ss->ss_ic; @@ -294,7 +294,6 @@ ieee80211_scan_dump_channels(const struct ieee80211_scan_state *ss) } } -#ifdef IEEE80211_DEBUG void ieee80211_scan_dump(struct ieee80211_scan_state *ss) { @@ -574,7 +573,7 @@ ieee80211_scan_dump_probe_beacon(uint8_t subtype, int isnew, printf(" rssi %d\n", rssi); if (isnew) { - printf("[%s] caps 0x%x bintval %u erp 0x%x", + printf("[%s] caps 0x%x bintval %u erp 0x%x", ether_sprintf(mac), sp->capinfo, sp->bintval, sp->erp); if (sp->country != NULL) dump_country(sp->country); @@ -616,7 +615,8 @@ ieee80211_scan_timeout(struct ieee80211com *ic) * Mark a scan cache entry after a successful associate. */ void -ieee80211_scan_assoc_success(struct ieee80211vap *vap, const uint8_t mac[]) +ieee80211_scan_assoc_success(struct ieee80211vap *vap, + const uint8_t mac[IEEE80211_ADDR_LEN]) { struct ieee80211_scan_state *ss = vap->iv_ic->ic_scan; @@ -632,7 +632,7 @@ ieee80211_scan_assoc_success(struct ieee80211vap *vap, const uint8_t mac[]) */ void ieee80211_scan_assoc_fail(struct ieee80211vap *vap, - const uint8_t mac[], int reason) + const uint8_t mac[IEEE80211_ADDR_LEN], int reason) { struct ieee80211_scan_state *ss = vap->iv_ic->ic_scan; diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_scan.h b/src/libs/compat/freebsd_wlan/net80211/ieee80211_scan.h index 6db481932b..a33864b102 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_scan.h +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_scan.h @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2005-2009 Sam Leffler, Errno Consulting * All rights reserved. @@ -23,8 +23,6 @@ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * $FreeBSD: releng/12.0/sys/net80211/ieee80211_scan.h 326272 2017-11-27 15:23:17Z pfg $ */ #ifndef _NET80211_IEEE80211_SCAN_H_ #define _NET80211_IEEE80211_SCAN_H_ @@ -136,6 +134,7 @@ struct ieee80211_scan_state { #define IEEE80211_SCAN_ONCE 0x0010 /* do one complete pass */ #define IEEE80211_SCAN_NOBCAST 0x0020 /* no broadcast probe req */ #define IEEE80211_SCAN_NOJOIN 0x0040 /* no auto-sequencing */ +#define IEEE80211_SCAN_PUBLIC_MASK 0x0fff /* top 4 bits for internal use */ #define IEEE80211_SCAN_GOTPICK 0x1000 /* got candidate, can stop */ uint8_t ss_nssid; /* # ssid's to probe/match */ struct ieee80211_scan_ssid ss_ssid[IEEE80211_SCAN_MAX_SSID]; @@ -148,6 +147,10 @@ struct ieee80211_scan_state { unsigned long ss_maxdwell; /* max dwell on channel */ }; +#define IEEE80211_SS_FLAGS_BITS \ + "\20\1NOPICK\2ACTIVE\3PICK1ST\4BGSCAN\5ONCE\6NOBCAST\7NOJOIN" \ + "\15GOTPICK" + /* * The upper 16 bits of the flags word is used to communicate * information to the scanning code that is NOT recorded in @@ -163,8 +166,6 @@ void ieee80211_scan_detach(struct ieee80211com *); void ieee80211_scan_vattach(struct ieee80211vap *); void ieee80211_scan_vdetach(struct ieee80211vap *); -void ieee80211_scan_dump_channels(const struct ieee80211_scan_state *); - #define IEEE80211_SCAN_FOREVER 0x7fffffff int ieee80211_start_scan(struct ieee80211vap *, int flags, u_int duration, u_int mindwell, u_int maxdwell, @@ -213,6 +214,7 @@ enum { IEEE80211_BPARSE_OFFCHAN = 0x20, /* DSPARMS chan != curchan */ IEEE80211_BPARSE_BINTVAL_INVALID= 0x40, /* invalid beacon interval */ IEEE80211_BPARSE_CSA_INVALID = 0x80, /* invalid CSA ie */ + IEEE80211_BPARSE_MESHID_INVALID = 0x100, /* invalid Mesh ID ie */ }; /* @@ -223,7 +225,7 @@ enum { * All multi-byte values must be in host byte order. */ struct ieee80211_scanparams { - uint8_t status; /* bitmask of IEEE80211_BPARSE_* */ + uint32_t status; /* bitmask of IEEE80211_BPARSE_* */ uint8_t chan; /* channel # from FH/DSPARMS */ uint8_t bchan; /* curchan's channel # */ uint8_t fhindex; @@ -330,7 +332,7 @@ struct ieee80211_scanner { void (*scan_spare0)(void); void (*scan_spare1)(void); void (*scan_spare2)(void); - void (*scan_spare4)(void); + void (*scan_spare3)(void); }; void ieee80211_scanner_register(enum ieee80211_opmode, const struct ieee80211_scanner *); diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_scan_sta.c b/src/libs/compat/freebsd_wlan/net80211/ieee80211_scan_sta.c index a4633df401..a8159fca6d 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_scan_sta.c +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_scan_sta.c @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2002-2009 Sam Leffler, Errno Consulting * All rights reserved. @@ -26,8 +26,6 @@ */ #include -__FBSDID("$FreeBSD: releng/12.0/sys/net80211/ieee80211_scan_sta.c 327231 2017-12-27 03:23:21Z eadler $"); - /* * IEEE 802.11 station scanning support. */ @@ -1682,7 +1680,7 @@ notfound: chan = ieee80211_ht_adjust_channel(ic, chan, vap->iv_flags_ht); chan = ieee80211_vht_adjust_channel(ic, - chan, vap->iv_flags_vht); + chan, vap->iv_vht_flags); ieee80211_create_ibss(vap, chan); return 1; } @@ -1715,7 +1713,7 @@ notfound: chan = ieee80211_ht_adjust_channel(ic, chan, vap->iv_flags_ht); chan = ieee80211_vht_adjust_channel(ic, - chan, vap->iv_flags_vht); + chan, vap->iv_vht_flags); if (!ieee80211_sta_join(vap, chan, &selbs->base)) goto notfound; return 1; /* terminate scan */ @@ -1868,7 +1866,7 @@ ap_end(struct ieee80211_scan_state *ss, struct ieee80211vap *vap) return 1; } chan = ieee80211_ht_adjust_channel(ic, bestchan, vap->iv_flags_ht); - chan = ieee80211_vht_adjust_channel(ic, chan, vap->iv_flags_vht); + chan = ieee80211_vht_adjust_channel(ic, chan, vap->iv_vht_flags); ieee80211_create_ibss(vap, chan); return 1; @@ -1948,7 +1946,7 @@ notfound: chan = ieee80211_ht_adjust_channel(ic, chan, vap->iv_flags_ht); chan = ieee80211_vht_adjust_channel(ic, - chan, vap->iv_flags_vht); + chan, vap->iv_vht_flags); } } else chan = vap->iv_des_chan; diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_scan_sw.c b/src/libs/compat/freebsd_wlan/net80211/ieee80211_scan_sw.c index ac21c1e631..62f6bf24d4 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_scan_sw.c +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_scan_sw.c @@ -24,8 +24,6 @@ */ #include -__FBSDID("$FreeBSD: releng/12.0/sys/net80211/ieee80211_scan_sw.c 308007 2016-10-28 02:09:45Z adrian $"); - /* * IEEE 802.11 scanning support. */ @@ -43,6 +41,7 @@ __FBSDID("$FreeBSD: releng/12.0/sys/net80211/ieee80211_scan_sw.c 308007 2016-10- #include #include #include +#include #include #include @@ -195,8 +194,7 @@ ieee80211_swscan_start_scan_locked(const struct ieee80211_scanner *scan, if ((flags & IEEE80211_SCAN_NOSSID) == 0) ieee80211_scan_copy_ssid(vap, ss, nssid, ssids); - /* NB: top 4 bits for internal use */ - ss->ss_flags = flags & 0xfff; + ss->ss_flags = flags & IEEE80211_SCAN_PUBLIC_MASK; if (ss->ss_flags & IEEE80211_SCAN_ACTIVE) vap->iv_stats.is_scan_active++; else @@ -306,7 +304,7 @@ ieee80211_swscan_check_scan(const struct ieee80211_scanner *scan, ic->ic_flags |= IEEE80211_F_SCAN; /* NB: need to use supplied flags in check */ - ss->ss_flags = flags & 0xff; + ss->ss_flags = flags & IEEE80211_SCAN_PUBLIC_MASK; result = ss->ss_ops->scan_end(ss, vap); ic->ic_flags &= ~IEEE80211_F_SCAN; @@ -335,12 +333,14 @@ ieee80211_swscan_bg_scan(const struct ieee80211_scanner *scan, { struct ieee80211com *ic = vap->iv_ic; struct ieee80211_scan_state *ss = ic->ic_scan; + bool scanning; /* XXX assert unlocked? */ // IEEE80211_UNLOCK_ASSERT(ic); IEEE80211_LOCK(ic); - if ((ic->ic_flags & IEEE80211_F_SCAN) == 0) { + scanning = ic->ic_flags & IEEE80211_F_SCAN; + if (!scanning) { u_int duration; /* * Go off-channel for a fixed interval that is large @@ -388,9 +388,10 @@ ieee80211_swscan_bg_scan(const struct ieee80211_scanner *scan, * scan_start method to populate it. */ ss->ss_next = 0; - if (ss->ss_last != 0) + if (ss->ss_last != 0) { + ieee80211_notify_scan_done(vap); ss->ss_ops->scan_restart(ss, vap); - else { + } else { ss->ss_ops->scan_start(ss, vap); #ifdef IEEE80211_DEBUG if (ieee80211_msg_scan(vap)) @@ -404,6 +405,7 @@ ieee80211_swscan_bg_scan(const struct ieee80211_scanner *scan, ic->ic_flags_ext |= IEEE80211_FEXT_BGSCAN; ieee80211_runtask(ic, &SCAN_PRIVATE(ss)->ss_scan_start); + scanning = true; } else { /* XXX msg+stat */ } @@ -414,8 +416,7 @@ ieee80211_swscan_bg_scan(const struct ieee80211_scanner *scan, } IEEE80211_UNLOCK(ic); - /* NB: racey, does it matter? */ - return (ic->ic_flags & IEEE80211_F_SCAN); + return (scanning); } /* @@ -674,7 +675,7 @@ scan_start(void *arg, int pending) } static void -scan_curchan_task(void *arg, int pending) +scan_curchan_task(void *arg, int pending __unused) { struct ieee80211_scan_state *ss = arg; struct scan_state *ss_priv = SCAN_PRIVATE(ss); @@ -857,6 +858,7 @@ scan_end(struct ieee80211_scan_state *ss, int scandone) else vap->iv_stats.is_scan_passive++; + ieee80211_notify_scan_done(vap); ss->ss_ops->scan_restart(ss, vap); /* XXX? */ ieee80211_runtask(ic, &ss_priv->ss_scan_start); IEEE80211_UNLOCK(ic); diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_scan_sw.h b/src/libs/compat/freebsd_wlan/net80211/ieee80211_scan_sw.h index 5e794c7dfe..2060851fda 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_scan_sw.h +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_scan_sw.h @@ -21,8 +21,6 @@ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * $FreeBSD: releng/12.0/sys/net80211/ieee80211_scan_sw.h 284143 2015-06-08 02:35:43Z adrian $ */ #ifndef __NET80211_IEEE80211_SCAN_SW_H__ #define __NET80211_IEEE80211_SCAN_SW_H__ diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_sta.c b/src/libs/compat/freebsd_wlan/net80211/ieee80211_sta.c index 28c50ffbe5..042f5636be 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_sta.c +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_sta.c @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2007-2008 Sam Leffler, Errno Consulting * All rights reserved. @@ -27,7 +27,6 @@ #include #ifdef __FreeBSD__ -__FBSDID("$FreeBSD: releng/12.0/sys/net80211/ieee80211_sta.c 326272 2017-11-27 15:23:17Z pfg $"); #endif /* @@ -54,6 +53,7 @@ __FBSDID("$FreeBSD: releng/12.0/sys/net80211/ieee80211_sta.c 326272 2017-11-27 1 #include #include #include +#include #include #include @@ -552,6 +552,35 @@ sta_input(struct ieee80211_node *ni, struct mbuf *m, int is_hw_decrypted = 0; int has_decrypted = 0; + KASSERT(ni != NULL, ("%s: null node, mbuf %p", __func__, m)); + + /* Early init in case of early error case. */ + type = -1; + + /* + * Bit of a cheat here, we use a pointer for a 3-address + * frame format but don't reference fields past outside + * ieee80211_frame_min (or other shorter frames) w/o first + * validating the data is present. + */ + wh = mtod(m, struct ieee80211_frame *); + + if (m->m_pkthdr.len < 2 || m->m_pkthdr.len < ieee80211_anyhdrsize(wh)) { + IEEE80211_DISCARD_MAC(vap, IEEE80211_MSG_ANY, + ni->ni_macaddr, NULL, + "too short (1): len %u", m->m_pkthdr.len); + vap->iv_stats.is_rx_tooshort++; + goto err; + } + if ((wh->i_fc[0] & IEEE80211_FC0_VERSION_MASK) != + IEEE80211_FC0_VERSION_0) { + IEEE80211_DISCARD_MAC(vap, IEEE80211_MSG_ANY, + ni->ni_macaddr, NULL, "wrong version, fc %02x:%02x", + wh->i_fc[0], wh->i_fc[1]); + vap->iv_stats.is_rx_badversion++; + goto err; + } + /* * Some devices do hardware decryption all the way through * to pretending the frame wasn't encrypted in the first place. @@ -569,47 +598,26 @@ sta_input(struct ieee80211_node *ni, struct mbuf *m, * with the M_AMPDU_MPDU flag and we can bypass most of * the normal processing. */ - wh = mtod(m, struct ieee80211_frame *); type = IEEE80211_FC0_TYPE_DATA; dir = wh->i_fc[1] & IEEE80211_FC1_DIR_MASK; - subtype = IEEE80211_FC0_SUBTYPE_QOS; + subtype = IEEE80211_FC0_SUBTYPE_QOS_DATA; hdrspace = ieee80211_hdrspace(ic, wh); /* XXX optimize? */ goto resubmit_ampdu; } - KASSERT(ni != NULL, ("null node")); ni->ni_inact = ni->ni_inact_reload; - type = -1; /* undefined */ - - if (m->m_pkthdr.len < sizeof(struct ieee80211_frame_min)) { - IEEE80211_DISCARD_MAC(vap, IEEE80211_MSG_ANY, - ni->ni_macaddr, NULL, - "too short (1): len %u", m->m_pkthdr.len); - vap->iv_stats.is_rx_tooshort++; - goto out; - } - /* - * Bit of a cheat here, we use a pointer for a 3-address - * frame format but don't reference fields past outside - * ieee80211_frame_min w/o first validating the data is - * present. - */ - wh = mtod(m, struct ieee80211_frame *); - - if ((wh->i_fc[0] & IEEE80211_FC0_VERSION_MASK) != - IEEE80211_FC0_VERSION_0) { - IEEE80211_DISCARD_MAC(vap, IEEE80211_MSG_ANY, - ni->ni_macaddr, NULL, "wrong version, fc %02x:%02x", - wh->i_fc[0], wh->i_fc[1]); - vap->iv_stats.is_rx_badversion++; - goto err; - } - dir = wh->i_fc[1] & IEEE80211_FC1_DIR_MASK; type = wh->i_fc[0] & IEEE80211_FC0_TYPE_MASK; subtype = wh->i_fc[0] & IEEE80211_FC0_SUBTYPE_MASK; - if ((ic->ic_flags & IEEE80211_F_SCAN) == 0) { + /* + * Control frames are not folowing the header scheme of data and mgmt + * frames so we do not apply extra checks here. + * We probably should do checks on RA (+TA) where available for those + * too, but for now do not drop them. + */ + if (type != IEEE80211_FC0_TYPE_CTL && + (ic->ic_flags & IEEE80211_F_SCAN) == 0) { bssid = wh->i_addr2; if (!IEEE80211_ADDR_EQ(bssid, ni->ni_bssid)) { /* not interested in */ @@ -759,7 +767,7 @@ sta_input(struct ieee80211_node *ni, struct mbuf *m, * crypto cipher modules used to do delayed update * of replay sequence numbers. */ - if (is_hw_decrypted || wh->i_fc[1] & IEEE80211_FC1_PROTECTED) { + if (is_hw_decrypted || IEEE80211_IS_PROTECTED(wh)) { if ((vap->iv_flags & IEEE80211_F_PRIVACY) == 0) { /* * Discard encrypted frames when privacy is off. @@ -786,7 +794,7 @@ sta_input(struct ieee80211_node *ni, struct mbuf *m, /* * Save QoS bits for use below--before we strip the header. */ - if (subtype == IEEE80211_FC0_SUBTYPE_QOS) + if (subtype == IEEE80211_FC0_SUBTYPE_QOS_DATA) qos = ieee80211_getqos(wh)[0]; else qos = 0; @@ -795,7 +803,7 @@ sta_input(struct ieee80211_node *ni, struct mbuf *m, * Next up, any fragmentation. */ if (!IEEE80211_IS_MULTICAST(wh->i_addr1)) { - m = ieee80211_defrag(ni, m, hdrspace); + m = ieee80211_defrag(ni, m, hdrspace, has_decrypted); if (m == NULL) { /* Fragment dropped or frame not complete yet */ goto out; @@ -827,7 +835,7 @@ sta_input(struct ieee80211_node *ni, struct mbuf *m, /* * Finally, strip the 802.11 header. */ - m = ieee80211_decap(vap, m, hdrspace); + m = ieee80211_decap(vap, m, hdrspace, qos); if (m == NULL) { /* XXX mask bit to check for both */ /* don't count Null data frames as errors */ @@ -840,7 +848,10 @@ sta_input(struct ieee80211_node *ni, struct mbuf *m, IEEE80211_NODE_STAT(ni, rx_decap); goto err; } - eh = mtod(m, struct ether_header *); + if (!(qos & IEEE80211_QOS_AMSDU)) + eh = mtod(m, struct ether_header *); + else + eh = NULL; if (!ieee80211_node_is_authorized(ni)) { /* * Deny any non-PAE frames received prior to @@ -850,11 +861,13 @@ sta_input(struct ieee80211_node *ni, struct mbuf *m, * the port is not marked authorized by the * authenticator until the handshake has completed. */ - if (eh->ether_type != htons(ETHERTYPE_PAE)) { + if (eh == NULL || + eh->ether_type != htons(ETHERTYPE_PAE)) { IEEE80211_DISCARD_MAC(vap, IEEE80211_MSG_INPUT, - eh->ether_shost, "data", - "unauthorized port: ether type 0x%x len %u", - eh->ether_type, m->m_pkthdr.len); + ni->ni_macaddr, "data", "unauthorized or " + "unknown port: ether type 0x%x len %u", + eh == NULL ? -1 : eh->ether_type, + m->m_pkthdr.len); vap->iv_stats.is_rx_unauth++; IEEE80211_NODE_STAT(ni, rx_unauth); goto err; @@ -867,7 +880,8 @@ sta_input(struct ieee80211_node *ni, struct mbuf *m, if ((vap->iv_flags & IEEE80211_F_DROPUNENC) && ((has_decrypted == 0) && (m->m_flags & M_WEP) == 0) && (is_hw_decrypted == 0) && - eh->ether_type != htons(ETHERTYPE_PAE)) { + (eh == NULL || + eh->ether_type != htons(ETHERTYPE_PAE))) { /* * Drop unencrypted frames. */ @@ -925,7 +939,7 @@ sta_input(struct ieee80211_node *ni, struct mbuf *m, * Again, having encrypted flag set check would be good, but * then we have to also handle crypto_decap() like above. */ - if (wh->i_fc[1] & IEEE80211_FC1_PROTECTED) { + if (IEEE80211_IS_PROTECTED(wh)) { if (subtype != IEEE80211_FC0_SUBTYPE_AUTH) { /* * Only shared key auth frames with a challenge @@ -1510,7 +1524,7 @@ sta_recv_mgmt(struct ieee80211_node *ni, struct mbuf *m0, int subtype, do_ht = 1; } if (scan.vhtcap != NULL && scan.vhtopmode != NULL && - (vap->iv_flags_vht & IEEE80211_FVHT_VHT)) { + (vap->iv_vht_flags & IEEE80211_FVHT_VHT)) { /* XXX state changes? */ ieee80211_vht_updateparams(ni, scan.vhtcap, scan.vhtopmode); @@ -1555,7 +1569,10 @@ sta_recv_mgmt(struct ieee80211_node *ni, struct mbuf *m0, int subtype, int ix = aid / NBBY; int min = tim->tim_bitctl &~ 1; int max = tim->tim_len + min - 4; - int tim_ucast = 0, tim_mcast = 0; + int tim_ucast = 0; +#ifdef __notyet__ + int tim_mcast = 0; +#endif /* * Only do this for unicast traffic in the TIM @@ -1568,6 +1585,7 @@ sta_recv_mgmt(struct ieee80211_node *ni, struct mbuf *m0, int subtype, tim_ucast = 1; } +#ifdef __notyet__ /* * Do a separate notification * for the multicast bit being set. @@ -1575,6 +1593,7 @@ sta_recv_mgmt(struct ieee80211_node *ni, struct mbuf *m0, int subtype, if (tim->tim_bitctl & 1) { tim_mcast = 1; } +#endif /* * If the TIM indicates there's traffic for @@ -1851,7 +1870,7 @@ sta_recv_mgmt(struct ieee80211_node *ni, struct mbuf *m0, int subtype, ieee80211_ht_updateparams(ni, htcap, htinfo); if ((vhtcap != NULL) && (vhtopmode != NULL) & - (vap->iv_flags_vht & IEEE80211_FVHT_VHT)) { + (vap->iv_vht_flags & IEEE80211_FVHT_VHT)) { /* * Log if we get a VHT assoc/reassoc response. * We aren't ready for 2GHz VHT support. diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_sta.h b/src/libs/compat/freebsd_wlan/net80211/ieee80211_sta.h index 6ed3b062f1..e89923a2b0 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_sta.h +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_sta.h @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2007-2008 Sam Leffler, Errno Consulting * All rights reserved. @@ -23,8 +23,6 @@ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * $FreeBSD: releng/12.0/sys/net80211/ieee80211_sta.h 326272 2017-11-27 15:23:17Z pfg $ */ #ifndef _NET80211_IEEE80211_STA_H_ #define _NET80211_IEEE80211_STA_H_ diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_superg.c b/src/libs/compat/freebsd_wlan/net80211/ieee80211_superg.c index abd83a691b..815fb35689 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_superg.c +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_superg.c @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2002-2009 Sam Leffler, Errno Consulting * All rights reserved. @@ -26,8 +26,6 @@ */ #include -__FBSDID("$FreeBSD: releng/12.0/sys/net80211/ieee80211_superg.c 326272 2017-11-27 15:23:17Z pfg $"); - #include "opt_wlan.h" #ifdef IEEE80211_SUPPORT_SUPERG @@ -326,7 +324,7 @@ ieee80211_ff_decap(struct ieee80211_node *ni, struct mbuf *m) vap->iv_stats.is_ff_tooshort++; return NULL; } - n = m_split(m, framelen, M_NOWAIT); + n = m_split(m, framelen, IEEE80211_M_NOWAIT); if (n == NULL) { IEEE80211_DISCARD_MAC(vap, IEEE80211_MSG_ANY, ni->ni_macaddr, "fast-frame", @@ -445,7 +443,7 @@ ieee80211_ff_encap(struct ieee80211vap *vap, struct mbuf *m1, int hdrspace, */ m->m_next = m2; /* NB: last mbuf from above */ m1->m_pkthdr.len += m2->m_pkthdr.len; - M_PREPEND(m1, sizeof(uint32_t)+2, M_NOWAIT); + M_PREPEND(m1, sizeof(uint32_t)+2, IEEE80211_M_NOWAIT); if (m1 == NULL) { /* XXX cannot happen */ IEEE80211_DPRINTF(vap, IEEE80211_MSG_SUPERG, "%s: no space for tunnel header\n", __func__); @@ -454,7 +452,7 @@ ieee80211_ff_encap(struct ieee80211vap *vap, struct mbuf *m1, int hdrspace, } memset(mtod(m1, void *), 0, sizeof(uint32_t)+2); - M_PREPEND(m1, sizeof(struct llc), M_NOWAIT); + M_PREPEND(m1, sizeof(struct llc), IEEE80211_M_NOWAIT); if (m1 == NULL) { /* XXX cannot happen */ IEEE80211_DPRINTF(vap, IEEE80211_MSG_SUPERG, "%s: no space for llc header\n", __func__); diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_superg.h b/src/libs/compat/freebsd_wlan/net80211/ieee80211_superg.h index 4416bcd1dc..226c1b2b36 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_superg.h +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_superg.h @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2009 Sam Leffler, Errno Consulting * All rights reserved. @@ -23,8 +23,6 @@ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * $FreeBSD: releng/12.0/sys/net80211/ieee80211_superg.h 326272 2017-11-27 15:23:17Z pfg $ */ #ifndef _NET80211_IEEE80211_SUPERG_H_ #define _NET80211_IEEE80211_SUPERG_H_ diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_tdma.c b/src/libs/compat/freebsd_wlan/net80211/ieee80211_tdma.c index fa6f448295..b9c204af40 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_tdma.c +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_tdma.c @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2007-2009 Sam Leffler, Errno Consulting * Copyright (c) 2007-2009 Intel Corporation @@ -28,7 +28,6 @@ #include #ifdef __FreeBSD__ -__FBSDID("$FreeBSD: releng/12.0/sys/net80211/ieee80211_tdma.c 326272 2017-11-27 15:23:17Z pfg $"); #endif /* diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_tdma.h b/src/libs/compat/freebsd_wlan/net80211/ieee80211_tdma.h index ec19b597d5..19caf557be 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_tdma.h +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_tdma.h @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2007-2009 Sam Leffler, Errno Consulting * Copyright (c) 2007-2009 Intel Corporation @@ -24,8 +24,6 @@ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * $FreeBSD: releng/12.0/sys/net80211/ieee80211_tdma.h 326272 2017-11-27 15:23:17Z pfg $ */ #ifndef _NET80211_IEEE80211_TDMA_H_ #define _NET80211_IEEE80211_TDMA_H_ diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_var.h b/src/libs/compat/freebsd_wlan/net80211/ieee80211_var.h index c5a463f1d0..2eda121b8d 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_var.h +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_var.h @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2001 Atsushi Onoe * Copyright (c) 2002-2009 Sam Leffler, Errno Consulting @@ -24,8 +24,6 @@ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * $FreeBSD: releng/12.0/sys/net80211/ieee80211_var.h 326272 2017-11-27 15:23:17Z pfg $ */ #ifndef _NET80211_IEEE80211_VAR_H_ #define _NET80211_IEEE80211_VAR_H_ @@ -124,7 +122,7 @@ typedef void (*ieee80211vap_attach)(struct ieee80211vap *); struct ieee80211_appie { uint16_t ie_len; /* size of ie_data */ - uint8_t ie_data[0]; /* user-specified IE's */ + uint8_t ie_data[]; /* user-specified IE's */ }; struct ieee80211_tdma_param; @@ -244,10 +242,9 @@ struct ieee80211com { uint8_t ic_txstream; /* # TX streams */ /* VHT information */ - uint32_t ic_vhtcaps; /* VHT capabilities */ + uint32_t ic_vht_flags; /* VHT state flags */ + struct ieee80211_vht_cap ic_vht_cap; /* VHT capabilities + MCS info */ uint32_t ic_vhtextcaps; /* VHT extended capabilities (TODO) */ - struct ieee80211_vht_mcs_info ic_vht_mcsinfo; /* Support TX/RX VHT MCS */ - uint32_t ic_flags_vht; /* VHT state flags */ uint32_t ic_vht_spare[3]; /* optional state for Atheros SuperG protocol extensions */ @@ -415,9 +412,16 @@ struct ieee80211vap { uint32_t iv_com_state; /* com usage / detached flag */ enum ieee80211_opmode iv_opmode; /* operation mode */ enum ieee80211_state iv_state; /* state machine state */ - enum ieee80211_state iv_nstate; /* pending state */ - int iv_nstate_arg; /* pending state arg */ - struct task iv_nstate_task; /* deferred state processing */ + + /* Deferred state processing. */ + enum ieee80211_state iv_nstate; /* next pending state (historic) */ +#define NET80211_IV_NSTATE_NUM 8 + int iv_nstate_b; /* First filled slot. */ + int iv_nstate_n; /* # of filled slots. */ + enum ieee80211_state iv_nstates[NET80211_IV_NSTATE_NUM]; /* queued pending state(s) */ + int iv_nstate_args[NET80211_IV_NSTATE_NUM]; /* queued pending state(s) arg */ + struct task iv_nstate_task[NET80211_IV_NSTATE_NUM]; + struct task iv_swbmiss_task;/* deferred iv_bmiss call */ struct callout iv_mgtsend; /* mgmt frame response timer */ /* inactivity timer settings */ @@ -427,10 +431,9 @@ struct ieee80211vap { int iv_inact_probe; /* inactive probe time */ /* VHT flags */ - uint32_t iv_flags_vht; /* VHT state flags */ - uint32_t iv_vhtcaps; /* VHT capabilities */ + uint32_t iv_vht_flags; /* VHT state flags */ + struct ieee80211_vht_cap iv_vht_cap; /* VHT capabilities + MCS info */ uint32_t iv_vhtextcaps; /* VHT extended capabilities (TODO) */ - struct ieee80211_vht_mcs_info iv_vht_mcsinfo; uint32_t iv_vht_spare[4]; int iv_des_nssid; /* # desired ssids */ @@ -508,7 +511,7 @@ struct ieee80211vap { int (*iv_key_alloc)(struct ieee80211vap *, struct ieee80211_key *, ieee80211_keyix *, ieee80211_keyix *); - int (*iv_key_delete)(struct ieee80211vap *, + int (*iv_key_delete)(struct ieee80211vap *, const struct ieee80211_key *); int (*iv_key_set)(struct ieee80211vap *, const struct ieee80211_key *); @@ -567,6 +570,9 @@ struct ieee80211vap { /* state machine processing */ int (*iv_newstate)(struct ieee80211vap *, enum ieee80211_state, int); + struct ieee80211_node * (*iv_update_bss)(struct ieee80211vap *, + struct ieee80211_node *); + /* 802.3 output method for raw frame xmit */ int (*iv_output)(struct ifnet *, struct mbuf *, const struct sockaddr *, struct route *); @@ -607,7 +613,7 @@ struct ieee80211vap { struct ieee80211_rx_histogram *rx_histogram; struct ieee80211_tx_histogram *tx_histogram; - uint64_t iv_spare[6]; + uint64_t iv_spare[36]; }; MALLOC_DECLARE(M_80211_VAP); @@ -694,7 +700,8 @@ MALLOC_DECLARE(M_80211_VAP); "\20\2INACT\3SCANWAIT\4BGSCAN\5WPS\6TSN\7SCANREQ\10RESUME" \ "\0114ADDR\12NONEPR_PR\13SWBMISS\14DFS\15DOTD\16STATEWAIT\17REINIT" \ "\20BPF\21WDSLEGACY\22PROBECHAN\23UNIQMAC\24SCAN_OFFLOAD\25SEQNO_OFFLOAD" \ - "\26VHT\27QUIET_IE" + "\26FRAG_OFFLOAD\27VHT" \ + "\30QUIET_IE\31UAPSD" /* ic_flags_ht/iv_flags_ht */ #define IEEE80211_FHT_NONHT_PR 0x00000001 /* STATUS: non-HT sta present */ @@ -858,7 +865,7 @@ ieee80211_draintask(struct ieee80211com *ic, struct task *task) taskqueue_drain(ic->ic_tq, task); } -/* +/* * Key update synchronization methods. XXX should not be visible. */ static __inline void @@ -932,10 +939,10 @@ static __inline int ieee80211_vhtchanflags(const struct ieee80211_channel *c) { - if (IEEE80211_IS_CHAN_VHT80P80(c)) - return IEEE80211_FVHT_USEVHT80P80; if (IEEE80211_IS_CHAN_VHT160(c)) return IEEE80211_FVHT_USEVHT160; + if (IEEE80211_IS_CHAN_VHT80P80(c)) + return IEEE80211_FVHT_USEVHT80P80; if (IEEE80211_IS_CHAN_VHT80(c)) return IEEE80211_FVHT_USEVHT80; if (IEEE80211_IS_CHAN_VHT40(c)) @@ -1069,15 +1076,18 @@ void ieee80211_note_frame(const struct ieee80211vap *, */ #define IEEE80211_DISCARD(_vap, _m, _wh, _type, _fmt, ...) do { \ if ((_vap)->iv_debug & (_m)) \ - ieee80211_discard_frame(_vap, _wh, _type, _fmt, __VA_ARGS__);\ + ieee80211_discard_frame(_vap, _wh, _type, \ + "%s:%d: " _fmt, __func__, __LINE__, __VA_ARGS__); \ } while (0) #define IEEE80211_DISCARD_IE(_vap, _m, _wh, _type, _fmt, ...) do { \ if ((_vap)->iv_debug & (_m)) \ - ieee80211_discard_ie(_vap, _wh, _type, _fmt, __VA_ARGS__);\ + ieee80211_discard_ie(_vap, _wh, _type, \ + "%s:%d: " _fmt, __func__, __LINE__, __VA_ARGS__); \ } while (0) #define IEEE80211_DISCARD_MAC(_vap, _m, _mac, _type, _fmt, ...) do { \ if ((_vap)->iv_debug & (_m)) \ - ieee80211_discard_mac(_vap, _mac, _type, _fmt, __VA_ARGS__);\ + ieee80211_discard_mac(_vap, _mac, _type, \ + "%s:%d: " _fmt, __func__, __LINE__, __VA_ARGS__); \ } while (0) void ieee80211_discard_frame(const struct ieee80211vap *, diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_vht.c b/src/libs/compat/freebsd_wlan/net80211/ieee80211_vht.c index 101b95cd54..77a36a395d 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_vht.c +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_vht.c @@ -25,7 +25,6 @@ #include #ifdef __FreeBSD__ -__FBSDID("$FreeBSD: releng/12.0/sys/net80211/ieee80211_vht.c 311887 2017-01-10 19:28:40Z pluknet $"); #endif /* @@ -145,20 +144,20 @@ ieee80211_vht_vattach(struct ieee80211vap *vap) if (! IEEE80211_CONF_VHT(ic)) return; - vap->iv_vhtcaps = ic->ic_vhtcaps; + vap->iv_vht_cap.vht_cap_info = ic->ic_vht_cap.vht_cap_info; vap->iv_vhtextcaps = ic->ic_vhtextcaps; /* XXX assume VHT80 support; should really check vhtcaps */ - vap->iv_flags_vht = + vap->iv_vht_flags = IEEE80211_FVHT_VHT | IEEE80211_FVHT_USEVHT40 | IEEE80211_FVHT_USEVHT80; - if (IEEE80211_VHTCAP_SUPP_CHAN_WIDTH_IS_160MHZ(vap->iv_vhtcaps)) - vap->iv_flags_vht |= IEEE80211_FVHT_USEVHT160; - if (IEEE80211_VHTCAP_SUPP_CHAN_WIDTH_IS_160_80P80MHZ(vap->iv_vhtcaps)) - vap->iv_flags_vht |= IEEE80211_FVHT_USEVHT80P80; + if (IEEE80211_VHTCAP_SUPP_CHAN_WIDTH_IS_160MHZ(vap->iv_vht_cap.vht_cap_info)) + vap->iv_vht_flags |= IEEE80211_FVHT_USEVHT160; + if (IEEE80211_VHTCAP_SUPP_CHAN_WIDTH_IS_160_80P80MHZ(vap->iv_vht_cap.vht_cap_info)) + vap->iv_vht_flags |= IEEE80211_FVHT_USEVHT80P80; - memcpy(&vap->iv_vht_mcsinfo, &ic->ic_vht_mcsinfo, + memcpy(&vap->iv_vht_cap.supp_mcs, &ic->ic_vht_cap.supp_mcs, sizeof(struct ieee80211_vht_mcs_info)); } @@ -200,19 +199,19 @@ ieee80211_vht_announce(struct ieee80211com *ic) /* Channel width */ ic_printf(ic, "[VHT] Channel Widths: 20MHz, 40MHz, 80MHz%s%s\n", - (IEEE80211_VHTCAP_SUPP_CHAN_WIDTH_IS_160MHZ(ic->ic_vhtcaps)) ? + (IEEE80211_VHTCAP_SUPP_CHAN_WIDTH_IS_160MHZ(ic->ic_vht_cap.vht_cap_info)) ? ", 160MHz" : "", - (IEEE80211_VHTCAP_SUPP_CHAN_WIDTH_IS_160_80P80MHZ(ic->ic_vhtcaps)) ? + (IEEE80211_VHTCAP_SUPP_CHAN_WIDTH_IS_160_80P80MHZ(ic->ic_vht_cap.vht_cap_info)) ? ", 80+80MHz" : ""); /* Features */ - ic_printf(ic, "[VHT] Features: %b\n", ic->ic_vhtcaps, + ic_printf(ic, "[VHT] Features: %b\n", ic->ic_vht_cap.vht_cap_info, IEEE80211_VHTCAP_BITS); /* For now, just 5GHz VHT. Worry about 2GHz VHT later */ for (i = 0; i < 8; i++) { /* Each stream is 2 bits */ - tx = (ic->ic_vht_mcsinfo.tx_mcs_map >> (2*i)) & 0x3; - rx = (ic->ic_vht_mcsinfo.rx_mcs_map >> (2*i)) & 0x3; + tx = (ic->ic_vht_cap.supp_mcs.tx_mcs_map >> (2*i)) & 0x3; + rx = (ic->ic_vht_cap.supp_mcs.rx_mcs_map >> (2*i)) & 0x3; if (tx == 3 && rx == 3) continue; ic_printf(ic, "[VHT] NSS %d: TX MCS 0..%d, RX MCS 0..%d\n", @@ -343,7 +342,7 @@ ieee80211_vht_node_leave(struct ieee80211_node *ni) */ void ieee80211_vht_get_vhtcap_ie(struct ieee80211_node *ni, - struct ieee80211_ie_vhtcap *vhtcap, int opmode) + struct ieee80211_vht_cap *vhtcap, int opmode) { struct ieee80211vap *vap = ni->ni_vap; // struct ieee80211com *ic = vap->iv_ic; @@ -351,9 +350,6 @@ ieee80211_vht_get_vhtcap_ie(struct ieee80211_node *ni, uint32_t new_vhtcap; int i; - vhtcap->ie = IEEE80211_ELEMID_VHT_CAP; - vhtcap->len = sizeof(struct ieee80211_ie_vhtcap) - 2; - /* * Capabilities - it depends on whether we are a station * or not. @@ -367,7 +363,7 @@ ieee80211_vht_get_vhtcap_ie(struct ieee80211_node *ni, */ /* Limit MPDU size to the smaller of the two */ - val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vhtcaps, + val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vht_cap.vht_cap_info, IEEE80211_VHTCAP_MAX_MPDU_MASK); if (opmode == 1) { val2 = _IEEE80211_MASKSHIFT(ni->ni_vhtcap, @@ -377,24 +373,24 @@ ieee80211_vht_get_vhtcap_ie(struct ieee80211_node *ni, new_vhtcap |= _IEEE80211_SHIFTMASK(val, IEEE80211_VHTCAP_MAX_MPDU_MASK); /* Limit supp channel config */ - val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vhtcaps, + val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vht_cap.vht_cap_info, IEEE80211_VHTCAP_SUPP_CHAN_WIDTH_MASK); if (opmode == 1) { val2 = _IEEE80211_MASKSHIFT(ni->ni_vhtcap, IEEE80211_VHTCAP_SUPP_CHAN_WIDTH_MASK); } if ((val2 == 2) && - ((vap->iv_flags_vht & IEEE80211_FVHT_USEVHT80P80) == 0)) + ((vap->iv_vht_flags & IEEE80211_FVHT_USEVHT80P80) == 0)) val2 = 1; if ((val2 == 1) && - ((vap->iv_flags_vht & IEEE80211_FVHT_USEVHT160) == 0)) + ((vap->iv_vht_flags & IEEE80211_FVHT_USEVHT160) == 0)) val2 = 0; val = MIN(val1, val2); new_vhtcap |= _IEEE80211_SHIFTMASK(val, IEEE80211_VHTCAP_SUPP_CHAN_WIDTH_MASK); /* RX LDPC */ - val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vhtcaps, + val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vht_cap.vht_cap_info, IEEE80211_VHTCAP_RXLDPC); if (opmode == 1) { val2 = _IEEE80211_MASKSHIFT(ni->ni_vhtcap, @@ -404,7 +400,7 @@ ieee80211_vht_get_vhtcap_ie(struct ieee80211_node *ni, new_vhtcap |= _IEEE80211_SHIFTMASK(val, IEEE80211_VHTCAP_RXLDPC); /* Short-GI 80 */ - val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vhtcaps, + val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vht_cap.vht_cap_info, IEEE80211_VHTCAP_SHORT_GI_80); if (opmode == 1) { val2 = _IEEE80211_MASKSHIFT(ni->ni_vhtcap, @@ -414,7 +410,7 @@ ieee80211_vht_get_vhtcap_ie(struct ieee80211_node *ni, new_vhtcap |= _IEEE80211_SHIFTMASK(val, IEEE80211_VHTCAP_SHORT_GI_80); /* Short-GI 160 */ - val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vhtcaps, + val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vht_cap.vht_cap_info, IEEE80211_VHTCAP_SHORT_GI_160); if (opmode == 1) { val2 = _IEEE80211_MASKSHIFT(ni->ni_vhtcap, @@ -439,7 +435,7 @@ ieee80211_vht_get_vhtcap_ie(struct ieee80211_node *ni, */ /* TX STBC */ - val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vhtcaps, + val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vht_cap.vht_cap_info, IEEE80211_VHTCAP_TXSTBC); if (opmode == 1) { /* STA mode - enable it only if node RXSTBC is non-zero */ @@ -453,7 +449,7 @@ ieee80211_vht_get_vhtcap_ie(struct ieee80211_node *ni, new_vhtcap |= _IEEE80211_SHIFTMASK(val, IEEE80211_VHTCAP_TXSTBC); /* RX STBC1..4 */ - val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vhtcaps, + val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vht_cap.vht_cap_info, IEEE80211_VHTCAP_RXSTBC_MASK); if (opmode == 1) { /* STA mode - enable it only if node TXSTBC is non-zero */ @@ -484,7 +480,7 @@ ieee80211_vht_get_vhtcap_ie(struct ieee80211_node *ni, */ /* SU Beamformer capable */ - val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vhtcaps, + val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vht_cap.vht_cap_info, IEEE80211_VHTCAP_SU_BEAMFORMER_CAPABLE); if (opmode == 1) { val2 = _IEEE80211_MASKSHIFT(ni->ni_vhtcap, @@ -495,7 +491,7 @@ ieee80211_vht_get_vhtcap_ie(struct ieee80211_node *ni, IEEE80211_VHTCAP_SU_BEAMFORMER_CAPABLE); /* SU Beamformee capable */ - val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vhtcaps, + val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vht_cap.vht_cap_info, IEEE80211_VHTCAP_SU_BEAMFORMEE_CAPABLE); if (opmode == 1) { val2 = _IEEE80211_MASKSHIFT(ni->ni_vhtcap, @@ -506,7 +502,7 @@ ieee80211_vht_get_vhtcap_ie(struct ieee80211_node *ni, IEEE80211_VHTCAP_SU_BEAMFORMEE_CAPABLE); /* Beamformee STS capability - only if SU beamformee capable */ - val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vhtcaps, + val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vht_cap.vht_cap_info, IEEE80211_VHTCAP_BEAMFORMEE_STS_MASK); if (opmode == 1) { val2 = _IEEE80211_MASKSHIFT(ni->ni_vhtcap, @@ -519,7 +515,7 @@ ieee80211_vht_get_vhtcap_ie(struct ieee80211_node *ni, IEEE80211_VHTCAP_BEAMFORMEE_STS_MASK); /* Sounding dimensions - only if SU beamformer capable */ - val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vhtcaps, + val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vht_cap.vht_cap_info, IEEE80211_VHTCAP_SOUNDING_DIMENSIONS_MASK); if (opmode == 1) val2 = _IEEE80211_MASKSHIFT(ni->ni_vhtcap, @@ -534,7 +530,7 @@ ieee80211_vht_get_vhtcap_ie(struct ieee80211_node *ni, * MU Beamformer capable - only if SU BFF capable, MU BFF capable * and STA (not AP) */ - val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vhtcaps, + val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vht_cap.vht_cap_info, IEEE80211_VHTCAP_MU_BEAMFORMER_CAPABLE); if (opmode == 1) val2 = _IEEE80211_MASKSHIFT(ni->ni_vhtcap, @@ -551,7 +547,7 @@ ieee80211_vht_get_vhtcap_ie(struct ieee80211_node *ni, * MU Beamformee capable - only if SU BFE capable, MU BFE capable * and AP (not STA) */ - val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vhtcaps, + val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vht_cap.vht_cap_info, IEEE80211_VHTCAP_MU_BEAMFORMEE_CAPABLE); if (opmode == 1) val2 = _IEEE80211_MASKSHIFT(ni->ni_vhtcap, @@ -565,7 +561,7 @@ ieee80211_vht_get_vhtcap_ie(struct ieee80211_node *ni, IEEE80211_VHTCAP_SU_BEAMFORMEE_CAPABLE); /* VHT TXOP PS */ - val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vhtcaps, + val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vht_cap.vht_cap_info, IEEE80211_VHTCAP_VHT_TXOP_PS); if (opmode == 1) val2 = _IEEE80211_MASKSHIFT(ni->ni_vhtcap, @@ -574,7 +570,7 @@ ieee80211_vht_get_vhtcap_ie(struct ieee80211_node *ni, new_vhtcap |= _IEEE80211_SHIFTMASK(val, IEEE80211_VHTCAP_VHT_TXOP_PS); /* HTC_VHT */ - val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vhtcaps, + val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vht_cap.vht_cap_info, IEEE80211_VHTCAP_HTC_VHT); if (opmode == 1) val2 = _IEEE80211_MASKSHIFT(ni->ni_vhtcap, @@ -584,7 +580,7 @@ ieee80211_vht_get_vhtcap_ie(struct ieee80211_node *ni, /* A-MPDU length max */ /* XXX TODO: we need a userland config knob for this */ - val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vhtcaps, + val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vht_cap.vht_cap_info, IEEE80211_VHTCAP_MAX_A_MPDU_LENGTH_EXPONENT_MASK); if (opmode == 1) val2 = _IEEE80211_MASKSHIFT(ni->ni_vhtcap, @@ -597,7 +593,7 @@ ieee80211_vht_get_vhtcap_ie(struct ieee80211_node *ni, * Link adaptation is only valid if HTC-VHT capable is 1. * Otherwise, always set it to 0. */ - val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vhtcaps, + val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vht_cap.vht_cap_info, IEEE80211_VHTCAP_VHT_LINK_ADAPTATION_VHT_MASK); if (opmode == 1) val2 = _IEEE80211_MASKSHIFT(ni->ni_vhtcap, @@ -614,7 +610,7 @@ ieee80211_vht_get_vhtcap_ie(struct ieee80211_node *ni, */ /* RX antenna pattern */ - val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vhtcaps, + val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vht_cap.vht_cap_info, IEEE80211_VHTCAP_RX_ANTENNA_PATTERN); if (opmode == 1) val2 = _IEEE80211_MASKSHIFT(ni->ni_vhtcap, @@ -624,7 +620,7 @@ ieee80211_vht_get_vhtcap_ie(struct ieee80211_node *ni, IEEE80211_VHTCAP_RX_ANTENNA_PATTERN); /* TX antenna pattern */ - val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vhtcaps, + val2 = val1 = _IEEE80211_MASKSHIFT(vap->iv_vht_cap.vht_cap_info, IEEE80211_VHTCAP_TX_ANTENNA_PATTERN); if (opmode == 1) val2 = _IEEE80211_MASKSHIFT(ni->ni_vhtcap, @@ -640,9 +636,9 @@ ieee80211_vht_get_vhtcap_ie(struct ieee80211_node *ni, */ /* MCS set - start with whatever the device supports */ - vhtcap->supp_mcs.rx_mcs_map = vap->iv_vht_mcsinfo.rx_mcs_map; + vhtcap->supp_mcs.rx_mcs_map = vap->iv_vht_cap.supp_mcs.rx_mcs_map; vhtcap->supp_mcs.rx_highest = 0; - vhtcap->supp_mcs.tx_mcs_map = vap->iv_vht_mcsinfo.tx_mcs_map; + vhtcap->supp_mcs.tx_mcs_map = vap->iv_vht_cap.supp_mcs.tx_mcs_map; vhtcap->supp_mcs.tx_highest = 0; vhtcap->vht_cap_info = new_vhtcap; @@ -681,19 +677,12 @@ ieee80211_vht_get_vhtcap_ie(struct ieee80211_node *ni, uint8_t * ieee80211_add_vhtcap(uint8_t *frm, struct ieee80211_node *ni) { - struct ieee80211_ie_vhtcap vhtcap; - int opmode; + struct ieee80211_vht_cap vhtcap; - opmode = 0; - if (ni->ni_vap->iv_opmode == IEEE80211_M_STA) - opmode = 1; - - ieee80211_vht_get_vhtcap_ie(ni, &vhtcap, opmode); - - memset(frm, '\0', sizeof(struct ieee80211_ie_vhtcap)); + ieee80211_vht_get_vhtcap_ie(ni, &vhtcap, 1); frm[0] = IEEE80211_ELEMID_VHT_CAP; - frm[1] = sizeof(struct ieee80211_ie_vhtcap) - 2; + frm[1] = sizeof(vhtcap); frm += 2; /* 32-bit VHT capability */ @@ -708,6 +697,33 @@ ieee80211_add_vhtcap(uint8_t *frm, struct ieee80211_node *ni) return (frm); } +/* + * Non-associated probe requests. Add VHT capabilities based on + * the current channel configuration. No BSS yet. + */ +uint8_t * +ieee80211_add_vhtcap_ch(uint8_t *frm, struct ieee80211vap *vap, + struct ieee80211_channel *c) +{ + struct ieee80211_vht_cap *vhtcap; + + memset(frm, 0, 2 + sizeof(*vhtcap)); + frm[0] = IEEE80211_ELEMID_VHT_CAP; + frm[1] = sizeof(*vhtcap); + frm += 2; + + /* 32-bit VHT capability */ + ADDWORD(frm, vap->iv_vht_cap.vht_cap_info); + + /* supp_mcs */ + ADDSHORT(frm, vap->iv_vht_cap.supp_mcs.rx_mcs_map); + ADDSHORT(frm, vap->iv_vht_cap.supp_mcs.rx_highest); + ADDSHORT(frm, vap->iv_vht_cap.supp_mcs.tx_mcs_map); + ADDSHORT(frm, vap->iv_vht_cap.supp_mcs.tx_highest); + + return (frm); +} + static uint8_t ieee80211_vht_get_chwidth_ie(struct ieee80211_channel *c) { @@ -749,10 +765,9 @@ ieee80211_vht_get_chwidth_ie(struct ieee80211_channel *c) uint8_t * ieee80211_add_vhtinfo(uint8_t *frm, struct ieee80211_node *ni) { - memset(frm, '\0', sizeof(struct ieee80211_ie_vht_operation)); frm[0] = IEEE80211_ELEMID_VHT_OPMODE; - frm[1] = sizeof(struct ieee80211_ie_vht_operation) - 2; + frm[1] = sizeof(struct ieee80211_vht_operation); frm += 2; /* 8-bit chanwidth */ @@ -797,7 +812,7 @@ ieee80211_vht_adjust_channel(struct ieee80211com *ic, struct ieee80211_channel *c; /* First case - handle channel demotion - if VHT isn't set */ - if ((flags & IEEE80211_FVHT_VHT) == 0) { + if ((flags & IEEE80211_FVHT_MASK) == 0) { #if 0 printf("%s: demoting channel %d/0x%08x\n", __func__, chan->ic_ieee, chan->ic_flags); @@ -819,10 +834,9 @@ ieee80211_vht_adjust_channel(struct ieee80211com *ic, * Note: we don't clear the HT flags, these are the hints * for HT40U/HT40D when selecting VHT40 or larger channels. */ - /* Start with VHT80 */ c = NULL; if ((c == NULL) && (flags & IEEE80211_FVHT_USEVHT160)) - c = findvhtchan(ic, chan, IEEE80211_CHAN_VHT80); + c = findvhtchan(ic, chan, IEEE80211_CHAN_VHT160); if ((c == NULL) && (flags & IEEE80211_FVHT_USEVHT80P80)) c = findvhtchan(ic, chan, IEEE80211_CHAN_VHT80P80); @@ -861,7 +875,7 @@ ieee80211_vht_adjust_channel(struct ieee80211com *ic, */ void ieee80211_vht_get_vhtinfo_ie(struct ieee80211_node *ni, - struct ieee80211_ie_vht_operation *vhtop, int opmode) + struct ieee80211_vht_operation *vhtop, int opmode) { printf("%s: called; TODO!\n", __func__); } diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_vht.h b/src/libs/compat/freebsd_wlan/net80211/ieee80211_vht.h index 321f3d13cd..f2d1706ea0 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_vht.h +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_vht.h @@ -21,8 +21,6 @@ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * $FreeBSD: releng/12.0/sys/net80211/ieee80211_vht.h 311855 2017-01-10 05:30:15Z adrian $ */ #ifndef _NET80211_IEEE80211_VHT_H_ #define _NET80211_IEEE80211_VHT_H_ @@ -52,6 +50,8 @@ void ieee80211_vht_node_leave(struct ieee80211_node *ni); uint8_t * ieee80211_add_vhtcap(uint8_t *frm, struct ieee80211_node *); uint8_t * ieee80211_add_vhtinfo(uint8_t *frm, struct ieee80211_node *); +uint8_t *ieee80211_add_vhtcap_ch(uint8_t *, struct ieee80211vap *, + struct ieee80211_channel *); void ieee80211_vht_update_cap(struct ieee80211_node *, const uint8_t *, const uint8_t *); @@ -61,8 +61,8 @@ struct ieee80211_channel * struct ieee80211_channel *, int); void ieee80211_vht_get_vhtcap_ie(struct ieee80211_node *ni, - struct ieee80211_ie_vhtcap *, int); + struct ieee80211_vht_cap *, int); void ieee80211_vht_get_vhtinfo_ie(struct ieee80211_node *ni, - struct ieee80211_ie_vht_operation *, int); + struct ieee80211_vht_operation *, int); #endif /* _NET80211_IEEE80211_VHT_H_ */ diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_wds.c b/src/libs/compat/freebsd_wlan/net80211/ieee80211_wds.c index 1f90c8a16d..3051eb303c 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_wds.c +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_wds.c @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2007-2008 Sam Leffler, Errno Consulting * All rights reserved. @@ -27,7 +27,6 @@ #include #ifdef __FreeBSD__ -__FBSDID("$FreeBSD: releng/12.0/sys/net80211/ieee80211_wds.c 326272 2017-11-27 15:23:17Z pfg $"); #endif /* @@ -53,6 +52,7 @@ __FBSDID("$FreeBSD: releng/12.0/sys/net80211/ieee80211_wds.c 326272 2017-11-27 1 #include #include #include +#include #include #include @@ -179,8 +179,7 @@ ieee80211_create_wds(struct ieee80211vap *vap, struct ieee80211_channel *chan) /* * Committed to new node, setup state. */ - obss = vap->iv_bss; - vap->iv_bss = ni; + obss = vap->iv_update_bss(vap, ni); ni->ni_wdsvap = vap; } IEEE80211_NODE_UNLOCK(nt); @@ -201,8 +200,7 @@ ieee80211_create_wds(struct ieee80211vap *vap, struct ieee80211_channel *chan) */ ni = ieee80211_node_create_wds(vap, vap->iv_des_bssid, chan); if (ni != NULL) { - obss = vap->iv_bss; - vap->iv_bss = ieee80211_ref_node(ni); + obss = vap->iv_update_bss(vap, ieee80211_ref_node(ni)); ni->ni_flags |= IEEE80211_NODE_AREF; if (obss != NULL) ieee80211_free_node(obss); @@ -259,7 +257,7 @@ ieee80211_dwds_mcast(struct ieee80211vap *vap0, struct mbuf *m) /* * Duplicate the frame and send it. */ - mcopy = m_copypacket(m, M_NOWAIT); + mcopy = m_copypacket(m, IEEE80211_M_NOWAIT); if (mcopy == NULL) { if_inc_counter(ifp, IFCOUNTER_OERRORS, 1); /* XXX stat + msg */ @@ -299,6 +297,7 @@ ieee80211_dwds_mcast(struct ieee80211vap *vap0, struct mbuf *m) continue; } mcopy->m_flags |= M_MCAST; + //MPASS((mcopy->m_pkthdr.csum_flags & CSUM_SND_TAG) == 0); mcopy->m_pkthdr.rcvif = (void *) ni; err = ieee80211_parent_xmitpkt(ic, mcopy); @@ -332,6 +331,7 @@ ieee80211_dwds_discover(struct ieee80211_node *ni, struct mbuf *m) * XXX handle overflow? * XXX per/vap beacon interval? */ + //MPASS((m->m_pkthdr.csum_flags & CSUM_SND_TAG) == 0); m->m_pkthdr.rcvif = (void *)(uintptr_t) ieee80211_mac_hash(ic, ni->ni_macaddr); (void) ieee80211_ageq_append(&ic->ic_stageq, m, @@ -442,7 +442,7 @@ wds_input(struct ieee80211_node *ni, struct mbuf *m, wh = mtod(m, struct ieee80211_frame *); type = IEEE80211_FC0_TYPE_DATA; dir = wh->i_fc[1] & IEEE80211_FC1_DIR_MASK; - subtype = IEEE80211_FC0_SUBTYPE_QOS; + subtype = IEEE80211_FC0_SUBTYPE_QOS_DATA; hdrspace = ieee80211_hdrspace(ic, wh); /* XXX optimize? */ goto resubmit_ampdu; } @@ -556,7 +556,7 @@ wds_input(struct ieee80211_node *ni, struct mbuf *m, * crypto cipher modules used to do delayed update * of replay sequence numbers. */ - if (is_hw_decrypted || wh->i_fc[1] & IEEE80211_FC1_PROTECTED) { + if (is_hw_decrypted || IEEE80211_IS_PROTECTED(wh)) { if ((vap->iv_flags & IEEE80211_F_PRIVACY) == 0) { /* * Discard encrypted frames when privacy is off. @@ -583,7 +583,7 @@ wds_input(struct ieee80211_node *ni, struct mbuf *m, /* * Save QoS bits for use below--before we strip the header. */ - if (subtype == IEEE80211_FC0_SUBTYPE_QOS) + if (subtype == IEEE80211_FC0_SUBTYPE_QOS_DATA) qos = ieee80211_getqos(wh)[0]; else qos = 0; @@ -592,7 +592,7 @@ wds_input(struct ieee80211_node *ni, struct mbuf *m, * Next up, any fragmentation. */ if (!IEEE80211_IS_MULTICAST(wh->i_addr1)) { - m = ieee80211_defrag(ni, m, hdrspace); + m = ieee80211_defrag(ni, m, hdrspace, has_decrypted); if (m == NULL) { /* Fragment dropped or frame not complete yet */ goto out; @@ -619,7 +619,7 @@ wds_input(struct ieee80211_node *ni, struct mbuf *m, /* * Finally, strip the 802.11 header. */ - m = ieee80211_decap(vap, m, hdrspace); + m = ieee80211_decap(vap, m, hdrspace, qos); if (m == NULL) { /* XXX mask bit to check for both */ /* don't count Null data frames as errors */ @@ -632,7 +632,10 @@ wds_input(struct ieee80211_node *ni, struct mbuf *m, IEEE80211_NODE_STAT(ni, rx_decap); goto err; } - eh = mtod(m, struct ether_header *); + if (!(qos & IEEE80211_QOS_AMSDU)) + eh = mtod(m, struct ether_header *); + else + eh = NULL; if (!ieee80211_node_is_authorized(ni)) { /* * Deny any non-PAE frames received prior to @@ -642,11 +645,13 @@ wds_input(struct ieee80211_node *ni, struct mbuf *m, * the port is not marked authorized by the * authenticator until the handshake has completed. */ - if (eh->ether_type != htons(ETHERTYPE_PAE)) { + if (eh == NULL || + eh->ether_type != htons(ETHERTYPE_PAE)) { IEEE80211_DISCARD_MAC(vap, IEEE80211_MSG_INPUT, - eh->ether_shost, "data", - "unauthorized port: ether type 0x%x len %u", - eh->ether_type, m->m_pkthdr.len); + ni->ni_macaddr, "data", "unauthorized or " + "unknown port: ether type 0x%x len %u", + eh == NULL ? -1 : eh->ether_type, + m->m_pkthdr.len); vap->iv_stats.is_rx_unauth++; IEEE80211_NODE_STAT(ni, rx_unauth); goto err; @@ -659,7 +664,8 @@ wds_input(struct ieee80211_node *ni, struct mbuf *m, if ((vap->iv_flags & IEEE80211_F_DROPUNENC) && ((has_decrypted == 0) && (m->m_flags & M_WEP) == 0) && (is_hw_decrypted == 0) && - eh->ether_type != htons(ETHERTYPE_PAE)) { + (eh == NULL || + eh->ether_type != htons(ETHERTYPE_PAE))) { /* * Drop unencrypted frames. */ @@ -706,7 +712,7 @@ wds_input(struct ieee80211_node *ni, struct mbuf *m, ether_sprintf(wh->i_addr2), rssi); } #endif - if (wh->i_fc[1] & IEEE80211_FC1_PROTECTED) { + if (IEEE80211_IS_PROTECTED(wh)) { IEEE80211_DISCARD(vap, IEEE80211_MSG_INPUT, wh, NULL, "%s", "WEP set but not permitted"); vap->iv_stats.is_rx_mgtdiscard++; /* XXX */ diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_wds.h b/src/libs/compat/freebsd_wlan/net80211/ieee80211_wds.h index 7379bb82ef..dcfd0a0ba2 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_wds.h +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_wds.h @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2007-2008 Sam Leffler, Errno Consulting * All rights reserved. @@ -23,8 +23,6 @@ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * $FreeBSD: releng/12.0/sys/net80211/ieee80211_wds.h 326272 2017-11-27 15:23:17Z pfg $ */ #ifndef _NET80211_IEEE80211_WDS_H_ #define _NET80211_IEEE80211_WDS_H_ diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_wps.h b/src/libs/compat/freebsd_wlan/net80211/ieee80211_wps.h index 32cc667e90..48d05cf2ff 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_wps.h +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_wps.h @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2017 J.R. Oldroyd, Open Advisors Limited * All rights reserved. @@ -23,8 +23,6 @@ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * $FreeBSD$ */ #ifndef _NET80211_IEEE80211_WPS_H_ #define _NET80211_IEEE80211_WPS_H_ diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_xauth.c b/src/libs/compat/freebsd_wlan/net80211/ieee80211_xauth.c index 916f17b03f..4b89108c08 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_xauth.c +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_xauth.c @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2004 Video54 Technologies, Inc. * Copyright (c) 2004-2008 Sam Leffler, Errno Consulting @@ -27,8 +27,6 @@ */ #include -__FBSDID("$FreeBSD: releng/12.0/sys/net80211/ieee80211_xauth.c 326272 2017-11-27 15:23:17Z pfg $"); - /* * External authenticator placeholder module. * @@ -45,9 +43,9 @@ __FBSDID("$FreeBSD: releng/12.0/sys/net80211/ieee80211_xauth.c 326272 2017-11-27 #include #include -#include -#include -#include +#include +#include +#include #include #include