| .. | .. |
|---|
| 8 | 8 | * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
|---|
| 9 | 9 | * Copyright(c) 2013 - 2015 Intel Mobile Communications GmbH |
|---|
| 10 | 10 | * Copyright(c) 2016 - 2017 Intel Deutschland GmbH |
|---|
| 11 | + * Copyright (C) 2018 - 2019 Intel Corporation |
|---|
| 11 | 12 | * |
|---|
| 12 | 13 | * This program is free software; you can redistribute it and/or modify |
|---|
| 13 | 14 | * it under the terms of version 2 of the GNU General Public License as |
|---|
| .. | .. |
|---|
| 30 | 31 | * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
|---|
| 31 | 32 | * Copyright(c) 2013 - 2015 Intel Mobile Communications GmbH |
|---|
| 32 | 33 | * Copyright(c) 2016 - 2017 Intel Deutschland GmbH |
|---|
| 34 | + * Copyright (C) 2018 - 2019 Intel Corporation |
|---|
| 33 | 35 | * All rights reserved. |
|---|
| 34 | 36 | * |
|---|
| 35 | 37 | * Redistribution and use in source and binary forms, with or without |
|---|
| .. | .. |
|---|
| 118 | 120 | }; |
|---|
| 119 | 121 | |
|---|
| 120 | 122 | /** |
|---|
| 123 | + * struct iwl_phy_specific_cfg - specific PHY filter configuration |
|---|
| 124 | + * |
|---|
| 125 | + * Sent as part of the phy configuration command (v3) to configure specific FW |
|---|
| 126 | + * defined PHY filters that can be applied to each antenna. |
|---|
| 127 | + * |
|---|
| 128 | + * @filter_cfg_chain_a: filter config id for LMAC1 chain A |
|---|
| 129 | + * @filter_cfg_chain_b: filter config id for LMAC1 chain B |
|---|
| 130 | + * @filter_cfg_chain_c: filter config id for LMAC2 chain A |
|---|
| 131 | + * @filter_cfg_chain_d: filter config id for LMAC2 chain B |
|---|
| 132 | + * values: 0 - no filter; 0xffffffff - reserved; otherwise - filter id |
|---|
| 133 | + */ |
|---|
| 134 | +struct iwl_phy_specific_cfg { |
|---|
| 135 | + __le32 filter_cfg_chain_a; |
|---|
| 136 | + __le32 filter_cfg_chain_b; |
|---|
| 137 | + __le32 filter_cfg_chain_c; |
|---|
| 138 | + __le32 filter_cfg_chain_d; |
|---|
| 139 | +} __packed; /* PHY_SPECIFIC_CONFIGURATION_API_VER_1*/ |
|---|
| 140 | + |
|---|
| 141 | +/** |
|---|
| 121 | 142 | * struct iwl_phy_cfg_cmd - Phy configuration command |
|---|
| 143 | + * |
|---|
| 122 | 144 | * @phy_cfg: PHY configuration value, uses &enum iwl_fw_phy_cfg |
|---|
| 123 | 145 | * @calib_control: calibration control data |
|---|
| 124 | 146 | */ |
|---|
| 125 | | -struct iwl_phy_cfg_cmd { |
|---|
| 147 | +struct iwl_phy_cfg_cmd_v1 { |
|---|
| 126 | 148 | __le32 phy_cfg; |
|---|
| 127 | 149 | struct iwl_calib_ctrl calib_control; |
|---|
| 128 | 150 | } __packed; |
|---|
| 129 | 151 | |
|---|
| 130 | | -#define PHY_CFG_RADIO_TYPE (BIT(0) | BIT(1)) |
|---|
| 131 | | -#define PHY_CFG_RADIO_STEP (BIT(2) | BIT(3)) |
|---|
| 132 | | -#define PHY_CFG_RADIO_DASH (BIT(4) | BIT(5)) |
|---|
| 133 | | -#define PHY_CFG_PRODUCT_NUMBER (BIT(6) | BIT(7)) |
|---|
| 134 | | -#define PHY_CFG_TX_CHAIN_A BIT(8) |
|---|
| 135 | | -#define PHY_CFG_TX_CHAIN_B BIT(9) |
|---|
| 136 | | -#define PHY_CFG_TX_CHAIN_C BIT(10) |
|---|
| 137 | | -#define PHY_CFG_RX_CHAIN_A BIT(12) |
|---|
| 138 | | -#define PHY_CFG_RX_CHAIN_B BIT(13) |
|---|
| 139 | | -#define PHY_CFG_RX_CHAIN_C BIT(14) |
|---|
| 152 | +/** |
|---|
| 153 | + * struct iwl_phy_cfg_cmd_v3 - Phy configuration command (v3) |
|---|
| 154 | + * |
|---|
| 155 | + * @phy_cfg: PHY configuration value, uses &enum iwl_fw_phy_cfg |
|---|
| 156 | + * @calib_control: calibration control data |
|---|
| 157 | + * @phy_specific_cfg: configure predefined PHY filters |
|---|
| 158 | + */ |
|---|
| 159 | +struct iwl_phy_cfg_cmd_v3 { |
|---|
| 160 | + __le32 phy_cfg; |
|---|
| 161 | + struct iwl_calib_ctrl calib_control; |
|---|
| 162 | + struct iwl_phy_specific_cfg phy_specific_cfg; |
|---|
| 163 | +} __packed; /* PHY_CONFIGURATION_CMD_API_S_VER_3 */ |
|---|
| 140 | 164 | |
|---|
| 141 | 165 | /* |
|---|
| 142 | 166 | * enum iwl_dc2dc_config_id - flag ids |
|---|