if_iwm_phy_ctxt.c (330167) | if_iwm_phy_ctxt.c (330202) |
---|---|
1/* $OpenBSD: if_iwm.c,v 1.39 2015/03/23 00:35:19 jsg Exp $ */ 2 3/* 4 * Copyright (c) 2014 genua mbh <info@genua.de> 5 * Copyright (c) 2014 Fixup Software Ltd. 6 * 7 * Permission to use, copy, modify, and distribute this software for any 8 * purpose with or without fee is hereby granted, provided that the above --- 89 unchanged lines hidden (view full) --- 98 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 99 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 100 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 101 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 102 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 103 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 104 */ 105#include <sys/cdefs.h> | 1/* $OpenBSD: if_iwm.c,v 1.39 2015/03/23 00:35:19 jsg Exp $ */ 2 3/* 4 * Copyright (c) 2014 genua mbh <info@genua.de> 5 * Copyright (c) 2014 Fixup Software Ltd. 6 * 7 * Permission to use, copy, modify, and distribute this software for any 8 * purpose with or without fee is hereby granted, provided that the above --- 89 unchanged lines hidden (view full) --- 98 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 99 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 100 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 101 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 102 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 103 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 104 */ 105#include <sys/cdefs.h> |
106__FBSDID("$FreeBSD: stable/11/sys/dev/iwm/if_iwm_phy_ctxt.c 330167 2018-03-01 05:44:16Z eadler $"); | 106__FBSDID("$FreeBSD: stable/11/sys/dev/iwm/if_iwm_phy_ctxt.c 330202 2018-03-01 06:34:48Z eadler $"); |
107 108#include "opt_wlan.h" 109 110#include <sys/param.h> 111#include <sys/bus.h> 112#include <sys/conf.h> 113#include <sys/endian.h> 114#include <sys/firmware.h> --- 97 unchanged lines hidden (view full) --- 212 cmd->ci.channel = ieee80211_chan2ieee(ic, chan); 213 cmd->ci.width = IWM_PHY_VHT_CHANNEL_MODE20; 214 cmd->ci.ctrl_pos = IWM_PHY_VHT_CTRL_POS_1_BELOW; 215 216 /* Set rx the chains */ 217 idle_cnt = chains_static; 218 active_cnt = chains_dynamic; 219 | 107 108#include "opt_wlan.h" 109 110#include <sys/param.h> 111#include <sys/bus.h> 112#include <sys/conf.h> 113#include <sys/endian.h> 114#include <sys/firmware.h> --- 97 unchanged lines hidden (view full) --- 212 cmd->ci.channel = ieee80211_chan2ieee(ic, chan); 213 cmd->ci.width = IWM_PHY_VHT_CHANNEL_MODE20; 214 cmd->ci.ctrl_pos = IWM_PHY_VHT_CTRL_POS_1_BELOW; 215 216 /* Set rx the chains */ 217 idle_cnt = chains_static; 218 active_cnt = chains_dynamic; 219 |
220 /* In scenarios where we only ever use a single-stream rates, 221 * i.e. legacy 11b/g/a associations, single-stream APs or even 222 * static SMPS, enable both chains to get diversity, improving 223 * the case where we're far enough from the AP that attenuation 224 * between the two antennas is sufficiently different to impact 225 * performance. 226 */ 227 if (active_cnt == 1 && iwm_mvm_rx_diversity_allowed(sc)) { 228 idle_cnt = 2; 229 active_cnt = 2; 230 } 231 |
|
220 cmd->rxchain_info = htole32(iwm_mvm_get_valid_rx_ant(sc) << 221 IWM_PHY_RX_CHAIN_VALID_POS); 222 cmd->rxchain_info |= htole32(idle_cnt << IWM_PHY_RX_CHAIN_CNT_POS); 223 cmd->rxchain_info |= htole32(active_cnt << 224 IWM_PHY_RX_CHAIN_MIMO_CNT_POS); 225 226 cmd->txchain_info = htole32(iwm_mvm_get_valid_tx_ant(sc)); 227} --- 80 unchanged lines hidden --- | 232 cmd->rxchain_info = htole32(iwm_mvm_get_valid_rx_ant(sc) << 233 IWM_PHY_RX_CHAIN_VALID_POS); 234 cmd->rxchain_info |= htole32(idle_cnt << IWM_PHY_RX_CHAIN_CNT_POS); 235 cmd->rxchain_info |= htole32(active_cnt << 236 IWM_PHY_RX_CHAIN_MIMO_CNT_POS); 237 238 cmd->txchain_info = htole32(iwm_mvm_get_valid_tx_ant(sc)); 239} --- 80 unchanged lines hidden --- |