wifi: iwlwifi: mvm: make functions public
authorShaul Triebitz <shaul.triebitz@intel.com>
Thu, 1 Feb 2024 14:17:41 +0000 (16:17 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Fri, 2 Feb 2024 13:37:28 +0000 (14:37 +0100)
In the following patch, iwl_mvm_roc_duration_and_delay and
iwl_mvm_roc_add_cmd will be called also from time-event.c.
Move then there (where they more belong) and make then
public.

Signed-off-by: Shaul Triebitz <shaul.triebitz@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://msgid.link/20240201155157.3edafc4d59aa.Ic68e90758bcad9ae00e0aa602101842dac60e1a1@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
drivers/net/wireless/intel/iwlwifi/mvm/mvm.h
drivers/net/wireless/intel/iwlwifi/mvm/time-event.c

index 4bc25d4..31cb2e3 100644 (file)
@@ -4427,44 +4427,6 @@ static bool iwl_mvm_rx_aux_roc(struct iwl_notif_wait_data *notif_wait,
        return true;
 }
 
-#define AUX_ROC_MIN_DURATION MSEC_TO_TU(100)
-#define AUX_ROC_MIN_DELAY MSEC_TO_TU(200)
-#define AUX_ROC_MAX_DELAY MSEC_TO_TU(600)
-#define AUX_ROC_SAFETY_BUFFER MSEC_TO_TU(20)
-#define AUX_ROC_MIN_SAFETY_BUFFER MSEC_TO_TU(10)
-
-static void iwl_mvm_roc_duration_and_delay(struct ieee80211_vif *vif,
-                                          u32 duration_ms,
-                                          u32 *duration_tu,
-                                          u32 *delay)
-{
-       u32 dtim_interval = vif->bss_conf.dtim_period *
-               vif->bss_conf.beacon_int;
-
-       *delay = AUX_ROC_MIN_DELAY;
-       *duration_tu = MSEC_TO_TU(duration_ms);
-
-       /*
-        * If we are associated we want the delay time to be at least one
-        * dtim interval so that the FW can wait until after the DTIM and
-        * then start the time event, this will potentially allow us to
-        * remain off-channel for the max duration.
-        * Since we want to use almost a whole dtim interval we would also
-        * like the delay to be for 2-3 dtim intervals, in case there are
-        * other time events with higher priority.
-        */
-       if (vif->cfg.assoc) {
-               *delay = min_t(u32, dtim_interval * 3, AUX_ROC_MAX_DELAY);
-               /* We cannot remain off-channel longer than the DTIM interval */
-               if (dtim_interval <= *duration_tu) {
-                       *duration_tu = dtim_interval - AUX_ROC_SAFETY_BUFFER;
-                       if (*duration_tu <= AUX_ROC_MIN_DURATION)
-                               *duration_tu = dtim_interval -
-                                       AUX_ROC_MIN_SAFETY_BUFFER;
-               }
-       }
-}
-
 static int iwl_mvm_send_aux_roc_cmd(struct iwl_mvm *mvm,
                                    struct ieee80211_channel *channel,
                                    struct ieee80211_vif *vif,
@@ -4562,48 +4524,6 @@ static int iwl_mvm_send_aux_roc_cmd(struct iwl_mvm *mvm,
        return res;
 }
 
-static int iwl_mvm_roc_add_cmd(struct iwl_mvm *mvm,
-                              struct ieee80211_channel *channel,
-                              struct ieee80211_vif *vif,
-                              int duration, u32 activity)
-{
-       int res;
-       u32 duration_tu, delay;
-       struct iwl_roc_req roc_req = {
-               .action = cpu_to_le32(FW_CTXT_ACTION_ADD),
-               .activity = cpu_to_le32(activity),
-               .sta_id = cpu_to_le32(mvm->aux_sta.sta_id),
-       };
-
-       lockdep_assert_held(&mvm->mutex);
-
-       /* Set the channel info data */
-       iwl_mvm_set_chan_info(mvm, &roc_req.channel_info,
-                             channel->hw_value,
-                             iwl_mvm_phy_band_from_nl80211(channel->band),
-                             IWL_PHY_CHANNEL_MODE20, 0);
-
-       iwl_mvm_roc_duration_and_delay(vif, duration, &duration_tu,
-                                      &delay);
-       roc_req.duration = cpu_to_le32(duration_tu);
-       roc_req.max_delay = cpu_to_le32(delay);
-
-       IWL_DEBUG_TE(mvm,
-                    "\t(requested = %ums, max_delay = %ums)\n",
-                    duration, delay);
-       IWL_DEBUG_TE(mvm,
-                    "Requesting to remain on channel %u for %utu\n",
-                    channel->hw_value, duration_tu);
-
-       /* Set the node address */
-       memcpy(roc_req.node_addr, vif->addr, ETH_ALEN);
-
-       res = iwl_mvm_send_cmd_pdu(mvm, WIDE_ID(MAC_CONF_GROUP, ROC_CMD),
-                                  0, sizeof(roc_req), &roc_req);
-
-       return res;
-}
-
 static int iwl_mvm_add_aux_sta_for_hs20(struct iwl_mvm *mvm, u32 lmac_id)
 {
        int ret = 0;
index c76ce6b..eb30c29 100644 (file)
@@ -2764,4 +2764,12 @@ iwl_mvm_chanctx_def(struct iwl_mvm *mvm, struct ieee80211_chanctx_conf *ctx)
        return use_def ? &ctx->def : &ctx->min_def;
 }
 
+void iwl_mvm_roc_duration_and_delay(struct ieee80211_vif *vif,
+                                   u32 duration_ms,
+                                   u32 *duration_tu,
+                                   u32 *delay);
+int iwl_mvm_roc_add_cmd(struct iwl_mvm *mvm,
+                       struct ieee80211_channel *channel,
+                       struct ieee80211_vif *vif,
+                       int duration, u32 activity);
 #endif /* __IWL_MVM_H__ */
index 703ccdd..60ec5ca 100644 (file)
@@ -986,6 +986,86 @@ void iwl_mvm_rx_session_protect_notif(struct iwl_mvm *mvm,
        rcu_read_unlock();
 }
 
+#define AUX_ROC_MIN_DURATION MSEC_TO_TU(100)
+#define AUX_ROC_MIN_DELAY MSEC_TO_TU(200)
+#define AUX_ROC_MAX_DELAY MSEC_TO_TU(600)
+#define AUX_ROC_SAFETY_BUFFER MSEC_TO_TU(20)
+#define AUX_ROC_MIN_SAFETY_BUFFER MSEC_TO_TU(10)
+
+void iwl_mvm_roc_duration_and_delay(struct ieee80211_vif *vif,
+                                   u32 duration_ms,
+                                   u32 *duration_tu,
+                                   u32 *delay)
+{
+       u32 dtim_interval = vif->bss_conf.dtim_period *
+               vif->bss_conf.beacon_int;
+
+       *delay = AUX_ROC_MIN_DELAY;
+       *duration_tu = MSEC_TO_TU(duration_ms);
+
+       /*
+        * If we are associated we want the delay time to be at least one
+        * dtim interval so that the FW can wait until after the DTIM and
+        * then start the time event, this will potentially allow us to
+        * remain off-channel for the max duration.
+        * Since we want to use almost a whole dtim interval we would also
+        * like the delay to be for 2-3 dtim intervals, in case there are
+        * other time events with higher priority.
+        */
+       if (vif->cfg.assoc) {
+               *delay = min_t(u32, dtim_interval * 3, AUX_ROC_MAX_DELAY);
+               /* We cannot remain off-channel longer than the DTIM interval */
+               if (dtim_interval <= *duration_tu) {
+                       *duration_tu = dtim_interval - AUX_ROC_SAFETY_BUFFER;
+                       if (*duration_tu <= AUX_ROC_MIN_DURATION)
+                               *duration_tu = dtim_interval -
+                                       AUX_ROC_MIN_SAFETY_BUFFER;
+               }
+       }
+}
+
+int iwl_mvm_roc_add_cmd(struct iwl_mvm *mvm,
+                       struct ieee80211_channel *channel,
+                       struct ieee80211_vif *vif,
+                       int duration, u32 activity)
+{
+       int res;
+       u32 duration_tu, delay;
+       struct iwl_roc_req roc_req = {
+               .action = cpu_to_le32(FW_CTXT_ACTION_ADD),
+               .activity = cpu_to_le32(activity),
+               .sta_id = cpu_to_le32(mvm->aux_sta.sta_id),
+       };
+
+       lockdep_assert_held(&mvm->mutex);
+
+       /* Set the channel info data */
+       iwl_mvm_set_chan_info(mvm, &roc_req.channel_info,
+                             channel->hw_value,
+                             iwl_mvm_phy_band_from_nl80211(channel->band),
+                             IWL_PHY_CHANNEL_MODE20, 0);
+
+       iwl_mvm_roc_duration_and_delay(vif, duration, &duration_tu,
+                                      &delay);
+       roc_req.duration = cpu_to_le32(duration_tu);
+       roc_req.max_delay = cpu_to_le32(delay);
+
+       IWL_DEBUG_TE(mvm,
+                    "\t(requested = %ums, max_delay = %ums)\n",
+                    duration, delay);
+       IWL_DEBUG_TE(mvm,
+                    "Requesting to remain on channel %u for %utu\n",
+                    channel->hw_value, duration_tu);
+
+       /* Set the node address */
+       memcpy(roc_req.node_addr, vif->addr, ETH_ALEN);
+
+       res = iwl_mvm_send_cmd_pdu(mvm, WIDE_ID(MAC_CONF_GROUP, ROC_CMD),
+                                  0, sizeof(roc_req), &roc_req);
+
+       return res;
+}
+
 static int
 iwl_mvm_start_p2p_roc_session_protection(struct iwl_mvm *mvm,
                                         struct ieee80211_vif *vif,