hc
2024-01-05 071106ecf68c401173c58808b1cf5f68cc50d390
kernel/drivers/net/wireless/intel/iwlwifi/fw/api/config.h
....@@ -8,6 +8,7 @@
88 * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved.
99 * Copyright(c) 2013 - 2015 Intel Mobile Communications GmbH
1010 * Copyright(c) 2016 - 2017 Intel Deutschland GmbH
11
+ * Copyright (C) 2018 - 2019 Intel Corporation
1112 *
1213 * This program is free software; you can redistribute it and/or modify
1314 * it under the terms of version 2 of the GNU General Public License as
....@@ -30,6 +31,7 @@
3031 * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved.
3132 * Copyright(c) 2013 - 2015 Intel Mobile Communications GmbH
3233 * Copyright(c) 2016 - 2017 Intel Deutschland GmbH
34
+ * Copyright (C) 2018 - 2019 Intel Corporation
3335 * All rights reserved.
3436 *
3537 * Redistribution and use in source and binary forms, with or without
....@@ -118,25 +120,47 @@
118120 };
119121
120122 /**
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
+/**
121142 * struct iwl_phy_cfg_cmd - Phy configuration command
143
+ *
122144 * @phy_cfg: PHY configuration value, uses &enum iwl_fw_phy_cfg
123145 * @calib_control: calibration control data
124146 */
125
-struct iwl_phy_cfg_cmd {
147
+struct iwl_phy_cfg_cmd_v1 {
126148 __le32 phy_cfg;
127149 struct iwl_calib_ctrl calib_control;
128150 } __packed;
129151
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 */
140164
141165 /*
142166 * enum iwl_dc2dc_config_id - flag ids