Deleted Added
full compact
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 ---