mac80211: Update to version 5.12.19-1
[openwrt/staging/wigyori.git] / package / kernel / mac80211 / patches / subsys / 382-mac80211-Switch-to-a-virtual-time-based-airtime-sche.patch
index ba78f7a1428145f3e80b53bd445a784ecbad5b19..d99ca5961c2db654539255d33a0d4ff43b490a31 100644 (file)
@@ -50,7 +50,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
 
 --- a/include/net/mac80211.h
 +++ b/include/net/mac80211.h
-@@ -6552,9 +6552,6 @@ static inline void ieee80211_txq_schedul
+@@ -6585,9 +6585,6 @@ static inline void ieee80211_txq_schedul
  {
  }
  
@@ -60,7 +60,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
  /**
   * ieee80211_schedule_txq - schedule a TXQ for transmission
   *
-@@ -6567,11 +6564,7 @@ void __ieee80211_schedule_txq(struct iee
+@@ -6600,11 +6597,7 @@ void __ieee80211_schedule_txq(struct iee
   * The driver may call this function if it has buffered packets for
   * this TXQ internally.
   */
@@ -73,7 +73,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
  
  /**
   * ieee80211_return_txq - return a TXQ previously acquired by ieee80211_next_txq()
-@@ -6583,12 +6576,8 @@ ieee80211_schedule_txq(struct ieee80211_
+@@ -6616,12 +6609,8 @@ ieee80211_schedule_txq(struct ieee80211_
   * The driver may set force=true if it has buffered packets for this TXQ
   * internally.
   */
@@ -90,7 +90,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
   * ieee80211_txq_may_transmit - check whether TXQ is allowed to transmit
 --- a/net/mac80211/cfg.c
 +++ b/net/mac80211/cfg.c
-@@ -1442,6 +1442,38 @@ static void sta_apply_mesh_params(struct
+@@ -1441,6 +1441,38 @@ static void sta_apply_mesh_params(struct
  #endif
  }
  
@@ -129,7 +129,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
  static int sta_apply_parameters(struct ieee80211_local *local,
                                struct sta_info *sta,
                                struct station_parameters *params)
-@@ -1629,7 +1661,8 @@ static int sta_apply_parameters(struct i
+@@ -1628,7 +1660,8 @@ static int sta_apply_parameters(struct i
                sta_apply_mesh_params(local, sta, params);
  
        if (params->airtime_weight)
@@ -227,7 +227,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
  #ifdef CONFIG_PM
  static ssize_t reset_write(struct file *file, const char __user *user_buf,
                           size_t count, loff_t *ppos)
-@@ -624,7 +664,11 @@ void debugfs_hw_add(struct ieee80211_loc
+@@ -631,7 +671,11 @@ void debugfs_hw_add(struct ieee80211_loc
        if (local->ops->wake_tx_queue)
                DEBUGFS_ADD_MODE(aqm, 0600);
  
@@ -277,7 +277,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
  IEEE80211_IF_FILE(multicast_to_unicast, u.ap.multicast_to_unicast, HEX);
  
  /* IBSS attributes */
-@@ -661,8 +689,10 @@ static void add_common_files(struct ieee
+@@ -658,8 +686,10 @@ static void add_common_files(struct ieee
  
        if (sdata->local->ops->wake_tx_queue &&
            sdata->vif.type != NL80211_IFTYPE_P2P_DEVICE &&
@@ -355,7 +355,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
  
 --- a/net/mac80211/ieee80211_i.h
 +++ b/net/mac80211/ieee80211_i.h
-@@ -840,20 +840,16 @@ enum txq_info_flags {
+@@ -835,20 +835,16 @@ enum txq_info_flags {
   * @def_flow: used as a fallback flow when a packet destined to @tin hashes to
   *    a fq_flow which is already owned by a different tin
   * @def_cvars: codel vars for @def_flow
@@ -378,7 +378,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
        unsigned long flags;
  
        /* keep last! */
-@@ -930,6 +926,8 @@ struct ieee80211_sub_if_data {
+@@ -925,6 +921,8 @@ struct ieee80211_sub_if_data {
        struct ieee80211_tx_queue_params tx_conf[IEEE80211_NUM_ACS];
        struct mac80211_qos_map __rcu *qos_map;
  
@@ -387,7 +387,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
        struct work_struct csa_finalize_work;
        bool csa_block_tx; /* write-protected by sdata_lock and local->mtx */
        struct cfg80211_chan_def csa_chandef;
-@@ -1143,6 +1141,44 @@ enum mac80211_scan_state {
+@@ -1137,6 +1135,44 @@ enum mac80211_scan_state {
        SCAN_ABORT,
  };
  
@@ -432,7 +432,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
  DECLARE_STATIC_KEY_FALSE(aql_disable);
  
  struct ieee80211_local {
-@@ -1156,13 +1192,8 @@ struct ieee80211_local {
+@@ -1150,13 +1186,8 @@ struct ieee80211_local {
        struct codel_params cparams;
  
        /* protects active_txqs and txqi->schedule_order */
@@ -447,7 +447,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
        u32 aql_threshold;
        atomic_t aql_total_pending_airtime;
  
-@@ -1581,6 +1612,125 @@ static inline bool txq_has_queue(struct
+@@ -1574,6 +1605,125 @@ static inline bool txq_has_queue(struct
        return !(skb_queue_empty(&txqi->frags) && !txqi->tin.backlog_packets);
  }
  
@@ -573,7 +573,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
  static inline int ieee80211_bssid_match(const u8 *raddr, const u8 *addr)
  {
        return ether_addr_equal(raddr, addr) ||
-@@ -1821,6 +1971,14 @@ int ieee80211_tx_control_port(struct wip
+@@ -1814,6 +1964,14 @@ int ieee80211_tx_control_port(struct wip
                              u64 *cookie);
  int ieee80211_probe_mesh_link(struct wiphy *wiphy, struct net_device *dev,
                              const u8 *buf, size_t len);
@@ -590,7 +590,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
  void ieee80211_apply_htcap_overrides(struct ieee80211_sub_if_data *sdata,
 --- a/net/mac80211/iface.c
 +++ b/net/mac80211/iface.c
-@@ -2067,6 +2067,9 @@ int ieee80211_if_add(struct ieee80211_lo
+@@ -2018,6 +2018,9 @@ int ieee80211_if_add(struct ieee80211_lo
                }
        }
  
@@ -602,7 +602,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
        sdata->ap_power_level = IEEE80211_UNSET_POWER_LEVEL;
 --- a/net/mac80211/main.c
 +++ b/net/mac80211/main.c
-@@ -693,10 +693,13 @@ struct ieee80211_hw *ieee80211_alloc_hw_
+@@ -698,10 +698,13 @@ struct ieee80211_hw *ieee80211_alloc_hw_
        spin_lock_init(&local->queue_stop_reason_lock);
  
        for (i = 0; i < IEEE80211_NUM_ACS; i++) {
@@ -622,7 +622,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
  
 --- a/net/mac80211/rx.c
 +++ b/net/mac80211/rx.c
-@@ -1573,12 +1573,8 @@ static void sta_ps_start(struct sta_info
+@@ -1562,12 +1562,8 @@ static void sta_ps_start(struct sta_info
  
        for (tid = 0; tid < IEEE80211_NUM_TIDS; tid++) {
                struct ieee80211_txq *txq = sta->sta.txq[tid];
@@ -655,7 +655,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
        }
  
        for (i = 0; i < IEEE80211_NUM_TIDS; i++)
-@@ -1898,24 +1894,59 @@ void ieee80211_sta_set_buffered(struct i
+@@ -1893,24 +1889,59 @@ void ieee80211_sta_set_buffered(struct i
  }
  EXPORT_SYMBOL(ieee80211_sta_set_buffered);
  
@@ -727,7 +727,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
  }
  EXPORT_SYMBOL(ieee80211_sta_register_airtime);
  
-@@ -2364,7 +2395,7 @@ void sta_set_sinfo(struct sta_info *sta,
+@@ -2354,7 +2385,7 @@ void sta_set_sinfo(struct sta_info *sta,
        }
  
        if (!(sinfo->filled & BIT_ULL(NL80211_STA_INFO_AIRTIME_WEIGHT))) {
@@ -783,7 +783,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
         * Aggregation information, locked with lock.
 --- a/net/mac80211/status.c
 +++ b/net/mac80211/status.c
-@@ -972,6 +972,25 @@ static void __ieee80211_tx_status(struct
+@@ -970,6 +970,25 @@ static void __ieee80211_tx_status(struct
                if (!(info->flags & IEEE80211_TX_CTL_INJECTED) && acked)
                        ieee80211_frame_acked(sta, skb);
  
@@ -819,7 +819,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
  #include <net/net_namespace.h>
  #include <net/ieee80211_radiotap.h>
  #include <net/cfg80211.h>
-@@ -1489,7 +1490,7 @@ void ieee80211_txq_init(struct ieee80211
+@@ -1476,7 +1477,7 @@ void ieee80211_txq_init(struct ieee80211
        codel_vars_init(&txqi->def_cvars);
        codel_stats_init(&txqi->cstats);
        __skb_queue_head_init(&txqi->frags);
@@ -828,7 +828,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
  
        txqi->txq.vif = &sdata->vif;
  
-@@ -1533,9 +1534,7 @@ void ieee80211_txq_purge(struct ieee8021
+@@ -1520,9 +1521,7 @@ void ieee80211_txq_purge(struct ieee8021
        ieee80211_purge_tx_queue(&local->hw, &txqi->frags);
        spin_unlock_bh(&fq->lock);
  
@@ -839,7 +839,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
  }
  
  void ieee80211_txq_set_params(struct ieee80211_local *local)
-@@ -3797,102 +3796,259 @@ EXPORT_SYMBOL(ieee80211_tx_dequeue);
+@@ -3801,102 +3800,259 @@ EXPORT_SYMBOL(ieee80211_tx_dequeue);
  struct ieee80211_txq *ieee80211_next_txq(struct ieee80211_hw *hw, u8 ac)
  {
        struct ieee80211_local *local = hw_to_local(hw);
@@ -1161,7 +1161,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
        struct ieee80211_local *local = hw_to_local(hw);
  
        if (!wiphy_ext_feature_isset(local->hw.wiphy, NL80211_EXT_FEATURE_AQL))
-@@ -3907,15 +4063,12 @@ bool ieee80211_txq_airtime_check(struct
+@@ -3911,15 +4067,12 @@ bool ieee80211_txq_airtime_check(struct
        if (unlikely(txq->tid == IEEE80211_NUM_TIDS))
                return true;
  
@@ -1179,7 +1179,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
                return true;
  
        return false;
-@@ -3925,60 +4078,59 @@ EXPORT_SYMBOL(ieee80211_txq_airtime_chec
+@@ -3929,60 +4082,59 @@ EXPORT_SYMBOL(ieee80211_txq_airtime_chec
  bool ieee80211_txq_may_transmit(struct ieee80211_hw *hw,
                                struct ieee80211_txq *txq)
  {