Lines Matching +full:4 +full:- +full:bit
1 /* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
3 * Copyright (C) 2012-2014, 2018-2022, 2024-2025 Intel Corporation
14 * enum iwl_tlc_mng_cfg_flags - options for TLC config flags
29 IWL_TLC_MNG_CFG_FLAGS_STBC_MSK = BIT(0),
30 IWL_TLC_MNG_CFG_FLAGS_LDPC_MSK = BIT(1),
31 IWL_TLC_MNG_CFG_FLAGS_HE_STBC_160MHZ_MSK = BIT(2),
32 IWL_TLC_MNG_CFG_FLAGS_HE_DCM_NSS_1_MSK = BIT(3),
33 IWL_TLC_MNG_CFG_FLAGS_HE_DCM_NSS_2_MSK = BIT(4),
34 IWL_TLC_MNG_CFG_FLAGS_EHT_EXTRA_LTF_MSK = BIT(6),
38 * enum iwl_tlc_mng_cfg_cw - channel width options
54 * enum iwl_tlc_mng_cfg_chains - possible chains
59 IWL_TLC_MNG_CHAIN_A_MSK = BIT(0),
60 IWL_TLC_MNG_CHAIN_B_MSK = BIT(1),
64 * enum iwl_tlc_mng_cfg_mode - supported modes
84 * enum iwl_tlc_mng_ht_rates - HT/VHT/HE rates
122 * enum IWL_TLC_MCS_PER_BW - mcs index per BW
123 * @IWL_TLC_MCS_PER_BW_80: mcs for bw - 20Hhz, 40Hhz, 80Hhz
124 * @IWL_TLC_MCS_PER_BW_160: mcs for bw - 160Mhz
125 * @IWL_TLC_MCS_PER_BW_320: mcs for bw - 320Mhz
127 * @IWL_TLC_MCS_PER_BW_NUM_V4: number of entries from version 4
138 * struct iwl_tlc_config_cmd_v3 - TLC configuration
148 * <nss, channel-width> pair (0 - 80mhz width and below, 1 - 160mhz).
151 * use BIT(@enum iwl_tlc_mng_cfg_cw)
173 * struct iwl_tlc_config_cmd_v4 - TLC configuration
180 * use BIT(&enum iwl_tlc_mng_cfg_cw)
183 * @ht_rates: bitmap of &enum iwl_tlc_mng_ht_rates, per <nss, channel-width>
184 * pair (0 - 80mhz width and below, 1 - 160mhz, 2 - 320mhz).
204 * enum iwl_tlc_update_flags - updated fields
209 IWL_TLC_NOTIF_FLAG_RATE = BIT(0),
210 IWL_TLC_NOTIF_FLAG_AMSDU = BIT(1),
214 * struct iwl_tlc_update_notif - TLC notification from FW
221 * @amsdu_enabled: bitmap for per-TID AMSDU enablement
233 * enum iwl_tlc_debug_types - debug options
272 * struct iwl_dhc_tlc_cmd - fixed debug config
273 * @sta_id: bit 0 - enable/disable, bits 1 - 7 hold station id
338 #define IWL_RATE_BIT_MSK(r) BIT(IWL_RATE_##r##M_INDEX)
340 /* fw API values for legacy bit rates, both OFDM and CCK */
354 IWL_RATE_INVM_PLCP = -1,
358 * rate_n_flags bit fields version 1
360 * The 32-bit value has different layouts in the low 8 bites depending on the
364 * High-throughput (HT) rate format
365 * bit 8 is 1, bit 26 is 0, bit 9 is 0 (OFDM)
366 * Very High-throughput (VHT) rate format
367 * bit 8 is 0, bit 26 is 1, bit 9 is 0 (OFDM)
369 * bit 8 is 0, bit 26 is 0, bit 9 is 0 (OFDM)
371 * bit 8 is 0, bit 26 is 0, bit 9 is 1 (CCK)
374 /* Bit 8: (1) HT format, (0) legacy or VHT format */
376 #define RATE_MCS_HT_MSK_V1 BIT(RATE_MCS_HT_POS)
378 /* Bit 9: (1) CCK, (0) OFDM. HT (bit 8) must be "0" for this bit to be valid */
380 #define RATE_MCS_CCK_MSK_V1 BIT(RATE_MCS_CCK_POS_V1)
382 /* Bit 26: (1) VHT format, (0) legacy format in bits 8:0 */
384 #define RATE_MCS_VHT_MSK_V1 BIT(RATE_MCS_VHT_POS_V1)
388 * High-throughput (HT) rate format for bits 7:0
390 * 2-0: MCS rate base
395 * 4) 36 Mbps
399 * 4-3: 0) Single stream (SISO)
403 * (bits 7-6 are zero)
406 * support MCSes above 15/23, and 0-7 have one stream, 8-15 have two
407 * streams and 16-23 have three streams. We could also support MCS 32
408 * which is the duplicate 20 MHz MCS (bit 5 set, all others zero.)
413 #define RATE_HT_MCS_MIMO2_MSK BIT(RATE_HT_MCS_NSS_POS_V1)
415 /* Bit 10: (1) Use Green Field preamble */
422 * Very High-throughput (VHT) rate format for bits 7:0
424 * 3-0: VHT MCS (0-9)
425 * 5-4: number of streams - 1:
431 /* Bit 4-5: (0) SISO, (1) MIMO2 (2) MIMO3 */
438 * 3-0: 0xD) 6 Mbps
446 * (bits 7-4 are 0)
449 * bit 8 is 0, bit 26 is 0, bit 9 is 1 (CCK):
451 * 6-0: 10) 1 Mbps
455 * (bit 7 is 0)
459 /* Bit 10 - OFDM HE */
461 #define RATE_MCS_HE_MSK_V1 BIT(RATE_MCS_HE_POS_V1)
464 * Bit 11-12: (0) 20MHz, (1) 40MHz, (2) 80MHz, (3) 160MHz
470 /* Bit 13: (1) Short guard interval (0.4 usec), (0) normal GI (0.8 usec) */
472 #define RATE_MCS_SGI_MSK_V1 BIT(RATE_MCS_SGI_POS_V1)
474 /* Bit 14-16: Antenna selection (1) Ant A, (2) Ant B, (4) Ant C */
482 /* Bit 17: (0) SS, (1) SS*2 */
484 #define RATE_MCS_STBC_MSK BIT(RATE_MCS_STBC_POS)
486 /* Bit 18: OFDM-HE dual carrier mode */
488 #define RATE_HE_DUAL_CARRIER_MODE_MSK BIT(RATE_HE_DUAL_CARRIER_MODE)
490 /* Bit 19: (0) Beamforming is off, (1) Beamforming is on */
495 * Bit 20-21: HE LTF type and guard interval
500 * 3 & SGI (bit 13) clear 4xLTF+3.2us
501 * 3 & SGI (bit 13) set 4xLTF+0.8us
503 * 0 4xLTF+0.8us
506 * 3 4xLTF+3.2us
507 * HE-EHT TRIG:
510 * 2 4xLTF+3.2us
515 * 2 4xLTF+0.8us
516 * 3 4xLTF+3.2us
521 /* Bit 22-23: HE type. (0) SU, (1) SU_EXT, (2) MU, (3) trigger based */
524 #define RATE_MCS_HE_TYPE_EXT_SU_V1 BIT(RATE_MCS_HE_TYPE_POS_V1)
529 /* Bit 24-25: (0) 20MHz (no dup), (1) 2x20MHz, (2) 4x20MHz, 3 8x20MHz */
533 /* Bit 27: (1) LDPC enabled, (0) LDPC disabled */
535 #define RATE_MCS_LDPC_MSK_V1 BIT(RATE_MCS_LDPC_POS_V1)
537 /* Bit 28: (1) 106-tone RX (8 MHz RU), (0) normal bandwidth */
539 #define RATE_MCS_HE_106T_MSK_V1 BIT(RATE_MCS_HE_106T_POS_V1)
541 /* Bit 30-31: (1) RTS, (2) CTS */
548 /* rate_n_flags bit field version 2 and 3
550 * The 32-bit value has different layouts in the low 8 bits depending on the
556 /* Bits 10-8: rate format
557 * (0) Legacy CCK (1) Legacy OFDM (2) High-throughput (HT)
558 * (3) Very High-throughput (VHT) (4) High-efficiency (HE)
559 * (5) Extremely High-throughput (EHT)
568 #define RATE_MCS_MOD_TYPE_HE (4 << RATE_MCS_MOD_TYPE_POS)
586 * (4) 24 Mbps
597 * 3-0: MCS
598 * 4: NSS==2 indicator
600 * 4-0: MCS
610 /* Bits 7-5: reserved */
613 * Bits 13-11: (0) 20MHz, (1) 40MHz, (2) 80MHz, (3) 160MHz, (4) 320MHz
624 #define RATE_MCS_CHAN_WIDTH_320_VAL 4
627 /* Bit 15-14: Antenna selection:
628 * Bit 14: Ant A active
629 * Bit 15: Ant B active
634 /* Bit 16 (1) LDPC enables, (0) LDPC disabled */
638 /* Bit 17: (0) SS, (1) SS*2 (same as v1) */
640 /* Bit 18: OFDM-HE dual carrier mode (same as v1) */
642 /* Bit 19: (0) Beamforming is off, (1) Beamforming is on (same as v1) */
645 * Bit 22-20: HE LTF type and guard interval
656 * 3 4xLTF+3.2us
657 * 4 4xLTF+0.8us
659 * 0 4xLTF+0.8us
662 * 3 4xLTF+3.2us
666 * 2 4xLTF+3.2us
672 #define RATE_MCS_HE_SU_4_LTF_08_GI 4
674 /* Bit 24-23: HE type. (0) SU, (1) SU_EXT, (2) MU, (3) trigger based */
682 /* Bit 25: duplicate channel enabled
684 * if this bit is set, duplicate is according to BW (bits 11-13):
687 * OFDM Legacy: N x 20Mhz, (N = BW \ 2 , either 2, 4, 8, 16)
688 * EHT: 2 x BW/2, (80 - 2x40, 160 - 2x80, 320 - 2x160)
693 /* Bit 26: (1) 106-tone RX (8 MHz RU), (0) normal bandwidth */
697 /* Bit 27: EHT extra LTF:
699 * instead of 2 LTFs for NSTS=2 use 4 LTFs*/
703 /* Bit 31-28: reserved */
710 /* Link quality command flags bit fields */
712 /* Bit 0: (0) Don't use RTS (1) Use RTS */
716 /* Bit 1-3: LQ command color. Used to match responses to LQ commands */
725 /* Bit 4-5: Tx RTS BW Signalling
730 #define LQ_FLAG_RTS_BW_SIG_POS 4
735 /* Bit 6: (0) No dynamic BW selection (1) Allow dynamic BW selection
741 /* Single Stream Tx Parameters (lq_cmd->ss_params)
746 /* Bit 0-1: Max STBC streams allowed. Can be 0-3.
747 * (0) - No STBC allowed
748 * (1) - 2x1 STBC allowed (HT/VHT)
749 * (2) - 4x2 STBC allowed (HT/VHT)
750 * (3) - 3x2 STBC allowed (HT only)
759 /* Bit 2: Beamformer (VHT only) is allowed */
763 /* Bit 3: Force BFER or STBC for testing
771 /* Bit 31: ss_params field is valid. Used for FW backward compatibility
778 * struct iwl_lq_cmd - link quality command
791 * @agg_disable_start_th: try-count threshold for starting aggregation.
792 * If a frame has higher try-count, it should not be selected for
797 * 2 - 0x3f: maximal number of frames (up to 3f == 63)