wifi: iwlwifi: mvm: introduce PHY_CONTEXT_CMD_API_VER_5
authorEmmanuel Grumbach <emmanuel.grumbach@intel.com>
Tue, 23 Jan 2024 18:08:20 +0000 (20:08 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Fri, 26 Jan 2024 08:48:54 +0000 (09:48 +0100)
This command version adds two news fields:
sbb_bandwidth and sbb_ctrl_channel_loc
They will be populated later.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Reviewed-by: Johannes Berg <johannes.berg@intel.com>
Reviewed-by: Gregory Greenman <gregory.greenman@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://msgid.link/20240123200528.82ab4140fff9.Icfba4819fe0b7ac8219ab671c632e25f5fbbaf6f@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
drivers/net/wireless/intel/iwlwifi/fw/api/phy-ctxt.h
drivers/net/wireless/intel/iwlwifi/mvm/phy-ctxt.c

index 306ed88de463001ad22f82081b85e33af3d64e56..205d0413e626ab9e71ed4bafc05da35602c5a0a7 100644 (file)
@@ -142,6 +142,8 @@ struct iwl_phy_context_cmd_v1 {
  * @lmac_id: the lmac id the phy context belongs to
  * @ci: channel info
  * @rxchain_info: ???
+ * @sbb_bandwidth: 0 disabled, 1 - 40Mhz ... 4 - 320MHz
+ * @sbb_ctrl_channel_loc: location of the control channel
  * @dsp_cfg_flags: set to 0
  * @reserved: reserved to align to 64 bit
  */
@@ -152,9 +154,19 @@ struct iwl_phy_context_cmd {
        /* PHY_CONTEXT_DATA_API_S_VER_3, PHY_CONTEXT_DATA_API_S_VER_4 */
        struct iwl_fw_channel_info ci;
        __le32 lmac_id;
-       __le32 rxchain_info; /* reserved in _VER_4 */
+       union {
+               __le32 rxchain_info; /* reserved in _VER_4 */
+               struct {             /* used for _VER_5 */
+                       u8 sbb_bandwidth;
+                       u8 sbb_ctrl_channel_loc;
+                       __le16 reserved;
+               } v5;
+       };
        __le32 dsp_cfg_flags;
        __le32 reserved;
-} __packed; /* PHY_CONTEXT_CMD_API_VER_3, PHY_CONTEXT_CMD_API_VER_4 */
+} __packed; /* PHY_CONTEXT_CMD_API_VER_3,
+            * PHY_CONTEXT_CMD_API_VER_4,
+            * PHY_CONTEXT_CMD_API_VER_5
+            */
 
 #endif /* __iwl_fw_api_phy_ctxt_h__ */
index 334d1f59f6e4679fa36f72717d6ce45d29b88e28..8bf778503b74e2a5cfd379fd21a029fc99dfcfbd 100644 (file)
@@ -204,7 +204,7 @@ static int iwl_mvm_phy_ctxt_apply(struct iwl_mvm *mvm,
        int ret;
        int ver = iwl_fw_lookup_cmd_ver(mvm->fw, PHY_CONTEXT_CMD, 1);
 
-       if (ver == 3 || ver == 4) {
+       if (ver >= 3 && ver <= 5) {
                struct iwl_phy_context_cmd cmd = {};
 
                /* Set the command header fields */