| .. | .. |
|---|
| 5 | 5 | * |
|---|
| 6 | 6 | * GPL LICENSE SUMMARY |
|---|
| 7 | 7 | * |
|---|
| 8 | | - * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
|---|
| 9 | 8 | * Copyright(c) 2013 - 2015 Intel Mobile Communications GmbH |
|---|
| 10 | 9 | * Copyright(c) 2016 - 2017 Intel Deutschland GmbH |
|---|
| 10 | + * Copyright(c) 2012 - 2014, 2018, 2020 Intel Corporation |
|---|
| 11 | 11 | * |
|---|
| 12 | 12 | * This program is free software; you can redistribute it and/or modify |
|---|
| 13 | 13 | * it under the terms of version 2 of the GNU General Public License as |
|---|
| .. | .. |
|---|
| 27 | 27 | * |
|---|
| 28 | 28 | * BSD LICENSE |
|---|
| 29 | 29 | * |
|---|
| 30 | | - * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
|---|
| 31 | 30 | * Copyright(c) 2013 - 2015 Intel Mobile Communications GmbH |
|---|
| 32 | 31 | * Copyright(c) 2016 - 2017 Intel Deutschland GmbH |
|---|
| 32 | + * Copyright(c) 2012 - 2014, 2018, 2020 Intel Corporation |
|---|
| 33 | 33 | * All rights reserved. |
|---|
| 34 | 34 | * |
|---|
| 35 | 35 | * Redistribution and use in source and binary forms, with or without |
|---|
| .. | .. |
|---|
| 95 | 95 | #define PHY_VHT_CTRL_POS_4_ABOVE (0x7) |
|---|
| 96 | 96 | |
|---|
| 97 | 97 | /* |
|---|
| 98 | + * struct iwl_fw_channel_info_v1 - channel information |
|---|
| 99 | + * |
|---|
| 98 | 100 | * @band: PHY_BAND_* |
|---|
| 99 | 101 | * @channel: channel number |
|---|
| 100 | 102 | * @width: PHY_[VHT|LEGACY]_CHANNEL_* |
|---|
| 101 | 103 | * @ctrl channel: PHY_[VHT|LEGACY]_CTRL_* |
|---|
| 102 | 104 | */ |
|---|
| 103 | | -struct iwl_fw_channel_info { |
|---|
| 105 | +struct iwl_fw_channel_info_v1 { |
|---|
| 104 | 106 | u8 band; |
|---|
| 105 | 107 | u8 channel; |
|---|
| 106 | 108 | u8 width; |
|---|
| 107 | 109 | u8 ctrl_pos; |
|---|
| 108 | | -} __packed; |
|---|
| 110 | +} __packed; /* CHANNEL_CONFIG_API_S_VER_1 */ |
|---|
| 111 | + |
|---|
| 112 | +/* |
|---|
| 113 | + * struct iwl_fw_channel_info - channel information |
|---|
| 114 | + * |
|---|
| 115 | + * @channel: channel number |
|---|
| 116 | + * @band: PHY_BAND_* |
|---|
| 117 | + * @width: PHY_[VHT|LEGACY]_CHANNEL_* |
|---|
| 118 | + * @ctrl channel: PHY_[VHT|LEGACY]_CTRL_* |
|---|
| 119 | + * @reserved: for future use and alignment |
|---|
| 120 | + */ |
|---|
| 121 | +struct iwl_fw_channel_info { |
|---|
| 122 | + __le32 channel; |
|---|
| 123 | + u8 band; |
|---|
| 124 | + u8 width; |
|---|
| 125 | + u8 ctrl_pos; |
|---|
| 126 | + u8 reserved; |
|---|
| 127 | +} __packed; /*CHANNEL_CONFIG_API_S_VER_2 */ |
|---|
| 109 | 128 | |
|---|
| 110 | 129 | #define PHY_RX_CHAIN_DRIVER_FORCE_POS (0) |
|---|
| 111 | 130 | #define PHY_RX_CHAIN_DRIVER_FORCE_MSK \ |
|---|
| .. | .. |
|---|
| 134 | 153 | |
|---|
| 135 | 154 | /* TODO: complete missing documentation */ |
|---|
| 136 | 155 | /** |
|---|
| 156 | + * struct iwl_phy_context_cmd_tail - tail of iwl_phy_ctx_cmd for alignment with |
|---|
| 157 | + * various channel structures. |
|---|
| 158 | + * |
|---|
| 159 | + * @txchain_info: ??? |
|---|
| 160 | + * @rxchain_info: ??? |
|---|
| 161 | + * @acquisition_data: ??? |
|---|
| 162 | + * @dsp_cfg_flags: set to 0 |
|---|
| 163 | + */ |
|---|
| 164 | +struct iwl_phy_context_cmd_tail { |
|---|
| 165 | + __le32 txchain_info; |
|---|
| 166 | + __le32 rxchain_info; |
|---|
| 167 | + __le32 acquisition_data; |
|---|
| 168 | + __le32 dsp_cfg_flags; |
|---|
| 169 | +} __packed; |
|---|
| 170 | + |
|---|
| 171 | +/** |
|---|
| 137 | 172 | * struct iwl_phy_context_cmd - config of the PHY context |
|---|
| 138 | 173 | * ( PHY_CONTEXT_CMD = 0x8 ) |
|---|
| 139 | 174 | * @id_and_color: ID and color of the relevant Binding |
|---|
| .. | .. |
|---|
| 142 | 177 | * other value means apply new params after X usecs |
|---|
| 143 | 178 | * @tx_param_color: ??? |
|---|
| 144 | 179 | * @ci: channel info |
|---|
| 145 | | - * @txchain_info: ??? |
|---|
| 180 | + * @tail: command tail |
|---|
| 181 | + */ |
|---|
| 182 | +struct iwl_phy_context_cmd_v1 { |
|---|
| 183 | + /* COMMON_INDEX_HDR_API_S_VER_1 */ |
|---|
| 184 | + __le32 id_and_color; |
|---|
| 185 | + __le32 action; |
|---|
| 186 | + /* PHY_CONTEXT_DATA_API_S_VER_3 */ |
|---|
| 187 | + __le32 apply_time; |
|---|
| 188 | + __le32 tx_param_color; |
|---|
| 189 | + struct iwl_fw_channel_info ci; |
|---|
| 190 | + struct iwl_phy_context_cmd_tail tail; |
|---|
| 191 | +} __packed; /* PHY_CONTEXT_CMD_API_VER_1 */ |
|---|
| 192 | + |
|---|
| 193 | +/** |
|---|
| 194 | + * struct iwl_phy_context_cmd - config of the PHY context |
|---|
| 195 | + * ( PHY_CONTEXT_CMD = 0x8 ) |
|---|
| 196 | + * @id_and_color: ID and color of the relevant Binding |
|---|
| 197 | + * @action: action to perform, one of FW_CTXT_ACTION_* |
|---|
| 198 | + * @lmac_id: the lmac id the phy context belongs to |
|---|
| 199 | + * @ci: channel info |
|---|
| 146 | 200 | * @rxchain_info: ??? |
|---|
| 147 | | - * @acquisition_data: ??? |
|---|
| 148 | 201 | * @dsp_cfg_flags: set to 0 |
|---|
| 202 | + * @reserved: reserved to align to 64 bit |
|---|
| 149 | 203 | */ |
|---|
| 150 | 204 | struct iwl_phy_context_cmd { |
|---|
| 151 | 205 | /* COMMON_INDEX_HDR_API_S_VER_1 */ |
|---|
| 152 | 206 | __le32 id_and_color; |
|---|
| 153 | 207 | __le32 action; |
|---|
| 154 | | - /* PHY_CONTEXT_DATA_API_S_VER_1 */ |
|---|
| 155 | | - __le32 apply_time; |
|---|
| 156 | | - __le32 tx_param_color; |
|---|
| 208 | + /* PHY_CONTEXT_DATA_API_S_VER_3 */ |
|---|
| 157 | 209 | struct iwl_fw_channel_info ci; |
|---|
| 158 | | - __le32 txchain_info; |
|---|
| 210 | + __le32 lmac_id; |
|---|
| 159 | 211 | __le32 rxchain_info; |
|---|
| 160 | | - __le32 acquisition_data; |
|---|
| 161 | 212 | __le32 dsp_cfg_flags; |
|---|
| 162 | | -} __packed; /* PHY_CONTEXT_CMD_API_VER_1 */ |
|---|
| 163 | | - |
|---|
| 213 | + __le32 reserved; |
|---|
| 214 | +} __packed; /* PHY_CONTEXT_CMD_API_VER_3 */ |
|---|
| 164 | 215 | #endif /* __iwl_fw_api_phy_ctxt_h__ */ |
|---|