From 1f4bd694aa5339f8ba9637c3b96fa5c662ef4b8b Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Tue, 24 Sep 2024 09:03:57 +0200 Subject: [PATCH 1/8] mac80211: introduce EHT rate support in AQL airtime Backport required by mt76 for decent throughput with EHT rates Signed-off-by: Felix Fietkau --- ...troduce-EHT-rate-support-in-AQL-airt.patch | 233 ++++++++++++++++++ 1 file changed, 233 insertions(+) create mode 100644 package/kernel/mac80211/patches/subsys/350-wifi-mac80211-introduce-EHT-rate-support-in-AQL-airt.patch diff --git a/package/kernel/mac80211/patches/subsys/350-wifi-mac80211-introduce-EHT-rate-support-in-AQL-airt.patch b/package/kernel/mac80211/patches/subsys/350-wifi-mac80211-introduce-EHT-rate-support-in-AQL-airt.patch new file mode 100644 index 00000000000000..0a3c8ec53b21a3 --- /dev/null +++ b/package/kernel/mac80211/patches/subsys/350-wifi-mac80211-introduce-EHT-rate-support-in-AQL-airt.patch @@ -0,0 +1,233 @@ +From: Ming Yen Hsieh +Date: Wed, 4 Sep 2024 19:12:56 +0800 +Subject: [PATCH] wifi: mac80211: introduce EHT rate support in AQL airtime + +Add definitions related to EHT mode and airtime calculation +according to the 802.11BE_D4.0. + +Co-developed-by: Bo Jiao +Signed-off-by: Bo Jiao +Signed-off-by: Deren Wu +Signed-off-by: Quan Zhou +Signed-off-by: Ming Yen Hsieh +Link: https://patch.msgid.link/20240904111256.11734-1-mingyen.hsieh@mediatek.com +Signed-off-by: Johannes Berg +--- + +--- a/net/mac80211/airtime.c ++++ b/net/mac80211/airtime.c +@@ -55,10 +55,21 @@ + #define HE_DURATION_S(shift, streams, gi, bps) \ + (HE_DURATION(streams, gi, bps) >> shift) + ++/* gi in HE/EHT is identical. It matches enum nl80211_eht_gi as well */ ++#define EHT_GI_08 HE_GI_08 ++#define EHT_GI_16 HE_GI_16 ++#define EHT_GI_32 HE_GI_32 ++ ++#define EHT_DURATION(streams, gi, bps) \ ++ HE_DURATION(streams, gi, bps) ++#define EHT_DURATION_S(shift, streams, gi, bps) \ ++ HE_DURATION_S(shift, streams, gi, bps) ++ + #define BW_20 0 + #define BW_40 1 + #define BW_80 2 + #define BW_160 3 ++#define BW_320 4 + + /* + * Define group sort order: HT40 -> SGI -> #streams +@@ -68,17 +79,26 @@ + #define IEEE80211_VHT_STREAM_GROUPS 8 /* BW(=4) * SGI(=2) */ + + #define IEEE80211_HE_MAX_STREAMS 8 ++#define IEEE80211_HE_STREAM_GROUPS 12 /* BW(=4) * GI(=3) */ ++ ++#define IEEE80211_EHT_MAX_STREAMS 8 ++#define IEEE80211_EHT_STREAM_GROUPS 15 /* BW(=5) * GI(=3) */ + + #define IEEE80211_HT_GROUPS_NB (IEEE80211_MAX_STREAMS * \ + IEEE80211_HT_STREAM_GROUPS) + #define IEEE80211_VHT_GROUPS_NB (IEEE80211_MAX_STREAMS * \ + IEEE80211_VHT_STREAM_GROUPS) ++#define IEEE80211_HE_GROUPS_NB (IEEE80211_HE_MAX_STREAMS * \ ++ IEEE80211_HE_STREAM_GROUPS) ++#define IEEE80211_EHT_GROUPS_NB (IEEE80211_EHT_MAX_STREAMS * \ ++ IEEE80211_EHT_STREAM_GROUPS) + + #define IEEE80211_HT_GROUP_0 0 + #define IEEE80211_VHT_GROUP_0 (IEEE80211_HT_GROUP_0 + IEEE80211_HT_GROUPS_NB) + #define IEEE80211_HE_GROUP_0 (IEEE80211_VHT_GROUP_0 + IEEE80211_VHT_GROUPS_NB) ++#define IEEE80211_EHT_GROUP_0 (IEEE80211_HE_GROUP_0 + IEEE80211_HE_GROUPS_NB) + +-#define MCS_GROUP_RATES 12 ++#define MCS_GROUP_RATES 14 + + #define HT_GROUP_IDX(_streams, _sgi, _ht40) \ + IEEE80211_HT_GROUP_0 + \ +@@ -203,6 +223,69 @@ + #define HE_GROUP(_streams, _gi, _bw) \ + __HE_GROUP(_streams, _gi, _bw, \ + HE_GROUP_SHIFT(_streams, _gi, _bw)) ++ ++#define EHT_BW2VBPS(_bw, r5, r4, r3, r2, r1) \ ++ ((_bw) == BW_320 ? r5 : BW2VBPS(_bw, r4, r3, r2, r1)) ++ ++#define EHT_GROUP_IDX(_streams, _gi, _bw) \ ++ (IEEE80211_EHT_GROUP_0 + \ ++ IEEE80211_EHT_MAX_STREAMS * 3 * (_bw) + \ ++ IEEE80211_EHT_MAX_STREAMS * (_gi) + \ ++ (_streams) - 1) ++ ++#define __EHT_GROUP(_streams, _gi, _bw, _s) \ ++ [EHT_GROUP_IDX(_streams, _gi, _bw)] = { \ ++ .shift = _s, \ ++ .duration = { \ ++ EHT_DURATION_S(_s, _streams, _gi, \ ++ EHT_BW2VBPS(_bw, 1960, 980, 490, 234, 117)), \ ++ EHT_DURATION_S(_s, _streams, _gi, \ ++ EHT_BW2VBPS(_bw, 3920, 1960, 980, 468, 234)), \ ++ EHT_DURATION_S(_s, _streams, _gi, \ ++ EHT_BW2VBPS(_bw, 5880, 2937, 1470, 702, 351)), \ ++ EHT_DURATION_S(_s, _streams, _gi, \ ++ EHT_BW2VBPS(_bw, 7840, 3920, 1960, 936, 468)), \ ++ EHT_DURATION_S(_s, _streams, _gi, \ ++ EHT_BW2VBPS(_bw, 11760, 5880, 2940, 1404, 702)), \ ++ EHT_DURATION_S(_s, _streams, _gi, \ ++ EHT_BW2VBPS(_bw, 15680, 7840, 3920, 1872, 936)), \ ++ EHT_DURATION_S(_s, _streams, _gi, \ ++ EHT_BW2VBPS(_bw, 17640, 8820, 4410, 2106, 1053)), \ ++ EHT_DURATION_S(_s, _streams, _gi, \ ++ EHT_BW2VBPS(_bw, 19600, 9800, 4900, 2340, 1170)), \ ++ EHT_DURATION_S(_s, _streams, _gi, \ ++ EHT_BW2VBPS(_bw, 23520, 11760, 5880, 2808, 1404)), \ ++ EHT_DURATION_S(_s, _streams, _gi, \ ++ EHT_BW2VBPS(_bw, 26133, 13066, 6533, 3120, 1560)), \ ++ EHT_DURATION_S(_s, _streams, _gi, \ ++ EHT_BW2VBPS(_bw, 29400, 14700, 7350, 3510, 1755)), \ ++ EHT_DURATION_S(_s, _streams, _gi, \ ++ EHT_BW2VBPS(_bw, 32666, 16333, 8166, 3900, 1950)), \ ++ EHT_DURATION_S(_s, _streams, _gi, \ ++ EHT_BW2VBPS(_bw, 35280, 17640, 8820, 4212, 2106)), \ ++ EHT_DURATION_S(_s, _streams, _gi, \ ++ EHT_BW2VBPS(_bw, 39200, 19600, 9800, 4680, 2340)) \ ++ } \ ++} ++ ++#define EHT_GROUP_SHIFT(_streams, _gi, _bw) \ ++ GROUP_SHIFT(EHT_DURATION(_streams, _gi, \ ++ EHT_BW2VBPS(_bw, 1960, 980, 490, 234, 117))) ++ ++#define EHT_GROUP(_streams, _gi, _bw) \ ++ __EHT_GROUP(_streams, _gi, _bw, \ ++ EHT_GROUP_SHIFT(_streams, _gi, _bw)) ++ ++#define EHT_GROUP_RANGE(_gi, _bw) \ ++ EHT_GROUP(1, _gi, _bw), \ ++ EHT_GROUP(2, _gi, _bw), \ ++ EHT_GROUP(3, _gi, _bw), \ ++ EHT_GROUP(4, _gi, _bw), \ ++ EHT_GROUP(5, _gi, _bw), \ ++ EHT_GROUP(6, _gi, _bw), \ ++ EHT_GROUP(7, _gi, _bw), \ ++ EHT_GROUP(8, _gi, _bw) ++ + struct mcs_group { + u8 shift; + u16 duration[MCS_GROUP_RATES]; +@@ -376,6 +459,26 @@ static const struct mcs_group airtime_mc + HE_GROUP(6, HE_GI_32, BW_160), + HE_GROUP(7, HE_GI_32, BW_160), + HE_GROUP(8, HE_GI_32, BW_160), ++ ++ EHT_GROUP_RANGE(EHT_GI_08, BW_20), ++ EHT_GROUP_RANGE(EHT_GI_16, BW_20), ++ EHT_GROUP_RANGE(EHT_GI_32, BW_20), ++ ++ EHT_GROUP_RANGE(EHT_GI_08, BW_40), ++ EHT_GROUP_RANGE(EHT_GI_16, BW_40), ++ EHT_GROUP_RANGE(EHT_GI_32, BW_40), ++ ++ EHT_GROUP_RANGE(EHT_GI_08, BW_80), ++ EHT_GROUP_RANGE(EHT_GI_16, BW_80), ++ EHT_GROUP_RANGE(EHT_GI_32, BW_80), ++ ++ EHT_GROUP_RANGE(EHT_GI_08, BW_160), ++ EHT_GROUP_RANGE(EHT_GI_16, BW_160), ++ EHT_GROUP_RANGE(EHT_GI_32, BW_160), ++ ++ EHT_GROUP_RANGE(EHT_GI_08, BW_320), ++ EHT_GROUP_RANGE(EHT_GI_16, BW_320), ++ EHT_GROUP_RANGE(EHT_GI_32, BW_320), + }; + + static u32 +@@ -422,6 +525,9 @@ static u32 ieee80211_get_rate_duration(s + case RATE_INFO_BW_160: + bw = BW_160; + break; ++ case RATE_INFO_BW_320: ++ bw = BW_320; ++ break; + default: + WARN_ON_ONCE(1); + return 0; +@@ -443,14 +549,27 @@ static u32 ieee80211_get_rate_duration(s + idx = status->rate_idx; + group = HE_GROUP_IDX(streams, status->he_gi, bw); + break; ++ case RX_ENC_EHT: ++ streams = status->nss; ++ idx = status->rate_idx; ++ group = EHT_GROUP_IDX(streams, status->eht.gi, bw); ++ break; + default: + WARN_ON_ONCE(1); + return 0; + } + +- if (WARN_ON_ONCE((status->encoding != RX_ENC_HE && streams > 4) || +- (status->encoding == RX_ENC_HE && streams > 8))) +- return 0; ++ switch (status->encoding) { ++ case RX_ENC_EHT: ++ case RX_ENC_HE: ++ if (WARN_ON_ONCE(streams > 8)) ++ return 0; ++ break; ++ default: ++ if (WARN_ON_ONCE(streams > 4)) ++ return 0; ++ break; ++ } + + if (idx >= MCS_GROUP_RATES) + return 0; +@@ -517,7 +636,9 @@ static bool ieee80211_fill_rate_info(str + stat->nss = ri->nss; + stat->rate_idx = ri->mcs; + +- if (ri->flags & RATE_INFO_FLAGS_HE_MCS) ++ if (ri->flags & RATE_INFO_FLAGS_EHT_MCS) ++ stat->encoding = RX_ENC_EHT; ++ else if (ri->flags & RATE_INFO_FLAGS_HE_MCS) + stat->encoding = RX_ENC_HE; + else if (ri->flags & RATE_INFO_FLAGS_VHT_MCS) + stat->encoding = RX_ENC_VHT; +@@ -529,7 +650,14 @@ static bool ieee80211_fill_rate_info(str + if (ri->flags & RATE_INFO_FLAGS_SHORT_GI) + stat->enc_flags |= RX_ENC_FLAG_SHORT_GI; + +- stat->he_gi = ri->he_gi; ++ switch (stat->encoding) { ++ case RX_ENC_EHT: ++ stat->eht.gi = ri->eht_gi; ++ break; ++ default: ++ stat->he_gi = ri->he_gi; ++ break; ++ } + + if (stat->encoding != RX_ENC_LEGACY) + return true; From d39078c785d37961e8b9a96ba3612bc67c10bf2f Mon Sep 17 00:00:00 2001 From: Chukun Pan Date: Sun, 15 Sep 2024 23:10:15 +0800 Subject: [PATCH 2/8] kernel: r8125: add CONFLICT to rss variant MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The rss variant should conflict with the default. Signed-off-by: Chukun Pan Link: https://github.com/openwrt/openwrt/pull/16460 Signed-off-by: Álvaro Fernández Rojas --- package/kernel/r8125/Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/package/kernel/r8125/Makefile b/package/kernel/r8125/Makefile index f05ec0d842b425..ef95b52e679549 100644 --- a/package/kernel/r8125/Makefile +++ b/package/kernel/r8125/Makefile @@ -27,6 +27,7 @@ endef define KernelPackage/r8125-rss $(call KernelPackage/r8125) + CONFLICTS:=kmod-r8125 TITLE+= (RSS) VARIANT:=rss endef From b83c7448d3ecd82d6c9e02aded784d6bc3c9ce3c Mon Sep 17 00:00:00 2001 From: Chukun Pan Date: Mon, 16 Sep 2024 23:10:20 +0800 Subject: [PATCH 3/8] kernel: r8126: add CONFLICT to rss variant MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The rss variant should conflict with the default. Signed-off-by: Chukun Pan Link: https://github.com/openwrt/openwrt/pull/16460 Signed-off-by: Álvaro Fernández Rojas --- package/kernel/r8126/Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/package/kernel/r8126/Makefile b/package/kernel/r8126/Makefile index 3cd77294b1485b..c269cdcadc4ba6 100644 --- a/package/kernel/r8126/Makefile +++ b/package/kernel/r8126/Makefile @@ -27,6 +27,7 @@ endef define KernelPackage/r8126-rss $(call KernelPackage/r8126) + CONFLICTS:=kmod-r8126 TITLE+= (RSS) VARIANT:=rss endef From 51aa9130f741919c208db663d2385fe43ad215e1 Mon Sep 17 00:00:00 2001 From: Goetz Goerisch Date: Sat, 21 Sep 2024 20:00:33 +0000 Subject: [PATCH 4/8] CI: update actions/labeler to v5 * Version 5 of this action updated the runtime to Node.js 20. All scripts are now run with Node.js 20 instead of Node.js 16 and are affected by any breaking changes between Node.js 16 and 20. * adapt the labeler configuration to the new format Follow-up to #16251 this was reverted with b870c16534c05ddc94149c6ff56976d8de8a353f Link: https://github.com/openwrt/openwrt/pull/16451 Signed-off-by: Goetz Goerisch Link: https://github.com/openwrt/openwrt/pull/16451 Signed-off-by: Robert Marko --- .github/labeler.yml | 260 +++++++++++++++++++++++----------- .github/workflows/labeler.yml | 4 +- 2 files changed, 177 insertions(+), 87 deletions(-) diff --git a/.github/labeler.yml b/.github/labeler.yml index 3030d170095ecb..8ef308867870dc 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -1,137 +1,227 @@ # target/* "target/airoha": - - "target/linux/airoha/**" +- changed-files: + - any-glob-to-any-file: + - "target/linux/airoha/**" "target/apm821xx": - - "target/linux/apm821xx/**" +- changed-files: + - any-glob-to-any-file: + - "target/linux/apm821xx/**" "target/archs38": - - "target/linux/archs38/**" +- changed-files: + - any-glob-to-any-file: + - "target/linux/archs38/**" "target/armsr": - - "target/linux/armsr/**" +- changed-files: + - any-glob-to-any-file: + - "target/linux/armsr/**" "target/at91": - - "target/linux/at91/**" - - "package/boot/at91bootstrap/**" - - "package/boot/uboot-at91/**" +- changed-files: + - any-glob-to-any-file: + - "target/linux/at91/**" + - "package/boot/at91bootstrap/**" + - "package/boot/uboot-at91/**" "target/ath79": - - "target/linux/ath79/**" +- changed-files: + - any-glob-to-any-file: + - "target/linux/ath79/**" "target/bcm27xx": - - "target/linux/bcm27xx/**" - - "package/kernel/bcm27xx-gpu-fw/**" +- changed-files: + - any-glob-to-any-file: + - "target/linux/bcm27xx/**" + - "package/kernel/bcm27xx-gpu-fw/**" "target/bcm47xx": - - "target/linux/bcm47xx/**" +- changed-files: + - any-glob-to-any-file: + - "target/linux/bcm47xx/**" "target/bcm4908": - - "target/linux/bcm4908/**" - - "package/boot/uboot-bcm4908/**" +- changed-files: + - any-glob-to-any-file: + - "target/linux/bcm4908/**" + - "package/boot/uboot-bcm4908/**" "target/bcm53xx": - - "target/linux/bcm53xx/**" - - "package/boot/uboot-bcm53xx/**" +- changed-files: + - any-glob-to-any-file: + - "target/linux/bcm53xx/**" + - "package/boot/uboot-bcm53xx/**" "target/bcm63xx": - - "target/linux/bcm63xx/**" - - "package/kernel/bcm63xx-cfe/**" - - "package/boot/arm-trusted-firmware-bcm63xx/**" +- changed-files: + - any-glob-to-any-file: + - "target/linux/bcm63xx/**" + - "package/kernel/bcm63xx-cfe/**" + - "package/boot/arm-trusted-firmware-bcm63xx/**" "target/bmips": - - "target/linux/bmips/**" - - "package/boot/uboot-bmips/**" +- changed-files: + - any-glob-to-any-file: + - "target/linux/bmips/**" + - "package/boot/uboot-bmips/**" "target/d1": - - "target/linux/d1/**" - - "package/boot/uboot-d1/**" - - "package/boot/opensbi/**" +- changed-files: + - any-glob-to-any-file: + - "target/linux/d1/**" + - "package/boot/uboot-d1/**" + - "package/boot/opensbi/**" "target/gemini": - - "target/linux/gemini/**" +- changed-files: + - any-glob-to-any-file: + - "target/linux/gemini/**" "target/imx": - - "target/linux/imx/**" - - "package/boot/imx-bootlets/**" - - "package/boot/uboot-imx/**" +- changed-files: + - any-glob-to-any-file: + - "target/linux/imx/**" + - "package/boot/imx-bootlets/**" + - "package/boot/uboot-imx/**" "target/ipq40xx": - - "target/linux/ipq40xx/**" +- changed-files: + - any-glob-to-any-file: + - "target/linux/ipq40xx/**" "target/ipq806x": - - "target/linux/ipq806x/**" +- changed-files: + - any-glob-to-any-file: + - "target/linux/ipq806x/**" "target/qualcommax": - - "target/linux/qualcommax/**" +- changed-files: + - any-glob-to-any-file: + - "target/linux/qualcommax/**" "target/kirkwood": - - "target/linux/kirkwood/**" - - "package/boot/uboot-kirkwood/**" +- changed-files: + - any-glob-to-any-file: + - "target/linux/kirkwood/**" + - "package/boot/uboot-kirkwood/**" "target/lantiq": - - "target/linux/lantiq/**" - - "package/kernel/lantiq/**" - - "package/firmware/lantiq/**" - - "package/boot/uboot-lantiq/**" +- changed-files: + - any-glob-to-any-file: + - "target/linux/lantiq/**" + - "package/kernel/lantiq/**" + - "package/firmware/lantiq/**" + - "package/boot/uboot-lantiq/**" "target/layerscape": - - "target/linux/layerscape/**" - - "package/firmware/layerscape/**" - - "package/boot/tfa-layerscape/**" - - "package/boot/uboot-layerscape/**" - - "package/network/utils/layerscape/**" +- changed-files: + - any-glob-to-any-file: + - "target/linux/layerscape/**" + - "package/firmware/layerscape/**" + - "package/boot/tfa-layerscape/**" + - "package/boot/uboot-layerscape/**" + - "package/network/utils/layerscape/**" "target/malta": - - "target/linux/malta/**" +- changed-files: + - any-glob-to-any-file: + - "target/linux/malta/**" "target/mediatek": - - "target/linux/mediatek/**" - - "package/boot/arm-trusted-firmware-mediatek/**" - - "package/boot/uboot-mediatek/**" +- changed-files: + - any-glob-to-any-file: + - "target/linux/mediatek/**" + - "package/boot/arm-trusted-firmware-mediatek/**" + - "package/boot/uboot-mediatek/**" "target/mpc85xx": - - "target/linux/mpc85xx/**" +- changed-files: + - any-glob-to-any-file: + - "target/linux/mpc85xx/**" "target/mvebu": - - "target/linux/mvebu/**" - - "package/boot/arm-trusted-firmware-mvebu/**" - - "package/boot/uboot-mvebu/**" +- changed-files: + - any-glob-to-any-file: + - "target/linux/mvebu/**" + - "package/boot/arm-trusted-firmware-mvebu/**" + - "package/boot/uboot-mvebu/**" "target/mxs": - - "target/linux/mxs/**" - - "package/boot/uboot-mxs/**" +- changed-files: + - any-glob-to-any-file: + - "target/linux/mxs/**" + - "package/boot/uboot-mxs/**" "target/octeon": - - "target/linux/octeon/**" +- changed-files: + - any-glob-to-any-file: + - "target/linux/octeon/**" "target/omap": - - "target/linux/omap/**" - - "package/boot/uboot-omap/**" +- changed-files: + - any-glob-to-any-file: + - "target/linux/omap/**" + - "package/boot/uboot-omap/**" "target/pistachio": - - "target/linux/pistachio/**" +- changed-files: + - any-glob-to-any-file: + - "target/linux/pistachio/**" "target/qoriq": - - "target/linux/qoriq/**" +- changed-files: + - any-glob-to-any-file: + - "target/linux/qoriq/**" "target/ramips": - - "target/linux/ramips/**" +- changed-files: + - any-glob-to-any-file: + - "target/linux/ramips/**" "target/realtek": - - "target/linux/realtek/**" +- changed-files: + - any-glob-to-any-file: + - "target/linux/realtek/**" "target/rockchip": - - "target/linux/rockchip/**" - - "package/boot/arm-trusted-firmware-rockchip/**" - - "package/boot/uboot-rockchip/**" +- changed-files: + - any-glob-to-any-file: + - "target/linux/rockchip/**" + - "package/boot/arm-trusted-firmware-rockchip/**" + - "package/boot/uboot-rockchip/**" "target/sifiveu": - - "target/linux/sifiveu/**" - - "package/boot/uboot-sifiveu/**" - - "package/boot/opensbi/**" +- changed-files: + - any-glob-to-any-file: + - "target/linux/sifiveu/**" + - "package/boot/uboot-sifiveu/**" + - "package/boot/opensbi/**" "target/sunxi": - - "target/linux/sunxi/**" - - "package/boot/arm-trusted-firmware-sunxi/**" - - "package/boot/uboot-sunxi/**" +- changed-files: + - any-glob-to-any-file: + - "target/linux/sunxi/**" + - "package/boot/arm-trusted-firmware-sunxi/**" + - "package/boot/uboot-sunxi/**" "target/tegra": - - "target/linux/tegra/**" - - "package/boot/uboot-tegra/**" +- changed-files: + - any-glob-to-any-file: + - "target/linux/tegra/**" + - "package/boot/uboot-tegra/**" "target/uml": - - "target/linux/uml/**" +- changed-files: + - any-glob-to-any-file: + - "target/linux/uml/**" "target/x86": - - "target/linux/x86/**" +- changed-files: + - any-glob-to-any-file: + - "target/linux/x86/**" "target/zynq": - - "target/linux/zynq/**" - - "package/boot/uboot-zynq/**" +- changed-files: + - any-glob-to-any-file: + - "target/linux/zynq/**" + - "package/boot/uboot-zynq/**" # target/imagebuilder "target/imagebuilder": - - "target/imagebuilder/**" +- changed-files: + - any-glob-to-any-file: + - "target/imagebuilder/**" # kernel "kernel": - - "target/linux/generic/**" - - "target/linux/**/config-*" - - "target/linux/**/patches-*" - - "target/linux/**/files/**" - - "package/kernel/linux/**" +- changed-files: + - any-glob-to-any-file: + - "target/linux/generic/**" + - "target/linux/**/config-*" + - "target/linux/**/patches-*" + - "target/linux/**/files/**" + - "package/kernel/linux/**" # core packages "core packages": - - "package/**" +- changed-files: + - any-glob-to-any-file: + - "package/**" # build/scripts/tools "build/scripts/tools": - - "include/**" - - "scripts/**" - - "tools/**" +- changed-files: + - any-glob-to-any-file: + - "include/**" + - "scripts/**" + - "tools/**" # toolchain "toolchain": - - "toolchain/**" +- changed-files: + - any-glob-to-any-file: + - "toolchain/**" # GitHub/CI "GitHub/CI": - - ".github/**" +- changed-files: + - any-glob-to-any-file: + - ".github/**" diff --git a/.github/workflows/labeler.yml b/.github/workflows/labeler.yml index 5f82b88a50a7dc..ba35e8e1dd619d 100644 --- a/.github/workflows/labeler.yml +++ b/.github/workflows/labeler.yml @@ -14,7 +14,7 @@ jobs: name: Pull Request Labeler runs-on: ubuntu-latest steps: - - uses: actions/labeler@v4 + - uses: actions/labeler@v5 with: repo-token: '${{ secrets.GITHUB_TOKEN }}' @@ -25,7 +25,7 @@ jobs: echo "release-tag=$(echo ${{ github.base_ref }} | sed 's/openwrt-/release\//')" >> $GITHUB_OUTPUT fi - - uses: buildsville/add-remove-label@v2.0.0 + - uses: buildsville/add-remove-label@v2.0.1 if: ${{ steps.check-branch.outputs.release-tag }} with: token: ${{secrets.GITHUB_TOKEN}} From bffcc3c775629a24dae2a1bcbde998a66f4d83db Mon Sep 17 00:00:00 2001 From: Janusz Dziedzic Date: Tue, 24 Sep 2024 12:21:52 +0200 Subject: [PATCH 5/8] mac80211: ath12k: add PCI_SUPPORT dependency Always depend on PCI and don't build on platforms without PCI. Signed-off-by: Janusz Dziedzic Link: https://github.com/openwrt/openwrt/pull/16475 Signed-off-by: Robert Marko --- package/kernel/mac80211/ath.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/kernel/mac80211/ath.mk b/package/kernel/mac80211/ath.mk index f56fd7a961ccef..eecaef4588871e 100644 --- a/package/kernel/mac80211/ath.mk +++ b/package/kernel/mac80211/ath.mk @@ -360,7 +360,7 @@ define KernelPackage/ath12k $(call KernelPackage/mac80211/Default) TITLE:=Qualcomm 802.11be wireless chipset support URL:=https://wireless.wiki.kernel.org/en/users/drivers/ath12k - DEPENDS+= +kmod-ath +@DRIVER_11AC_SUPPORT +@DRIVER_11AX_SUPPORT \ + DEPENDS+= @PCI_SUPPORT +kmod-ath +@DRIVER_11AC_SUPPORT +@DRIVER_11AX_SUPPORT \ +kmod-crypto-michael-mic +kmod-qrtr-mhi \ +kmod-qcom-qmi-helpers FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath12k/ath12k.ko From d84fecfaf2f140786ad4dd971c69660b1deae942 Mon Sep 17 00:00:00 2001 From: Pawel Dembicki Date: Tue, 24 Sep 2024 09:05:11 +0200 Subject: [PATCH 6/8] tfa-layerscape: fix fiptool's build Platform specified fiptool files was moved before lf-6.6.23-2.0.0 bump. But PLAT_FIPTOOL_HELPER_MK still pointed to old location. This cause problems with ls-ddr-phy build. This patch fix PLAT_FIPTOOL_HELPER_MK path. Fixes: 0ec659bd2b7e ("tfa-layerscape: Bump to lf-6.6.23-2.0.0") Signed-off-by: Pawel Dembicki Link: https://github.com/openwrt/openwrt/pull/16472 Signed-off-by: Robert Marko --- package/boot/tfa-layerscape/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package/boot/tfa-layerscape/Makefile b/package/boot/tfa-layerscape/Makefile index c97dd997ffa663..7304df55c713d8 100644 --- a/package/boot/tfa-layerscape/Makefile +++ b/package/boot/tfa-layerscape/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=tfa-layerscape PKG_VERSION:=6.6.23.2.0.0 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://github.com/nxp-qoriq/atf @@ -25,7 +25,7 @@ HOST_CFLAGS += -Wall -Werror -pedantic -std=c99 define Host/Compile $(MAKE) -C \ $(HOST_BUILD_DIR)/tools/fiptool \ - PLAT_FIPTOOL_HELPER_MK="$(HOST_BUILD_DIR)/tools/nxp/plat_fiptool/plat_fiptool.mk" \ + PLAT_FIPTOOL_HELPER_MK="$(HOST_BUILD_DIR)/tools/fiptool/plat_fiptool/nxp/plat_fiptool.mk" \ CFLAGS="$(HOST_CFLAGS)" \ LDFLAGS="$(HOST_LDFLAGS)" \ HOSTCCFLAGS="$(HOST_CFLAGS)" From 72accd078f20ed2a5caaa12b1bea463f40aadd73 Mon Sep 17 00:00:00 2001 From: Daniel Golle Date: Sun, 7 Jul 2024 00:59:13 +0100 Subject: [PATCH 7/8] tools/flex: respect STAGING_DIR_HOST flex currently leaks the path of m4 as found on the build host. While it is possible to override this using the M4 environment variable (which we always did for autotools based builds) when using CMake or Ninja the M4 variable is not set. One easy fix is to make flex take STAGING_DIR_HOST into account and expect m4 there if that variable is set in the environment. Signed-off-by: Daniel Golle --- tools/flex/patches/300-m4-path.patch | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 tools/flex/patches/300-m4-path.patch diff --git a/tools/flex/patches/300-m4-path.patch b/tools/flex/patches/300-m4-path.patch new file mode 100644 index 00000000000000..48e376f276f884 --- /dev/null +++ b/tools/flex/patches/300-m4-path.patch @@ -0,0 +1,23 @@ +--- a/src/main.c ++++ b/src/main.c +@@ -213,6 +213,8 @@ int main (int argc, char *argv[]) + + void check_options (void) + { ++ const char * staging_dir = NULL; ++ char * m4_staging = NULL; + int i; + const char * m4 = NULL; + +@@ -341,7 +343,10 @@ void check_options (void) + + /* Setup the filter chain. */ + output_chain = filter_create_int(NULL, filter_tee_header, headerfilename); +- if ( !(m4 = getenv("M4"))) { ++ if ( (staging_dir = getenv("STAGING_DIR_HOST"))) { ++ asprintf(&m4_staging, "%s/bin/m4", staging_dir); ++ m4 = m4_staging; ++ } else if ( !(m4 = getenv("M4"))) { + char *slash; + m4 = M4; + if ((slash = strrchr(M4, '/')) != NULL) { From 23ac1ad9515588321970985859b2ee0cc8243f91 Mon Sep 17 00:00:00 2001 From: Luiz Angelo Daros de Luca Date: Wed, 10 Jul 2024 20:20:06 -0300 Subject: [PATCH 8/8] realtek: d-link: add support for dgs-1210-28p-f General hardware info: ---------------------- D-Link DGS-1210-28P rev. F1 is a switch with 24 ethernet ports and 4 combo ports, all ports Gbit capable. It is based on a RTL8382 SoC @500MHz, DRAM 128MB and 32MB flash. 24 ethernet ports are 802.3af/at PoE capable with a total PoE power budget of 193W. Power over Ethernet: -------------------- The PSE hardware consists of three BCM59121 PSE chips, serving 8 ports each. They are controlled by a Nuvoton MCU. In order to enable PoE, the realtek-poe package is required. It is installed by default, but currently it requires the manual editing of /etc/config/poe. Keep in mind that the port number assignment does not match on this switch, alway 8 ports are in reversed order: 8-1, 16-9 and 24-17. LEDs and Buttons: ----------------- On stock firmware, the mode button is supposed to switch the LED indicators of all port LEDs between Link Activity and PoE status. The currently selected mode is visualized using the respective LEDs. PoE Max indicates that the maximum PoE budget has been reached. Since there is currently no support for this behavior, these LEDs and the mode button can be used independently. Serial connection: ------------------ The UART for the SoC (115200 8N1) is available via unpopulated standard 0.1" pin header marked J6. Pin1 is marked with arrow and square. Pin 1: Vcc 3.3V Pin 2: Tx Pin 3: Rx Pin 4: Gnd OEM installation from Web Interface: ------------------------------------ 1. Make sure you are booting using OEM in image 2 slot. If not, switch to image2 using the menus System > Firmware Information > Boot from image2 Tools > reboot 2. Upload image in vendor firmware via Tools > Backup / Upgrade Firmware > image1 3. Toggle startup image via System > Firmware Information > Boot from image1 4. Tools > reboot Other installation methods not tested, but since the device shares the board with the DGS-1210-28, the following should work: Boot initramfs image from U-Boot: --------------------------------- 1. Press Escape key during `Hit Esc key to stop autoboot` prompt 2. Press CTRL+C keys to get into real U-Boot prompt 3. Init network with `rtk network on` command 4. Load image with `tftpboot 0x8f000000 openwrt-rtl838x-generic-d-link_dgs-1210-28p-f-initramfs-kernel.bin` command 5. Boot the image with `bootm` command Signed-off-by: Luiz Angelo Daros de Luca Link: https://github.com/openwrt/openwrt/pull/15938 Signed-off-by: Sander Vanheule --- .../realtek/base-files/etc/board.d/02_network | 4 ++ .../base-files/etc/uci-defaults/04_dlinkfan | 2 +- .../dts/rtl8382_d-link_dgs-1210-28mp-f.dts | 45 +---------------- .../dts/rtl8382_d-link_dgs-1210-28p-f.dts | 13 +++++ .../rtl8382_d-link_dgs-1210-28p_common.dtsi | 48 +++++++++++++++++++ target/linux/realtek/image/rtl838x.mk | 9 ++++ 6 files changed, 76 insertions(+), 45 deletions(-) create mode 100644 target/linux/realtek/dts/rtl8382_d-link_dgs-1210-28p-f.dts create mode 100644 target/linux/realtek/dts/rtl8382_d-link_dgs-1210-28p_common.dtsi diff --git a/target/linux/realtek/base-files/etc/board.d/02_network b/target/linux/realtek/base-files/etc/board.d/02_network index e856ad7479ac67..5073dbcc31e90b 100644 --- a/target/linux/realtek/base-files/etc/board.d/02_network +++ b/target/linux/realtek/base-files/etc/board.d/02_network @@ -82,6 +82,10 @@ d-link,dgs-1210-28mp-f) ucidef_set_poe 370 "lan8 lan7 lan6 lan5 lan4 lan3 lan2 lan1 lan16 lan15 lan14 lan13 lan12 lan11 lan10 lan9 lan24 lan23 lan22 lan21 lan20 lan19 lan18 lan17" ;; +d-link,dgs-1210-28p-f) + ucidef_set_poe 193 "lan8 lan7 lan6 lan5 lan4 lan3 lan2 lan1 lan16 lan15 lan14 lan13 lan12 lan11 lan10 lan9 lan24 lan23 + lan22 lan21 lan20 lan19 lan18 lan17" + ;; engenius,ews2910p) ucidef_set_poe 60 "$(filter_port_list "$lan_list" "lan9 lan10")" ;; diff --git a/target/linux/realtek/base-files/etc/uci-defaults/04_dlinkfan b/target/linux/realtek/base-files/etc/uci-defaults/04_dlinkfan index 1a5fd3606f24c8..17cc6494388f25 100644 --- a/target/linux/realtek/base-files/etc/uci-defaults/04_dlinkfan +++ b/target/linux/realtek/base-files/etc/uci-defaults/04_dlinkfan @@ -7,7 +7,7 @@ board=$(board_name) case "$board" in -d-link,dgs-1210-28mp-f) +d-link,dgs-1210-28p-f|d-link,dgs-1210-28mp-f) # Enable fan control FAN_CTRL='/sys/class/hwmon/hwmon0' echo 1 > "$FAN_PATH/pwm1_enable" diff --git a/target/linux/realtek/dts/rtl8382_d-link_dgs-1210-28mp-f.dts b/target/linux/realtek/dts/rtl8382_d-link_dgs-1210-28mp-f.dts index 4c20a4ae6e2aa6..4aa6498b03e93a 100644 --- a/target/linux/realtek/dts/rtl8382_d-link_dgs-1210-28mp-f.dts +++ b/target/linux/realtek/dts/rtl8382_d-link_dgs-1210-28mp-f.dts @@ -5,53 +5,10 @@ #include "rtl83xx_d-link_dgs-1210_gpio.dtsi" #include "rtl83xx_d-link_dgs-1210_gpio_sfp.dtsi" #include "rtl8382_d-link_dgs-1210-28_common.dtsi" +#include "rtl8382_d-link_dgs-1210-28p_common.dtsi" / { compatible = "d-link,dgs-1210-28mp-f", "realtek,rtl8382-soc", "realtek,rtl838x-soc"; model = "D-Link DGS-1210-28MP F"; - /* LM63 */ - i2c-gpio-4 { - compatible = "i2c-gpio"; - sda-gpios = <&gpio1 32 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; - scl-gpios = <&gpio1 31 GPIO_ACTIVE_HIGH>; - i2c-gpio,delay-us = <2>; - i2c-gpio,scl-open-drain; /* should be replaced by i2c-gpio,scl-has-no-pullup in kernel 6.6 */ - #address-cells = <1>; - #size-cells = <0>; - - lm63@4c { - compatible = "national,lm63"; - reg = <0x4c>; - }; - }; -}; - -&leds { - link_act { - label = "green:link_act"; - gpios = <&gpio1 28 GPIO_ACTIVE_LOW>; - }; - - poe { - label = "green:poe"; - gpios = <&gpio1 29 GPIO_ACTIVE_LOW>; - }; - - poe_max { - label = "yellow:poe_max"; - gpios = <&gpio1 27 GPIO_ACTIVE_LOW>; - }; -}; - -&keys { - mode { - label = "mode"; - gpios = <&gpio1 30 GPIO_ACTIVE_LOW>; - linux,code = ; - }; -}; - -&uart1 { - status = "okay"; }; diff --git a/target/linux/realtek/dts/rtl8382_d-link_dgs-1210-28p-f.dts b/target/linux/realtek/dts/rtl8382_d-link_dgs-1210-28p-f.dts new file mode 100644 index 00000000000000..6cb8db81bcf3c1 --- /dev/null +++ b/target/linux/realtek/dts/rtl8382_d-link_dgs-1210-28p-f.dts @@ -0,0 +1,13 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT + +#include "rtl838x.dtsi" +#include "rtl83xx_d-link_dgs-1210_common.dtsi" +#include "rtl83xx_d-link_dgs-1210_gpio.dtsi" +#include "rtl83xx_d-link_dgs-1210_gpio_sfp.dtsi" +#include "rtl8382_d-link_dgs-1210-28_common.dtsi" +#include "rtl8382_d-link_dgs-1210-28p_common.dtsi" + +/ { + compatible = "d-link,dgs-1210-28p-f", "realtek,rtl8382-soc", "realtek,rtl838x-soc"; + model = "D-Link DGS-1210-28P F"; +}; diff --git a/target/linux/realtek/dts/rtl8382_d-link_dgs-1210-28p_common.dtsi b/target/linux/realtek/dts/rtl8382_d-link_dgs-1210-28p_common.dtsi new file mode 100644 index 00000000000000..8aaa637afe8b16 --- /dev/null +++ b/target/linux/realtek/dts/rtl8382_d-link_dgs-1210-28p_common.dtsi @@ -0,0 +1,48 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT + +/ { + /* LM63 */ + i2c-gpio-4 { + compatible = "i2c-gpio"; + sda-gpios = <&gpio1 32 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; + scl-gpios = <&gpio1 31 GPIO_ACTIVE_HIGH>; + i2c-gpio,delay-us = <2>; + i2c-gpio,scl-open-drain; /* should be replaced by i2c-gpio,scl-has-no-pullup in kernel 6.6 */ + #address-cells = <1>; + #size-cells = <0>; + + lm63@4c { + compatible = "national,lm63"; + reg = <0x4c>; + }; + }; +}; + +&leds { + link_act { + label = "green:link_act"; + gpios = <&gpio1 28 GPIO_ACTIVE_LOW>; + }; + + poe { + label = "green:poe"; + gpios = <&gpio1 29 GPIO_ACTIVE_LOW>; + }; + + poe_max { + label = "yellow:poe_max"; + gpios = <&gpio1 27 GPIO_ACTIVE_LOW>; + }; +}; + +&keys { + mode { + label = "mode"; + gpios = <&gpio1 30 GPIO_ACTIVE_LOW>; + linux,code = ; + }; +}; + +&uart1 { + status = "okay"; +}; diff --git a/target/linux/realtek/image/rtl838x.mk b/target/linux/realtek/image/rtl838x.mk index c44e3a74f7ecca..c8e1c481ec9280 100644 --- a/target/linux/realtek/image/rtl838x.mk +++ b/target/linux/realtek/image/rtl838x.mk @@ -75,6 +75,15 @@ define Device/d-link_dgs-1210-28mp-f endef TARGET_DEVICES += d-link_dgs-1210-28mp-f +define Device/d-link_dgs-1210-28p-f + $(Device/d-link_dgs-1210) + SOC := rtl8382 + DEVICE_MODEL := DGS-1210-28P + DEVICE_VARIANT := F + DEVICE_PACKAGES += realtek-poe kmod-hwmon-lm63 +endef +TARGET_DEVICES += d-link_dgs-1210-28p-f + # The "IMG-" uImage name allows flashing the iniramfs from the vendor Web UI. # Avoided for sysupgrade, as the vendor FW would do an incomplete flash. define Device/engenius_ews2910p