Skip to content

Commit

Permalink
Merge branch 'bananapi4' into main
Browse files Browse the repository at this point in the history
  • Loading branch information
N-Storm authored Sep 29, 2024
2 parents 207ed35 + 2216e31 commit 90794bb
Show file tree
Hide file tree
Showing 23 changed files with 3,319 additions and 119 deletions.
688 changes: 688 additions & 0 deletions config-nstorm-bananapi-bpi-r4

Large diffs are not rendered by default.

4 changes: 3 additions & 1 deletion feeds.conf.default
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
src-git packages https://git.openwrt.org/feed/packages.git
src-git luci https://git.openwrt.org/project/luci.git
src-git luci https://github.com/rmandrad/luci;11be
src-git routing https://git.openwrt.org/feed/routing.git
src-git telephony https://git.openwrt.org/feed/telephony.git
#src-git video https://github.com/openwrt/video.git
#src-git targets https://github.com/openwrt/targets.git
#src-git oldpackages http://git.openwrt.org/packages.git
#src-link custom /usr/src/openwrt/custom-feed
src-git mtk_openwrt_feed https://git01.mediatek.com/openwrt/feeds/mtk-openwrt-feeds;master
#src-git mtk_openwrt_feed https://github.com/rmandrad/mtk-openwrt-feeds.git;rmandrad
25 changes: 25 additions & 0 deletions package/firmware/wireless-regdb/patches/600-world-regd-6GHz.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
diff --git a/db.txt b/db.txt
index 4f36062..0d7a170 100644
--- a/db.txt
+++ b/db.txt
@@ -26,6 +26,8 @@ country 00:
(5490 - 5730 @ 160), (20), NO-IR, DFS
# Channel 149 - 165
(5735 - 5835 @ 80), (20), NO-IR
+ # WiFi 6E
+ (5925 - 7125 @ 320), (12), NO-OUTDOOR
# IEEE 802.11ad (60GHz), channels 1..3
(57240 - 63720 @ 2160), (0)

@@ -1727,7 +1729,7 @@ country US: DFS-FCC
(5850 - 5895 @ 40), (27), NO-OUTDOOR, AUTO-BW, NO-IR
# 6g band
# https://www.federalregister.gov/documents/2020/05/26/2020-11236/unlicensed-use-of-the-6ghz-band
- (5925 - 7125 @ 320), (12), NO-OUTDOOR, NO-IR
+ (5925 - 7125 @ 320), (12), NO-OUTDOOR
# 60g band
# reference: section IV-D https://docs.fcc.gov/public/attachments/FCC-16-89A1.pdf
# channels 1-6 EIRP=40dBm(43dBm peak)
--
2.36.1

Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
diff --git a/db.txt b/db.txt
index 949c8d4..f20956b 100644
--- a/db.txt
+++ b/db.txt
@@ -24,8 +24,8 @@ country 00:
(5250 - 5330 @ 80), (20), NO-IR, DFS, AUTO-BW
# Channel 100 - 144
(5490 - 5730 @ 160), (20), NO-IR, DFS
- # Channel 149 - 165
- (5735 - 5835 @ 80), (20), NO-IR
+ # Channel 149 - 177
+ (5735 - 5895 @ 160), (20), NO-IR
# WiFi 6E
(5925 - 7125 @ 320), (12), NO-OUTDOOR
# IEEE 802.11ad (60GHz), channels 1..3
@@ -1759,7 +1759,7 @@ country US: DFS-FCC
(5730 - 5850 @ 80), (30), AUTO-BW
# https://www.federalregister.gov/documents/2021/05/03/2021-08802/use-of-the-5850-5925-ghz-band
# max. 33 dBm AP @ 20MHz, 36 dBm AP @ 40Mhz+, 6 dB less for clients
- (5850 - 5895 @ 40), (27), NO-OUTDOOR, AUTO-BW, NO-IR
+ (5850 - 5895 @ 40), (27), NO-OUTDOOR, AUTO-BW
# 6g band
# https://www.federalregister.gov/documents/2020/05/26/2020-11236/unlicensed-use-of-the-6ghz-band
(5925 - 7125 @ 320), (12), NO-OUTDOOR
18 changes: 18 additions & 0 deletions package/firmware/wireless-regdb/patches/999-add-country-vv.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
diff --git a/db.txt b/db.txt
index 3e442ba4..75642b04 100644
--- a/db.txt
+++ b/db.txt
@@ -1698,3 +1698,13 @@ country ZW: DFS-ETSI
(5250 - 5330 @ 80), (20), DFS, AUTO-BW
(5490 - 5710 @ 160), (27), DFS

+country VV:
+ # Channel 1 - 14.
+ (2402 - 2494 @ 40), (30)
+ # Channel 184 - 196
+ (4910 - 4990 @ 80), (30)
+ # Channel 36 - 177
+ (5150 - 5895 @ 160), (30)
+ (5030 - 5090 @ 20), (30)
+ # WiFi 6E
+ (5925 - 7125 @ 320), (200 mW), NO-OUTDOOR
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
From ce225a315119c4a961341653729745e57b1b183b Mon Sep 17 00:00:00 2001
From: Howard Hsu <howard-yh.hsu@mediatek.com>
Date: Tue, 20 Aug 2024 11:37:46 +0800
Subject: [PATCH] mtk: mac80211: add EHT BA1024 support
---
include/linux/ieee80211.h | 2 ++
net/mac80211/agg-tx.c | 47 +++++++++++++++++++++++++++++++++++++--
2 files changed, 47 insertions(+), 2 deletions(-)
diff --git a/include/linux/ieee80211.h b/include/linux/ieee80211.h
index 4fd9735..8ca8db9 100644
--- a/include/linux/ieee80211.h
+++ b/include/linux/ieee80211.h
@@ -1393,6 +1393,8 @@ struct ieee80211_mgmt {
__le16 status;
__le16 capab;
__le16 timeout;
+ /* followed by BA Extension */
+ u8 variable[];
} __packed addba_resp;
struct{
u8 action_code;
diff --git a/net/mac80211/agg-tx.c b/net/mac80211/agg-tx.c
index 21d55dc..fefbf17 100644
--- a/net/mac80211/agg-tx.c
+++ b/net/mac80211/agg-tx.c
@@ -66,9 +66,16 @@ static void ieee80211_send_addba_request(struct ieee80211_sub_if_data *sdata,
struct ieee80211_local *local = sdata->local;
struct sk_buff *skb;
struct ieee80211_mgmt *mgmt;
+ struct ieee80211_addba_ext_ie *addba_ext;
+ u8 *pos;
u16 capab;

- skb = dev_alloc_skb(sizeof(*mgmt) + local->hw.extra_tx_headroom);
+ if (agg_size >= 1024)
+ skb = dev_alloc_skb(sizeof(*mgmt) +
+ 2 + sizeof(struct ieee80211_addba_ext_ie) +
+ local->hw.extra_tx_headroom);
+ else
+ skb = dev_alloc_skb(sizeof(*mgmt) + local->hw.extra_tx_headroom);

if (!skb)
return;
@@ -106,6 +113,15 @@ static void ieee80211_send_addba_request(struct ieee80211_sub_if_data *sdata,
mgmt->u.action.u.addba_req.start_seq_num =
cpu_to_le16(start_seq_num << 4);

+ if (agg_size >= 1024) {
+ pos = skb_put_zero(skb, 2 + sizeof(struct ieee80211_addba_ext_ie));
+ *pos++ = WLAN_EID_ADDBA_EXT;
+ *pos++ = sizeof(struct ieee80211_addba_ext_ie);
+ addba_ext = (struct ieee80211_addba_ext_ie *)pos;
+ addba_ext->data = u8_encode_bits(agg_size >> IEEE80211_ADDBA_EXT_BUF_SIZE_SHIFT,
+ IEEE80211_ADDBA_EXT_BUF_SIZE_MASK);
+ }
+
ieee80211_tx_skb_tid(sdata, skb, tid, -1);
}

@@ -473,8 +489,11 @@ static void ieee80211_send_addba_with_timeout(struct sta_info *sta,
sta->ampdu_mlme.addba_req_num[tid]++;
spin_unlock_bh(&sta->lock);

- if (sta->sta.deflink.he_cap.has_he) {
+ if (sta->sta.deflink.eht_cap.has_eht) {
buf_size = local->hw.max_tx_aggregation_subframes;
+ } else if (sta->sta.deflink.he_cap.has_he) {
+ buf_size = min_t(u16, local->hw.max_tx_aggregation_subframes,
+ IEEE80211_MAX_AMPDU_BUF_HE);
} else {
/*
* We really should use what the driver told us it will
@@ -972,8 +991,10 @@ void ieee80211_process_addba_resp(struct ieee80211_local *local,
{
struct tid_ampdu_tx *tid_tx;
struct ieee80211_txq *txq;
+ struct ieee802_11_elems *elems;
u16 capab, tid, buf_size;
bool amsdu;
+ int ext_ie_len;

lockdep_assert_wiphy(sta->local->hw.wiphy);

@@ -981,6 +1002,28 @@ void ieee80211_process_addba_resp(struct ieee80211_local *local,
amsdu = capab & IEEE80211_ADDBA_PARAM_AMSDU_MASK;
tid = u16_get_bits(capab, IEEE80211_ADDBA_PARAM_TID_MASK);
buf_size = u16_get_bits(capab, IEEE80211_ADDBA_PARAM_BUF_SIZE_MASK);
+
+ ext_ie_len = len - offsetof(struct ieee80211_mgmt,
+ u.action.u.addba_resp.variable);
+
+ if (ext_ie_len < 0)
+ goto next;
+
+ elems = ieee802_11_parse_elems(mgmt->u.action.u.addba_resp.variable,
+ ext_ie_len, true, NULL);
+
+ if (elems && !elems->parse_error) {
+ if (sta->sta.deflink.eht_cap.has_eht && elems->addba_ext_ie) {
+ u8 buf_size_1k = u8_get_bits(elems->addba_ext_ie->data,
+ IEEE80211_ADDBA_EXT_BUF_SIZE_MASK);
+ buf_size |= buf_size_1k << IEEE80211_ADDBA_EXT_BUF_SIZE_SHIFT;
+ }
+ }
+
+ if (elems)
+ kfree(elems);
+
+next:
buf_size = min(buf_size, local->hw.max_tx_aggregation_subframes);

txq = sta->sta.txq[tid];
--
2.45.2
6 changes: 4 additions & 2 deletions package/kernel/mt76/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ PKG_RELEASE=1
PKG_LICENSE:=GPLv2
PKG_LICENSE_FILES:=

PKG_SOURCE_URL:=https://github.com/openwrt/mt76
PKG_SOURCE_URL:=https://github.com/rmandrad/mt76
PKG_SOURCE_PROTO:=git
PKG_SOURCE_DATE:=2024-09-29
PKG_SOURCE_VERSION:=680bc70f161fde0f167e2ae50c771be4775eb50a
Expand Down Expand Up @@ -41,6 +41,8 @@ define KernelPackage/mt76-default
DEPENDS:= \
+kmod-mac80211 \
+@DRIVER_11AC_SUPPORT \
+@DRIVER_11AX_SUPPORT \
+@DRIVER_11BE_SUPPORT \
+@KERNEL_PAGE_POOL
endef

Expand Down Expand Up @@ -318,7 +320,7 @@ endef
define KernelPackage/mt7996e
$(KernelPackage/mt76-default)
TITLE:=MediaTek MT7996E wireless driver
DEPENDS+=@PCI_SUPPORT +kmod-mt76-connac +kmod-hwmon-core +@DRIVER_11AX_SUPPORT +@KERNEL_RELAY
DEPENDS+=@PCI_SUPPORT +kmod-mt76-core +kmod-mt76-connac +kmod-hwmon-core +kmod-thermal +@DRIVER_11AX_SUPPORT +@DRIVER_11BE_SUPPORT +@KERNEL_RELAY
FILES:= $(PKG_BUILD_DIR)/mt7996/mt7996e.ko
AUTOLOAD:=$(call AutoProbe,mt7996e)
endef
Expand Down
Loading

0 comments on commit 90794bb

Please sign in to comment.