Lines Matching +full:rates +full:- +full:mcs

1 // SPDX-License-Identifier: GPL-2.0-only
5 * Copyright (C) 2024-2025 Intel Corporation
53 .extra_supp_rate = 0x80 | (BSS_MEMBERSHIP_SELECTOR_MIN - 1),
58 .userspace_selector = BSS_MEMBERSHIP_SELECTOR_MIN - 1,
59 .extra_supp_rate = 0x80 | (BSS_MEMBERSHIP_SELECTOR_MIN - 1),
66 .mcs.rx_mask[0] = 0xf7,
72 /* Only one RX stream at MCS 0-7 */
85 /* Only one TX stream at MCS 0-7 */
102 .desc = "all zero VHT basic rates are ignored (many APs broken)",
114 .desc = "all zero HE basic rates are ignored (iPhone workaround)",
120 .desc = "AP requires too many RX streams with EHT MCS 7",
125 .desc = "AP requires too many TX streams with EHT MCS 7",
130 .desc = "AP requires too many RX streams with EHT MCS 7 and EHT is required",
149 const struct determine_chan_mode_case *params = test->param_value; in KUNIT_ARRAY_PARAM_DESC()
152 .mode = params->conn_mode, in KUNIT_ARRAY_PARAM_DESC()
153 .bw_limit = params->conn_bw_limit, in KUNIT_ARRAY_PARAM_DESC()
156 .channel = &t_sdata->band_5ghz.channels[0], in KUNIT_ARRAY_PARAM_DESC()
160 /* Supported Rates */ in KUNIT_ARRAY_PARAM_DESC()
163 /* Extended Supported Rates */ in KUNIT_ARRAY_PARAM_DESC()
165 0x30, 0x48, 0x60, 0x6c, params->extra_supp_rate, in KUNIT_ARRAY_PARAM_DESC()
184 params->vht_basic_mcs_1_4_set ? in KUNIT_ARRAY_PARAM_DESC()
185 params->vht_basic_mcs_1_4 : in KUNIT_ARRAY_PARAM_DESC()
186 le16_get_bits(t_sdata->band_5ghz.vht_cap.vht_mcs.rx_mcs_map, 0xff), in KUNIT_ARRAY_PARAM_DESC()
187 params->vht_basic_mcs_5_8_set ? in KUNIT_ARRAY_PARAM_DESC()
188 params->vht_basic_mcs_5_8 : in KUNIT_ARRAY_PARAM_DESC()
189 le16_get_bits(t_sdata->band_5ghz.vht_cap.vht_mcs.rx_mcs_map, 0xff00), in KUNIT_ARRAY_PARAM_DESC()
198 params->he_basic_mcs_1_4_set ? params->he_basic_mcs_1_4 : 0xfc, in KUNIT_ARRAY_PARAM_DESC()
199 params->he_basic_mcs_5_8_set ? params->he_basic_mcs_5_8 : 0xff, in KUNIT_ARRAY_PARAM_DESC()
207 0x03, params->eht_mcs7_min_nss ? params->eht_mcs7_min_nss : 0x11, in KUNIT_ARRAY_PARAM_DESC()
208 0x00, 0x00, 0x00, params->eht_bw, in KUNIT_ARRAY_PARAM_DESC()
209 params->eht_bw == IEEE80211_EHT_OPER_CHAN_WIDTH_80MHZ ? 42 : 36, in KUNIT_ARRAY_PARAM_DESC()
211 u16_get_bits(params->eht_disabled_subchannels, 0xff), in KUNIT_ARRAY_PARAM_DESC()
212 u16_get_bits(params->eht_disabled_subchannels, 0xff00), in KUNIT_ARRAY_PARAM_DESC()
219 set_bit(IEEE80211_HW_DISALLOW_PUNCTURING, t_sdata->local.hw.flags); in KUNIT_ARRAY_PARAM_DESC()
221 if (params->strict) in KUNIT_ARRAY_PARAM_DESC()
222 set_bit(IEEE80211_HW_STRICT, t_sdata->local.hw.flags); in KUNIT_ARRAY_PARAM_DESC()
224 clear_bit(IEEE80211_HW_STRICT, t_sdata->local.hw.flags); in KUNIT_ARRAY_PARAM_DESC()
226 t_sdata->sdata->u.mgd.ht_capa_mask = params->ht_capa_mask; in KUNIT_ARRAY_PARAM_DESC()
227 t_sdata->sdata->u.mgd.vht_capa = params->vht_capa; in KUNIT_ARRAY_PARAM_DESC()
228 t_sdata->sdata->u.mgd.vht_capa_mask = params->vht_capa_mask; in KUNIT_ARRAY_PARAM_DESC()
230 if (params->userspace_selector) in KUNIT_ARRAY_PARAM_DESC()
231 set_bit(params->userspace_selector, userspace_selectors); in KUNIT_ARRAY_PARAM_DESC()
238 ((struct cfg80211_bss_ies *)rcu_access_pointer(cbss.ies))->len = sizeof(bss_ies); in KUNIT_ARRAY_PARAM_DESC()
240 memcpy((void *)rcu_access_pointer(cbss.ies)->data, bss_ies, in KUNIT_ARRAY_PARAM_DESC()
244 elems = ieee80211_determine_chan_mode(t_sdata->sdata, &conn, &cbss, in KUNIT_ARRAY_PARAM_DESC()
253 if (params->error) { in KUNIT_ARRAY_PARAM_DESC()
255 KUNIT_ASSERT_EQ(test, PTR_ERR(elems), -params->error); in KUNIT_ARRAY_PARAM_DESC()
258 KUNIT_ASSERT_EQ(test, conn.mode, params->expected_mode); in KUNIT_ARRAY_PARAM_DESC()
259 KUNIT_ASSERT_EQ(test, conn.bw_limit, params->expected_bw_limit); in KUNIT_ARRAY_PARAM_DESC()
270 .name = "mac80211-mlme-chan-mode",