0001
0002
0003
0004
0005
0006
0007 #ifndef __iwl_fw_api_phy_ctxt_h__
0008 #define __iwl_fw_api_phy_ctxt_h__
0009
0010
0011 #define PHY_BAND_5 (0)
0012 #define PHY_BAND_24 (1)
0013 #define PHY_BAND_6 (2)
0014
0015
0016 #define PHY_VHT_CHANNEL_MODE20 (0x0)
0017 #define PHY_VHT_CHANNEL_MODE40 (0x1)
0018 #define PHY_VHT_CHANNEL_MODE80 (0x2)
0019 #define PHY_VHT_CHANNEL_MODE160 (0x3)
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033 #define PHY_VHT_CTRL_POS_1_BELOW (0x0)
0034 #define PHY_VHT_CTRL_POS_2_BELOW (0x1)
0035 #define PHY_VHT_CTRL_POS_3_BELOW (0x2)
0036 #define PHY_VHT_CTRL_POS_4_BELOW (0x3)
0037 #define PHY_VHT_CTRL_POS_1_ABOVE (0x4)
0038 #define PHY_VHT_CTRL_POS_2_ABOVE (0x5)
0039 #define PHY_VHT_CTRL_POS_3_ABOVE (0x6)
0040 #define PHY_VHT_CTRL_POS_4_ABOVE (0x7)
0041
0042
0043
0044
0045
0046
0047
0048
0049
0050 struct iwl_fw_channel_info_v1 {
0051 u8 band;
0052 u8 channel;
0053 u8 width;
0054 u8 ctrl_pos;
0055 } __packed;
0056
0057
0058
0059
0060
0061
0062
0063
0064
0065
0066 struct iwl_fw_channel_info {
0067 __le32 channel;
0068 u8 band;
0069 u8 width;
0070 u8 ctrl_pos;
0071 u8 reserved;
0072 } __packed;
0073
0074 #define PHY_RX_CHAIN_DRIVER_FORCE_POS (0)
0075 #define PHY_RX_CHAIN_DRIVER_FORCE_MSK \
0076 (0x1 << PHY_RX_CHAIN_DRIVER_FORCE_POS)
0077 #define PHY_RX_CHAIN_VALID_POS (1)
0078 #define PHY_RX_CHAIN_VALID_MSK \
0079 (0x7 << PHY_RX_CHAIN_VALID_POS)
0080 #define PHY_RX_CHAIN_FORCE_SEL_POS (4)
0081 #define PHY_RX_CHAIN_FORCE_SEL_MSK \
0082 (0x7 << PHY_RX_CHAIN_FORCE_SEL_POS)
0083 #define PHY_RX_CHAIN_FORCE_MIMO_SEL_POS (7)
0084 #define PHY_RX_CHAIN_FORCE_MIMO_SEL_MSK \
0085 (0x7 << PHY_RX_CHAIN_FORCE_MIMO_SEL_POS)
0086 #define PHY_RX_CHAIN_CNT_POS (10)
0087 #define PHY_RX_CHAIN_CNT_MSK \
0088 (0x3 << PHY_RX_CHAIN_CNT_POS)
0089 #define PHY_RX_CHAIN_MIMO_CNT_POS (12)
0090 #define PHY_RX_CHAIN_MIMO_CNT_MSK \
0091 (0x3 << PHY_RX_CHAIN_MIMO_CNT_POS)
0092 #define PHY_RX_CHAIN_MIMO_FORCE_POS (14)
0093 #define PHY_RX_CHAIN_MIMO_FORCE_MSK \
0094 (0x1 << PHY_RX_CHAIN_MIMO_FORCE_POS)
0095
0096
0097 #define NUM_PHY_CTX 3
0098
0099
0100
0101
0102
0103
0104
0105
0106
0107
0108
0109 struct iwl_phy_context_cmd_tail {
0110 __le32 txchain_info;
0111 __le32 rxchain_info;
0112 __le32 acquisition_data;
0113 __le32 dsp_cfg_flags;
0114 } __packed;
0115
0116
0117
0118
0119
0120
0121
0122
0123
0124
0125
0126
0127 struct iwl_phy_context_cmd_v1 {
0128
0129 __le32 id_and_color;
0130 __le32 action;
0131
0132 __le32 apply_time;
0133 __le32 tx_param_color;
0134 struct iwl_fw_channel_info ci;
0135 struct iwl_phy_context_cmd_tail tail;
0136 } __packed;
0137
0138
0139
0140
0141
0142
0143
0144
0145
0146
0147
0148
0149 struct iwl_phy_context_cmd {
0150
0151 __le32 id_and_color;
0152 __le32 action;
0153
0154 struct iwl_fw_channel_info ci;
0155 __le32 lmac_id;
0156 __le32 rxchain_info;
0157 __le32 dsp_cfg_flags;
0158 __le32 reserved;
0159 } __packed;
0160
0161 #endif