[][MAC80211][rebase patches][Filogic 880 alpha release preparation update]

[Description]
Add default CONFIG_MEDIATEK_GE_PHY_SOC in kernel config to avoid human intervention during build time.

[Release-log]
N/A

Change-Id: I971ef508fb340ac6a97064fec64cdbbc7431f41f
Reviewed-on: https://gerrit.mediatek.inc/c/openwrt/feeds/mtk_openwrt_feeds/+/7318411
diff --git a/autobuild_mac80211_release/package/kernel/mac80211_dev/patches/subsys/mtk-0015-mac80211-mtk-ageout-color-bitmap.patch b/autobuild_mac80211_release/package/kernel/mac80211_dev/patches/subsys/mtk-0015-mac80211-mtk-ageout-color-bitmap.patch
new file mode 100644
index 0000000..b1e7ec1
--- /dev/null
+++ b/autobuild_mac80211_release/package/kernel/mac80211_dev/patches/subsys/mtk-0015-mac80211-mtk-ageout-color-bitmap.patch
@@ -0,0 +1,145 @@
+From fb56546c9ec94dd9f8ca4b6cfd91d029710b75c2 Mon Sep 17 00:00:00 2001
+From: Yi-Chia Hsieh <yi-chia.hsieh@mediatek.com>
+Date: Mon, 13 Mar 2023 05:36:59 +0800
+Subject: [PATCH 15/15] mac80211: mtk: ageout color bitmap
+
+Adding a periodic work which runs once per second to check BSS color.
+OBSS BSS Color will be ageout if not seen for 10 seconds.
+---
+ include/net/mac80211.h     |  1 +
+ net/mac80211/cfg.c         | 30 ++++++++++++++++++++++++++++++
+ net/mac80211/ieee80211_i.h |  5 +++++
+ net/mac80211/iface.c       |  5 +++++
+ net/mac80211/link.c        |  2 ++
+ net/mac80211/rx.c          |  1 +
+ 6 files changed, 44 insertions(+)
+
+diff --git a/include/net/mac80211.h b/include/net/mac80211.h
+index 83bbf70..5ca2f10 100644
+--- a/include/net/mac80211.h
++++ b/include/net/mac80211.h
+@@ -730,6 +730,7 @@ struct ieee80211_bss_conf {
+ 	struct ieee80211_he_obss_pd he_obss_pd;
+ 	struct cfg80211_he_bss_color he_bss_color;
+ 	u64 used_color_bitmap;
++	u64 color_last_seen[64];
+ 	struct ieee80211_fils_discovery fils_discovery;
+ 	u32 unsol_bcast_probe_resp_interval;
+ 	struct cfg80211_bitrate_mask beacon_tx_rate;
+diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c
+index 5c9dda1..343ce2b 100644
+--- a/net/mac80211/cfg.c
++++ b/net/mac80211/cfg.c
+@@ -4755,6 +4755,36 @@ out:
+ 	return err;
+ }
+ 
++void
++ieee80211_color_aging_work(struct work_struct *work)
++{
++	struct ieee80211_sub_if_data *sdata =
++		container_of(work, struct ieee80211_sub_if_data,
++			     deflink.color_aging_work.work);
++	struct ieee80211_bss_conf *bss_conf = &sdata->vif.bss_conf;
++	int i = 0;
++
++	sdata_lock(sdata);
++
++	if (!ieee80211_sdata_running(sdata))
++		goto unlock;
++
++	for (i = 0; i < IEEE80211_BSS_COLOR_MAX; i++) {
++		/* ageout if not seen for a period */
++		if ((bss_conf->used_color_bitmap & BIT_ULL(i)) &&
++		     time_before(bss_conf->color_last_seen[i],
++				 jiffies - IEEE80211_BSS_COLOR_AGEOUT_TIME * HZ)) {
++			bss_conf->used_color_bitmap &= ~BIT_ULL(i);
++		}
++	}
++
++	ieee80211_queue_delayed_work(&sdata->local->hw,
++			&sdata->deflink.color_aging_work, HZ);
++
++unlock:
++	sdata_unlock(sdata);
++}
++
+ static int
+ ieee80211_set_radar_background(struct wiphy *wiphy,
+ 			       struct cfg80211_chan_def *chandef)
+diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h
+index f7da92b..bc3f133 100644
+--- a/net/mac80211/ieee80211_i.h
++++ b/net/mac80211/ieee80211_i.h
+@@ -987,6 +987,7 @@ struct ieee80211_link_data {
+ 	struct cfg80211_chan_def csa_chandef;
+ 
+ 	struct work_struct color_change_finalize_work;
++	struct delayed_work color_aging_work;
+ 
+ 	/* context reservation -- protected with chanctx_mtx */
+ 	struct ieee80211_chanctx *reserved_chanctx;
+@@ -1930,8 +1931,12 @@ void ieee80211_csa_finalize_work(struct work_struct *work);
+ int ieee80211_channel_switch(struct wiphy *wiphy, struct net_device *dev,
+ 			     struct cfg80211_csa_settings *params);
+ 
++#define IEEE80211_BSS_COLOR_AGEOUT_TIME        10
++#define IEEE80211_BSS_COLOR_MAX                64
++
+ /* color change handling */
+ void ieee80211_color_change_finalize_work(struct work_struct *work);
++void ieee80211_color_aging_work(struct work_struct *work);
+ 
+ /* interface handling */
+ #define MAC80211_SUPPORTED_FEATURES_TX	(NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM | \
+diff --git a/net/mac80211/iface.c b/net/mac80211/iface.c
+index b82065c..6a300ab 100644
+--- a/net/mac80211/iface.c
++++ b/net/mac80211/iface.c
+@@ -541,6 +541,7 @@ static void ieee80211_do_stop(struct ieee80211_sub_if_data *sdata, bool going_do
+ 	cancel_work_sync(&sdata->deflink.color_change_finalize_work);
+ 
+ 	cancel_delayed_work_sync(&sdata->deflink.dfs_cac_timer_work);
++	cancel_delayed_work_sync(&sdata->deflink.color_aging_work);
+ 
+ 	if (sdata->wdev.cac_started) {
+ 		chandef = sdata->vif.bss_conf.chandef;
+@@ -1470,6 +1471,10 @@ int ieee80211_do_open(struct wireless_dev *wdev, bool coming_up)
+ 
+ 	set_bit(SDATA_STATE_RUNNING, &sdata->state);
+ 
++	if (sdata->vif.type == NL80211_IFTYPE_AP)
++		ieee80211_queue_delayed_work(&sdata->local->hw,
++					     &sdata->deflink.color_aging_work, HZ);
++
+ 	return 0;
+  err_del_interface:
+ 	drv_remove_interface(local, sdata);
+diff --git a/net/mac80211/link.c b/net/mac80211/link.c
+index e309708..d34cdc2 100644
+--- a/net/mac80211/link.c
++++ b/net/mac80211/link.c
+@@ -43,6 +43,8 @@ void ieee80211_link_init(struct ieee80211_sub_if_data *sdata,
+ 	INIT_LIST_HEAD(&link->reserved_chanctx_list);
+ 	INIT_DELAYED_WORK(&link->dfs_cac_timer_work,
+ 			  ieee80211_dfs_cac_timer_work);
++	INIT_DELAYED_WORK(&link->color_aging_work,
++			  ieee80211_color_aging_work);
+ 
+ 	if (!deflink) {
+ 		switch (sdata->vif.type) {
+diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
+index bc5b471..b96eb7c 100644
+--- a/net/mac80211/rx.c
++++ b/net/mac80211/rx.c
+@@ -3340,6 +3340,7 @@ ieee80211_rx_check_bss_color_collision(struct ieee80211_rx_data *rx)
+ 				      IEEE80211_HE_OPERATION_BSS_COLOR_MASK);
+ 
+ 		bss_conf->used_color_bitmap |= BIT_ULL(color);
++		bss_conf->color_last_seen[color] = jiffies;
+ 
+ 		trace_bss_color_bitmap(color, bss_conf->used_color_bitmap);
+ 
+-- 
+2.18.0
+