developer | 83ad30d | 2023-09-12 17:28:06 +0800 | [diff] [blame] | 1 | From 9b4ed2d99cc24c50bef088ee2bc48047d4e17c97 Mon Sep 17 00:00:00 2001 |
developer | 4a4b5a4 | 2023-06-08 15:07:09 +0800 | [diff] [blame] | 2 | From: Shayne Chen <shayne.chen@mediatek.com> |
| 3 | Date: Tue, 29 Mar 2022 16:06:30 +0800 |
developer | 83ad30d | 2023-09-12 17:28:06 +0800 | [diff] [blame] | 4 | Subject: [PATCH 02/21] cfg80211: mtk: extend CAC time for weather radar |
| 5 | channels |
developer | 4a4b5a4 | 2023-06-08 15:07:09 +0800 | [diff] [blame] | 6 | |
| 7 | Signed-off-by: Shayne Chen <shayne.chen@mediatek.com> |
| 8 | Signed-off-by: StanleyYP Wang <StanleyYP.Wang@mediatek.com> |
| 9 | --- |
| 10 | include/net/cfg80211.h | 1 + |
developer | 0d4fe28 | 2023-07-07 13:46:50 +0800 | [diff] [blame] | 11 | net/wireless/chan.c | 7 +++++++ |
developer | 4a4b5a4 | 2023-06-08 15:07:09 +0800 | [diff] [blame] | 12 | net/wireless/nl80211.c | 3 +++ |
developer | 0d4fe28 | 2023-07-07 13:46:50 +0800 | [diff] [blame] | 13 | 3 files changed, 11 insertions(+) |
developer | 4a4b5a4 | 2023-06-08 15:07:09 +0800 | [diff] [blame] | 14 | |
| 15 | diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h |
developer | 83ad30d | 2023-09-12 17:28:06 +0800 | [diff] [blame] | 16 | index 3e0a190..32df498 100644 |
developer | 4a4b5a4 | 2023-06-08 15:07:09 +0800 | [diff] [blame] | 17 | --- a/include/net/cfg80211.h |
| 18 | +++ b/include/net/cfg80211.h |
| 19 | @@ -149,6 +149,7 @@ enum ieee80211_channel_flags { |
| 20 | (IEEE80211_CHAN_NO_HT40PLUS | IEEE80211_CHAN_NO_HT40MINUS) |
| 21 | |
| 22 | #define IEEE80211_DFS_MIN_CAC_TIME_MS 60000 |
| 23 | +#define IEEE80211_DFS_WEATHER_MIN_CAC_TIME_MS 600000 |
| 24 | #define IEEE80211_DFS_MIN_NOP_TIME_MS (30 * 60 * 1000) |
| 25 | |
| 26 | /** |
| 27 | diff --git a/net/wireless/chan.c b/net/wireless/chan.c |
developer | 83ad30d | 2023-09-12 17:28:06 +0800 | [diff] [blame] | 28 | index d5ed976..caa5acc 100644 |
developer | 4a4b5a4 | 2023-06-08 15:07:09 +0800 | [diff] [blame] | 29 | --- a/net/wireless/chan.c |
| 30 | +++ b/net/wireless/chan.c |
developer | 0d4fe28 | 2023-07-07 13:46:50 +0800 | [diff] [blame] | 31 | @@ -931,6 +931,13 @@ static unsigned int cfg80211_get_chans_dfs_cac_time(struct wiphy *wiphy, |
developer | 4a4b5a4 | 2023-06-08 15:07:09 +0800 | [diff] [blame] | 32 | if (!(c->flags & IEEE80211_CHAN_RADAR)) |
| 33 | continue; |
| 34 | |
| 35 | + /* weather radar in ETSI */ |
| 36 | + if (reg_get_dfs_region(wiphy) == NL80211_DFS_ETSI && |
developer | 0d4fe28 | 2023-07-07 13:46:50 +0800 | [diff] [blame] | 37 | + freq >= MHZ_TO_KHZ(5600) && freq <= MHZ_TO_KHZ(5640) && |
| 38 | + dfs_cac_ms < IEEE80211_DFS_WEATHER_MIN_CAC_TIME_MS && |
| 39 | + c->dfs_state == NL80211_DFS_USABLE) |
developer | 4a4b5a4 | 2023-06-08 15:07:09 +0800 | [diff] [blame] | 40 | + dfs_cac_ms = IEEE80211_DFS_WEATHER_MIN_CAC_TIME_MS; |
| 41 | + |
| 42 | if (c->dfs_cac_ms > dfs_cac_ms) |
| 43 | dfs_cac_ms = c->dfs_cac_ms; |
| 44 | } |
| 45 | diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c |
developer | 83ad30d | 2023-09-12 17:28:06 +0800 | [diff] [blame] | 46 | index 6d62c81..3ec073a 100644 |
developer | 4a4b5a4 | 2023-06-08 15:07:09 +0800 | [diff] [blame] | 47 | --- a/net/wireless/nl80211.c |
| 48 | +++ b/net/wireless/nl80211.c |
developer | 83ad30d | 2023-09-12 17:28:06 +0800 | [diff] [blame] | 49 | @@ -9992,6 +9992,9 @@ static int nl80211_start_radar_detection(struct sk_buff *skb, |
developer | 4a4b5a4 | 2023-06-08 15:07:09 +0800 | [diff] [blame] | 50 | if (WARN_ON(!cac_time_ms)) |
| 51 | cac_time_ms = IEEE80211_DFS_MIN_CAC_TIME_MS; |
| 52 | |
| 53 | + pr_info("%s: region = %u, center freq1 = %u, center freq2 = %u, cac time ms = %u\n", |
| 54 | + __func__, dfs_region, chandef.center_freq1, chandef.center_freq2, cac_time_ms); |
| 55 | + |
| 56 | err = rdev_start_radar_detection(rdev, dev, &chandef, cac_time_ms); |
| 57 | if (!err) { |
| 58 | wdev->links[0].ap.chandef = chandef; |
| 59 | -- |
developer | 83ad30d | 2023-09-12 17:28:06 +0800 | [diff] [blame] | 60 | 2.39.2 |
developer | 4a4b5a4 | 2023-06-08 15:07:09 +0800 | [diff] [blame] | 61 | |