iwlwifi: mvm: set BROADCAST_TWT_SUPPORTED in MAC policy
authorShaul Triebitz <shaul.triebitz@intel.com>
Mon, 2 Aug 2021 14:09:34 +0000 (17:09 +0300)
committerLuca Coelho <luciano.coelho@intel.com>
Thu, 26 Aug 2021 20:32:18 +0000 (23:32 +0300)
If broadcast TWT is supported in the BSS, tell the
firmware about it by setting the BROADCAST_TWT_SUPPORTED
in the MAC context command.

Signed-off-by: Shaul Triebitz <shaul.triebitz@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Link: https://lore.kernel.org/r/iwlwifi.20210802170640.736c3b1bc915.I10583bb6f808aa60954da26106bbc8c26620cbe8@changeid
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
drivers/net/wireless/intel/iwlwifi/fw/api/mac.h
drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c

index 93084bb..7be7715 100644 (file)
@@ -1,6 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
 /*
- * Copyright (C) 2012-2014, 2018-2020 Intel Corporation
+ * Copyright (C) 2012-2014, 2018-2021 Intel Corporation
  * Copyright (C) 2017 Intel Deutschland GmbH
  */
 #ifndef __iwl_fw_api_mac_h__
@@ -137,12 +137,14 @@ struct iwl_mac_data_ibss {
  *     early termination detection.
  * @FLEXIBLE_TWT_SUPPORTED: AP supports flexible TWT schedule
  * @PROTECTED_TWT_SUPPORTED: AP supports protected TWT frames (with 11w)
+ * @BROADCAST_TWT_SUPPORTED: AP and STA support broadcast TWT
  */
 enum iwl_mac_data_policy {
        TWT_SUPPORTED = BIT(0),
        MORE_DATA_ACK_SUPPORTED = BIT(1),
        FLEXIBLE_TWT_SUPPORTED = BIT(2),
        PROTECTED_TWT_SUPPORTED = BIT(3),
+       BROADCAST_TWT_SUPPORTED = BIT(4),
 };
 
 /**
index fd5e089..76a658c 100644 (file)
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
 /*
- * Copyright (C) 2012-2014, 2018-2020 Intel Corporation
+ * Copyright (C) 2012-2014, 2018-2021 Intel Corporation
  * Copyright (C) 2013-2014 Intel Mobile Communications GmbH
  * Copyright (C) 2015-2017 Intel Deutschland GmbH
  */
@@ -652,6 +652,9 @@ static int iwl_mvm_mac_ctxt_cmd_sta(struct iwl_mvm *mvm,
                        if (vif->bss_conf.twt_protected)
                                ctxt_sta->data_policy |=
                                        cpu_to_le32(PROTECTED_TWT_SUPPORTED);
+                       if (vif->bss_conf.twt_broadcast)
+                               ctxt_sta->data_policy |=
+                                       cpu_to_le32(BROADCAST_TWT_SUPPORTED);
                }
        }