diff --git a/config.yml b/config.yml index 1e09fb7a7..56bf6772b 100644 --- a/config.yml +++ b/config.yml @@ -1,6 +1,6 @@ repo: https://github.com/openwrt/openwrt.git branch: openwrt-23.05 -revision: a4792d79e899b28cefdb6d54c43cf0c13a9646e5 +revision: cdc8470aecd03e6994714af092f030f209951de4 output_dir: ./output patch_folders: diff --git a/patches/0039-ipq807x-drop-upstream-target.patch b/patches/0039-ipq807x-drop-upstream-target.patch index 302d7d5ba..7c7257dc0 100644 --- a/patches/0039-ipq807x-drop-upstream-target.patch +++ b/patches/0039-ipq807x-drop-upstream-target.patch @@ -1,7 +1,7 @@ -From 2a47e049084cd27d3277056d488329f4d4c9cd4b Mon Sep 17 00:00:00 2001 +From ea120b770155e6a18b94ac28c0afac85acd40105 Mon Sep 17 00:00:00 2001 From: John Crispin -Date: Sat, 15 Jul 2023 16:11:53 +0200 -Subject: [PATCH 39/43] ipq807x: drop upstream target +Date: Thu, 7 Sep 2023 05:51:43 +0200 +Subject: [PATCH] ipq807x: drop upstream target Signed-off-by: John Crispin --- @@ -78,8 +78,6 @@ Signed-off-by: John Crispin ...4-dts-qcom-ipq8074-add-thermal-nodes.patch | 130 - ...-dts-qcom-ipq8074-add-clocks-to-APCS.patch | 29 - ...-qcom-ipq8074-convert-to-parent-data.patch | 3601 ----- - ...-Allow-specifying-custom-reset-delay.patch | 54 - - ...eset-support-resetting-multiple-bits.patch | 59 - ...k-qcom-ipq8074-add-missing-networkin.patch | 39 - ...pq8074-add-missing-networking-resets.patch | 41 - ...074-populate-fw_name-for-all-parents.patch | 152 - @@ -140,7 +138,7 @@ Signed-off-by: John Crispin .../0900-power-Add-Qualcomm-APM.patch | 1047 -- ...egulator-add-Qualcomm-CPR-regulators.patch | 12147 ---------------- ...rm64-dts-ipq8074-add-label-to-clocks.patch | 24 - - 135 files changed, 30006 deletions(-) + 133 files changed, 29893 deletions(-) delete mode 100644 target/linux/ipq807x/Makefile delete mode 100644 target/linux/ipq807x/base-files/etc/board.d/01_leds delete mode 100644 target/linux/ipq807x/base-files/etc/board.d/02_network @@ -214,8 +212,6 @@ Signed-off-by: John Crispin delete mode 100644 target/linux/ipq807x/patches-5.15/0045-v6.2-arm64-dts-qcom-ipq8074-add-thermal-nodes.patch delete mode 100644 target/linux/ipq807x/patches-5.15/0046-v6.2-arm64-dts-qcom-ipq8074-add-clocks-to-APCS.patch delete mode 100644 target/linux/ipq807x/patches-5.15/0047-v6.2-clk-qcom-ipq8074-convert-to-parent-data.patch - delete mode 100644 target/linux/ipq807x/patches-5.15/0048-v6.1-clk-qcom-reset-Allow-specifying-custom-reset-delay.patch - delete mode 100644 target/linux/ipq807x/patches-5.15/0049-v6.2-clk-qcom-reset-support-resetting-multiple-bits.patch delete mode 100644 target/linux/ipq807x/patches-5.15/0050-v6.2-dt-bindings-clock-qcom-ipq8074-add-missing-networkin.patch delete mode 100644 target/linux/ipq807x/patches-5.15/0051-v6.2-clk-qcom-ipq8074-add-missing-networking-resets.patch delete mode 100644 target/linux/ipq807x/patches-5.15/0052-v6.2-clk-qcom-ipq8074-populate-fw_name-for-all-parents.patch @@ -12330,131 +12326,6 @@ index 9162ea538d..0000000000 - .ops = &clk_rcg2_ops, - }, - }; -diff --git a/target/linux/ipq807x/patches-5.15/0048-v6.1-clk-qcom-reset-Allow-specifying-custom-reset-delay.patch b/target/linux/ipq807x/patches-5.15/0048-v6.1-clk-qcom-reset-Allow-specifying-custom-reset-delay.patch -deleted file mode 100644 -index 6a525f2c3e..0000000000 ---- a/target/linux/ipq807x/patches-5.15/0048-v6.1-clk-qcom-reset-Allow-specifying-custom-reset-delay.patch -+++ /dev/null -@@ -1,54 +0,0 @@ --From 72bc31aa621e21a7c36a7da8aa6f6a77bb234e0b Mon Sep 17 00:00:00 2001 --From: Stephan Gerhold --Date: Wed, 6 Jul 2022 15:41:29 +0200 --Subject: [PATCH] clk: qcom: reset: Allow specifying custom reset delay -- --The amount of time required between asserting and deasserting the reset --signal can vary depending on the involved hardware component. Sometimes --1 us might not be enough and a larger delay is necessary to conform to --the specifications. -- --Usually this is worked around in the consuming drivers, by replacing --reset_control_reset() with a sequence of reset_control_assert(), waiting --for a custom delay, followed by reset_control_deassert(). -- --However, in some cases the driver making use of the reset is generic and --can be used with different reset controllers. In this case the reset --time requirement is better handled directly by the reset controller --driver. -- --Make this possible by adding an "udelay" field to the qcom_reset_map --that allows setting a different reset delay (in microseconds). -- --Signed-off-by: Stephan Gerhold --Signed-off-by: Bjorn Andersson --Link: https://lore.kernel.org/r/20220706134132.3623415-4-stephan.gerhold@kernkonzept.com ----- -- drivers/clk/qcom/reset.c | 4 +++- -- drivers/clk/qcom/reset.h | 1 + -- 2 files changed, 4 insertions(+), 1 deletion(-) -- ----- a/drivers/clk/qcom/reset.c --+++ b/drivers/clk/qcom/reset.c --@@ -13,8 +13,10 @@ -- -- static int qcom_reset(struct reset_controller_dev *rcdev, unsigned long id) -- { --+ struct qcom_reset_controller *rst = to_qcom_reset_controller(rcdev); --+ -- rcdev->ops->assert(rcdev, id); --- udelay(1); --+ udelay(rst->reset_map[id].udelay ?: 1); /* use 1 us as default */ -- rcdev->ops->deassert(rcdev, id); -- return 0; -- } ----- a/drivers/clk/qcom/reset.h --+++ b/drivers/clk/qcom/reset.h --@@ -11,6 +11,7 @@ -- struct qcom_reset_map { -- unsigned int reg; -- u8 bit; --+ u8 udelay; -- }; -- -- struct regmap; -diff --git a/target/linux/ipq807x/patches-5.15/0049-v6.2-clk-qcom-reset-support-resetting-multiple-bits.patch b/target/linux/ipq807x/patches-5.15/0049-v6.2-clk-qcom-reset-support-resetting-multiple-bits.patch -deleted file mode 100644 -index e0725a6612..0000000000 ---- a/target/linux/ipq807x/patches-5.15/0049-v6.2-clk-qcom-reset-support-resetting-multiple-bits.patch -+++ /dev/null -@@ -1,59 +0,0 @@ --From 813ba3e427671ba3ff35c825087b03f0ad91cf02 Mon Sep 17 00:00:00 2001 --From: Robert Marko --Date: Mon, 7 Nov 2022 14:28:59 +0100 --Subject: [PATCH] clk: qcom: reset: support resetting multiple bits -- --This patch adds the support for giving the complete bitmask --in reset structure and reset operation will use this bitmask --for all reset operations. -- --Currently, reset structure only takes a single bit for each reset --and then calculates the bitmask by using the BIT() macro. -- --However, this is not sufficient anymore for newer SoC-s like IPQ8074, --IPQ6018 and more, since their networking resets require multiple bits --to be asserted in order to properly reset the HW block completely. -- --So, in order to allow asserting multiple bits add "bitmask" field to --qcom_reset_map, and then use that bitmask value if its populated in the --driver, if its not populated, then we just default to existing behaviour --and calculate the bitmask on the fly. -- --Signed-off-by: Robert Marko --Signed-off-by: Bjorn Andersson --Link: https://lore.kernel.org/r/20221107132901.489240-1-robimarko@gmail.com ----- -- drivers/clk/qcom/reset.c | 4 ++-- -- drivers/clk/qcom/reset.h | 1 + -- 2 files changed, 3 insertions(+), 2 deletions(-) -- ----- a/drivers/clk/qcom/reset.c --+++ b/drivers/clk/qcom/reset.c --@@ -30,7 +30,7 @@ qcom_reset_assert(struct reset_controlle -- -- rst = to_qcom_reset_controller(rcdev); -- map = &rst->reset_map[id]; --- mask = BIT(map->bit); --+ mask = map->bitmask ? map->bitmask : BIT(map->bit); -- -- return regmap_update_bits(rst->regmap, map->reg, mask, mask); -- } --@@ -44,7 +44,7 @@ qcom_reset_deassert(struct reset_control -- -- rst = to_qcom_reset_controller(rcdev); -- map = &rst->reset_map[id]; --- mask = BIT(map->bit); --+ mask = map->bitmask ? map->bitmask : BIT(map->bit); -- -- return regmap_update_bits(rst->regmap, map->reg, mask, 0); -- } ----- a/drivers/clk/qcom/reset.h --+++ b/drivers/clk/qcom/reset.h --@@ -12,6 +12,7 @@ struct qcom_reset_map { -- unsigned int reg; -- u8 bit; -- u8 udelay; --+ u32 bitmask; -- }; -- -- struct regmap; diff --git a/target/linux/ipq807x/patches-5.15/0050-v6.2-dt-bindings-clock-qcom-ipq8074-add-missing-networkin.patch b/target/linux/ipq807x/patches-5.15/0050-v6.2-dt-bindings-clock-qcom-ipq8074-add-missing-networkin.patch deleted file mode 100644 index 75f16a1673..0000000000 @@ -14611,7 +14482,7 @@ index bc1464b126..0000000000 - val &= ~PCI_EXP_LNKCAP_ASPMS; diff --git a/target/linux/ipq807x/patches-5.15/0076-v5.16-PCI-qcom-Replace-ops-with-struct-pcie_cfg-in-pcie-ma.patch b/target/linux/ipq807x/patches-5.15/0076-v5.16-PCI-qcom-Replace-ops-with-struct-pcie_cfg-in-pcie-ma.patch deleted file mode 100644 -index b29512fb76..0000000000 +index 817a3c64c9..0000000000 --- a/target/linux/ipq807x/patches-5.15/0076-v5.16-PCI-qcom-Replace-ops-with-struct-pcie_cfg-in-pcie-ma.patch +++ /dev/null @@ -1,122 +0,0 @@ @@ -14647,7 +14518,7 @@ index b29512fb76..0000000000 - struct qcom_pcie { - struct dw_pcie *pci; - void __iomem *parf; /* DT parf */ --@@ -1467,6 +1471,38 @@ static const struct qcom_pcie_ops ops_1_ +-@@ -1469,6 +1473,38 @@ static const struct qcom_pcie_ops ops_1_ - .config_sid = qcom_pcie_config_sid_sm8250, - }; - @@ -14686,7 +14557,7 @@ index b29512fb76..0000000000 - static const struct dw_pcie_ops dw_pcie_ops = { - .link_up = qcom_pcie_link_up, - .start_link = qcom_pcie_start_link, --@@ -1478,6 +1514,7 @@ static int qcom_pcie_probe(struct platfo +-@@ -1480,6 +1516,7 @@ static int qcom_pcie_probe(struct platfo - struct pcie_port *pp; - struct dw_pcie *pci; - struct qcom_pcie *pcie; @@ -14694,7 +14565,7 @@ index b29512fb76..0000000000 - int ret; - - pcie = devm_kzalloc(dev, sizeof(*pcie), GFP_KERNEL); --@@ -1499,7 +1536,13 @@ static int qcom_pcie_probe(struct platfo +-@@ -1501,7 +1538,13 @@ static int qcom_pcie_probe(struct platfo - - pcie->pci = pci; - @@ -14709,7 +14580,7 @@ index b29512fb76..0000000000 - - pcie->reset = devm_gpiod_get_optional(dev, "perst", GPIOD_OUT_HIGH); - if (IS_ERR(pcie->reset)) { --@@ -1555,16 +1598,17 @@ err_pm_runtime_put: +-@@ -1557,16 +1600,17 @@ err_pm_runtime_put: - } - - static const struct of_device_id qcom_pcie_match[] = { @@ -14739,7 +14610,7 @@ index b29512fb76..0000000000 - diff --git a/target/linux/ipq807x/patches-5.15/0077-v6.0-PCI-qcom-Add-IPQ60xx-support.patch b/target/linux/ipq807x/patches-5.15/0077-v6.0-PCI-qcom-Add-IPQ60xx-support.patch deleted file mode 100644 -index af8ba2a4e1..0000000000 +index 6881ed6d25..0000000000 --- a/target/linux/ipq807x/patches-5.15/0077-v6.0-PCI-qcom-Add-IPQ60xx-support.patch +++ /dev/null @@ -1,220 +0,0 @@ @@ -14815,7 +14686,7 @@ index af8ba2a4e1..0000000000 - }; - - struct qcom_pcie; --@@ -1280,6 +1290,112 @@ static void qcom_pcie_post_deinit_2_7_0( +-@@ -1282,6 +1292,112 @@ static void qcom_pcie_post_deinit_2_7_0( - clk_disable_unprepare(res->pipe_clk); - } - @@ -14928,7 +14799,7 @@ index af8ba2a4e1..0000000000 - static int qcom_pcie_link_up(struct dw_pcie *pci) - { - u16 offset = dw_pcie_find_capability(pci, PCI_CAP_ID_EXP); --@@ -1471,6 +1587,15 @@ static const struct qcom_pcie_ops ops_1_ +-@@ -1473,6 +1589,15 @@ static const struct qcom_pcie_ops ops_1_ - .config_sid = qcom_pcie_config_sid_sm8250, - }; - @@ -14944,7 +14815,7 @@ index af8ba2a4e1..0000000000 - static const struct qcom_pcie_cfg apq8084_cfg = { - .ops = &ops_1_0_0, - }; --@@ -1503,6 +1628,10 @@ static const struct qcom_pcie_cfg sc7280 +-@@ -1505,6 +1630,10 @@ static const struct qcom_pcie_cfg sc7280 - .ops = &ops_1_9_0, - }; - @@ -14955,7 +14826,7 @@ index af8ba2a4e1..0000000000 - static const struct dw_pcie_ops dw_pcie_ops = { - .link_up = qcom_pcie_link_up, - .start_link = qcom_pcie_start_link, --@@ -1609,6 +1738,7 @@ static const struct of_device_id qcom_pc +-@@ -1611,6 +1740,7 @@ static const struct of_device_id qcom_pc - { .compatible = "qcom,pcie-sdm845", .data = &sdm845_cfg }, - { .compatible = "qcom,pcie-sm8250", .data = &sm8250_cfg }, - { .compatible = "qcom,pcie-sc7280", .data = &sc7280_cfg }, @@ -15922,7 +15793,7 @@ index 0fa38394b9..0000000000 - diff --git a/target/linux/ipq807x/patches-5.15/0107-PCI-qcom-Add-support-for-IPQ8074-Gen3-port.patch b/target/linux/ipq807x/patches-5.15/0107-PCI-qcom-Add-support-for-IPQ8074-Gen3-port.patch deleted file mode 100644 -index c7a7e7ab49..0000000000 +index ae6b148210..0000000000 --- a/target/linux/ipq807x/patches-5.15/0107-PCI-qcom-Add-support-for-IPQ8074-Gen3-port.patch +++ /dev/null @@ -1,23 +0,0 @@ @@ -15941,7 +15812,7 @@ index c7a7e7ab49..0000000000 - ---- a/drivers/pci/controller/dwc/pcie-qcom.c -+++ b/drivers/pci/controller/dwc/pcie-qcom.c --@@ -1733,6 +1733,7 @@ static const struct of_device_id qcom_pc +-@@ -1735,6 +1735,7 @@ static const struct of_device_id qcom_pc - { .compatible = "qcom,pcie-apq8064", .data = &ipq8064_cfg }, - { .compatible = "qcom,pcie-msm8996", .data = &msm8996_cfg }, - { .compatible = "qcom,pcie-ipq8074", .data = &ipq8074_cfg }, diff --git a/patches/0048-hostapd-drop-current-version.patch b/patches/0048-hostapd-drop-current-version.patch index d3cf82533..8c4a3dde1 100644 --- a/patches/0048-hostapd-drop-current-version.patch +++ b/patches/0048-hostapd-drop-current-version.patch @@ -1,7 +1,7 @@ -From 1a41ef8793ededd0aea18c1c610cd88aa43fa5be Mon Sep 17 00:00:00 2001 +From 9d5081372cce2583789966171b7fea950e50f91e Mon Sep 17 00:00:00 2001 From: John Crispin -Date: Fri, 1 Sep 2023 11:50:41 +0200 -Subject: [PATCH 48/52] hostapd: drop current version +Date: Thu, 7 Sep 2023 05:54:07 +0200 +Subject: [PATCH] hostapd: drop upstream version Signed-off-by: John Crispin --- @@ -38,7 +38,7 @@ Signed-off-by: John Crispin ...efile-make-run-tests-with-CONFIG_TLS.patch | 1358 --- ...hecks-encountered-during-tests-hwsim.patch | 45 - ...-dpp_pkex-EC-point-mul-w-value-prime.patch | 26 - - ...ix-compiling-without-IEEE8021X_EAPOL.patch | 41 - + ...tapd-update-cfs0-and-cfs1-for-160MHz.patch | 141 - .../hostapd/patches/200-multicall.patch | 355 - .../services/hostapd/patches/300-noscan.patch | 58 - .../hostapd/patches/301-mesh-noscan.patch | 71 - @@ -68,7 +68,7 @@ Signed-off-by: John Crispin .../patches/500-lto-jobserver-support.patch | 59 - .../patches/590-rrm-wnm-statistics.patch | 92 - .../599-wpa_supplicant-fix-warnings.patch | 19 - - .../hostapd/patches/600-ubus_support.patch | 624 -- + .../hostapd/patches/600-ubus_support.patch | 625 -- .../610-hostapd_cli_ujail_permission.patch | 33 - .../hostapd/patches/700-wifi-reload.patch | 194 - .../hostapd/patches/710-vlan_no_bridge.patch | 41 - @@ -81,12 +81,13 @@ Signed-off-by: John Crispin .../hostapd/patches/760-dynamic_own_ip.patch | 109 - .../hostapd/patches/761-shared_das_port.patch | 298 - ..._AP-functions-dependant-on-CONFIG_AP.patch | 33 - + .../patches/991-Fix-OpenWrt-13156.patch | 63 - .../services/hostapd/src/src/ap/ubus.c | 2101 ----- .../services/hostapd/src/src/ap/ubus.h | 154 - .../hostapd/src/src/utils/build_features.h | 65 - .../hostapd/src/wpa_supplicant/ubus.c | 430 - .../hostapd/src/wpa_supplicant/ubus.h | 66 - - 81 files changed, 24606 deletions(-) + 82 files changed, 24770 deletions(-) delete mode 100644 package/network/services/hostapd/Config.in delete mode 100644 package/network/services/hostapd/Makefile delete mode 100644 package/network/services/hostapd/README.md @@ -120,7 +121,7 @@ Signed-off-by: John Crispin delete mode 100644 package/network/services/hostapd/patches/140-tests-Makefile-make-run-tests-with-CONFIG_TLS.patch delete mode 100644 package/network/services/hostapd/patches/150-add-NULL-checks-encountered-during-tests-hwsim.patch delete mode 100644 package/network/services/hostapd/patches/160-dpp_pkex-EC-point-mul-w-value-prime.patch - delete mode 100644 package/network/services/hostapd/patches/170-wpa_supplicant-fix-compiling-without-IEEE8021X_EAPOL.patch + delete mode 100644 package/network/services/hostapd/patches/170-hostapd-update-cfs0-and-cfs1-for-160MHz.patch delete mode 100644 package/network/services/hostapd/patches/200-multicall.patch delete mode 100644 package/network/services/hostapd/patches/300-noscan.patch delete mode 100644 package/network/services/hostapd/patches/301-mesh-noscan.patch @@ -163,6 +164,7 @@ Signed-off-by: John Crispin delete mode 100644 package/network/services/hostapd/patches/760-dynamic_own_ip.patch delete mode 100644 package/network/services/hostapd/patches/761-shared_das_port.patch delete mode 100644 package/network/services/hostapd/patches/990-ctrl-make-WNM_AP-functions-dependant-on-CONFIG_AP.patch + delete mode 100644 package/network/services/hostapd/patches/991-Fix-OpenWrt-13156.patch delete mode 100644 package/network/services/hostapd/src/src/ap/ubus.c delete mode 100644 package/network/services/hostapd/src/src/ap/ubus.h delete mode 100644 package/network/services/hostapd/src/src/utils/build_features.h @@ -290,7 +292,7 @@ index 8f28eb2bd4..0000000000 - Hostapd will refuse to start if MBO and RSN are enabled without 11w. diff --git a/package/network/services/hostapd/Makefile b/package/network/services/hostapd/Makefile deleted file mode 100644 -index b8921e8452..0000000000 +index 287a70c80e..0000000000 --- a/package/network/services/hostapd/Makefile +++ /dev/null @@ -1,824 +0,0 @@ @@ -305,9 +307,9 @@ index b8921e8452..0000000000 - -PKG_SOURCE_URL:=http://w1.fi/hostap.git -PKG_SOURCE_PROTO:=git --PKG_SOURCE_DATE:=2023-03-29 --PKG_SOURCE_VERSION:=bb945b98fefc64887dffb40773a19d77585cee42 --PKG_MIRROR_HASH:=1da8a39c7c81ce257994874402a86d00080a6145b5eb5c5fc44b2fae1853fe8d +-PKG_SOURCE_DATE:=2023-06-22 +-PKG_SOURCE_VERSION:=599d00be9de2846c6ea18c1487d8329522ade22b +-PKG_MIRROR_HASH:=828810c558ea181e45ed0c8b940f5c41e55775e2979a15aed8cf0ab17dd7723c - -PKG_MAINTAINER:=Felix Fietkau -PKG_LICENSE:=BSD-3-Clause @@ -7180,7 +7182,7 @@ index 269dcaac75..0000000000 - } diff --git a/package/network/services/hostapd/patches/010-mesh-Allow-DFS-channels-to-be-selected-if-dfs-is-ena.patch b/package/network/services/hostapd/patches/010-mesh-Allow-DFS-channels-to-be-selected-if-dfs-is-ena.patch deleted file mode 100644 -index 761fe368cd..0000000000 +index 0a51c84d21..0000000000 --- a/package/network/services/hostapd/patches/010-mesh-Allow-DFS-channels-to-be-selected-if-dfs-is-ena.patch +++ /dev/null @@ -1,135 +0,0 @@ @@ -7200,7 +7202,7 @@ index 761fe368cd..0000000000 - ---- a/wpa_supplicant/wpa_supplicant.c -+++ b/wpa_supplicant/wpa_supplicant.c --@@ -2621,7 +2621,7 @@ static int drv_supports_vht(struct wpa_s +-@@ -2638,7 +2638,7 @@ static int drv_supports_vht(struct wpa_s - } - - @@ -7209,7 +7211,7 @@ index 761fe368cd..0000000000 - { - int i; - --@@ -2630,7 +2630,10 @@ static bool ibss_mesh_is_80mhz_avail(int +-@@ -2647,7 +2647,10 @@ static bool ibss_mesh_is_80mhz_avail(int - - chan = hw_get_channel_chan(mode, i, NULL); - if (!chan || @@ -7221,7 +7223,7 @@ index 761fe368cd..0000000000 - return false; - } - --@@ -2757,7 +2760,7 @@ static void ibss_mesh_select_40mhz(struc +-@@ -2774,7 +2777,7 @@ static void ibss_mesh_select_40mhz(struc - const struct wpa_ssid *ssid, - struct hostapd_hw_modes *mode, - struct hostapd_freq_params *freq, @@ -7230,7 +7232,7 @@ index 761fe368cd..0000000000 - int chan_idx; - struct hostapd_channel_data *pri_chan = NULL, *sec_chan = NULL; - int i, res; --@@ -2781,8 +2784,11 @@ static void ibss_mesh_select_40mhz(struc +-@@ -2798,8 +2801,11 @@ static void ibss_mesh_select_40mhz(struc - return; - - /* Check primary channel flags */ @@ -7243,7 +7245,7 @@ index 761fe368cd..0000000000 - - #ifdef CONFIG_HT_OVERRIDES - if (ssid->disable_ht40) --@@ -2808,8 +2814,11 @@ static void ibss_mesh_select_40mhz(struc +-@@ -2825,8 +2831,11 @@ static void ibss_mesh_select_40mhz(struc - return; - - /* Check secondary channel flags */ @@ -7256,7 +7258,7 @@ index 761fe368cd..0000000000 - - if (ht40 == -1) { - if (!(pri_chan->flag & HOSTAPD_CHAN_HT40MINUS)) --@@ -2863,7 +2872,7 @@ static bool ibss_mesh_select_80_160mhz(s +-@@ -2880,7 +2889,7 @@ static bool ibss_mesh_select_80_160mhz(s - const struct wpa_ssid *ssid, - struct hostapd_hw_modes *mode, - struct hostapd_freq_params *freq, @@ -7265,7 +7267,7 @@ index 761fe368cd..0000000000 - static const int bw80[] = { - 5180, 5260, 5500, 5580, 5660, 5745, 5825, - 5955, 6035, 6115, 6195, 6275, 6355, 6435, --@@ -2908,7 +2917,7 @@ static bool ibss_mesh_select_80_160mhz(s +-@@ -2925,7 +2934,7 @@ static bool ibss_mesh_select_80_160mhz(s - goto skip_80mhz; - - /* Use 40 MHz if channel not usable */ @@ -7274,7 +7276,7 @@ index 761fe368cd..0000000000 - goto skip_80mhz; - - chwidth = CONF_OPER_CHWIDTH_80MHZ; --@@ -2922,7 +2931,7 @@ static bool ibss_mesh_select_80_160mhz(s +-@@ -2939,7 +2948,7 @@ static bool ibss_mesh_select_80_160mhz(s - if ((mode->he_capab[ieee80211_mode].phy_cap[ - HE_PHYCAP_CHANNEL_WIDTH_SET_IDX] & - HE_PHYCAP_CHANNEL_WIDTH_SET_160MHZ_IN_5G) && is_6ghz && @@ -7283,7 +7285,7 @@ index 761fe368cd..0000000000 - for (j = 0; j < ARRAY_SIZE(bw160); j++) { - if (freq->freq == bw160[j]) { - chwidth = CONF_OPER_CHWIDTH_160MHZ; --@@ -2950,10 +2959,12 @@ static bool ibss_mesh_select_80_160mhz(s +-@@ -2967,10 +2976,12 @@ static bool ibss_mesh_select_80_160mhz(s - if (!chan) - continue; - @@ -7299,7 +7301,7 @@ index 761fe368cd..0000000000 - - /* Found a suitable second segment for 80+80 */ - chwidth = CONF_OPER_CHWIDTH_80P80MHZ; --@@ -3008,6 +3019,7 @@ void ibss_mesh_setup_freq(struct wpa_sup +-@@ -3025,6 +3036,7 @@ void ibss_mesh_setup_freq(struct wpa_sup - int i, obss_scan = 1; - u8 channel; - bool is_6ghz; @@ -7307,7 +7309,7 @@ index 761fe368cd..0000000000 - - freq->freq = ssid->frequency; - --@@ -3053,9 +3065,9 @@ void ibss_mesh_setup_freq(struct wpa_sup +-@@ -3070,9 +3082,9 @@ void ibss_mesh_setup_freq(struct wpa_sup - freq->channel = channel; - /* Setup higher BW only for 5 GHz */ - if (mode->mode == HOSTAPD_MODE_IEEE80211A) { @@ -7321,7 +7323,7 @@ index 761fe368cd..0000000000 - diff --git a/package/network/services/hostapd/patches/011-mesh-use-deterministic-channel-on-channel-switch.patch b/package/network/services/hostapd/patches/011-mesh-use-deterministic-channel-on-channel-switch.patch deleted file mode 100644 -index 20a8bee072..0000000000 +index 9b11f0e803..0000000000 --- a/package/network/services/hostapd/patches/011-mesh-use-deterministic-channel-on-channel-switch.patch +++ /dev/null @@ -1,81 +0,0 @@ @@ -7395,7 +7397,7 @@ index 20a8bee072..0000000000 - if (!chan) { ---- a/src/drivers/driver_nl80211.c -+++ b/src/drivers/driver_nl80211.c --@@ -10739,6 +10739,10 @@ static int nl80211_switch_channel(void * +-@@ -10977,6 +10977,10 @@ static int nl80211_switch_channel(void * - if (ret) - goto error; - @@ -7408,13 +7410,13 @@ index 20a8bee072..0000000000 - if (!beacon_csa) diff --git a/package/network/services/hostapd/patches/021-fix-sta-add-after-previous-connection.patch b/package/network/services/hostapd/patches/021-fix-sta-add-after-previous-connection.patch deleted file mode 100644 -index 827e122baf..0000000000 +index 4ee43b5186..0000000000 --- a/package/network/services/hostapd/patches/021-fix-sta-add-after-previous-connection.patch +++ /dev/null @@ -1,26 +0,0 @@ ---- a/src/ap/ieee802_11.c -+++ b/src/ap/ieee802_11.c --@@ -4168,6 +4168,13 @@ static int add_associated_sta(struct hos +-@@ -4601,6 +4601,13 @@ static int add_associated_sta(struct hos - * drivers to accept the STA parameter configuration. Since this is - * after a new FT-over-DS exchange, a new TK has been derived, so key - * reinstallation is not a concern for this case. @@ -7428,7 +7430,7 @@ index 827e122baf..0000000000 - */ - wpa_printf(MSG_DEBUG, "Add associated STA " MACSTR - " (added_unassoc=%d auth_alg=%u ft_over_ds=%u reassoc=%d authorized=%d ft_tk=%d fils_tk=%d)", --@@ -4181,7 +4188,8 @@ static int add_associated_sta(struct hos +-@@ -4614,7 +4621,8 @@ static int add_associated_sta(struct hos - (!(sta->flags & WLAN_STA_AUTHORIZED) || - (reassoc && sta->ft_over_ds && sta->auth_alg == WLAN_AUTH_FT) || - (!wpa_auth_sta_ft_tk_already_set(sta->wpa_sm) && @@ -7440,7 +7442,7 @@ index 827e122baf..0000000000 - set = 0; diff --git a/package/network/services/hostapd/patches/022-hostapd-fix-use-of-uninitialized-stack-variables.patch b/package/network/services/hostapd/patches/022-hostapd-fix-use-of-uninitialized-stack-variables.patch deleted file mode 100644 -index f4f56f5107..0000000000 +index 8dec325c98..0000000000 --- a/package/network/services/hostapd/patches/022-hostapd-fix-use-of-uninitialized-stack-variables.patch +++ /dev/null @@ -1,25 +0,0 @@ @@ -7460,7 +7462,7 @@ index f4f56f5107..0000000000 - ---- a/src/ap/hostapd.c -+++ b/src/ap/hostapd.c --@@ -3562,7 +3562,7 @@ static int hostapd_change_config_freq(st +-@@ -3764,7 +3764,7 @@ static int hostapd_change_config_freq(st - struct hostapd_freq_params *old_params) - { - int channel; @@ -7496,7 +7498,7 @@ index 9ff9b2398d..0000000000 - } diff --git a/package/network/services/hostapd/patches/030-driver_nl80211-rewrite-neigh-code-to-not-depend-on-l.patch b/package/network/services/hostapd/patches/030-driver_nl80211-rewrite-neigh-code-to-not-depend-on-l.patch deleted file mode 100644 -index c02d4b497e..0000000000 +index 19248e80d8..0000000000 --- a/package/network/services/hostapd/patches/030-driver_nl80211-rewrite-neigh-code-to-not-depend-on-l.patch +++ /dev/null @@ -1,275 +0,0 @@ @@ -7522,7 +7524,7 @@ index c02d4b497e..0000000000 - #include - #include - #include --@@ -5590,26 +5587,29 @@ fail: +-@@ -5783,26 +5780,29 @@ fail: - - static void rtnl_neigh_delete_fdb_entry(struct i802_bss *bss, const u8 *addr) - { @@ -7566,7 +7568,7 @@ index c02d4b497e..0000000000 - if (err < 0) { - wpa_printf(MSG_DEBUG, "nl80211: bridge FDB entry delete for " - MACSTR " ifindex=%d failed: %s", MAC2STR(addr), --@@ -5619,9 +5619,8 @@ static void rtnl_neigh_delete_fdb_entry( +-@@ -5812,9 +5812,8 @@ static void rtnl_neigh_delete_fdb_entry( - MACSTR, MAC2STR(addr)); - } - @@ -7578,7 +7580,7 @@ index c02d4b497e..0000000000 - } - - --@@ -8275,7 +8274,6 @@ static void *i802_init(struct hostapd_da +-@@ -8492,7 +8491,6 @@ static void *i802_init(struct hostapd_da - (params->num_bridge == 0 || !params->bridge[0])) - add_ifidx(drv, br_ifindex, drv->ifindex); - @@ -7586,7 +7588,7 @@ index c02d4b497e..0000000000 - if (bss->added_if_into_bridge || bss->already_in_bridge) { - int err; - --@@ -8292,7 +8290,6 @@ static void *i802_init(struct hostapd_da +-@@ -8509,7 +8507,6 @@ static void *i802_init(struct hostapd_da - goto failed; - } - } @@ -7594,7 +7596,7 @@ index c02d4b497e..0000000000 - - if (drv->capa.flags2 & WPA_DRIVER_FLAGS2_CONTROL_PORT_RX) { - wpa_printf(MSG_DEBUG, --@@ -11605,13 +11602,14 @@ static int wpa_driver_br_add_ip_neigh(vo +-@@ -11843,13 +11840,14 @@ static int wpa_driver_br_add_ip_neigh(vo - const u8 *ipaddr, int prefixlen, - const u8 *addr) - { @@ -7614,7 +7616,7 @@ index c02d4b497e..0000000000 - int res; - - if (!ipaddr || prefixlen == 0 || !addr) --@@ -11630,85 +11628,66 @@ static int wpa_driver_br_add_ip_neigh(vo +-@@ -11868,85 +11866,66 @@ static int wpa_driver_br_add_ip_neigh(vo - } - - if (version == 4) { @@ -7722,7 +7724,7 @@ index c02d4b497e..0000000000 - addrsize = 16; - } else { - return -EINVAL; --@@ -11726,41 +11705,30 @@ static int wpa_driver_br_delete_ip_neigh +-@@ -11964,41 +11943,30 @@ static int wpa_driver_br_delete_ip_neigh - return -1; - } - @@ -7777,7 +7779,7 @@ index c02d4b497e..0000000000 - diff --git a/package/network/services/hostapd/patches/040-mesh-allow-processing-authentication-frames-in-block.patch b/package/network/services/hostapd/patches/040-mesh-allow-processing-authentication-frames-in-block.patch deleted file mode 100644 -index 179d47ecc4..0000000000 +index f98d3806dc..0000000000 --- a/package/network/services/hostapd/patches/040-mesh-allow-processing-authentication-frames-in-block.patch +++ /dev/null @@ -1,34 +0,0 @@ @@ -7799,7 +7801,7 @@ index 179d47ecc4..0000000000 - ---- a/src/ap/ieee802_11.c -+++ b/src/ap/ieee802_11.c --@@ -2948,15 +2948,6 @@ static void handle_auth(struct hostapd_d +-@@ -3012,15 +3012,6 @@ static void handle_auth(struct hostapd_d - seq_ctrl); - return; - } @@ -7808,7 +7810,7 @@ index 179d47ecc4..0000000000 -- sta->plink_state == PLINK_BLOCKED) { -- wpa_printf(MSG_DEBUG, "Mesh peer " MACSTR -- " is blocked - drop Authentication frame", --- MAC2STR(mgmt->sa)); +-- MAC2STR(sa)); -- return; -- } --#endif /* CONFIG_MESH */ @@ -17995,56 +17997,156 @@ index db4fcfe235..0000000000 - goto fail; - - if (crypto_ec_point_is_at_infinity(ec, Qr)) { -diff --git a/package/network/services/hostapd/patches/170-wpa_supplicant-fix-compiling-without-IEEE8021X_EAPOL.patch b/package/network/services/hostapd/patches/170-wpa_supplicant-fix-compiling-without-IEEE8021X_EAPOL.patch +diff --git a/package/network/services/hostapd/patches/170-hostapd-update-cfs0-and-cfs1-for-160MHz.patch b/package/network/services/hostapd/patches/170-hostapd-update-cfs0-and-cfs1-for-160MHz.patch deleted file mode 100644 -index 7724f1ae8d..0000000000 ---- a/package/network/services/hostapd/patches/170-wpa_supplicant-fix-compiling-without-IEEE8021X_EAPOL.patch +index 710a3c851e..0000000000 +--- a/package/network/services/hostapd/patches/170-hostapd-update-cfs0-and-cfs1-for-160MHz.patch +++ /dev/null -@@ -1,41 +0,0 @@ --From c85ce84d942e1eabde33e120b18e5b1f1637b76e Mon Sep 17 00:00:00 2001 --From: Nick Hainke --Date: Tue, 14 Mar 2023 21:40:53 +0100 --Subject: [PATCH] wpa_supplicant: fix compiling without IEEE8021X_EAPOL +@@ -1,141 +0,0 @@ +-From d4c4ef302f98fd6bce173b8636e7e350d8b44981 Mon Sep 17 00:00:00 2001 +-From: P Praneesh +-Date: Fri, 19 Mar 2021 12:17:27 +0530 +-Subject: [PATCH] hostapd: update cfs0 and cfs1 for 160MHz - --If IEEE8021X_EAPOL is not defined wpa_supplicant will not compile with --following error: +-As per standard Draft P802.11ax_D8.0,( Table 26-9—Setting +-of the VHT Channel Width and VHT NSS at an HE STA +-transmitting the OM Control subfield ), center frequency of +-160MHz should be published in HT information subset 2 of +-HT information when EXT NSS BW field is enabled. - -- events.c: In function 'wpa_supplicant_connect': -- events.c:1827:14: warning: implicit declaration of function 'eap_is_wps_pbc_enrollee' [-Wimplicit-function-declaration] -- 1827 | if ((eap_is_wps_pbc_enrollee(&ssid->eap) && -- | ^~~~~~~~~~~~~~~~~~~~~~~ -- events.c:1827:43: error: 'struct wpa_ssid' has no member named 'eap' -- 1827 | if ((eap_is_wps_pbc_enrollee(&ssid->eap) && -- | ^~ +-If the supported number of NSS in 160MHz is at least max NSS +-support, then center_freq_seg0 indicates the center frequency of 80MHz and +-center_freq_seg1 indicates the center frequency of 160MHz. - --Adding ifdef statements around the calling function fixes the issue. +-If the supported number of NSS in 160MHz is less than max NSS +-support, then center_freq_seg0 indicates the center frequency of 80MHz and +-center_freq_seg1 is 0. The center frequency of 160MHz is published in HT +-operation information element instead. - --Signed-off-by: Nick Hainke +-Signed-off-by: P Praneesh ---- -- wpa_supplicant/events.c | 2 ++ -- 1 file changed, 2 insertions(+) +- hostapd/config_file.c | 2 ++ +- src/ap/ieee802_11_ht.c | 7 +++++++ +- src/ap/ieee802_11_vht.c | 16 ++++++++++++++++ +- src/common/hw_features_common.c | 1 + +- src/common/ieee802_11_defs.h | 1 + +- 5 files changed, 27 insertions(+) - ----- a/wpa_supplicant/events.c --+++ b/wpa_supplicant/events.c --@@ -1824,6 +1824,7 @@ int wpa_supplicant_connect(struct wpa_su -- struct wpa_bss *selected, -- struct wpa_ssid *ssid) +---- a/hostapd/config_file.c +-+++ b/hostapd/config_file.c +-@@ -1153,6 +1153,8 @@ static int hostapd_config_vht_capab(stru +- conf->vht_capab |= VHT_CAP_RX_ANTENNA_PATTERN; +- if (os_strstr(capab, "[TX-ANTENNA-PATTERN]")) +- conf->vht_capab |= VHT_CAP_TX_ANTENNA_PATTERN; +-+ if (os_strstr(capab, "[EXT-NSS-BW-SUPP]")) +-+ conf->vht_capab |= VHT_CAP_EXTENDED_NSS_BW_SUPPORT; +- return 0; +- } +- #endif /* CONFIG_IEEE80211AC */ +---- a/src/ap/ieee802_11_ht.c +-+++ b/src/ap/ieee802_11_ht.c +-@@ -82,7 +82,9 @@ u8 * hostapd_eid_ht_capabilities(struct +- u8 * hostapd_eid_ht_operation(struct hostapd_data *hapd, u8 *eid) - { --+#ifdef IEEE8021X_EAPOL -- if ((eap_is_wps_pbc_enrollee(&ssid->eap) && -- wpas_wps_partner_link_overlap_detect(wpa_s)) || -- wpas_wps_scan_pbc_overlap(wpa_s, selected, ssid)) { --@@ -1846,6 +1847,7 @@ int wpa_supplicant_connect(struct wpa_su -- #endif /* CONFIG_WPS */ -- return -1; -- } --+#endif /* IEEE8021X_EAPOL */ +- struct ieee80211_ht_operation *oper; +-+ le32 vht_capabilities_info; +- u8 *pos = eid; +-+ u8 chwidth; - -- wpa_msg(wpa_s, MSG_DEBUG, -- "Considering connect request: reassociate: %d selected: " +- if (!hapd->iconf->ieee80211n || hapd->conf->disable_11n || +- is_6ghz_op_class(hapd->iconf->op_class)) +-@@ -103,6 +105,13 @@ u8 * hostapd_eid_ht_operation(struct hos +- oper->ht_param |= HT_INFO_HT_PARAM_SECONDARY_CHNL_BELOW | +- HT_INFO_HT_PARAM_STA_CHNL_WIDTH; +- +-+ vht_capabilities_info = host_to_le32(hapd->iface->current_mode->vht_capab); +-+ chwidth = hostapd_get_oper_chwidth(hapd->iconf); +-+ if (vht_capabilities_info & VHT_CAP_EXTENDED_NSS_BW_SUPPORT +-+ && ((chwidth == CHANWIDTH_160MHZ) || (chwidth == CHANWIDTH_80P80MHZ))) { +-+ oper->operation_mode = host_to_le16(hapd->iconf->vht_oper_centr_freq_seg0_idx << 5); +-+ } +-+ +- pos += sizeof(*oper); +- +- return pos; +---- a/src/ap/ieee802_11_vht.c +-+++ b/src/ap/ieee802_11_vht.c +-@@ -25,6 +25,7 @@ u8 * hostapd_eid_vht_capabilities(struct +- struct ieee80211_vht_capabilities *cap; +- struct hostapd_hw_modes *mode = hapd->iface->current_mode; +- u8 *pos = eid; +-+ u8 chwidth; +- +- if (!mode || is_6ghz_op_class(hapd->iconf->op_class)) +- return eid; +-@@ -62,6 +63,17 @@ u8 * hostapd_eid_vht_capabilities(struct +- host_to_le32(nsts << VHT_CAP_BEAMFORMEE_STS_OFFSET); +- } +- +-+ chwidth = hostapd_get_oper_chwidth(hapd->iconf); +-+ if (((host_to_le32(mode->vht_capab)) & VHT_CAP_EXTENDED_NSS_BW_SUPPORT) +-+ && ((chwidth == CHANWIDTH_160MHZ) || (chwidth == CHANWIDTH_80P80MHZ))) { +-+ cap->vht_capabilities_info |= VHT_CAP_EXTENDED_NSS_BW_SUPPORT; +-+ cap->vht_capabilities_info &= ~(host_to_le32(VHT_CAP_SUPP_CHAN_WIDTH_160_80PLUS80MHZ)); +-+ cap->vht_capabilities_info &= ~(host_to_le32(VHT_CAP_SUPP_CHAN_WIDTH_160MHZ)); +-+ cap->vht_capabilities_info &= ~(host_to_le32(VHT_CAP_SUPP_CHAN_WIDTH_MASK)); +-+ } else { +-+ cap->vht_capabilities_info &= ~VHT_CAP_EXTENDED_NSS_BW_SUPPORT_MASK; +-+ } +-+ +- /* Supported MCS set comes from hw */ +- os_memcpy(&cap->vht_supported_mcs_set, mode->vht_mcs_set, 8); +- +-@@ -74,6 +86,7 @@ u8 * hostapd_eid_vht_capabilities(struct +- u8 * hostapd_eid_vht_operation(struct hostapd_data *hapd, u8 *eid) +- { +- struct ieee80211_vht_operation *oper; +-+ le32 vht_capabilities_info; +- u8 *pos = eid; +- enum oper_chan_width oper_chwidth = +- hostapd_get_oper_chwidth(hapd->iconf); +-@@ -106,6 +119,7 @@ u8 * hostapd_eid_vht_operation(struct ho +- oper->vht_op_info_chan_center_freq_seg1_idx = seg1; +- +- oper->vht_op_info_chwidth = oper_chwidth; +-+ vht_capabilities_info = host_to_le32(hapd->iface->current_mode->vht_capab); +- if (oper_chwidth == CONF_OPER_CHWIDTH_160MHZ) { +- /* +- * Convert 160 MHz channel width to new style as interop +-@@ -119,6 +133,9 @@ u8 * hostapd_eid_vht_operation(struct ho +- oper->vht_op_info_chan_center_freq_seg0_idx -= 8; +- else +- oper->vht_op_info_chan_center_freq_seg0_idx += 8; +-+ +-+ if (vht_capabilities_info & VHT_CAP_EXTENDED_NSS_BW_SUPPORT) +-+ oper->vht_op_info_chan_center_freq_seg1_idx = 0; +- } else if (oper_chwidth == CONF_OPER_CHWIDTH_80P80MHZ) { +- /* +- * Convert 80+80 MHz channel width to new style as interop +---- a/src/common/hw_features_common.c +-+++ b/src/common/hw_features_common.c +-@@ -808,6 +808,7 @@ int ieee80211ac_cap_check(u32 hw, u32 co +- VHT_CAP_CHECK(VHT_CAP_VHT_LINK_ADAPTATION_VHT_MRQ_MFB); +- VHT_CAP_CHECK(VHT_CAP_RX_ANTENNA_PATTERN); +- VHT_CAP_CHECK(VHT_CAP_TX_ANTENNA_PATTERN); +-+ VHT_CAP_CHECK(VHT_CAP_EXTENDED_NSS_BW_SUPPORT); +- +- #undef VHT_CAP_CHECK +- #undef VHT_CAP_CHECK_MAX +---- a/src/common/ieee802_11_defs.h +-+++ b/src/common/ieee802_11_defs.h +-@@ -1348,6 +1348,8 @@ struct ieee80211_ampe_ie { +- #define VHT_CAP_VHT_LINK_ADAPTATION_VHT_MRQ_MFB ((u32) BIT(26) | BIT(27)) +- #define VHT_CAP_RX_ANTENNA_PATTERN ((u32) BIT(28)) +- #define VHT_CAP_TX_ANTENNA_PATTERN ((u32) BIT(29)) +-+#define VHT_CAP_EXTENDED_NSS_BW_SUPPORT ((u32) BIT(30)) +-+#define VHT_CAP_EXTENDED_NSS_BW_SUPPORT_MASK ((u32) BIT(30) | BIT(31)) +- +- #define VHT_OPMODE_CHANNEL_WIDTH_MASK ((u8) BIT(0) | BIT(1)) +- #define VHT_OPMODE_CHANNEL_RxNSS_MASK ((u8) BIT(4) | BIT(5) | \ diff --git a/package/network/services/hostapd/patches/200-multicall.patch b/package/network/services/hostapd/patches/200-multicall.patch deleted file mode 100644 -index f12aeb0ca9..0000000000 +index f7e797a9c8..0000000000 --- a/package/network/services/hostapd/patches/200-multicall.patch +++ /dev/null @@ -1,355 +0,0 @@ @@ -18206,7 +18308,7 @@ index f12aeb0ca9..0000000000 - wpa_cli.exe: wpa_cli ---- a/src/drivers/driver.h -+++ b/src/drivers/driver.h --@@ -6544,8 +6544,8 @@ union wpa_event_data { +-@@ -6651,8 +6651,8 @@ union wpa_event_data { - * Driver wrapper code should call this function whenever an event is received - * from the driver. - */ @@ -18217,7 +18319,7 @@ index f12aeb0ca9..0000000000 - - /** - * wpa_supplicant_event_global - Report a driver event for wpa_supplicant --@@ -6557,7 +6557,7 @@ void wpa_supplicant_event(void *ctx, enu +-@@ -6664,7 +6664,7 @@ void wpa_supplicant_event(void *ctx, enu - * Same as wpa_supplicant_event(), but we search for the interface in - * wpa_global. - */ @@ -18228,7 +18330,7 @@ index f12aeb0ca9..0000000000 - /* ---- a/src/ap/drv_callbacks.c -+++ b/src/ap/drv_callbacks.c --@@ -1887,8 +1887,8 @@ err: +-@@ -1994,8 +1994,8 @@ err: - #endif /* CONFIG_OWE */ - - @@ -18239,7 +18341,7 @@ index f12aeb0ca9..0000000000 - { - struct hostapd_data *hapd = ctx; - #ifndef CONFIG_NO_STDOUT_DEBUG --@@ -2161,7 +2161,7 @@ void wpa_supplicant_event(void *ctx, enu +-@@ -2271,7 +2271,7 @@ void wpa_supplicant_event(void *ctx, enu - } - - @@ -18281,7 +18383,7 @@ index f12aeb0ca9..0000000000 - os_memset(&global, 0, sizeof(global)); ---- a/wpa_supplicant/events.c -+++ b/wpa_supplicant/events.c --@@ -5237,8 +5237,8 @@ static void wpas_event_unprot_beacon(str +-@@ -5345,8 +5345,8 @@ static void wpas_link_reconfig(struct wp - } - - @@ -18292,7 +18394,7 @@ index f12aeb0ca9..0000000000 - { - struct wpa_supplicant *wpa_s = ctx; - int resched; --@@ -6149,7 +6149,7 @@ void wpa_supplicant_event(void *ctx, enu +-@@ -6264,7 +6264,7 @@ void wpa_supplicant_event(void *ctx, enu - } - - @@ -18303,7 +18405,7 @@ index f12aeb0ca9..0000000000 - struct wpa_supplicant *wpa_s; ---- a/wpa_supplicant/wpa_supplicant.c -+++ b/wpa_supplicant/wpa_supplicant.c --@@ -7408,7 +7408,6 @@ struct wpa_interface * wpa_supplicant_ma +-@@ -7435,7 +7435,6 @@ struct wpa_interface * wpa_supplicant_ma - return NULL; - } - @@ -18311,7 +18413,7 @@ index f12aeb0ca9..0000000000 - /** - * wpa_supplicant_match_existing - Match existing interfaces - * @global: Pointer to global data from wpa_supplicant_init() --@@ -7443,6 +7442,11 @@ static int wpa_supplicant_match_existing +-@@ -7470,6 +7469,11 @@ static int wpa_supplicant_match_existing - - #endif /* CONFIG_MATCH_IFACE */ - @@ -18323,7 +18425,7 @@ index f12aeb0ca9..0000000000 - - /** - * wpa_supplicant_add_iface - Add a new network interface --@@ -7699,6 +7703,8 @@ struct wpa_global * wpa_supplicant_init( +-@@ -7726,6 +7730,8 @@ struct wpa_global * wpa_supplicant_init( - #ifndef CONFIG_NO_WPA_MSG - wpa_msg_register_ifname_cb(wpa_supplicant_msg_ifname_cb); - #endif /* CONFIG_NO_WPA_MSG */ @@ -18334,7 +18436,7 @@ index f12aeb0ca9..0000000000 - wpa_debug_open_file(params->wpa_debug_file_path); ---- a/hostapd/main.c -+++ b/hostapd/main.c --@@ -595,6 +595,11 @@ fail: +-@@ -685,6 +685,11 @@ fail: - return -1; - } - @@ -18346,7 +18448,7 @@ index f12aeb0ca9..0000000000 - - #ifdef CONFIG_WPS - static int gen_uuid(const char *txt_addr) --@@ -688,6 +693,8 @@ int main(int argc, char *argv[]) +-@@ -778,6 +783,8 @@ int main(int argc, char *argv[]) - return -1; - #endif /* CONFIG_DPP */ - @@ -18405,13 +18507,13 @@ index f12aeb0ca9..0000000000 - os_memset(&eapol_test, 0, sizeof(eapol_test)); diff --git a/package/network/services/hostapd/patches/300-noscan.patch b/package/network/services/hostapd/patches/300-noscan.patch deleted file mode 100644 -index 91e1aaad83..0000000000 +index 1ea89043e8..0000000000 --- a/package/network/services/hostapd/patches/300-noscan.patch +++ /dev/null @@ -1,58 +0,0 @@ ---- a/hostapd/config_file.c -+++ b/hostapd/config_file.c --@@ -3446,6 +3446,10 @@ static int hostapd_config_fill(struct ho +-@@ -3448,6 +3448,10 @@ static int hostapd_config_fill(struct ho - if (bss->ocv && !bss->ieee80211w) - bss->ieee80211w = 1; - #endif /* CONFIG_OCV */ @@ -18424,7 +18526,7 @@ index 91e1aaad83..0000000000 - } else if (os_strcmp(buf, "ht_capab") == 0) { ---- a/src/ap/ap_config.h -+++ b/src/ap/ap_config.h --@@ -1061,6 +1061,8 @@ struct hostapd_config { +-@@ -1072,6 +1072,8 @@ struct hostapd_config { - - int ht_op_mode_fixed; - u16 ht_capab; @@ -18447,7 +18549,7 @@ index 91e1aaad83..0000000000 - hostapd_set_state(iface, HAPD_IFACE_HT_SCAN); ---- a/src/ap/ieee802_11_ht.c -+++ b/src/ap/ieee802_11_ht.c --@@ -230,6 +230,9 @@ void hostapd_2040_coex_action(struct hos +-@@ -239,6 +239,9 @@ void hostapd_2040_coex_action(struct hos - return; - } - @@ -18457,7 +18559,7 @@ index 91e1aaad83..0000000000 - if (len < IEEE80211_HDRLEN + 2 + sizeof(*bc_ie)) { - wpa_printf(MSG_DEBUG, - "Ignore too short 20/40 BSS Coexistence Management frame"); --@@ -390,6 +393,9 @@ void ht40_intolerant_add(struct hostapd_ +-@@ -399,6 +402,9 @@ void ht40_intolerant_add(struct hostapd_ - if (iface->current_mode->mode != HOSTAPD_MODE_IEEE80211G) - return; - @@ -18469,13 +18571,13 @@ index 91e1aaad83..0000000000 - diff --git a/package/network/services/hostapd/patches/301-mesh-noscan.patch b/package/network/services/hostapd/patches/301-mesh-noscan.patch deleted file mode 100644 -index 8a1bdaa185..0000000000 +index 6b5416f0ea..0000000000 --- a/package/network/services/hostapd/patches/301-mesh-noscan.patch +++ /dev/null @@ -1,71 +0,0 @@ ---- a/wpa_supplicant/config.c -+++ b/wpa_supplicant/config.c --@@ -2599,6 +2599,7 @@ static const struct parse_data ssid_fiel +-@@ -2600,6 +2600,7 @@ static const struct parse_data ssid_fiel - #else /* CONFIG_MESH */ - { INT_RANGE(mode, 0, 4) }, - #endif /* CONFIG_MESH */ @@ -18506,7 +18608,7 @@ index 8a1bdaa185..0000000000 - /* ---- a/wpa_supplicant/wpa_supplicant.c -+++ b/wpa_supplicant/wpa_supplicant.c --@@ -2693,7 +2693,7 @@ static bool ibss_mesh_can_use_vht(struct +-@@ -2710,7 +2710,7 @@ static bool ibss_mesh_can_use_vht(struct - const struct wpa_ssid *ssid, - struct hostapd_hw_modes *mode) - { @@ -18515,7 +18617,7 @@ index 8a1bdaa185..0000000000 - return false; - - if (!drv_supports_vht(wpa_s, ssid)) --@@ -2766,7 +2766,7 @@ static void ibss_mesh_select_40mhz(struc +-@@ -2783,7 +2783,7 @@ static void ibss_mesh_select_40mhz(struc - int i, res; - unsigned int j; - static const int ht40plus[] = { @@ -18524,7 +18626,7 @@ index 8a1bdaa185..0000000000 - 184, 192 - }; - int ht40 = -1; --@@ -3016,7 +3016,7 @@ void ibss_mesh_setup_freq(struct wpa_sup +-@@ -3033,7 +3033,7 @@ void ibss_mesh_setup_freq(struct wpa_sup - int ieee80211_mode = wpas_mode_to_ieee80211_mode(ssid->mode); - enum hostapd_hw_mode hw_mode; - struct hostapd_hw_modes *mode = NULL; @@ -18546,13 +18648,13 @@ index 8a1bdaa185..0000000000 - * diff --git a/package/network/services/hostapd/patches/310-rescan_immediately.patch b/package/network/services/hostapd/patches/310-rescan_immediately.patch deleted file mode 100644 -index 033f763094..0000000000 +index a47546d38f..0000000000 --- a/package/network/services/hostapd/patches/310-rescan_immediately.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/wpa_supplicant/wpa_supplicant.c -+++ b/wpa_supplicant/wpa_supplicant.c --@@ -5713,7 +5713,7 @@ wpa_supplicant_alloc(struct wpa_supplica +-@@ -5740,7 +5740,7 @@ wpa_supplicant_alloc(struct wpa_supplica - if (wpa_s == NULL) - return NULL; - wpa_s->scan_req = INITIAL_SCAN_REQ; @@ -18630,13 +18732,13 @@ index 01537790e0..0000000000 - #endif /* RFKILL_H */ diff --git a/package/network/services/hostapd/patches/330-nl80211_fix_set_freq.patch b/package/network/services/hostapd/patches/330-nl80211_fix_set_freq.patch deleted file mode 100644 -index 93a03a6db6..0000000000 +index c11c957216..0000000000 --- a/package/network/services/hostapd/patches/330-nl80211_fix_set_freq.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/src/drivers/driver_nl80211.c -+++ b/src/drivers/driver_nl80211.c --@@ -5224,7 +5224,7 @@ static int nl80211_set_channel(struct i8 +-@@ -5407,7 +5407,7 @@ static int nl80211_set_channel(struct i8 - freq->he_enabled, freq->eht_enabled, freq->bandwidth, - freq->center_freq1, freq->center_freq2); - @@ -18647,13 +18749,13 @@ index 93a03a6db6..0000000000 - nlmsg_free(msg); diff --git a/package/network/services/hostapd/patches/340-reload_freq_change.patch b/package/network/services/hostapd/patches/340-reload_freq_change.patch deleted file mode 100644 -index 9a468079d1..0000000000 +index ae6cd81ea4..0000000000 --- a/package/network/services/hostapd/patches/340-reload_freq_change.patch +++ /dev/null @@ -1,80 +0,0 @@ ---- a/src/ap/hostapd.c -+++ b/src/ap/hostapd.c --@@ -142,6 +142,29 @@ static void hostapd_reload_bss(struct ho +-@@ -143,6 +143,29 @@ static void hostapd_reload_bss(struct ho - #endif /* CONFIG_NO_RADIUS */ - - ssid = &hapd->conf->ssid; @@ -18683,7 +18785,7 @@ index 9a468079d1..0000000000 - if (!ssid->wpa_psk_set && ssid->wpa_psk && !ssid->wpa_psk->next && - ssid->wpa_passphrase_set && ssid->wpa_passphrase) { - /* --@@ -250,6 +273,7 @@ int hostapd_reload_config(struct hostapd +-@@ -251,6 +274,7 @@ int hostapd_reload_config(struct hostapd - struct hostapd_data *hapd = iface->bss[0]; - struct hostapd_config *newconf, *oldconf; - size_t j; @@ -18691,7 +18793,7 @@ index 9a468079d1..0000000000 - - if (iface->config_fname == NULL) { - /* Only in-memory config in use - assume it has been updated */ --@@ -300,6 +324,17 @@ int hostapd_reload_config(struct hostapd +-@@ -301,6 +325,17 @@ int hostapd_reload_config(struct hostapd - } - iface->conf = newconf; - @@ -18709,7 +18811,7 @@ index 9a468079d1..0000000000 - for (j = 0; j < iface->num_bss; j++) { - hapd = iface->bss[j]; - if (!hapd->conf->config_id || !newconf->bss[j]->config_id || --@@ -307,21 +342,6 @@ int hostapd_reload_config(struct hostapd +-@@ -308,21 +343,6 @@ int hostapd_reload_config(struct hostapd - newconf->bss[j]->config_id) != 0) - hostapd_clear_old_bss(hapd); - hapd->iconf = newconf; @@ -18778,13 +18880,13 @@ index 8784452876..0000000000 - diff --git a/package/network/services/hostapd/patches/350-nl80211_del_beacon_bss.patch b/package/network/services/hostapd/patches/350-nl80211_del_beacon_bss.patch deleted file mode 100644 -index a943395b56..0000000000 +index 647ca2cbf9..0000000000 --- a/package/network/services/hostapd/patches/350-nl80211_del_beacon_bss.patch +++ /dev/null @@ -1,35 +0,0 @@ ---- a/src/drivers/driver_nl80211.c -+++ b/src/drivers/driver_nl80211.c --@@ -3006,12 +3006,12 @@ static int wpa_driver_nl80211_del_beacon +-@@ -3008,12 +3008,12 @@ static int wpa_driver_nl80211_del_beacon - return 0; - - wpa_printf(MSG_DEBUG, "nl80211: Remove beacon (ifindex=%d)", @@ -18799,7 +18901,7 @@ index a943395b56..0000000000 - if (!msg) - return -ENOBUFS; - --@@ -5907,7 +5907,7 @@ static void nl80211_teardown_ap(struct i +-@@ -6100,7 +6100,7 @@ static void nl80211_teardown_ap(struct i - nl80211_mgmt_unsubscribe(bss, "AP teardown"); - - nl80211_put_wiphy_data_ap(bss); @@ -18808,7 +18910,7 @@ index a943395b56..0000000000 - } - - --@@ -8642,8 +8642,6 @@ static int wpa_driver_nl80211_if_remove( +-@@ -8859,8 +8859,6 @@ static int wpa_driver_nl80211_if_remove( - } else { - wpa_printf(MSG_DEBUG, "nl80211: First BSS - reassign context"); - nl80211_teardown_ap(bss); @@ -18819,7 +18921,7 @@ index a943395b56..0000000000 - i802_set_iface_flags(bss, 0); diff --git a/package/network/services/hostapd/patches/360-ctrl_iface_reload.patch b/package/network/services/hostapd/patches/360-ctrl_iface_reload.patch deleted file mode 100644 -index e9f46ce9d3..0000000000 +index 4d85ea11f9..0000000000 --- a/package/network/services/hostapd/patches/360-ctrl_iface_reload.patch +++ /dev/null @@ -1,106 +0,0 @@ @@ -18903,7 +19005,7 @@ index e9f46ce9d3..0000000000 - - #ifdef NEED_AP_MLME - static int hostapd_ctrl_iface_sa_query(struct hostapd_data *hapd, --@@ -3529,6 +3586,8 @@ static int hostapd_ctrl_iface_receive_pr +-@@ -3564,6 +3621,8 @@ static int hostapd_ctrl_iface_receive_pr - } else if (os_strncmp(buf, "VENDOR ", 7) == 0) { - reply_len = hostapd_ctrl_iface_vendor(hapd, buf + 7, reply, - reply_size); @@ -18914,7 +19016,7 @@ index e9f46ce9d3..0000000000 - #ifdef RADIUS_SERVER ---- a/src/ap/ctrl_iface_ap.c -+++ b/src/ap/ctrl_iface_ap.c --@@ -1008,7 +1008,13 @@ int hostapd_parse_csa_settings(const cha +-@@ -1023,7 +1023,13 @@ int hostapd_parse_csa_settings(const cha - - int hostapd_ctrl_iface_stop_ap(struct hostapd_data *hapd) - { @@ -18931,7 +19033,7 @@ index e9f46ce9d3..0000000000 - diff --git a/package/network/services/hostapd/patches/370-ap_sta_support.patch b/package/network/services/hostapd/patches/370-ap_sta_support.patch deleted file mode 100644 -index 24064839f1..0000000000 +index 3baad2a52e..0000000000 --- a/package/network/services/hostapd/patches/370-ap_sta_support.patch +++ /dev/null @@ -1,392 +0,0 @@ @@ -19109,7 +19211,7 @@ index 24064839f1..0000000000 - wpa_s->new_connection = 1; - wpa_drv_set_operstate(wpa_s, 0); - #ifndef IEEE8021X_EAPOL --@@ -2520,6 +2572,8 @@ void wpa_supplicant_associate(struct wpa +-@@ -2537,6 +2589,8 @@ void wpa_supplicant_associate(struct wpa - return; - } - wpa_s->current_bss = bss; @@ -19118,7 +19220,7 @@ index 24064839f1..0000000000 - #else /* CONFIG_MESH */ - wpa_msg(wpa_s, MSG_ERROR, - "mesh mode support not included in the build"); --@@ -7010,6 +7064,16 @@ static int wpa_supplicant_init_iface(str +-@@ -7037,6 +7091,16 @@ static int wpa_supplicant_init_iface(str - sizeof(wpa_s->bridge_ifname)); - } - @@ -19135,7 +19237,7 @@ index 24064839f1..0000000000 - /* RSNA Supplicant Key Management - INITIALIZE */ - eapol_sm_notify_portEnabled(wpa_s->eapol, false); - eapol_sm_notify_portValid(wpa_s->eapol, false); --@@ -7352,6 +7416,11 @@ static void wpa_supplicant_deinit_iface( +-@@ -7379,6 +7443,11 @@ static void wpa_supplicant_deinit_iface( - if (terminate) - wpa_msg(wpa_s, MSG_INFO, WPA_EVENT_TERMINATING); - @@ -19172,7 +19274,7 @@ index 24064839f1..0000000000 - ---- a/hostapd/ctrl_iface.c -+++ b/hostapd/ctrl_iface.c --@@ -2716,6 +2716,12 @@ static int hostapd_ctrl_iface_chan_switc +-@@ -2751,6 +2751,12 @@ static int hostapd_ctrl_iface_chan_switc - return 0; - } - @@ -19187,7 +19289,7 @@ index 24064839f1..0000000000 - /* Save CHAN_SWITCH VHT, HE, and EHT config */ ---- a/src/ap/beacon.c -+++ b/src/ap/beacon.c --@@ -2052,11 +2052,6 @@ static int __ieee802_11_set_beacon(struc +-@@ -2108,11 +2108,6 @@ static int __ieee802_11_set_beacon(struc - return -1; - } - @@ -19201,7 +19303,7 @@ index 24064839f1..0000000000 - if (ieee802_11_build_ap_params(hapd, ¶ms) < 0) ---- a/wpa_supplicant/events.c -+++ b/wpa_supplicant/events.c --@@ -5237,6 +5237,60 @@ static void wpas_event_unprot_beacon(str +-@@ -5345,6 +5345,60 @@ static void wpas_link_reconfig(struct wp - } - - @@ -19262,7 +19364,7 @@ index 24064839f1..0000000000 - void supplicant_event(void *ctx, enum wpa_event_type event, - union wpa_event_data *data) - { --@@ -5586,8 +5640,10 @@ void supplicant_event(void *ctx, enum wp +-@@ -5697,8 +5751,10 @@ void supplicant_event(void *ctx, enum wp - channel_width_to_string(data->ch_switch.ch_width), - data->ch_switch.cf1, - data->ch_switch.cf2); @@ -19276,7 +19378,7 @@ index 24064839f1..0000000000 - wpa_s->current_ssid->frequency = data->ch_switch.freq; ---- a/src/drivers/driver.h -+++ b/src/drivers/driver.h --@@ -6324,6 +6324,7 @@ union wpa_event_data { +-@@ -6421,6 +6421,7 @@ union wpa_event_data { - - /** - * struct ch_switch @@ -19284,7 +19386,7 @@ index 24064839f1..0000000000 - * @freq: Frequency of new channel in MHz - * @ht_enabled: Whether this is an HT channel - * @ch_offset: Secondary channel offset --@@ -6334,6 +6335,7 @@ union wpa_event_data { +-@@ -6431,6 +6432,7 @@ union wpa_event_data { - * @punct_bitmap: Puncturing bitmap - */ - struct ch_switch { @@ -19294,7 +19396,7 @@ index 24064839f1..0000000000 - int ch_offset; ---- a/src/drivers/driver_nl80211_event.c -+++ b/src/drivers/driver_nl80211_event.c --@@ -997,6 +997,7 @@ static void mlme_event_ch_switch(struct +-@@ -1202,6 +1202,7 @@ static void mlme_event_ch_switch(struct - struct nlattr *bw, struct nlattr *cf1, - struct nlattr *cf2, - struct nlattr *punct_bitmap, @@ -19302,7 +19404,7 @@ index 24064839f1..0000000000 - int finished) - { - struct i802_bss *bss; --@@ -1060,6 +1061,8 @@ static void mlme_event_ch_switch(struct +-@@ -1265,6 +1266,8 @@ static void mlme_event_ch_switch(struct - data.ch_switch.cf1 = nla_get_u32(cf1); - if (cf2) - data.ch_switch.cf2 = nla_get_u32(cf2); @@ -19311,7 +19413,7 @@ index 24064839f1..0000000000 - - if (finished) - bss->flink->freq = data.ch_switch.freq; --@@ -3604,6 +3607,7 @@ static void do_process_drv_event(struct +-@@ -3848,6 +3851,7 @@ static void do_process_drv_event(struct - tb[NL80211_ATTR_CENTER_FREQ1], - tb[NL80211_ATTR_CENTER_FREQ2], - tb[NL80211_ATTR_PUNCT_BITMAP], @@ -19319,7 +19421,7 @@ index 24064839f1..0000000000 - 0); - break; - case NL80211_CMD_CH_SWITCH_NOTIFY: --@@ -3616,6 +3620,7 @@ static void do_process_drv_event(struct +-@@ -3860,6 +3864,7 @@ static void do_process_drv_event(struct - tb[NL80211_ATTR_CENTER_FREQ1], - tb[NL80211_ATTR_CENTER_FREQ2], - tb[NL80211_ATTR_PUNCT_BITMAP], @@ -19329,7 +19431,7 @@ index 24064839f1..0000000000 - case NL80211_CMD_DISCONNECT: diff --git a/package/network/services/hostapd/patches/380-disable_ctrl_iface_mib.patch b/package/network/services/hostapd/patches/380-disable_ctrl_iface_mib.patch deleted file mode 100644 -index b886ab7492..0000000000 +index 456599db09..0000000000 --- a/package/network/services/hostapd/patches/380-disable_ctrl_iface_mib.patch +++ /dev/null @@ -1,239 +0,0 @@ @@ -19347,7 +19449,7 @@ index b886ab7492..0000000000 - else ---- a/hostapd/ctrl_iface.c -+++ b/hostapd/ctrl_iface.c --@@ -3342,6 +3342,7 @@ static int hostapd_ctrl_iface_receive_pr +-@@ -3377,6 +3377,7 @@ static int hostapd_ctrl_iface_receive_pr - reply_size); - } else if (os_strcmp(buf, "STATUS-DRIVER") == 0) { - reply_len = hostapd_drv_status(hapd, reply, reply_size); @@ -19355,7 +19457,7 @@ index b886ab7492..0000000000 - } else if (os_strcmp(buf, "MIB") == 0) { - reply_len = ieee802_11_get_mib(hapd, reply, reply_size); - if (reply_len >= 0) { --@@ -3383,6 +3384,7 @@ static int hostapd_ctrl_iface_receive_pr +-@@ -3418,6 +3419,7 @@ static int hostapd_ctrl_iface_receive_pr - } else if (os_strncmp(buf, "STA-NEXT ", 9) == 0) { - reply_len = hostapd_ctrl_iface_sta_next(hapd, buf + 9, reply, - reply_size); @@ -19507,7 +19609,7 @@ index b886ab7492..0000000000 - if (os_snprintf_error(buflen - len, ret)) ---- a/src/ap/ieee802_1x.c -+++ b/src/ap/ieee802_1x.c --@@ -2753,6 +2753,7 @@ static const char * bool_txt(bool val) +-@@ -2834,6 +2834,7 @@ static const char * bool_txt(bool val) - return val ? "TRUE" : "FALSE"; - } - @@ -19515,7 +19617,7 @@ index b886ab7492..0000000000 - - int ieee802_1x_get_mib(struct hostapd_data *hapd, char *buf, size_t buflen) - { --@@ -2939,6 +2940,7 @@ int ieee802_1x_get_mib_sta(struct hostap +-@@ -3020,6 +3021,7 @@ int ieee802_1x_get_mib_sta(struct hostap - return len; - } - @@ -19525,7 +19627,7 @@ index b886ab7492..0000000000 - static void ieee802_1x_wnm_notif_send(void *eloop_ctx, void *timeout_ctx) ---- a/src/ap/wpa_auth.c -+++ b/src/ap/wpa_auth.c --@@ -4786,6 +4786,7 @@ static const char * wpa_bool_txt(int val +-@@ -5328,6 +5328,7 @@ static const char * wpa_bool_txt(int val - return val ? "TRUE" : "FALSE"; - } - @@ -19533,7 +19635,7 @@ index b886ab7492..0000000000 - - #define RSN_SUITE "%02x-%02x-%02x-%d" - #define RSN_SUITE_ARG(s) \ --@@ -4938,7 +4939,7 @@ int wpa_get_mib_sta(struct wpa_state_mac +-@@ -5480,7 +5481,7 @@ int wpa_get_mib_sta(struct wpa_state_mac - - return len; - } @@ -19898,7 +20000,7 @@ index 48a5589200..0000000000 - * wpa_msg_global - Global printf for ctrl_iface monitors diff --git a/package/network/services/hostapd/patches/420-indicate-features.patch b/package/network/services/hostapd/patches/420-indicate-features.patch deleted file mode 100644 -index 356d5f8c68..0000000000 +index 786b83d315..0000000000 --- a/package/network/services/hostapd/patches/420-indicate-features.patch +++ /dev/null @@ -1,63 +0,0 @@ @@ -19913,7 +20015,7 @@ index 356d5f8c68..0000000000 - - struct hapd_global { - void **drv_priv; --@@ -696,7 +696,7 @@ int main(int argc, char *argv[]) +-@@ -786,7 +786,7 @@ int main(int argc, char *argv[]) - wpa_supplicant_event = hostapd_wpa_event; - wpa_supplicant_event_global = hostapd_wpa_event_global; - for (;;) { @@ -19922,7 +20024,7 @@ index 356d5f8c68..0000000000 - if (c < 0) - break; - switch (c) { --@@ -733,6 +733,8 @@ int main(int argc, char *argv[]) +-@@ -823,6 +823,8 @@ int main(int argc, char *argv[]) - break; - #endif /* CONFIG_DEBUG_LINUX_TRACING */ - case 'v': @@ -20069,7 +20171,7 @@ index 7a100f1a0d..0000000000 - #endif /* __user */ diff --git a/package/network/services/hostapd/patches/450-scan_wait.patch b/package/network/services/hostapd/patches/450-scan_wait.patch deleted file mode 100644 -index e265d1ac7c..0000000000 +index 45886896ee..0000000000 --- a/package/network/services/hostapd/patches/450-scan_wait.patch +++ /dev/null @@ -1,73 +0,0 @@ @@ -20099,16 +20201,16 @@ index e265d1ac7c..0000000000 - - /** - * hostapd_driver_init - Preparate driver interface --@@ -164,6 +174,8 @@ static int hostapd_driver_init(struct ho -- return -1; +-@@ -217,6 +227,8 @@ static int hostapd_driver_init(struct ho - } +- #endif /* CONFIG_IEEE80211BE */ - -+ hapd->setup_complete_cb = hostapd_setup_complete_cb; -+ - /* Initialize the driver interface */ - if (!(b[0] | b[1] | b[2] | b[3] | b[4] | b[5])) - b = NULL; --@@ -407,8 +419,6 @@ static void hostapd_global_deinit(const +-@@ -497,8 +509,6 @@ static void hostapd_global_deinit(const - #endif /* CONFIG_NATIVE_WINDOWS */ - - eap_server_unregister_methods(); @@ -20117,7 +20219,7 @@ index e265d1ac7c..0000000000 - } - - --@@ -434,18 +444,6 @@ static int hostapd_global_run(struct hap +-@@ -524,18 +534,6 @@ static int hostapd_global_run(struct hap - } - #endif /* EAP_SERVER_TNC */ - @@ -20136,7 +20238,7 @@ index e265d1ac7c..0000000000 - eloop_run(); - - return 0; --@@ -649,8 +647,7 @@ int main(int argc, char *argv[]) +-@@ -739,8 +737,7 @@ int main(int argc, char *argv[]) - struct hapd_interfaces interfaces; - int ret = 1; - size_t i, j; @@ -20148,7 +20250,7 @@ index e265d1ac7c..0000000000 - char **bss_config = NULL, **tmp_bss; diff --git a/package/network/services/hostapd/patches/460-wpa_supplicant-add-new-config-params-to-be-used-with.patch b/package/network/services/hostapd/patches/460-wpa_supplicant-add-new-config-params-to-be-used-with.patch deleted file mode 100644 -index 8098777459..0000000000 +index 4c72868139..0000000000 --- a/package/network/services/hostapd/patches/460-wpa_supplicant-add-new-config-params-to-be-used-with.patch +++ /dev/null @@ -1,189 +0,0 @@ @@ -20176,7 +20278,7 @@ index 8098777459..0000000000 - #include "common/defs.h" - #include "common/ieee802_11_defs.h" - #include "common/wpa_common.h" --@@ -936,6 +937,9 @@ struct wpa_driver_associate_params { +-@@ -953,6 +954,9 @@ struct wpa_driver_associate_params { - * responsible for selecting with which BSS to associate. */ - const u8 *bssid; - @@ -20294,7 +20396,7 @@ index 8098777459..0000000000 - /* Helper macros for network block parser */ - - #ifdef OFFSET --@@ -2673,6 +2765,8 @@ static const struct parse_data ssid_fiel +-@@ -2674,6 +2766,8 @@ static const struct parse_data ssid_fiel - { INT(ap_max_inactivity) }, - { INT(dtim_period) }, - { INT(beacon_int) }, @@ -20328,7 +20430,7 @@ index 8098777459..0000000000 - * macsec_policy - Determines the policy for MACsec secure session ---- a/wpa_supplicant/wpa_supplicant.c -+++ b/wpa_supplicant/wpa_supplicant.c --@@ -4177,6 +4177,12 @@ static void wpas_start_assoc_cb(struct w +-@@ -4203,6 +4203,12 @@ static void wpas_start_assoc_cb(struct w - params.beacon_int = ssid->beacon_int; - else - params.beacon_int = wpa_s->conf->beacon_int; @@ -20343,7 +20445,7 @@ index 8098777459..0000000000 - if (bss && ssid->enable_edmg) diff --git a/package/network/services/hostapd/patches/463-add-mcast_rate-to-11s.patch b/package/network/services/hostapd/patches/463-add-mcast_rate-to-11s.patch deleted file mode 100644 -index e738ea1316..0000000000 +index be9e0507d6..0000000000 --- a/package/network/services/hostapd/patches/463-add-mcast_rate-to-11s.patch +++ /dev/null @@ -1,68 +0,0 @@ @@ -20368,7 +20470,7 @@ index e738ea1316..0000000000 - ---- a/src/drivers/driver.h -+++ b/src/drivers/driver.h --@@ -1768,6 +1768,7 @@ struct wpa_driver_mesh_join_params { +-@@ -1827,6 +1827,7 @@ struct wpa_driver_mesh_join_params { - #define WPA_DRIVER_MESH_FLAG_AMPE 0x00000008 - unsigned int flags; - bool handle_dfs; @@ -20378,7 +20480,7 @@ index e738ea1316..0000000000 - struct wpa_driver_set_key_params { ---- a/src/drivers/driver_nl80211.c -+++ b/src/drivers/driver_nl80211.c --@@ -11388,6 +11388,18 @@ static int nl80211_put_mesh_id(struct nl +-@@ -11626,6 +11626,18 @@ static int nl80211_put_mesh_id(struct nl - } - - @@ -20397,7 +20499,7 @@ index e738ea1316..0000000000 - static int nl80211_put_mesh_config(struct nl_msg *msg, - struct wpa_driver_mesh_bss_params *params) - { --@@ -11449,6 +11461,7 @@ static int nl80211_join_mesh(struct i802 +-@@ -11687,6 +11699,7 @@ static int nl80211_join_mesh(struct i802 - nl80211_put_basic_rates(msg, params->basic_rates) || - nl80211_put_mesh_id(msg, params->meshid, params->meshid_len) || - nl80211_put_beacon_int(msg, params->beacon_int) || @@ -20417,13 +20519,13 @@ index e738ea1316..0000000000 - wpa_s->mesh_vht_enabled = !!params->freq.vht_enabled; diff --git a/package/network/services/hostapd/patches/464-fix-mesh-obss-check.patch b/package/network/services/hostapd/patches/464-fix-mesh-obss-check.patch deleted file mode 100644 -index 73ccc65ad9..0000000000 +index c7e8cf25ce..0000000000 --- a/package/network/services/hostapd/patches/464-fix-mesh-obss-check.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- a/wpa_supplicant/wpa_supplicant.c -+++ b/wpa_supplicant/wpa_supplicant.c --@@ -3077,6 +3077,10 @@ void ibss_mesh_setup_freq(struct wpa_sup +-@@ -3094,6 +3094,10 @@ void ibss_mesh_setup_freq(struct wpa_sup - - freq->freq = ssid->frequency; - @@ -20436,7 +20538,7 @@ index 73ccc65ad9..0000000000 - diff --git a/package/network/services/hostapd/patches/465-hostapd-config-support-random-BSS-color.patch b/package/network/services/hostapd/patches/465-hostapd-config-support-random-BSS-color.patch deleted file mode 100644 -index ada77853fe..0000000000 +index 7d3d94648e..0000000000 --- a/package/network/services/hostapd/patches/465-hostapd-config-support-random-BSS-color.patch +++ /dev/null @@ -1,24 +0,0 @@ @@ -20455,7 +20557,7 @@ index ada77853fe..0000000000 - ---- a/hostapd/config_file.c -+++ b/hostapd/config_file.c --@@ -3498,6 +3498,8 @@ static int hostapd_config_fill(struct ho +-@@ -3500,6 +3500,8 @@ static int hostapd_config_fill(struct ho - } else if (os_strcmp(buf, "he_bss_color") == 0) { - conf->he_op.he_bss_color = atoi(pos) & 0x3f; - conf->he_op.he_bss_color_disabled = 0; @@ -20567,13 +20669,13 @@ index 046da42ab8..0000000000 - LIBCTRL += ../src/common/wpa_ctrl.o diff --git a/package/network/services/hostapd/patches/590-rrm-wnm-statistics.patch b/package/network/services/hostapd/patches/590-rrm-wnm-statistics.patch deleted file mode 100644 -index a6f43171cc..0000000000 +index 0efa6db908..0000000000 --- a/package/network/services/hostapd/patches/590-rrm-wnm-statistics.patch +++ /dev/null @@ -1,92 +0,0 @@ ---- a/src/ap/hostapd.h -+++ b/src/ap/hostapd.h --@@ -162,6 +162,21 @@ struct hostapd_sae_commit_queue { +-@@ -163,6 +163,21 @@ struct hostapd_sae_commit_queue { - }; - - /** @@ -20595,9 +20697,9 @@ index a6f43171cc..0000000000 - * struct hostapd_data - hostapd per-BSS data structure - */ - struct hostapd_data { --@@ -175,6 +190,9 @@ struct hostapd_data { +-@@ -182,6 +197,9 @@ struct hostapd_data { - -- u8 own_addr[ETH_ALEN]; +- struct hostapd_data *mld_first_bss; - -+ /* OpenWrt specific statistics */ -+ struct hostapd_openwrt_stats openwrt_stats; @@ -20690,10 +20792,10 @@ index e70dc61419..0000000000 - const char *auth; diff --git a/package/network/services/hostapd/patches/600-ubus_support.patch b/package/network/services/hostapd/patches/600-ubus_support.patch deleted file mode 100644 -index aa68079fb2..0000000000 +index f3936342a5..0000000000 --- a/package/network/services/hostapd/patches/600-ubus_support.patch +++ /dev/null -@@ -1,624 +0,0 @@ +@@ -1,625 +0,0 @@ ---- a/hostapd/Makefile -+++ b/hostapd/Makefile -@@ -166,6 +166,11 @@ OBJS += ../src/common/hw_features_common @@ -20727,7 +20829,7 @@ index aa68079fb2..0000000000 - }; - - enum hostapd_chan_status { --@@ -183,6 +184,7 @@ struct hostapd_data { +-@@ -184,6 +185,7 @@ struct hostapd_data { - struct hostapd_iface *iface; - struct hostapd_config *iconf; - struct hostapd_bss_config *conf; @@ -20735,7 +20837,7 @@ index aa68079fb2..0000000000 - int interface_added; /* virtual interface added for this BSS */ - unsigned int started:1; - unsigned int disabled:1; --@@ -682,6 +684,7 @@ hostapd_alloc_bss_data(struct hostapd_if +-@@ -695,6 +697,7 @@ hostapd_alloc_bss_data(struct hostapd_if - struct hostapd_bss_config *bss); - int hostapd_setup_interface(struct hostapd_iface *iface); - int hostapd_setup_interface_complete(struct hostapd_iface *iface, int err); @@ -20745,7 +20847,7 @@ index aa68079fb2..0000000000 - struct hostapd_iface * hostapd_alloc_iface(void); ---- a/src/ap/hostapd.c -+++ b/src/ap/hostapd.c --@@ -435,6 +435,7 @@ void hostapd_free_hapd_data(struct hosta +-@@ -455,6 +455,7 @@ void hostapd_free_hapd_data(struct hosta - hapd->beacon_set_done = 0; - - wpa_printf(MSG_DEBUG, "%s(%s)", __func__, hapd->conf->iface); @@ -20753,7 +20855,7 @@ index aa68079fb2..0000000000 - accounting_deinit(hapd); - hostapd_deinit_wpa(hapd); - vlan_deinit(hapd); --@@ -1185,6 +1186,8 @@ static int hostapd_start_beacon(struct h +-@@ -1207,6 +1208,8 @@ static int hostapd_start_beacon(struct h - if (hapd->driver && hapd->driver->set_operstate) - hapd->driver->set_operstate(hapd->drv_priv, 1); - @@ -20762,7 +20864,7 @@ index aa68079fb2..0000000000 - return 0; - } - --@@ -2126,6 +2129,7 @@ static int hostapd_setup_interface_compl +-@@ -2295,6 +2298,7 @@ static int hostapd_setup_interface_compl - if (err) - goto fail; - @@ -20770,15 +20872,15 @@ index aa68079fb2..0000000000 - wpa_printf(MSG_DEBUG, "Completing interface initialization"); - if (iface->freq) { - #ifdef NEED_AP_MLME --@@ -2342,6 +2346,7 @@ dfs_offload: +-@@ -2514,6 +2518,7 @@ dfs_offload: - - fail: - wpa_printf(MSG_ERROR, "Interface initialization failed"); -+ hostapd_ubus_free_iface(iface); -- hostapd_set_state(iface, HAPD_IFACE_DISABLED); -- wpa_msg(hapd->msg_ctx, MSG_INFO, AP_EVENT_DISABLED); -- #ifdef CONFIG_FST --@@ -2817,6 +2822,7 @@ void hostapd_interface_deinit_free(struc +- +- if (iface->is_no_ir) { +- hostapd_set_state(iface, HAPD_IFACE_NO_IR); +-@@ -3004,6 +3009,7 @@ void hostapd_interface_deinit_free(struc - (unsigned int) iface->conf->num_bss); - driver = iface->bss[0]->driver; - drv_priv = iface->bss[0]->drv_priv; @@ -20788,7 +20890,7 @@ index aa68079fb2..0000000000 - __func__, driver, drv_priv); ---- a/src/ap/ieee802_11.c -+++ b/src/ap/ieee802_11.c --@@ -2740,13 +2740,18 @@ static void handle_auth(struct hostapd_d +-@@ -2778,7 +2778,7 @@ static void handle_auth(struct hostapd_d - u16 auth_alg, auth_transaction, status_code; - u16 resp = WLAN_STATUS_SUCCESS; - struct sta_info *sta = NULL; @@ -20797,9 +20899,10 @@ index aa68079fb2..0000000000 - u16 fc; - const u8 *challenge = NULL; - u8 resp_ies[2 + WLAN_AUTH_CHALLENGE_LEN]; -- size_t resp_ies_len = 0; -- u16 seq_ctrl; +-@@ -2787,6 +2787,11 @@ static void handle_auth(struct hostapd_d - struct radius_sta rad_info; +- const u8 *dst, *sa, *bssid; +- bool mld_sta = false; -+ struct hostapd_ubus_request req = { -+ .type = HOSTAPD_UBUS_AUTH_REQ, -+ .mgmt_frame = mgmt, @@ -20808,7 +20911,7 @@ index aa68079fb2..0000000000 - - if (len < IEEE80211_HDRLEN + sizeof(mgmt->u.auth)) { - wpa_printf(MSG_INFO, "handle_auth - too short payload (len=%lu)", --@@ -2914,6 +2919,13 @@ static void handle_auth(struct hostapd_d +-@@ -2978,6 +2983,13 @@ static void handle_auth(struct hostapd_d - resp = WLAN_STATUS_UNSPECIFIED_FAILURE; - goto fail; - } @@ -20822,7 +20925,7 @@ index aa68079fb2..0000000000 - if (res == HOSTAPD_ACL_PENDING) - return; - --@@ -4695,7 +4707,7 @@ static void handle_assoc(struct hostapd_ +-@@ -5141,7 +5153,7 @@ static void handle_assoc(struct hostapd_ - int resp = WLAN_STATUS_SUCCESS; - u16 reply_res = WLAN_STATUS_UNSPECIFIED_FAILURE; - const u8 *pos; @@ -20831,7 +20934,7 @@ index aa68079fb2..0000000000 - struct sta_info *sta; - u8 *tmp = NULL; - #ifdef CONFIG_FILS --@@ -4908,6 +4920,11 @@ static void handle_assoc(struct hostapd_ +-@@ -5354,6 +5366,11 @@ static void handle_assoc(struct hostapd_ - left = res; - } - #endif /* CONFIG_FILS */ @@ -20843,7 +20946,7 @@ index aa68079fb2..0000000000 - - /* followed by SSID and Supported rates; and HT capabilities if 802.11n - * is used */ --@@ -5006,6 +5023,13 @@ static void handle_assoc(struct hostapd_ +-@@ -5452,6 +5469,13 @@ static void handle_assoc(struct hostapd_ - } - #endif /* CONFIG_FILS */ - @@ -20857,26 +20960,26 @@ index aa68079fb2..0000000000 - fail: - - /* --@@ -5099,6 +5123,7 @@ static void handle_disassoc(struct hosta -- wpa_printf(MSG_DEBUG, "disassocation: STA=" MACSTR " reason_code=%d", -- MAC2STR(mgmt->sa), -- le_to_host16(mgmt->u.disassoc.reason_code)); +-@@ -5733,6 +5757,7 @@ static void handle_disassoc(struct hosta +- (unsigned long) len); +- return; +- } -+ hostapd_ubus_notify(hapd, "disassoc", mgmt->sa); - - sta = ap_get_sta(hapd, mgmt->sa); -- if (sta == NULL) { --@@ -5168,6 +5193,8 @@ static void handle_deauth(struct hostapd +- if (!sta) { +-@@ -5764,6 +5789,8 @@ static void handle_deauth(struct hostapd - /* Clear the PTKSA cache entries for PASN */ - ptksa_cache_flush(hapd->ptksa, mgmt->sa, WPA_CIPHER_NONE); - -+ hostapd_ubus_notify(hapd, "deauth", mgmt->sa); -+ - sta = ap_get_sta(hapd, mgmt->sa); -- if (sta == NULL) { -- wpa_msg(hapd->msg_ctx, MSG_DEBUG, "Station " MACSTR " trying " +- if (!sta) { +- wpa_msg(hapd->msg_ctx, MSG_DEBUG, "Station " MACSTR ---- a/src/ap/beacon.c -+++ b/src/ap/beacon.c --@@ -1006,6 +1006,12 @@ void handle_probe_req(struct hostapd_dat +-@@ -1036,6 +1036,12 @@ void handle_probe_req(struct hostapd_dat - u16 csa_offs[2]; - size_t csa_offs_len; - struct radius_sta rad_info; @@ -20889,7 +20992,7 @@ index aa68079fb2..0000000000 - - if (hapd->iconf->rssi_ignore_probe_request && ssi_signal && - ssi_signal < hapd->iconf->rssi_ignore_probe_request) --@@ -1192,6 +1198,12 @@ void handle_probe_req(struct hostapd_dat +-@@ -1222,6 +1228,12 @@ void handle_probe_req(struct hostapd_dat - } - #endif /* CONFIG_P2P */ - @@ -20930,7 +21033,7 @@ index aa68079fb2..0000000000 - wpabuf_free(sta->p2p_ie); ---- a/src/ap/sta_info.c -+++ b/src/ap/sta_info.c --@@ -460,6 +460,7 @@ void ap_handle_timer(void *eloop_ctx, vo +-@@ -471,6 +471,7 @@ void ap_handle_timer(void *eloop_ctx, vo - hostapd_logger(hapd, sta->addr, HOSTAPD_MODULE_IEEE80211, - HOSTAPD_LEVEL_INFO, "deauthenticated due to " - "local deauth request"); @@ -20938,7 +21041,7 @@ index aa68079fb2..0000000000 - ap_free_sta(hapd, sta); - return; - } --@@ -615,6 +616,7 @@ skip_poll: +-@@ -626,6 +627,7 @@ skip_poll: - mlme_deauthenticate_indication( - hapd, sta, - WLAN_REASON_PREV_AUTH_NOT_VALID); @@ -20946,7 +21049,7 @@ index aa68079fb2..0000000000 - ap_free_sta(hapd, sta); - break; - } --@@ -1305,15 +1307,28 @@ void ap_sta_set_authorized(struct hostap +-@@ -1344,15 +1346,28 @@ void ap_sta_set_authorized(struct hostap - sta->addr, authorized, dev_addr); - - if (authorized) { @@ -20975,7 +21078,7 @@ index aa68079fb2..0000000000 - #ifdef CONFIG_P2P - if (wpa_auth_get_ip_addr(sta->wpa_sm, ip_addr_buf) == 0) { - os_snprintf(ip_addr, sizeof(ip_addr), --@@ -1323,6 +1338,13 @@ void ap_sta_set_authorized(struct hostap +-@@ -1362,6 +1377,13 @@ void ap_sta_set_authorized(struct hostap - } - #endif /* CONFIG_P2P */ - @@ -20989,7 +21092,7 @@ index aa68079fb2..0000000000 - keyid = ap_sta_wpa_get_keyid(hapd, sta); - if (keyid) { - os_snprintf(keyid_buf, sizeof(keyid_buf), --@@ -1341,17 +1363,19 @@ void ap_sta_set_authorized(struct hostap +-@@ -1380,17 +1402,19 @@ void ap_sta_set_authorized(struct hostap - dpp_pkhash, SHA256_MAC_LEN); - } - @@ -21050,7 +21153,7 @@ index aa68079fb2..0000000000 - CFLAGS += -DEAP_SERVER -DEAP_SERVER_IDENTITY ---- a/wpa_supplicant/wpa_supplicant.c -+++ b/wpa_supplicant/wpa_supplicant.c --@@ -7608,6 +7608,8 @@ struct wpa_supplicant * wpa_supplicant_a +-@@ -7635,6 +7635,8 @@ struct wpa_supplicant * wpa_supplicant_a - } - #endif /* CONFIG_P2P */ - @@ -21059,7 +21162,7 @@ index aa68079fb2..0000000000 - return wpa_s; - } - --@@ -7634,6 +7636,8 @@ int wpa_supplicant_remove_iface(struct w +-@@ -7661,6 +7663,8 @@ int wpa_supplicant_remove_iface(struct w - struct wpa_supplicant *parent = wpa_s->parent; - #endif /* CONFIG_MESH */ - @@ -21068,7 +21171,7 @@ index aa68079fb2..0000000000 - /* Remove interface from the global list of interfaces */ - prev = global->ifaces; - if (prev == wpa_s) { --@@ -7980,8 +7984,12 @@ int wpa_supplicant_run(struct wpa_global +-@@ -8007,8 +8011,12 @@ int wpa_supplicant_run(struct wpa_global - eloop_register_signal_terminate(wpa_supplicant_terminate, global); - eloop_register_signal_reconfig(wpa_supplicant_reconfig, global); - @@ -21129,7 +21232,7 @@ index aa68079fb2..0000000000 - ---- a/hostapd/main.c -+++ b/hostapd/main.c --@@ -901,6 +901,7 @@ int main(int argc, char *argv[]) +-@@ -991,6 +991,7 @@ int main(int argc, char *argv[]) - } - - hostapd_global_ctrl_iface_init(&interfaces); @@ -21137,7 +21240,7 @@ index aa68079fb2..0000000000 - - if (hostapd_global_run(&interfaces, daemonize, pid_file)) { - wpa_printf(MSG_ERROR, "Failed to start eloop"); --@@ -910,6 +911,7 @@ int main(int argc, char *argv[]) +-@@ -1000,6 +1001,7 @@ int main(int argc, char *argv[]) - ret = 0; - - out: @@ -21270,7 +21373,7 @@ index aa68079fb2..0000000000 - } ---- a/src/ap/sta_info.h -+++ b/src/ap/sta_info.h --@@ -293,6 +293,7 @@ struct sta_info { +-@@ -322,6 +322,7 @@ struct sta_info { - #endif /* CONFIG_TESTING_OPTIONS */ - #ifdef CONFIG_AIRTIME_POLICY - unsigned int airtime_weight; @@ -21359,13 +21462,13 @@ index a03fcc9f92..0000000000 - lchown(ctrl->local.sun_path, AID_SYSTEM, AID_WIFI); diff --git a/package/network/services/hostapd/patches/700-wifi-reload.patch b/package/network/services/hostapd/patches/700-wifi-reload.patch deleted file mode 100644 -index 5ac7f711a5..0000000000 +index 0c7627645f..0000000000 --- a/package/network/services/hostapd/patches/700-wifi-reload.patch +++ /dev/null @@ -1,194 +0,0 @@ ---- a/hostapd/config_file.c -+++ b/hostapd/config_file.c --@@ -2418,6 +2418,8 @@ static int hostapd_config_fill(struct ho +-@@ -2420,6 +2420,8 @@ static int hostapd_config_fill(struct ho - bss->isolate = atoi(pos); - } else if (os_strcmp(buf, "ap_max_inactivity") == 0) { - bss->ap_max_inactivity = atoi(pos); @@ -21374,7 +21477,7 @@ index 5ac7f711a5..0000000000 - } else if (os_strcmp(buf, "skip_inactivity_poll") == 0) { - bss->skip_inactivity_poll = atoi(pos); - } else if (os_strcmp(buf, "config_id") == 0) { --@@ -3128,6 +3130,8 @@ static int hostapd_config_fill(struct ho +-@@ -3130,6 +3132,8 @@ static int hostapd_config_fill(struct ho - } - } else if (os_strcmp(buf, "acs_exclude_dfs") == 0) { - conf->acs_exclude_dfs = atoi(pos); @@ -21385,7 +21488,7 @@ index 5ac7f711a5..0000000000 - } else if (os_strcmp(buf, "channel") == 0) { ---- a/src/ap/ap_config.c -+++ b/src/ap/ap_config.c --@@ -997,6 +997,7 @@ void hostapd_config_free(struct hostapd_ +-@@ -998,6 +998,7 @@ void hostapd_config_free(struct hostapd_ - - for (i = 0; i < conf->num_bss; i++) - hostapd_config_free_bss(conf->bss[i]); @@ -21395,7 +21498,7 @@ index 5ac7f711a5..0000000000 - os_free(conf->basic_rates); ---- a/src/ap/ap_config.h -+++ b/src/ap/ap_config.h --@@ -987,6 +987,7 @@ struct eht_phy_capabilities_info { +-@@ -998,6 +998,7 @@ struct eht_phy_capabilities_info { - struct hostapd_config { - struct hostapd_bss_config **bss, *last_bss; - size_t num_bss; @@ -21405,7 +21508,7 @@ index 5ac7f711a5..0000000000 - int rts_threshold; ---- a/src/ap/hostapd.c -+++ b/src/ap/hostapd.c --@@ -254,6 +254,10 @@ static int hostapd_iface_conf_changed(st +-@@ -255,6 +255,10 @@ static int hostapd_iface_conf_changed(st - { - size_t i; - @@ -21416,7 +21519,7 @@ index 5ac7f711a5..0000000000 - if (newconf->num_bss != oldconf->num_bss) - return 1; - --@@ -267,7 +271,7 @@ static int hostapd_iface_conf_changed(st +-@@ -268,7 +272,7 @@ static int hostapd_iface_conf_changed(st - } - - @@ -21425,7 +21528,7 @@ index 5ac7f711a5..0000000000 - { - struct hapd_interfaces *interfaces = iface->interfaces; - struct hostapd_data *hapd = iface->bss[0]; --@@ -295,6 +299,9 @@ int hostapd_reload_config(struct hostapd +-@@ -296,6 +300,9 @@ int hostapd_reload_config(struct hostapd - char *fname; - int res; - @@ -21435,7 +21538,7 @@ index 5ac7f711a5..0000000000 - hostapd_clear_old(iface); - - wpa_printf(MSG_DEBUG, --@@ -321,6 +328,24 @@ int hostapd_reload_config(struct hostapd +-@@ -322,6 +329,24 @@ int hostapd_reload_config(struct hostapd - wpa_printf(MSG_ERROR, - "Failed to enable interface on config reload"); - return res; @@ -21460,7 +21563,7 @@ index 5ac7f711a5..0000000000 - } - iface->conf = newconf; - --@@ -337,6 +362,12 @@ int hostapd_reload_config(struct hostapd +-@@ -338,6 +363,12 @@ int hostapd_reload_config(struct hostapd - - for (j = 0; j < iface->num_bss; j++) { - hapd = iface->bss[j]; @@ -21473,7 +21576,7 @@ index 5ac7f711a5..0000000000 - if (!hapd->conf->config_id || !newconf->bss[j]->config_id || - os_strcmp(hapd->conf->config_id, - newconf->bss[j]->config_id) != 0) --@@ -2514,6 +2545,10 @@ hostapd_alloc_bss_data(struct hostapd_if +-@@ -2700,6 +2731,10 @@ hostapd_alloc_bss_data(struct hostapd_if - hapd->iconf = conf; - hapd->conf = bss; - hapd->iface = hapd_iface; @@ -21495,7 +21598,7 @@ index 5ac7f711a5..0000000000 - struct hostapd_config * (*config_read_cb)(const char *config_fname); - int (*ctrl_iface_init)(struct hostapd_data *hapd); - void (*ctrl_iface_deinit)(struct hostapd_data *hapd); --@@ -185,6 +185,7 @@ struct hostapd_data { +-@@ -186,6 +186,7 @@ struct hostapd_data { - struct hostapd_config *iconf; - struct hostapd_bss_config *conf; - struct hostapd_ubus_bss ubus; @@ -21503,7 +21606,7 @@ index 5ac7f711a5..0000000000 - int interface_added; /* virtual interface added for this BSS */ - unsigned int started:1; - unsigned int disabled:1; --@@ -676,7 +677,7 @@ struct hostapd_iface { +-@@ -689,7 +690,7 @@ struct hostapd_iface { - int hostapd_for_each_interface(struct hapd_interfaces *interfaces, - int (*cb)(struct hostapd_iface *iface, - void *ctx), void *ctx); @@ -21514,7 +21617,7 @@ index 5ac7f711a5..0000000000 - hostapd_alloc_bss_data(struct hostapd_iface *hapd_iface, ---- a/src/drivers/driver_nl80211.c -+++ b/src/drivers/driver_nl80211.c --@@ -5054,6 +5054,9 @@ static int wpa_driver_nl80211_set_ap(voi +-@@ -5322,6 +5322,9 @@ static int wpa_driver_nl80211_set_ap(voi - if (ret) { - wpa_printf(MSG_DEBUG, "nl80211: Beacon set failed: %d (%s)", - ret, strerror(-ret)); @@ -21522,7 +21625,7 @@ index 5ac7f711a5..0000000000 -+ ret = 0; -+ bss->flink->beacon_set = 0; - } else { -- bss->flink->beacon_set = 1; +- link->beacon_set = 1; - nl80211_set_bss(bss, params->cts_protect, params->preamble, ---- a/hostapd/ctrl_iface.c -+++ b/hostapd/ctrl_iface.c @@ -21537,7 +21640,7 @@ index 5ac7f711a5..0000000000 - } ---- a/hostapd/main.c -+++ b/hostapd/main.c --@@ -320,7 +320,7 @@ static void handle_term(int sig, void *s +-@@ -410,7 +410,7 @@ static void handle_term(int sig, void *s - - static int handle_reload_iface(struct hostapd_iface *iface, void *ctx) - { @@ -21559,7 +21662,7 @@ index 5ac7f711a5..0000000000 - } diff --git a/package/network/services/hostapd/patches/710-vlan_no_bridge.patch b/package/network/services/hostapd/patches/710-vlan_no_bridge.patch deleted file mode 100644 -index f625f4bda4..0000000000 +index 61f33acb6e..0000000000 --- a/package/network/services/hostapd/patches/710-vlan_no_bridge.patch +++ /dev/null @@ -1,41 +0,0 @@ @@ -21595,7 +21698,7 @@ index f625f4bda4..0000000000 - ---- a/hostapd/config_file.c -+++ b/hostapd/config_file.c --@@ -3353,6 +3353,8 @@ static int hostapd_config_fill(struct ho +-@@ -3355,6 +3355,8 @@ static int hostapd_config_fill(struct ho - #ifndef CONFIG_NO_VLAN - } else if (os_strcmp(buf, "dynamic_vlan") == 0) { - bss->ssid.dynamic_vlan = atoi(pos); @@ -21606,13 +21709,13 @@ index f625f4bda4..0000000000 - } else if (os_strcmp(buf, "vlan_file") == 0) { diff --git a/package/network/services/hostapd/patches/711-wds_bridge_force.patch b/package/network/services/hostapd/patches/711-wds_bridge_force.patch deleted file mode 100644 -index e04ae62538..0000000000 +index c0f2c31c44..0000000000 --- a/package/network/services/hostapd/patches/711-wds_bridge_force.patch +++ /dev/null @@ -1,22 +0,0 @@ ---- a/hostapd/config_file.c -+++ b/hostapd/config_file.c --@@ -2316,6 +2316,8 @@ static int hostapd_config_fill(struct ho +-@@ -2318,6 +2318,8 @@ static int hostapd_config_fill(struct ho - sizeof(conf->bss[0]->iface)); - } else if (os_strcmp(buf, "bridge") == 0) { - os_strlcpy(bss->bridge, pos, sizeof(bss->bridge)); @@ -21634,13 +21737,13 @@ index e04ae62538..0000000000 - } diff --git a/package/network/services/hostapd/patches/720-iface_max_num_sta.patch b/package/network/services/hostapd/patches/720-iface_max_num_sta.patch deleted file mode 100644 -index a06f141c83..0000000000 +index 0bb00f9555..0000000000 --- a/package/network/services/hostapd/patches/720-iface_max_num_sta.patch +++ /dev/null @@ -1,82 +0,0 @@ ---- a/hostapd/config_file.c -+++ b/hostapd/config_file.c --@@ -2848,6 +2848,14 @@ static int hostapd_config_fill(struct ho +-@@ -2850,6 +2850,14 @@ static int hostapd_config_fill(struct ho - line, bss->max_num_sta, MAX_STA_COUNT); - return 1; - } @@ -21657,7 +21760,7 @@ index a06f141c83..0000000000 - } else if (os_strcmp(buf, "extended_key_id") == 0) { ---- a/src/ap/hostapd.h -+++ b/src/ap/hostapd.h --@@ -721,6 +721,7 @@ void hostapd_cleanup_cs_params(struct ho +-@@ -734,6 +734,7 @@ void hostapd_cleanup_cs_params(struct ho - void hostapd_periodic_iface(struct hostapd_iface *iface); - int hostapd_owe_trans_get_info(struct hostapd_data *hapd); - void hostapd_ocv_check_csa_sa_query(void *eloop_ctx, void *timeout_ctx); @@ -21667,7 +21770,7 @@ index a06f141c83..0000000000 - void hostapd_cleanup_cca_params(struct hostapd_data *hapd); ---- a/src/ap/hostapd.c -+++ b/src/ap/hostapd.c --@@ -271,6 +271,30 @@ static int hostapd_iface_conf_changed(st +-@@ -272,6 +272,30 @@ static int hostapd_iface_conf_changed(st - } - - @@ -21700,7 +21803,7 @@ index a06f141c83..0000000000 - struct hapd_interfaces *interfaces = iface->interfaces; ---- a/src/ap/beacon.c -+++ b/src/ap/beacon.c --@@ -1222,7 +1222,7 @@ void handle_probe_req(struct hostapd_dat +-@@ -1252,7 +1252,7 @@ void handle_probe_req(struct hostapd_dat - if (hapd->conf->no_probe_resp_if_max_sta && - is_multicast_ether_addr(mgmt->da) && - is_multicast_ether_addr(mgmt->bssid) && @@ -21711,7 +21814,7 @@ index a06f141c83..0000000000 - " since no room for additional STA", ---- a/src/ap/ap_config.h -+++ b/src/ap/ap_config.h --@@ -1026,6 +1026,8 @@ struct hostapd_config { +-@@ -1037,6 +1037,8 @@ struct hostapd_config { - unsigned int track_sta_max_num; - unsigned int track_sta_max_age; - @@ -21722,13 +21825,13 @@ index a06f141c83..0000000000 - * ' ' (ascii 32): all environments diff --git a/package/network/services/hostapd/patches/730-ft_iface.patch b/package/network/services/hostapd/patches/730-ft_iface.patch deleted file mode 100644 -index 1826c97623..0000000000 +index 563fe5b5fb..0000000000 --- a/package/network/services/hostapd/patches/730-ft_iface.patch +++ /dev/null @@ -1,38 +0,0 @@ ---- a/hostapd/config_file.c -+++ b/hostapd/config_file.c --@@ -3007,6 +3007,8 @@ static int hostapd_config_fill(struct ho +-@@ -3009,6 +3009,8 @@ static int hostapd_config_fill(struct ho - wpa_printf(MSG_INFO, - "Line %d: Obsolete peerkey parameter ignored", line); - #ifdef CONFIG_IEEE80211R_AP @@ -21749,7 +21852,7 @@ index 1826c97623..0000000000 - int bridge_hairpin; /* hairpin_mode on bridge members */ ---- a/src/ap/wpa_auth_glue.c -+++ b/src/ap/wpa_auth_glue.c --@@ -1616,8 +1616,12 @@ int hostapd_setup_wpa(struct hostapd_dat +-@@ -1727,8 +1727,12 @@ int hostapd_setup_wpa(struct hostapd_dat - wpa_key_mgmt_ft(hapd->conf->wpa_key_mgmt)) { - const char *ft_iface; - @@ -21766,7 +21869,7 @@ index 1826c97623..0000000000 - if (!hapd->l2) { diff --git a/package/network/services/hostapd/patches/740-snoop_iface.patch b/package/network/services/hostapd/patches/740-snoop_iface.patch deleted file mode 100644 -index a116644736..0000000000 +index 6b6cc0fad7..0000000000 --- a/package/network/services/hostapd/patches/740-snoop_iface.patch +++ /dev/null @@ -1,66 +0,0 @@ @@ -21827,7 +21930,7 @@ index a116644736..0000000000 - "x_snoop: Failed to initialize L2 packet processing %s", ---- a/hostapd/config_file.c -+++ b/hostapd/config_file.c --@@ -2320,6 +2320,8 @@ static int hostapd_config_fill(struct ho +-@@ -2322,6 +2322,8 @@ static int hostapd_config_fill(struct ho - os_strlcpy(bss->wds_bridge, pos, sizeof(bss->wds_bridge)); - } else if (os_strcmp(buf, "bridge_hairpin") == 0) { - bss->bridge_hairpin = atoi(pos); @@ -21838,13 +21941,13 @@ index a116644736..0000000000 - } else if (os_strcmp(buf, "wds_bridge") == 0) { diff --git a/package/network/services/hostapd/patches/750-qos_map_set_without_interworking.patch b/package/network/services/hostapd/patches/750-qos_map_set_without_interworking.patch deleted file mode 100644 -index c3a77bc653..0000000000 +index 124f5ea6ba..0000000000 --- a/package/network/services/hostapd/patches/750-qos_map_set_without_interworking.patch +++ /dev/null @@ -1,97 +0,0 @@ ---- a/hostapd/config_file.c -+++ b/hostapd/config_file.c --@@ -1602,6 +1602,8 @@ static int parse_anqp_elem(struct hostap +-@@ -1604,6 +1604,8 @@ static int parse_anqp_elem(struct hostap - return 0; - } - @@ -21853,7 +21956,7 @@ index c3a77bc653..0000000000 - - static int parse_qos_map_set(struct hostapd_bss_config *bss, - char *buf, int line) --@@ -1643,8 +1645,6 @@ static int parse_qos_map_set(struct host +-@@ -1645,8 +1647,6 @@ static int parse_qos_map_set(struct host - return 0; - } - @@ -21862,7 +21965,7 @@ index c3a77bc653..0000000000 - - #ifdef CONFIG_HS20 - static int hs20_parse_conn_capab(struct hostapd_bss_config *bss, char *buf, --@@ -4064,10 +4064,10 @@ static int hostapd_config_fill(struct ho +-@@ -4066,10 +4066,10 @@ static int hostapd_config_fill(struct ho - bss->gas_frag_limit = val; - } else if (os_strcmp(buf, "gas_comeback_delay") == 0) { - bss->gas_comeback_delay = atoi(pos); @@ -21876,7 +21979,7 @@ index c3a77bc653..0000000000 - os_free(bss->dump_msk_file); ---- a/src/ap/hostapd.c -+++ b/src/ap/hostapd.c --@@ -1499,6 +1499,7 @@ static int hostapd_setup_bss(struct host +-@@ -1534,6 +1534,7 @@ static int hostapd_setup_bss(struct host - wpa_printf(MSG_ERROR, "GAS server initialization failed"); - return -1; - } @@ -21884,7 +21987,7 @@ index c3a77bc653..0000000000 - - if (conf->qos_map_set_len && - hostapd_drv_set_qos_map(hapd, conf->qos_map_set, --@@ -1506,7 +1507,6 @@ static int hostapd_setup_bss(struct host +-@@ -1541,7 +1542,6 @@ static int hostapd_setup_bss(struct host - wpa_printf(MSG_ERROR, "Failed to initialize QoS Map"); - return -1; - } @@ -21894,7 +21997,7 @@ index c3a77bc653..0000000000 - wpa_printf(MSG_ERROR, "BSS Load initialization failed"); ---- a/wpa_supplicant/events.c -+++ b/wpa_supplicant/events.c --@@ -2672,8 +2672,6 @@ void wnm_bss_keep_alive_deinit(struct wp +-@@ -2683,8 +2683,6 @@ void wnm_bss_keep_alive_deinit(struct wp - } - - @@ -21903,7 +22006,7 @@ index c3a77bc653..0000000000 - static int wpas_qos_map_set(struct wpa_supplicant *wpa_s, const u8 *qos_map, - size_t len) - { --@@ -2706,8 +2704,6 @@ static void interworking_process_assoc_r +-@@ -2717,8 +2715,6 @@ static void interworking_process_assoc_r - } - } - @@ -21912,7 +22015,7 @@ index c3a77bc653..0000000000 - - static void wpa_supplicant_set_4addr_mode(struct wpa_supplicant *wpa_s) - { --@@ -3087,10 +3083,8 @@ static int wpa_supplicant_event_associnf +-@@ -3098,10 +3094,8 @@ static int wpa_supplicant_event_associnf - wnm_process_assoc_resp(wpa_s, data->assoc_info.resp_ies, - data->assoc_info.resp_ies_len); - #endif /* CONFIG_WNM */ @@ -21941,13 +22044,13 @@ index c3a77bc653..0000000000 - sta->ecsa_supported = !!(ext_capab_ie[0] & BIT(2)); diff --git a/package/network/services/hostapd/patches/751-qos_map_ignore_when_unsupported.patch b/package/network/services/hostapd/patches/751-qos_map_ignore_when_unsupported.patch deleted file mode 100644 -index 1fc4e8a77c..0000000000 +index f5ebab70d1..0000000000 --- a/package/network/services/hostapd/patches/751-qos_map_ignore_when_unsupported.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- a/src/ap/ap_drv_ops.c -+++ b/src/ap/ap_drv_ops.c --@@ -874,7 +874,8 @@ int hostapd_start_dfs_cac(struct hostapd +-@@ -927,7 +927,8 @@ int hostapd_start_dfs_cac(struct hostapd - int hostapd_drv_set_qos_map(struct hostapd_data *hapd, - const u8 *qos_map_set, u8 qos_map_set_len) - { @@ -21959,7 +22062,7 @@ index 1fc4e8a77c..0000000000 - qos_map_set_len); diff --git a/package/network/services/hostapd/patches/760-dynamic_own_ip.patch b/package/network/services/hostapd/patches/760-dynamic_own_ip.patch deleted file mode 100644 -index 2f5015892b..0000000000 +index 946b4533bf..0000000000 --- a/package/network/services/hostapd/patches/760-dynamic_own_ip.patch +++ /dev/null @@ -1,109 +0,0 @@ @@ -22050,7 +22153,7 @@ index 2f5015892b..0000000000 - RadiusType msg_type, const u8 *addr); ---- a/src/ap/ieee802_1x.c -+++ b/src/ap/ieee802_1x.c --@@ -535,6 +535,10 @@ int add_common_radius_attr(struct hostap +-@@ -598,6 +598,10 @@ int add_common_radius_attr(struct hostap - struct hostapd_radius_attr *attr; - int len; - @@ -22063,7 +22166,7 @@ index 2f5015892b..0000000000 - hapd->conf->own_ip_addr.af == AF_INET && ---- a/hostapd/config_file.c -+++ b/hostapd/config_file.c --@@ -2688,6 +2688,8 @@ static int hostapd_config_fill(struct ho +-@@ -2690,6 +2690,8 @@ static int hostapd_config_fill(struct ho - } else if (os_strcmp(buf, "iapp_interface") == 0) { - wpa_printf(MSG_INFO, "DEPRECATED: iapp_interface not used"); - #endif /* CONFIG_IAPP */ @@ -22074,7 +22177,7 @@ index 2f5015892b..0000000000 - wpa_printf(MSG_ERROR, diff --git a/package/network/services/hostapd/patches/761-shared_das_port.patch b/package/network/services/hostapd/patches/761-shared_das_port.patch deleted file mode 100644 -index 59c2a96795..0000000000 +index dad7afddf1..0000000000 --- a/package/network/services/hostapd/patches/761-shared_das_port.patch +++ /dev/null @@ -1,298 +0,0 @@ @@ -22090,14 +22193,14 @@ index 59c2a96795..0000000000 - unsigned int time_window; ---- a/src/ap/hostapd.c -+++ b/src/ap/hostapd.c --@@ -1442,6 +1442,7 @@ static int hostapd_setup_bss(struct host -- struct radius_das_conf das_conf; -- os_memset(&das_conf, 0, sizeof(das_conf)); -- das_conf.port = conf->radius_das_port; --+ das_conf.nas_identifier = conf->nas_identifier; -- das_conf.shared_secret = conf->radius_das_shared_secret; -- das_conf.shared_secret_len = -- conf->radius_das_shared_secret_len; +-@@ -1471,6 +1471,7 @@ static int hostapd_setup_bss(struct host +- +- os_memset(&das_conf, 0, sizeof(das_conf)); +- das_conf.port = conf->radius_das_port; +-+ das_conf.nas_identifier = conf->nas_identifier; +- das_conf.shared_secret = conf->radius_das_shared_secret; +- das_conf.shared_secret_len = +- conf->radius_das_shared_secret_len; ---- a/src/radius/radius_das.c -+++ b/src/radius/radius_das.c -@@ -12,13 +12,26 @@ @@ -22415,6 +22518,75 @@ index 51690def09..0000000000 - } else if (os_strcmp(buf, "FLUSH") == 0) { - wpa_supplicant_ctrl_iface_flush(wpa_s); - } else if (os_strncmp(buf, "RADIO_WORK ", 11) == 0) { +diff --git a/package/network/services/hostapd/patches/991-Fix-OpenWrt-13156.patch b/package/network/services/hostapd/patches/991-Fix-OpenWrt-13156.patch +deleted file mode 100644 +index 99d800858f..0000000000 +--- a/package/network/services/hostapd/patches/991-Fix-OpenWrt-13156.patch ++++ /dev/null +@@ -1,63 +0,0 @@ +-From 26cd9bafc1d25e602952ee86cd2a5b8c3a995490 Mon Sep 17 00:00:00 2001 +-From: Stijn Tintel +-Date: Fri, 28 Jul 2023 16:27:47 +0300 +-Subject: [PATCH] Revert "Do prune_association only after the STA is +- authorized" +- +-Commit e978072baaca ("Do prune_association only after the STA is +-authorized") causes issues when an STA roams from one interface to +-another interface on the same PHY. The mt7915 driver is not able to +-handle this properly. While the commits fixes a DoS, there are other +-devices and drivers with the same limitation, so revert to the orginal +-behavior for now, until we have a better solution in place. +- +-Ref: https://github.com/openwrt/openwrt/issues/13156 +-Signed-off-by: Stijn Tintel +---- +- src/ap/hostapd.c | 14 +++++++++++--- +- src/ap/sta_info.c | 3 --- +- 2 files changed, 11 insertions(+), 6 deletions(-) +- +---- a/src/ap/hostapd.c +-+++ b/src/ap/hostapd.c +-@@ -3615,6 +3615,8 @@ int hostapd_remove_iface(struct hapd_int +- void hostapd_new_assoc_sta(struct hostapd_data *hapd, struct sta_info *sta, +- int reassoc) +- { +-+ int mld_assoc_link_id = -1; +-+ +- if (hapd->tkip_countermeasures) { +- hostapd_drv_sta_deauth(hapd, sta->addr, +- WLAN_REASON_MICHAEL_MIC_FAILURE); +-@@ -3622,10 +3624,16 @@ void hostapd_new_assoc_sta(struct hostap +- } +- +- #ifdef CONFIG_IEEE80211BE +-- if (hapd->conf->mld_ap && sta->mld_info.mld_sta && +-- sta->mld_assoc_link_id != hapd->mld_link_id) +-- return; +-+ if (hapd->conf->mld_ap && sta->mld_info.mld_sta) { +-+ if (sta->mld_assoc_link_id == hapd->mld_link_id) { +-+ mld_assoc_link_id = sta->mld_assoc_link_id; +-+ } else { +-+ return; +-+ } +-+ } +- #endif /* CONFIG_IEEE80211BE */ +-+ if (mld_assoc_link_id != -2) +-+ hostapd_prune_associations(hapd, sta->addr, mld_assoc_link_id); +- +- ap_sta_clear_disconnect_timeouts(hapd, sta); +- sta->post_csa_sa_query = 0; +---- a/src/ap/sta_info.c +-+++ b/src/ap/sta_info.c +-@@ -1318,9 +1318,6 @@ void ap_sta_set_authorized(struct hostap +- mld_assoc_link_id = -2; +- } +- #endif /* CONFIG_IEEE80211BE */ +-- if (mld_assoc_link_id != -2) +-- hostapd_prune_associations(hapd, sta->addr, +-- mld_assoc_link_id); +- sta->flags |= WLAN_STA_AUTHORIZED; +- } else { +- sta->flags &= ~WLAN_STA_AUTHORIZED; diff --git a/package/network/services/hostapd/src/src/ap/ubus.c b/package/network/services/hostapd/src/src/ap/ubus.c deleted file mode 100644 index ddd86447eb..0000000000 diff --git a/patches/0050-hostapd-add-TIP-hostapd.sh-version.patch b/patches/0050-hostapd-add-TIP-hostapd.sh-version.patch deleted file mode 100644 index 1f7478aae..000000000 --- a/patches/0050-hostapd-add-TIP-hostapd.sh-version.patch +++ /dev/null @@ -1,750 +0,0 @@ -From f144ecc68e6b3abf3bf2d7ad14ac7a70fb3d76aa Mon Sep 17 00:00:00 2001 -From: John Crispin -Date: Thu, 17 Aug 2023 15:54:39 +0200 -Subject: [PATCH 50/52] hostapd: add TIP hostapd.sh version - -Signed-off-by: John Crispin ---- - .../network/services/hostapd/files/hostapd.sh | 385 ++++++++++-------- - 1 file changed, 225 insertions(+), 160 deletions(-) - -diff --git a/package/network/services/hostapd/files/hostapd.sh b/package/network/services/hostapd/files/hostapd.sh -index 65ae662c4d..90d9210410 100644 ---- a/package/network/services/hostapd/files/hostapd.sh -+++ b/package/network/services/hostapd/files/hostapd.sh -@@ -24,12 +24,12 @@ hostapd_append_wep_key() { - [1234]) - for idx in 1 2 3 4; do - local zidx -- zidx="$(($idx - 1))" -+ zidx=$(($idx - 1)) - json_get_var ckey "key${idx}" - [ -n "$ckey" ] && \ - append $var "wep_key${zidx}=$(prepare_key_wep "$ckey")" "$N$T" - done -- wep_keyidx="$((key - 1))" -+ wep_keyidx=$((key - 1)) - ;; - *) - append $var "wep_key0=$(prepare_key_wep "$key")" "$N$T" -@@ -48,16 +48,17 @@ hostapd_append_wpa_key_mgmt() { - ;; - eap192) - append wpa_key_mgmt "WPA-EAP-SUITE-B-192" -- [ "${ieee80211r:-0}" -gt 0 ] && append wpa_key_mgmt "FT-EAP-SHA384" -+ append wpa_key_mgmt "WPA-EAP-SHA256" -+ [ "${ieee80211r:-0}" -gt 0 ] && append wpa_key_mgmt "FT-EAP" - ;; -- eap-eap192) -- append wpa_key_mgmt "WPA-EAP-SUITE-B-192" -+ eap-eap256) - append wpa_key_mgmt "WPA-EAP" -- [ "${ieee80211r:-0}" -gt 0 ] && { -- append wpa_key_mgmt "FT-EAP-SHA384" -- append wpa_key_mgmt "FT-EAP" -- } -- [ "${ieee80211w:-0}" -gt 0 ] && append wpa_key_mgmt "WPA-EAP-SHA256" -+ append wpa_key_mgmt "WPA-EAP-SHA256" -+ [ "${ieee80211r:-0}" -gt 0 ] && append wpa_key_mgmt "FT-EAP" -+ ;; -+ eap256) -+ append wpa_key_mgmt "WPA-EAP-SHA256" -+ [ "${ieee80211r:-0}" -gt 0 ] && append wpa_key_mgmt "FT-EAP" - ;; - sae) - append wpa_key_mgmt "SAE" -@@ -116,12 +117,15 @@ hostapd_common_add_device_config() { - config_add_int rssi_reject_assoc_rssi - config_add_int rssi_ignore_probe_request - config_add_int maxassoc -+ config_add_boolean maxassoc_ignore_probe - - config_add_string acs_chan_bias -+ config_add_boolean acs_exclude_dfs - config_add_array hostapd_options - - config_add_int airtime_mode -- config_add_int mbssid -+ -+ config_add_boolean multiple_bssid rnr_beacon he_co_locate ema - - hostapd_add_log_config - } -@@ -132,10 +136,11 @@ hostapd_prepare_device_config() { - - local base_cfg= - -- json_get_vars country country3 country_ie beacon_int:100 doth require_mode legacy_rates \ -+ json_get_vars country country3 country_ie beacon_int:100 dtim_period:2 doth require_mode legacy_rates \ - acs_chan_bias local_pwr_constraint spectrum_mgmt_required airtime_mode cell_density \ - rts_threshold beacon_rate rssi_reject_assoc_rssi rssi_ignore_probe_request maxassoc \ -- mbssid:0 -+ multiple_bssid he_co_locate rnr_beacon ema acs_exclude_dfs \ -+ maxassoc_ignore_probe - - hostapd_set_log_options base_cfg - -@@ -145,6 +150,11 @@ hostapd_prepare_device_config() { - set_default legacy_rates 0 - set_default airtime_mode 0 - set_default cell_density 0 -+ set_default he_co_locate 0 -+ set_default rnr_beacon 0 -+ set_default multiple_bssid 0 -+ set_default ema 0 -+ set_default acs_exclude_dfs 0 - - [ -n "$country" ] && { - append base_cfg "country_code=$country" "$N" -@@ -234,9 +244,15 @@ hostapd_prepare_device_config() { - [ -n "$brlist" ] && append base_cfg "basic_rates=$brlist" "$N" - append base_cfg "beacon_int=$beacon_int" "$N" - [ -n "$rts_threshold" ] && append base_cfg "rts_threshold=$rts_threshold" "$N" -+ append base_cfg "dtim_period=$dtim_period" "$N" - [ "$airtime_mode" -gt 0 ] && append base_cfg "airtime_mode=$airtime_mode" "$N" - [ -n "$maxassoc" ] && append base_cfg "iface_max_num_sta=$maxassoc" "$N" -- [ "$mbssid" -gt 0 ] && [ "$mbssid" -le 2 ] && append base_cfg "mbssid=$mbssid" "$N" -+ [ "$maxassoc_ignore_probe" -gt 0 ] && append base_cfg "no_probe_resp_if_max_sta=1" "$N" -+ [ "$rnr_beacon" -gt 0 ] && append base_cfg "rnr_beacon=$rnr_beacon" "$N" -+ [ "$he_co_locate" -gt 0 ] && append base_cfg "he_co_locate=$he_co_locate" "$N" -+ [ "$multiple_bssid" -gt 0 ] && append base_cfg "multiple_bssid=$multiple_bssid" "$N" -+ [ "$ema" -gt 0 ] && append base_cfg "ema=$ema" "$N" -+ [ "$acs_exclude_dfs" -gt 0 ] && append base_cfg "acs_exclude_dfs=$acs_exclude_dfs" "$N" - - json_get_values opts hostapd_options - for val in $opts; do -@@ -251,7 +267,7 @@ EOF - - hostapd_common_add_bss_config() { - config_add_string 'bssid:macaddr' 'ssid:string' -- config_add_boolean wds wmm uapsd hidden utf8_ssid ppsk -+ config_add_boolean wds wmm uapsd hidden utf8_ssid - - config_add_int maxassoc max_inactivity - config_add_boolean disassoc_low_ack isolate short_preamble skip_inactivity_poll -@@ -268,15 +284,24 @@ hostapd_common_add_bss_config() { - config_add_int ieee80211w - config_add_int eapol_version - -- config_add_array auth_server acct_server -- config_add_string 'server:host' -+ config_add_string 'auth_server:host' 'server:host' - config_add_string auth_secret key - config_add_int 'auth_port:port' 'port:port' - -+ config_add_string acct_server - config_add_string acct_secret - config_add_int acct_port -+ -+ config_add_string acct_server_secondary -+ config_add_string acct_secret_secondary -+ config_add_int acct_port_secondary -+ - config_add_int acct_interval - -+ config_add_string auth_server_secondary -+ config_add_string auth_secret_secondary -+ config_add_int auth_port_secondary -+ - config_add_int bss_load_update_period chan_util_avg_period - - config_add_string dae_client -@@ -309,7 +334,7 @@ hostapd_common_add_bss_config() { - config_add_string wps_device_type wps_device_name wps_manufacturer wps_pin - config_add_string multi_ap_backhaul_ssid multi_ap_backhaul_key - -- config_add_boolean wnm_sleep_mode wnm_sleep_mode_no_keys bss_transition mbo -+ config_add_boolean wnm_sleep_mode wnm_sleep_mode_no_keys bss_transition - config_add_int time_advertisement - config_add_string time_zone - config_add_string vendor_elements -@@ -351,7 +376,7 @@ hostapd_common_add_bss_config() { - - config_add_boolean hs20 disable_dgaf osen - config_add_int anqp_domain_id -- config_add_int hs20_deauth_req_timeout -+ config_add_int hs20_deauth_req_timeout hs20_release - config_add_array hs20_oper_friendly_name - config_add_array osu_provider - config_add_array operator_icon -@@ -378,7 +403,11 @@ hostapd_common_add_bss_config() { - config_add_boolean fils - config_add_string fils_dhcp - -- config_add_int ocv -+ config_add_boolean ratelimit -+ -+ config_add_string uci_section -+ -+ config_add_boolean dynamic_probe_resp - } - - hostapd_set_vlan_file() { -@@ -430,7 +459,7 @@ append_iw_anqp_3gpp_cell_net() { - if [ -z "$iw_anqp_3gpp_cell_net_conf" ]; then - iw_anqp_3gpp_cell_net_conf="$1" - else -- iw_anqp_3gpp_cell_net_conf="$iw_anqp_3gpp_cell_net_conf:$1" -+ iw_anqp_3gpp_cell_net_conf="$iw_anqp_3gpp_cell_net_conf;$1" - fi - } - -@@ -527,18 +556,83 @@ append_airtime_sta_weight() { - [ -n "$1" ] && append bss_conf "airtime_sta_weight=$1" "$N" - } - --append_auth_server() { -- [ -n "$1" ] || return -- append bss_conf "auth_server_addr=$1" "$N" -- append bss_conf "auth_server_port=$auth_port" "$N" -- [ -n "$auth_secret" ] && append bss_conf "auth_server_shared_secret=$auth_secret" "$N" --} -+append_radius_server() { -+ -+ json_get_vars \ -+ auth_server auth_secret auth_port \ -+ auth_server_secondary auth_secret_secondary auth_port_secondary \ -+ dae_client dae_secret dae_port \ -+ dynamic_ownip ownip radius_client_addr \ -+ eap_reauth_period request_cui \ -+ erp_domain mobility_domain \ -+ fils_realm fils_dhcp -+ -+ set_default dynamic_ownip 1 -+ -+ # legacy compatibility -+ [ -n "$auth_server" ] || json_get_var auth_server server -+ [ -n "$auth_port" ] || json_get_var auth_port port -+ [ -n "$auth_secret" ] || json_get_var auth_secret key -+ -+ [ "$fils" -gt 0 ] && { -+ set_default erp_domain "$mobility_domain" -+ set_default erp_domain "$(echo "$ssid" | md5sum | head -c 8)" -+ set_default fils_realm "$erp_domain" -+ -+ append bss_conf "erp_send_reauth_start=1" "$N" -+ append bss_conf "erp_domain=$erp_domain" "$N" -+ append bss_conf "fils_realm=$fils_realm" "$N" -+ append bss_conf "fils_cache_id=$(echo "$fils_realm" | md5sum | head -c 4)" "$N" -+ -+ [ "$fils_dhcp" = "*" ] && { -+ json_get_values network network -+ fils_dhcp= -+ for net in $network; do -+ fils_dhcp="$(ifstatus "$net" | jsonfilter -e '@.data.dhcpserver')" -+ [ -n "$fils_dhcp" ] && break -+ done -+ -+ [ -z "$fils_dhcp" -a -n "$network_bridge" -a -n "$network_ifname" ] && \ -+ fils_dhcp="$(udhcpc -B -n -q -s /lib/netifd/dhcp-get-server.sh -t 1 -i "$network_ifname" 2>/dev/null)" -+ } -+ [ -n "$fils_dhcp" ] && append bss_conf "dhcp_server=$fils_dhcp" "$N" -+ } -+ -+ set_default auth_port 1812 -+ set_default auth_port_secondary 1812 -+ set_default dae_port 3799 -+ set_default request_cui 0 -+ -+ [ "$eap_server" -eq 0 ] && { -+ append bss_conf "auth_server_addr=$auth_server" "$N" -+ append bss_conf "auth_server_port=$auth_port" "$N" -+ append bss_conf "auth_server_shared_secret=$auth_secret" "$N" -+ } -+ -+ [ -n "$auth_server_secondary" ] && { -+ append bss_conf "auth_server_addr=$auth_server_secondary" "$N" -+ append bss_conf "auth_server_port=$auth_port_secondary" "$N" -+ [ -n "$auth_secret_secondary" ] && \ -+ append bss_conf "auth_server_shared_secret=$auth_secret_secondary" "$N" -+ } -+ -+ [ "$request_cui" -gt 0 ] && append bss_conf "radius_request_cui=$request_cui" "$N" -+ [ -n "$eap_reauth_period" ] && append bss_conf "eap_reauth_period=$eap_reauth_period" "$N" -+ -+ [ -n "$dae_client" -a -n "$dae_secret" ] && { -+ append bss_conf "radius_das_port=$dae_port" "$N" -+ append bss_conf "radius_das_client=$dae_client $dae_secret" "$N" -+ } -+ json_for_each_item append_radius_auth_req_attr radius_auth_req_attr -+ -+ if [ -n "$ownip" ]; then -+ append bss_conf "own_ip_addr=$ownip" "$N" -+ elif [ "$dynamic_ownip" -gt 0 ]; then -+ append bss_conf "dynamic_own_ip_addr=$dynamic_ownip" "$N" -+ fi - --append_acct_server() { -- [ -n "$1" ] || return -- append bss_conf "acct_server_addr=$1" "$N" -- append bss_conf "acct_server_port=$acct_port" "$N" -- [ -n "$acct_secret" ] && append bss_conf "acct_server_shared_secret=$acct_secret" "$N" -+ [ -n "$radius_client_addr" ] && append bss_conf "radius_client_addr=$radius_client_addr" "$N" -+ [ "$macfilter" = radius ] && append bss_conf "macaddr_acl=2" "$N" - } - - hostapd_set_bss_options() { -@@ -548,7 +642,7 @@ hostapd_set_bss_options() { - - wireless_vif_parse_encryption - -- local bss_conf bss_md5sum ft_key -+ local bss_conf bss_md5sum - local wep_rekey wpa_group_rekey wpa_pair_rekey wpa_master_rekey wpa_key_mgmt - - json_get_vars \ -@@ -559,13 +653,14 @@ hostapd_set_bss_options() { - wps_independent wps_device_type wps_device_name wps_manufacturer wps_pin \ - macfilter ssid utf8_ssid wmm uapsd hidden short_preamble rsn_preauth \ - iapp_interface eapol_version dynamic_vlan ieee80211w nasid \ -- acct_secret acct_port acct_interval \ -+ acct_server acct_secret acct_port acct_interval \ -+ acct_server_secondary acct_secret_secondary acct_port_secondary \ - bss_load_update_period chan_util_avg_period sae_require_mfp sae_pwe \ - multi_ap multi_ap_backhaul_ssid multi_ap_backhaul_key skip_inactivity_poll \ -- ppsk airtime_bss_weight airtime_bss_limit airtime_sta_weight \ -+ airtime_bss_weight airtime_bss_limit airtime_sta_weight \ - multicast_to_unicast_all proxy_arp per_sta_vif \ - eap_server eap_user_file ca_cert server_cert private_key private_key_passwd server_id \ -- vendor_elements fils ocv -+ vendor_elements fils uci_section dynamic_probe_resp - - set_default fils 0 - set_default isolate 0 -@@ -581,14 +676,15 @@ hostapd_set_bss_options() { - set_default tdls_prohibit 0 - set_default eapol_version $((wpa & 1)) - set_default acct_port 1813 -+ set_default acct_port_secondary 1813 - set_default bss_load_update_period 60 - set_default chan_util_avg_period 600 - set_default utf8_ssid 1 - set_default multi_ap 0 -- set_default ppsk 0 - set_default airtime_bss_weight 0 - set_default airtime_bss_limit 0 - set_default eap_server 0 -+ set_default dynamic_probe_resp 0 - - /usr/sbin/hostapd -vfils || fils=0 - -@@ -614,6 +710,7 @@ hostapd_set_bss_options() { - append bss_conf "preamble=$short_preamble" "$N" - append bss_conf "wmm_enabled=$wmm" "$N" - append bss_conf "ignore_broadcast_ssid=$hidden" "$N" -+ append bss_conf "dynamic_probe_resp=$dynamic_probe_resp" "$N" - append bss_conf "uapsd_advertisement_enabled=$uapsd" "$N" - append bss_conf "utf8_ssid=$utf8_ssid" "$N" - append bss_conf "multi_ap=$multi_ap" "$N" -@@ -631,23 +728,31 @@ hostapd_set_bss_options() { - set_default nasid "${macaddr//\:}" - append bss_conf "nas_identifier=$nasid" "$N" - -- [ -n "$acct_interval" ] && \ -- append bss_conf "radius_acct_interim_interval=$acct_interval" "$N" -- json_for_each_item append_acct_server acct_server -- json_for_each_item append_radius_acct_req_attr radius_acct_req_attr -+ [ -n "$acct_server" ] && { -+ append bss_conf "acct_server_addr=$acct_server" "$N" -+ append bss_conf "acct_server_port=$acct_port" "$N" -+ [ -n "$acct_secret" ] && \ -+ append bss_conf "acct_server_shared_secret=$acct_secret" "$N" -+ [ -n "$acct_interval" ] && \ -+ append bss_conf "radius_acct_interim_interval=$acct_interval" "$N" -+ json_for_each_item append_radius_acct_req_attr radius_acct_req_attr -+ } - -- [ -n "$ocv" ] && append bss_conf "ocv=$ocv" "$N" -+ [ -n "$acct_server_secondary" ] && { -+ append bss_conf "acct_server_addr=$acct_server_secondary" "$N" -+ append bss_conf "acct_server_port=$acct_port_secondary" "$N" -+ [ -n "$acct_secret_secondary" ] && \ -+ append bss_conf "acct_server_shared_secret=$acct_secret_secondary" "$N" -+ } - - case "$auth_type" in -- sae|owe|eap192|eap-eap192) -+ sae|owe|eap192|eap256) - set_default ieee80211w 2 - set_default sae_require_mfp 1 -- set_default sae_pwe 2 - ;; -- psk-sae) -+ psk-sae|psk2-radius|eap-eap256) - set_default ieee80211w 1 - set_default sae_require_mfp 1 -- set_default sae_pwe 2 - ;; - esac - [ -n "$sae_require_mfp" ] && append bss_conf "sae_require_mfp=$sae_require_mfp" "$N" -@@ -667,16 +772,14 @@ hostapd_set_bss_options() { - # Here we make the assumption that if we're in open mode - # with WPS enabled, we got to be in unconfigured state. - wps_not_configured=1 -+ vlan_possible=1 -+ [ "$macfilter" = radius ] && { -+ append_radius_server -+ } - ;; - psk|sae|psk-sae) - json_get_vars key wpa_psk_file -- if [ "$auth_type" = "psk" ] && [ "$ppsk" -ne 0 ] ; then -- json_get_vars auth_secret auth_port -- set_default auth_port 1812 -- json_for_each_item append_auth_server auth_server -- append bss_conf "macaddr_acl=2" "$N" -- append bss_conf "wpa_psk_radius=2" "$N" -- elif [ ${#key} -eq 64 ]; then -+ if [ ${#key} -eq 64 ]; then - append bss_conf "wpa_psk=$key" "$N" - elif [ ${#key} -ge 8 ] && [ ${#key} -le 63 ]; then - append bss_conf "wpa_passphrase=$key" "$N" -@@ -695,70 +798,10 @@ hostapd_set_bss_options() { - vlan_possible=1 - wps_possible=1 - ;; -- eap|eap192|eap-eap192) -- json_get_vars \ -- auth_server auth_secret auth_port \ -- dae_client dae_secret dae_port \ -- dynamic_ownip ownip radius_client_addr \ -- eap_reauth_period request_cui \ -- erp_domain mobility_domain \ -- fils_realm fils_dhcp -- -+ eap|eap192|eap-eap256|eap256) -+ append_radius_server - # radius can provide VLAN ID for clients - vlan_possible=1 -- -- set_default dynamic_ownip 1 -- -- # legacy compatibility -- [ -n "$auth_server" ] || json_get_var auth_server server -- [ -n "$auth_port" ] || json_get_var auth_port port -- [ -n "$auth_secret" ] || json_get_var auth_secret key -- -- [ "$fils" -gt 0 ] && { -- set_default erp_domain "$mobility_domain" -- set_default erp_domain "$(echo "$ssid" | md5sum | head -c 8)" -- set_default fils_realm "$erp_domain" -- -- append bss_conf "erp_send_reauth_start=1" "$N" -- append bss_conf "erp_domain=$erp_domain" "$N" -- append bss_conf "fils_realm=$fils_realm" "$N" -- append bss_conf "fils_cache_id=$(echo "$fils_realm" | md5sum | head -c 4)" "$N" -- -- [ "$fils_dhcp" = "*" ] && { -- json_get_values network network -- fils_dhcp= -- for net in $network; do -- fils_dhcp="$(ifstatus "$net" | jsonfilter -e '@.data.dhcpserver')" -- [ -n "$fils_dhcp" ] && break -- done -- -- [ -z "$fils_dhcp" -a -n "$network_bridge" -a -n "$network_ifname" ] && \ -- fils_dhcp="$(udhcpc -B -n -q -s /lib/netifd/dhcp-get-server.sh -t 1 -i "$network_ifname" 2>/dev/null)" -- } -- [ -n "$fils_dhcp" ] && append bss_conf "dhcp_server=$fils_dhcp" "$N" -- } -- -- set_default auth_port 1812 -- set_default dae_port 3799 -- set_default request_cui 0 -- -- [ "$eap_server" -eq 0 ] && json_for_each_item append_auth_server auth_server -- [ "$request_cui" -gt 0 ] && append bss_conf "radius_request_cui=$request_cui" "$N" -- [ -n "$eap_reauth_period" ] && append bss_conf "eap_reauth_period=$eap_reauth_period" "$N" -- -- [ -n "$dae_client" -a -n "$dae_secret" ] && { -- append bss_conf "radius_das_port=$dae_port" "$N" -- append bss_conf "radius_das_client=$dae_client $dae_secret" "$N" -- } -- json_for_each_item append_radius_auth_req_attr radius_auth_req_attr -- -- if [ -n "$ownip" ]; then -- append bss_conf "own_ip_addr=$ownip" "$N" -- elif [ "$dynamic_ownip" -gt 0 ]; then -- append bss_conf "dynamic_own_ip_addr=$dynamic_ownip" "$N" -- fi -- -- [ -n "$radius_client_addr" ] && append bss_conf "radius_client_addr=$radius_client_addr" "$N" - append bss_conf "eapol_key_index_workaround=1" "$N" - append bss_conf "ieee8021x=1" "$N" - -@@ -771,26 +814,14 @@ hostapd_set_bss_options() { - append bss_conf "wep_default_key=$wep_keyidx" "$N" - [ -n "$wep_rekey" ] && append bss_conf "wep_rekey_period=$wep_rekey" "$N" - ;; -- esac -- -- case "$auth_type" in -- none|owe|psk|sae|psk-sae|wep) -- json_get_vars \ -- auth_server auth_port auth_secret \ -- ownip radius_client_addr -- -- [ -n "$auth_server" ] && { -- set_default auth_port 1812 -- -- json_for_each_item append_auth_server auth_server -- [ -n "$ownip" ] && append bss_conf "own_ip_addr=$ownip" "$N" -- [ -n "$radius_client_addr" ] && append bss_conf "radius_client_addr=$radius_client_addr" "$N" -- append bss_conf "macaddr_acl=2" "$N" -- } -+ psk2-radius) -+ append bss_conf "wpa_psk_radius=3" "$N" -+ append_radius_server -+ vlan_possible=1 - ;; - esac - -- local auth_algs="$((($auth_mode_shared << 1) | $auth_mode_open))" -+ local auth_algs=$((($auth_mode_shared << 1) | $auth_mode_open)) - append bss_conf "auth_algs=${auth_algs:-1}" "$N" - append bss_conf "wpa=$wpa" "$N" - [ -n "$wpa_pairwise" ] && append bss_conf "wpa_pairwise=$wpa_pairwise" "$N" -@@ -852,11 +883,10 @@ hostapd_set_bss_options() { - append bss_conf "iapp_interface=$ifname" "$N" - } - -- json_get_vars time_advertisement time_zone wnm_sleep_mode wnm_sleep_mode_no_keys bss_transition mbo -+ json_get_vars time_advertisement time_zone wnm_sleep_mode wnm_sleep_mode_no_keys bss_transition - set_default bss_transition 0 - set_default wnm_sleep_mode 0 - set_default wnm_sleep_mode_no_keys 0 -- set_default mbo 0 - - [ -n "$time_advertisement" ] && append bss_conf "time_advertisement=$time_advertisement" "$N" - [ -n "$time_zone" ] && append bss_conf "time_zone=$time_zone" "$N" -@@ -865,7 +895,6 @@ hostapd_set_bss_options() { - [ "$wnm_sleep_mode_no_keys" -eq "1" ] && append bss_conf "wnm_sleep_mode_no_keys=1" "$N" - fi - [ "$bss_transition" -eq "1" ] && append bss_conf "bss_transition=1" "$N" -- [ "$mbo" -eq 1 ] && append bss_conf "mbo=1" "$N" - - json_get_vars ieee80211k rrm_neighbor_report rrm_beacon_report - set_default ieee80211k 0 -@@ -900,25 +929,31 @@ hostapd_set_bss_options() { - json_get_vars mobility_domain ft_psk_generate_local ft_over_ds reassociation_deadline - - set_default mobility_domain "$(echo "$ssid" | md5sum | head -c 4)" -- set_default ft_over_ds 0 -+ set_default ft_over_ds 1 - set_default reassociation_deadline 1000 -+ skip_kh_setup=0 - - case "$auth_type" in -- psk|sae|psk-sae) -+ psk|psk-sae) - set_default ft_psk_generate_local 1 -+ skip_kh_setup="$ft_psk_generate_local" - ;; - *) - set_default ft_psk_generate_local 0 - ;; - esac - -+ case "$auth_type" in -+ *sae*) skip_kh_setup=0;; -+ esac -+ - [ -n "$network_ifname" ] && append bss_conf "ft_iface=$network_ifname" "$N" - append bss_conf "mobility_domain=$mobility_domain" "$N" - append bss_conf "ft_psk_generate_local=$ft_psk_generate_local" "$N" - append bss_conf "ft_over_ds=$ft_over_ds" "$N" - append bss_conf "reassociation_deadline=$reassociation_deadline" "$N" - -- if [ "$ft_psk_generate_local" -eq "0" ]; then -+ if [ "$skip_kh_setup" -eq "0" ]; then - json_get_vars r0_key_lifetime r1_key_holder pmk_r1_push - json_get_values r0kh r0kh - json_get_values r1kh r1kh -@@ -927,10 +962,10 @@ hostapd_set_bss_options() { - set_default pmk_r1_push 0 - - [ -n "$r0kh" -a -n "$r1kh" ] || { -- ft_key=`echo -n "$mobility_domain/${auth_secret:-${key}}" | md5sum | awk '{print $1}'` -+ key=`echo -n "$mobility_domain/$auth_secret" | md5sum | awk '{print $1}'` - -- set_default r0kh "ff:ff:ff:ff:ff:ff,*,$ft_key" -- set_default r1kh "00:00:00:00:00:00,00:00:00:00:00:00,$ft_key" -+ set_default r0kh "ff:ff:ff:ff:ff:ff,*,$key" -+ set_default r1kh "00:00:00:00:00:00,00:00:00:00:00:00,$key" - } - - [ -n "$r1_key_holder" ] && append bss_conf "r1_key_holder=$r1_key_holder" "$N" -@@ -981,11 +1016,16 @@ hostapd_set_bss_options() { - json_get_vars ieee80211w_mgmt_cipher ieee80211w_max_timeout ieee80211w_retry_timeout - append bss_conf "ieee80211w=$ieee80211w" "$N" - [ "$ieee80211w" -gt "0" ] && { -- if [ "$auth_type" = "eap192" ]; then -+ case "$auth_type" in -+ eap192) - append bss_conf "group_mgmt_cipher=BIP-GMAC-256" "$N" -- else -+ append bss_conf "group_cipher=GCMP-256" "$N" -+ ;; -+ *) - append bss_conf "group_mgmt_cipher=${ieee80211w_mgmt_cipher:-AES-128-CMAC}" "$N" -- fi -+ ;; -+ esac -+ - [ -n "$ieee80211w_max_timeout" ] && \ - append bss_conf "assoc_sa_query_max_timeout=$ieee80211w_max_timeout" "$N" - [ -n "$ieee80211w_retry_timeout" ] && \ -@@ -1100,12 +1140,13 @@ hostapd_set_bss_options() { - - local hs20 disable_dgaf osen anqp_domain_id hs20_deauth_req_timeout \ - osu_ssid hs20_wan_metrics hs20_operating_class hs20_t_c_filename hs20_t_c_timestamp \ -- hs20_t_c_server_url -+ hs20_t_c_server_url hs20_release - json_get_vars hs20 disable_dgaf osen anqp_domain_id hs20_deauth_req_timeout \ - osu_ssid hs20_wan_metrics hs20_operating_class hs20_t_c_filename hs20_t_c_timestamp \ -- hs20_t_c_server_url -+ hs20_t_c_server_url hs20_release - - set_default hs20 0 -+ set_default hs20_release 1 - set_default disable_dgaf $hs20 - set_default osen 0 - set_default anqp_domain_id 0 -@@ -1113,6 +1154,7 @@ hostapd_set_bss_options() { - if [ "$hs20" = "1" ]; then - append bss_conf "hs20=1" "$N" - append_hs20_icons -+ append bss_conf "hs20_release=$hs20_release" "$N" - append bss_conf "disable_dgaf=$disable_dgaf" "$N" - append bss_conf "osen=$osen" "$N" - append bss_conf "anqp_domain_id=$anqp_domain_id" "$N" -@@ -1154,6 +1196,8 @@ hostapd_set_bss_options() { - append bss_conf "per_sta_vif=$per_sta_vif" "$N" - fi - -+ [ -n "$uci_section" ] && append bss_conf "uci_section=$uci_section" "$N" -+ - json_get_values opts hostapd_bss_options - for val in $opts; do - append bss_conf "$val" "$N" -@@ -1178,7 +1222,7 @@ hostapd_set_log_options() { - set_default log_iapp 1 - set_default log_mlme 1 - -- local log_mask="$(( \ -+ local log_mask=$(( \ - ($log_80211 << 0) | \ - ($log_8021x << 1) | \ - ($log_radius << 2) | \ -@@ -1186,7 +1230,7 @@ hostapd_set_log_options() { - ($log_driver << 4) | \ - ($log_iapp << 5) | \ - ($log_mlme << 6) \ -- ))" -+ )) - - append "$var" "logger_syslog=$log_mask" "$N" - append "$var" "logger_syslog_level=$log_level" "$N" -@@ -1295,15 +1339,15 @@ wpa_supplicant_add_network() { - json_get_vars \ - ssid bssid key \ - basic_rate mcast_rate \ -- ieee80211w ieee80211r fils ocv \ -+ ieee80211w ieee80211r fils \ - multi_ap \ - default_disabled - - case "$auth_type" in -- sae|owe|eap192|eap-eap192) -+ sae|owe|eap-eap256) - set_default ieee80211w 2 - ;; -- psk-sae) -+ psk-sae|eap192|eap256) - set_default ieee80211w 1 - ;; - esac -@@ -1330,7 +1374,7 @@ wpa_supplicant_add_network() { - } - - [ "$_w_mode" = "mesh" ] && { -- json_get_vars mesh_id mesh_fwding mesh_rssi_threshold encryption -+ json_get_vars mesh_id mesh_fwding mesh_rssi_threshold - [ -n "$mesh_id" ] && ssid="${mesh_id}" - - append network_data "mode=5" "$N$T" -@@ -1338,7 +1382,7 @@ wpa_supplicant_add_network() { - [ -n "$mesh_rssi_threshold" ] && append network_data "mesh_rssi_threshold=${mesh_rssi_threshold}" "$N$T" - [ -n "$freq" ] && wpa_supplicant_set_fixed_freq "$freq" "$htmode" - [ "$noscan" = "1" ] && append network_data "noscan=1" "$N$T" -- [ "$encryption" = "none" -o -z "$encryption" ] || append wpa_key_mgmt "SAE" -+ append wpa_key_mgmt "SAE" - scan_ssid="" - } - -@@ -1347,8 +1391,6 @@ wpa_supplicant_add_network() { - [ "$default_disabled" = 1 ] && append network_data "disabled=1" "$N$T" - } - -- [ -n "$ocv" ] && append network_data "ocv=$ocv" "$N$T" -- - case "$auth_type" in - none) ;; - owe) -@@ -1372,18 +1414,18 @@ wpa_supplicant_add_network() { - - key_mgmt="$wpa_key_mgmt" - -- if [ "$_w_mode" = "mesh" ] || [ "$auth_type" = "sae" ]; then -- passphrase="sae_password=\"${key}\"" -+ if [ ${#key} -eq 64 ]; then -+ passphrase="psk=${key}" - else -- if [ ${#key} -eq 64 ]; then -- passphrase="psk=${key}" -+ if [ "$_w_mode" = "mesh" ]; then -+ passphrase="sae_password=\"${key}\"" - else - passphrase="psk=\"${key}\"" - fi - fi - append network_data "$passphrase" "$N$T" - ;; -- eap|eap192|eap-eap192) -+ eap|eap192|eap-eap256|eap256) - hostapd_append_wpa_key_mgmt - key_mgmt="$wpa_key_mgmt" - -@@ -1588,6 +1630,29 @@ EOF - return 0 - } - -+wpa_supplicant_run() { -+ local ifname="$1" -+ local hostapd_ctrl="$2" -+ -+ _wpa_supplicant_common "$ifname" -+ -+ ubus wait_for wpa_supplicant -+ local supplicant_res="$(ubus call wpa_supplicant config_add "{ \ -+ \"driver\": \"${_w_driver:-wext}\", \"ctrl\": \"$_rpath\", \ -+ \"iface\": \"$ifname\", \"config\": \"$_config\" \ -+ ${network_bridge:+, \"bridge\": \"$network_bridge\"} \ -+ ${hostapd_ctrl:+, \"hostapd_ctrl\": \"$hostapd_ctrl\"} \ -+ }")" -+ -+ ret="$?" -+ -+ [ "$ret" != 0 -o -z "$supplicant_res" ] && wireless_setup_vif_failed WPA_SUPPLICANT_FAILED -+ -+ wireless_add_process "$(jsonfilter -s "$supplicant_res" -l 1 -e @.pid)" "/usr/sbin/wpa_supplicant" 1 1 -+ -+ return $ret -+} -+ - hostapd_common_cleanup() { - killall meshd-nl80211 - } --- -2.34.1 - diff --git a/patches/0056-ipq40xx-remove-23.05-version-of-the-target.patch b/patches/0056-ipq40xx-remove-23.05-version-of-the-target.patch index a70474350..ff34438c3 100644 --- a/patches/0056-ipq40xx-remove-23.05-version-of-the-target.patch +++ b/patches/0056-ipq40xx-remove-23.05-version-of-the-target.patch @@ -1,16 +1,16 @@ -From ba64689ba52a1b00c9383e9597add3d99af58bc4 Mon Sep 17 00:00:00 2001 +From e17d18a7872779d67633a74905ba4ca97571aad8 Mon Sep 17 00:00:00 2001 From: John Crispin -Date: Mon, 4 Sep 2023 12:20:23 +0200 -Subject: [PATCH 56/58] ipq40xx: remove 23.05 version of the target +Date: Thu, 7 Sep 2023 05:55:04 +0200 +Subject: [PATCH] ipq40xx: drop upstream target Signed-off-by: John Crispin --- target/linux/ipq40xx/Makefile | 23 - .../ipq40xx/base-files/etc/board.d/01_leds | 123 -- - .../ipq40xx/base-files/etc/board.d/02_network | 235 --- - .../base-files/etc/board.d/03_gpio_switches | 46 - + .../ipq40xx/base-files/etc/board.d/02_network | 237 --- + .../base-files/etc/board.d/03_gpio_switches | 47 - .../base-files/etc/board.d/05_compat-version | 18 - - .../etc/hotplug.d/firmware/11-ath10k-caldata | 278 --- + .../etc/hotplug.d/firmware/11-ath10k-caldata | 280 --- .../etc/hotplug.d/firmware/40-ct-fw-cfg | 32 - .../ipq40xx/base-files/etc/init.d/bootcount | 33 - target/linux/ipq40xx/base-files/etc/inittab | 5 - @@ -23,7 +23,7 @@ Signed-off-by: John Crispin .../lib/upgrade/dualboot_datachk.sh | 108 -- .../ipq40xx/base-files/lib/upgrade/linksys.sh | 125 -- .../ipq40xx/base-files/lib/upgrade/netgear.sh | 76 - - .../base-files/lib/upgrade/platform.sh | 251 --- + .../base-files/lib/upgrade/platform.sh | 254 --- .../ipq40xx/base-files/lib/upgrade/sony.sh | 91 - target/linux/ipq40xx/chromium/config-default | 10 - target/linux/ipq40xx/chromium/target.mk | 3 - @@ -50,12 +50,15 @@ Signed-off-by: John Crispin .../arm/boot/dts/qcom-ipq4018-jalapeno.dtsi | 276 --- .../dts/qcom-ipq4018-magic-2-wifi-next.dts | 233 --- .../boot/dts/qcom-ipq4018-meshpoint-one.dts | 81 - - .../arm/boot/dts/qcom-ipq4018-mf287plus.dts | 384 ---- + .../arch/arm/boot/dts/qcom-ipq4018-mf287.dtsi | 183 -- + .../arm/boot/dts/qcom-ipq4018-mf287plus.dts | 218 --- + .../arm/boot/dts/qcom-ipq4018-mf287pro.dts | 265 --- .../arm/boot/dts/qcom-ipq4018-nbg6617.dts | 361 ---- .../arch/arm/boot/dts/qcom-ipq4018-pa1200.dts | 225 --- .../arm/boot/dts/qcom-ipq4018-rt-ac58u.dts | 316 ---- - .../arch/arm/boot/dts/qcom-ipq4018-rutx.dtsi | 247 --- - .../arch/arm/boot/dts/qcom-ipq4018-rutx10.dts | 36 - + .../arch/arm/boot/dts/qcom-ipq4018-rutx.dtsi | 210 --- + .../arch/arm/boot/dts/qcom-ipq4018-rutx10.dts | 73 - + .../arch/arm/boot/dts/qcom-ipq4018-rutx50.dts | 181 -- .../arm/boot/dts/qcom-ipq4018-sxtsq-5-ac.dts | 239 --- .../arch/arm/boot/dts/qcom-ipq4018-wac510.dts | 380 ---- .../arm/boot/dts/qcom-ipq4018-wap-ac-lte.dts | 45 - @@ -75,7 +78,7 @@ Signed-off-by: John Crispin .../arm/boot/dts/qcom-ipq4019-eap2200.dts | 286 --- .../boot/dts/qcom-ipq4019-fritzbox-7530.dts | 321 ---- .../dts/qcom-ipq4019-fritzrepeater-1200.dts | 290 --- - .../dts/qcom-ipq4019-fritzrepeater-3000.dts | 269 --- + .../dts/qcom-ipq4019-fritzrepeater-3000.dts | 272 --- .../arm/boot/dts/qcom-ipq4019-gl-b2200.dts | 386 ---- .../boot/dts/qcom-ipq4019-habanero-dvk.dts | 387 ---- .../dts/qcom-ipq4019-hap-ac3-lte6-kit.dts | 312 ---- @@ -130,7 +133,7 @@ Signed-off-by: John Crispin target/linux/ipq40xx/generic/target.mk | 3 - target/linux/ipq40xx/image/Makefile | 19 - target/linux/ipq40xx/image/chromium.mk | 40 - - target/linux/ipq40xx/image/generic.mk | 1209 ------------ + target/linux/ipq40xx/image/generic.mk | 1234 ------------ target/linux/ipq40xx/image/mikrotik.mk | 100 - target/linux/ipq40xx/mikrotik/config-default | 5 - target/linux/ipq40xx/mikrotik/target.mk | 4 - @@ -148,7 +151,7 @@ Signed-off-by: John Crispin ...ethernet-qualcomm-add-IPQESS-support.patch | 43 - ...4019-add-ethernet-controller-DT-node.patch | 81 - ...phy-define-PSGMII-PHY-interface-mode.patch | 69 - - ...comm-IPQ4019-built-in-switch-support.patch | 56 - + ...comm-IPQ4019-built-in-switch-support.patch | 57 - .../706-arm-dts-ipq4019-add-switch-node.patch | 98 - .../707-dt-bindings-net-add-QCA807x-PHY.patch | 61 - ...8-net-phy-Add-Qualcom-QCA807x-driver.patch | 50 - @@ -156,11 +159,11 @@ Signed-off-by: John Crispin .../850-soc-add-qualcomm-syscon.patch | 180 -- .../900-dts-ipq4019-ap-dk01.1.patch | 164 -- .../ipq40xx/patches-5.15/900-pstore.patch | 17 - - .../902-dts-ipq4019-ap-dk04.1.patch | 167 -- + .../902-dts-ipq4019-ap-dk04.1.patch | 164 -- ...qcom_scm-Clear-download-bit-during-r.patch | 27 - .../patches-5.15/998-lantiq-atm-hacks.patch | 43 - .../999-atm-mpoa-intel-dsl-phy-support.patch | 137 -- - 155 files changed, 34071 deletions(-) + 158 files changed, 34568 deletions(-) delete mode 100644 target/linux/ipq40xx/Makefile delete mode 100644 target/linux/ipq40xx/base-files/etc/board.d/01_leds delete mode 100644 target/linux/ipq40xx/base-files/etc/board.d/02_network @@ -206,12 +209,15 @@ Signed-off-by: John Crispin delete mode 100644 target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-jalapeno.dtsi delete mode 100644 target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-magic-2-wifi-next.dts delete mode 100644 target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-meshpoint-one.dts + delete mode 100644 target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-mf287.dtsi delete mode 100644 target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-mf287plus.dts + delete mode 100644 target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-mf287pro.dts delete mode 100644 target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-nbg6617.dts delete mode 100644 target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-pa1200.dts delete mode 100644 target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-rt-ac58u.dts delete mode 100644 target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-rutx.dtsi delete mode 100644 target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-rutx10.dts + delete mode 100644 target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-rutx50.dts delete mode 100644 target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-sxtsq-5-ac.dts delete mode 100644 target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-wac510.dts delete mode 100644 target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-wap-ac-lte.dts @@ -477,10 +483,10 @@ index 1ba5d2b1a7..0000000000 -exit 0 diff --git a/target/linux/ipq40xx/base-files/etc/board.d/02_network b/target/linux/ipq40xx/base-files/etc/board.d/02_network deleted file mode 100644 -index 1a74fb792c..0000000000 +index 77dc892d07..0000000000 --- a/target/linux/ipq40xx/base-files/etc/board.d/02_network +++ /dev/null -@@ -1,235 +0,0 @@ +@@ -1,237 +0,0 @@ -# -# Copyright (c) 2015 The Linux Foundation. All rights reserved. -# Copyright (c) 2011-2015 OpenWrt.org @@ -507,6 +513,7 @@ index 1a74fb792c..0000000000 - p2w,r619ac-64m|\ - p2w,r619ac-128m|\ - pakedge,wr-1|\ +- teltonika,rutx50|\ - zyxel,nbg6617) - ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4" "wan" - ;; @@ -590,7 +597,8 @@ index 1a74fb792c..0000000000 - zte,mf286d) - ucidef_set_interfaces_lan_wan "lan2 lan3 lan4" "wan" - ;; -- zte,mf287plus) +- zte,mf287plus|\ +- zte,mf287pro) - ucidef_set_interface_lan "lan1 lan2 lan3 lan4" - ucidef_set_interface "wan" device "/dev/cdc-wdm0" protocol "qmi" - ;; @@ -718,10 +726,10 @@ index 1a74fb792c..0000000000 -exit 0 diff --git a/target/linux/ipq40xx/base-files/etc/board.d/03_gpio_switches b/target/linux/ipq40xx/base-files/etc/board.d/03_gpio_switches deleted file mode 100644 -index f76fe9402d..0000000000 +index 2035d84993..0000000000 --- a/target/linux/ipq40xx/base-files/etc/board.d/03_gpio_switches +++ /dev/null -@@ -1,46 +0,0 @@ +@@ -1,47 +0,0 @@ - -. /lib/functions/uci-defaults.sh - @@ -760,6 +768,7 @@ index f76fe9402d..0000000000 - ucidef_add_gpio_switch "sim_card_select" "SIM card select" "423" "0" - ;; -zte,mf286d|\ +-zte,mf287pro|\ -zte,mf289f) - ucidef_add_gpio_switch "power_btn_block" "Power button blocker" "421" "0" - ;; @@ -794,10 +803,10 @@ index 70272f99ed..0000000000 -exit 0 diff --git a/target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata b/target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata deleted file mode 100644 -index 7f41bdcfcc..0000000000 +index c8cf297e81..0000000000 --- a/target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata +++ /dev/null -@@ -1,278 +0,0 @@ +@@ -1,280 +0,0 @@ -#!/bin/sh - -[ -e /lib/firmware/$FIRMWARE ] && exit 0 @@ -931,7 +940,8 @@ index 7f41bdcfcc..0000000000 - caldata_extract "0:ART" 0x1000 0x2f20 - ath10k_patch_mac $(macaddr_add $(get_mac_label) 2) - ;; -- teltonika,rutx10) +- teltonika,rutx10|\ +- teltonika,rutx50) - caldata_extract "0:ART" 0x1000 0x2f20 - ath10k_patch_mac $(macaddr_add $(mtd_get_mac_binary "0:CONFIG" 0x0) 2) - ;; @@ -1027,7 +1037,8 @@ index 7f41bdcfcc..0000000000 - caldata_extract "0:ART" 0x5000 0x2f20 - ath10k_patch_mac $(macaddr_add $(get_mac_label) 4) - ;; -- teltonika,rutx10) +- teltonika,rutx10|\ +- teltonika,rutx50) - caldata_extract "0:ART" 0x5000 0x2f20 - ath10k_patch_mac $(macaddr_add $(mtd_get_mac_binary "0:CONFIG" 0x0) 3) - ;; @@ -1661,10 +1672,10 @@ index f3fb626d1f..0000000000 -} diff --git a/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh b/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh deleted file mode 100644 -index 651ddb8177..0000000000 +index 11cfdfb46c..0000000000 --- a/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh +++ /dev/null -@@ -1,251 +0,0 @@ +@@ -1,254 +0,0 @@ -PART_NAME=firmware -REQUIRE_IMAGE_METADATA=1 - @@ -1695,6 +1706,7 @@ index 651ddb8177..0000000000 - zte,mf18a |\ - zte,mf286d |\ - zte,mf287plus |\ +- zte,mf287pro |\ - zte,mf289f) - CI_UBIPART="rootfs" - local mtdnum="$( find_mtd_index $CI_UBIPART )" @@ -1891,9 +1903,11 @@ index 651ddb8177..0000000000 - sony_emmc_do_upgrade "$1" - ;; - teltonika,rutx10 |\ +- teltonika,rutx50 |\ - zte,mf18a |\ - zte,mf286d |\ - zte,mf287plus |\ +- zte,mf287pro |\ - zte,mf289f) - CI_UBIPART="rootfs" - nand_do_upgrade "$1" @@ -7851,12 +7865,12 @@ index 62ba76802d..0000000000 - }; - }; -}; -diff --git a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-mf287plus.dts b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-mf287plus.dts +diff --git a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-mf287.dtsi b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-mf287.dtsi deleted file mode 100644 -index 6c285f4b8a..0000000000 ---- a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-mf287plus.dts +index 3cbe2eaa38..0000000000 +--- a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-mf287.dtsi +++ /dev/null -@@ -1,384 +0,0 @@ +@@ -1,183 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0-or-later OR MIT -// Copyright (c) 2022, Pawel Dembicki . -// Copyright (c) 2022, Giammarco Marzano . @@ -7869,9 +7883,6 @@ index 6c285f4b8a..0000000000 -#include - -/ { -- model = "ZTE MF287Plus"; -- compatible = "zte,mf287plus"; -- - aliases { - led-boot = &led_status; - led-failsafe = &led_status; @@ -7887,15 +7898,6 @@ index 6c285f4b8a..0000000000 - bootargs-append = " root=/dev/ubiblock0_1"; - }; - -- /* -- * This node is used to restart modem module to avoid anomalous -- * behaviours on initial communication. -- */ -- gpio-restart { -- compatible = "gpio-restart"; -- gpios = <&tlmm 5 GPIO_ACTIVE_HIGH>; -- }; -- - leds { - compatible = "gpio-leds"; - @@ -7903,23 +7905,20 @@ index 6c285f4b8a..0000000000 - label = "blue:power"; - function = LED_FUNCTION_POWER; - color = ; -- gpios = <&tlmm 0 GPIO_ACTIVE_LOW>; - }; - }; - - keys { - compatible = "gpio-keys"; - -- key-reset { +- key_reset: key-reset { - label = "reset"; - linux,code = ; -- gpios = <&tlmm 63 GPIO_ACTIVE_LOW>; - }; - -- key-wps { +- key_wps: key-wps { - label = "wps"; - linux,code = ; -- gpios = <&tlmm 2 GPIO_ACTIVE_LOW>; - }; - }; - @@ -7976,6 +7975,124 @@ index 6c285f4b8a..0000000000 - status = "okay"; -}; - +-&blsp1_uart1 { +- pinctrl-0 = <&serial_pins>; +- pinctrl-names = "default"; +- status = "okay"; +-}; +- +-&crypto { +- status = "okay"; +-}; +- +-&cryptobam { +- status = "okay"; +-}; +- +-&gmac { +- status = "okay"; +- nvmem-cell-names = "mac-address"; +- nvmem-cells = <&macaddr_mac_0>; +- mac-address-increment = <2>; +-}; +- +-&switch { +- status = "okay"; +-}; +- +-&swport2 { +- status = "okay"; +- +- label = "lan1"; +-}; +- +-&swport3 { +- status = "okay"; +- +- label = "lan2"; +-}; +- +-&swport4 { +- status = "okay"; +- +- label = "lan3"; +-}; +- +-&swport5 { +- status = "okay"; +- +- label = "lan4"; +-}; +- +-&qpic_bam { +- status = "okay"; +-}; +- +-&usb2_hs_phy { +- status = "okay"; +-}; +- +-&usb3_ss_phy { +- status = "okay"; +-}; +- +-&usb3_hs_phy { +- status = "okay"; +-}; +- +-&wifi0 { +- status = "okay"; +- nvmem-cell-names = "pre-calibration", "mac-address"; +- nvmem-cells = <&precal_art_1000>, <&macaddr_mac_0>; +- qcom,ath10k-calibration-variant = "zte,mf287plus"; +-}; +- +-&wifi1 { +- status = "okay"; +- nvmem-cell-names = "pre-calibration", "mac-address"; +- nvmem-cells = <&precal_art_5000>, <&macaddr_mac_0>; +- mac-address-increment = <1>; +- qcom,ath10k-calibration-variant = "zte,mf287plus"; +-}; +diff --git a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-mf287plus.dts b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-mf287plus.dts +deleted file mode 100644 +index db8c8c9ad0..0000000000 +--- a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-mf287plus.dts ++++ /dev/null +@@ -1,218 +0,0 @@ +-// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +-// Copyright (c) 2022, Pawel Dembicki . +-// Copyright (c) 2022, Giammarco Marzano . +-// Copyright (c) 2023, Andreas Böhler +- +-#include "qcom-ipq4018-mf287.dtsi" +- +-/ { +- model = "ZTE MF287Plus"; +- compatible = "zte,mf287plus"; +- +- /* +- * This node is used to restart modem module to avoid anomalous +- * behaviours on initial communication. +- */ +- gpio-restart { +- compatible = "gpio-restart"; +- gpios = <&tlmm 5 GPIO_ACTIVE_HIGH>; +- }; +-}; +- +-&key_reset { +- gpios = <&tlmm 63 GPIO_ACTIVE_LOW>; +-}; +- +-&key_wps { +- gpios = <&tlmm 2 GPIO_ACTIVE_LOW>; +-}; +- +-&led_status { +- gpios = <&tlmm 0 GPIO_ACTIVE_LOW>; +-}; +- -&blsp1_spi1 { - pinctrl-0 = <&spi_0_pins>; - pinctrl-names = "default"; @@ -8135,59 +8252,6 @@ index 6c285f4b8a..0000000000 - }; -}; - --&blsp1_uart1 { -- pinctrl-0 = <&serial_pins>; -- pinctrl-names = "default"; -- status = "okay"; --}; -- --&crypto { -- status = "okay"; --}; -- --&cryptobam { -- status = "okay"; --}; -- --&gmac { -- status = "okay"; -- nvmem-cell-names = "mac-address"; -- nvmem-cells = <&macaddr_mac_0>; -- mac-address-increment = <2>; --}; -- --&switch { -- status = "okay"; --}; -- --&swport2 { -- status = "okay"; -- -- label = "lan1"; --}; -- --&swport3 { -- status = "okay"; -- -- label = "lan2"; --}; -- --&swport4 { -- status = "okay"; -- -- label = "lan3"; --}; -- --&swport5 { -- status = "okay"; -- -- label = "lan4"; --}; -- --&qpic_bam { -- status = "okay"; --}; -- -&tlmm { - serial_pins: serial_pinmux { - mux { @@ -8214,32 +8278,276 @@ index 6c285f4b8a..0000000000 - }; - }; -}; +diff --git a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-mf287pro.dts b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-mf287pro.dts +deleted file mode 100644 +index dda0f74449..0000000000 +--- a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-mf287pro.dts ++++ /dev/null +@@ -1,265 +0,0 @@ +-// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +-// Copyright (c) 2022, Pawel Dembicki . +-// Copyright (c) 2022, Giammarco Marzano . +-// Copyright (c) 2023, Andreas Böhler - --&usb2_hs_phy { -- status = "okay"; +-#include "qcom-ipq4018-mf287.dtsi" +- +-/ { +- model = "ZTE MF287Pro"; +- compatible = "zte,mf287pro"; +- +- gpio_export { +- compatible = "gpio-export"; +- #size-cells = <0>; +- +- modem { +- gpio-export,name = "modem-reset"; +- gpio-export,output = <0>; +- gpios = <&tlmm 8 GPIO_ACTIVE_HIGH>; +- }; +- }; +- +- regulator-usb-vbus { +- compatible = "regulator-fixed"; +- regulator-name = "USB_VBUS"; +- regulator-min-microvolt = <5000000>; +- regulator-max-microvolt = <5000000>; +- regulator-always-on; +- regulator-boot-on; +- gpio = <&tlmm 25 GPIO_ACTIVE_LOW>; +- }; -}; - --&usb3_ss_phy { -- status = "okay"; +-&key_reset { +- gpios = <&tlmm 18 GPIO_ACTIVE_LOW>; -}; - --&usb3_hs_phy { -- status = "okay"; +-&key_wps { +- gpios = <&tlmm 68 GPIO_ACTIVE_LOW>; -}; - --&wifi0 { -- status = "okay"; -- nvmem-cell-names = "pre-calibration", "mac-address"; -- nvmem-cells = <&precal_art_1000>, <&macaddr_mac_0>; -- qcom,ath10k-calibration-variant = "zte,mf287plus"; +-&led_status { +- gpios = <&tlmm 35 GPIO_ACTIVE_LOW>; -}; - --&wifi1 { +-&mdio { - status = "okay"; -- nvmem-cell-names = "pre-calibration", "mac-address"; -- nvmem-cells = <&precal_art_5000>, <&macaddr_mac_0>; -- mac-address-increment = <1>; -- qcom,ath10k-calibration-variant = "zte,mf287plus"; +- pinctrl-0 = <&mdio_pins>; +- pinctrl-names = "default"; +- reset-gpios = <&tlmm 47 GPIO_ACTIVE_LOW>; +- reset-delay-us = <2000>; +-}; +- +-&blsp1_spi1 { +- pinctrl-0 = <&spi_0_pins>; +- pinctrl-names = "default"; +- status = "okay"; +- cs-gpios = <&tlmm 12 GPIO_ACTIVE_HIGH>, +- <&tlmm 54 GPIO_ACTIVE_HIGH>; +- +- flash@0 { +- compatible = "jedec,spi-nor"; +- #address-cells = <1>; +- #size-cells = <1>; +- reg = <0>; +- spi-max-frequency = <24000000>; +- +- partitions { +- compatible = "fixed-partitions"; +- #address-cells = <1>; +- #size-cells = <1>; +- +- partition@0 { +- label = "0:SBL1"; +- reg = <0x0 0x40000>; +- read-only; +- }; +- +- partition@40000 { +- label = "0:MIBIB"; +- reg = <0x40000 0x20000>; +- read-only; +- }; +- +- partition@60000 { +- label = "0:QSEE"; +- reg = <0x60000 0x60000>; +- read-only; +- }; +- +- partition@c0000 { +- label = "0:CDT"; +- reg = <0xc0000 0x10000>; +- read-only; +- }; +- +- partition@d0000 { +- label = "0:DDRPARAMS"; +- reg = <0xd0000 0x10000>; +- read-only; +- }; +- +- partition@e0000 { +- label = "0:APPSBLENV"; +- reg = <0xe0000 0x10000>; +- read-only; +- }; +- +- partition@f0000 { +- label = "0:APPSBL"; +- reg = <0xf0000 0xc0000>; +- read-only; +- }; +- +- partition@1b0000 { +- label = "0:reserved1"; +- reg = <0x1b0000 0x50000>; +- read-only; +- }; +- }; +- }; +- +- spi-nand@1 { /* flash@1 ? */ +- compatible = "spi-nand"; +- reg = <1>; +- spi-max-frequency = <24000000>; +- +- partitions { +- compatible = "fixed-partitions"; +- #address-cells = <1>; +- #size-cells = <1>; +- +- partition@0 { +- label = "fota-flag"; +- reg = <0x0 0xa0000>; +- read-only; +- }; +- +- partition@a0000 { +- label = "ART"; +- reg = <0xa0000 0x80000>; +- read-only; +- compatible = "nvmem-cells"; +- #address-cells = <1>; +- #size-cells = <1>; +- +- precal_art_1000: precal@1000 { +- reg = <0x1000 0x2f20>; +- }; +- +- precal_art_5000: precal@5000 { +- reg = <0x5000 0x2f20>; +- }; +- }; +- +- partition@120000 { +- label = "mac"; +- reg = <0x120000 0x80000>; +- read-only; +- compatible = "nvmem-cells"; +- #address-cells = <1>; +- #size-cells = <1>; +- +- macaddr_mac_0: macaddr@0 { +- reg = <0x0 0x6>; +- }; +- }; +- +- partition@1a0000 { +- label = "reserved2"; +- reg = <0x1a0000 0xc0000>; +- }; +- +- partition@260000 { +- label = "cfg-param"; +- reg = <0x260000 0x400000>; +- read-only; +- }; +- +- partition@660000 { +- label = "log"; +- reg = <0x660000 0x400000>; +- }; +- +- partition@a60000 { +- label = "oops"; +- reg = <0xa60000 0xa0000>; +- }; +- +- partition@b00000 { +- label = "reserved3"; +- reg = <0xb00000 0x500000>; +- }; +- +- partition@1000000 { +- label = "web"; +- reg = <0x1000000 0x800000>; +- }; +- +- partition@1800000 { +- label = "rootfs"; +- reg = <0x1800000 0x1d00000>; +- }; +- +- partition@3500000 { +- label = "data"; +- reg = <0x3500000 0x1900000>; +- }; +- +- partition@4e00000 { +- label = "fota"; +- reg = <0x4e00000 0x3200000>; +- }; +- }; +- }; +-}; +- +-&tlmm { +- i2c_0_pins: i2c_0_pinmux { +- mux { +- pins = "gpio20", "gpio21"; +- function = "blsp_i2c0"; +- bias-disable; +- }; +- }; +- +- mdio_pins: mdio_pinmux { +- mux_1 { +- pins = "gpio6"; +- function = "mdio"; +- bias-pull-up; +- }; +- +- mux_2 { +- pins = "gpio7"; +- function = "mdc"; +- bias-pull-up; +- }; +- }; +- +- serial_pins: serial_pinmux { +- mux { +- pins = "gpio16", "gpio17"; +- function = "blsp_uart0"; +- bias-disable; +- }; +- }; +- +- spi_0_pins: spi_0_pinmux { +- pinmux { +- function = "blsp_spi0"; +- pins = "gpio12", "gpio13", "gpio14", "gpio15"; +- drive-strength = <12>; +- bias-disable; +- }; +- +- pinmux_cs { +- function = "gpio"; +- pins = "gpio12", "gpio54"; +- drive-strength = <2>; +- bias-disable; +- output-high; +- }; +- }; -}; diff --git a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-nbg6617.dts b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-nbg6617.dts deleted file mode 100644 @@ -9163,10 +9471,10 @@ index 87705e5f60..0000000000 -}; diff --git a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-rutx.dtsi b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-rutx.dtsi deleted file mode 100644 -index 230b62a94e..0000000000 +index df9425b12a..0000000000 --- a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-rutx.dtsi +++ /dev/null -@@ -1,247 +0,0 @@ +@@ -1,210 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0-or-later OR MIT - -#include "qcom-ipq4019-ap.dk01.1.dtsi" @@ -9213,43 +9521,6 @@ index 230b62a94e..0000000000 - linux,code = ; - }; - }; -- -- gpio_export { -- compatible = "gpio-export"; -- #size-cells = <0>; -- -- gpio_out { -- gpio-export,name = "gpio_out"; -- gpio-export,output = <0>; -- gpio-export,direction_may_change = <0>; -- gpios = <&stm32_io 23 GPIO_ACTIVE_HIGH>; -- }; -- -- gpio_in { -- gpio-export,name = "gpio_in"; -- gpio-export,input = <0>; -- gpio-export,direction_may_change = <0>; -- gpios = <&stm32_io 24 GPIO_ACTIVE_LOW>; -- }; -- }; -- }; --}; -- --&blsp1_i2c3 { -- status = "okay"; -- pinctrl-0 = <&i2c_0_pins>; -- pinctrl-names = "default"; -- clock-frequency = <400000>; -- -- stm32_io: stm32@74 { -- compatible = "tlt,stm32v1"; -- #gpio-cells = <2>; -- #interrupt-cells = <2>; -- gpio-controller; -- interrupt-controller; -- interrupt-parent = <&tlmm>; -- interrupts = <5 2>; -- reg = <0x74>; - }; -}; - @@ -9416,10 +9687,10 @@ index 230b62a94e..0000000000 -}; diff --git a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-rutx10.dts b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-rutx10.dts deleted file mode 100644 -index 31d14aa6ae..0000000000 +index 8fc976a11b..0000000000 --- a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-rutx10.dts +++ /dev/null -@@ -1,36 +0,0 @@ +@@ -1,73 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0-or-later OR MIT - -#include "qcom-ipq4018-rutx.dtsi" @@ -9444,6 +9715,43 @@ index 31d14aa6ae..0000000000 - linux,default-trigger = "phy1tpt"; - }; - }; +- +- gpio_export { +- compatible = "gpio-export"; +- #size-cells = <0>; +- +- gpio_out { +- gpio-export,name = "gpio_out"; +- gpio-export,output = <0>; +- gpio-export,direction_may_change = <0>; +- gpios = <&stm32_io 23 GPIO_ACTIVE_HIGH>; +- }; +- +- gpio_in { +- gpio-export,name = "gpio_in"; +- gpio-export,input = <0>; +- gpio-export,direction_may_change = <0>; +- gpios = <&stm32_io 24 GPIO_ACTIVE_LOW>; +- }; +- }; +- }; +-}; +- +-&blsp1_i2c3 { +- status = "okay"; +- pinctrl-0 = <&i2c_0_pins>; +- pinctrl-names = "default"; +- clock-frequency = <400000>; +- +- stm32_io: stm32@74 { +- compatible = "tlt,stm32v1"; +- #gpio-cells = <2>; +- #interrupt-cells = <2>; +- gpio-controller; +- interrupt-controller; +- interrupt-parent = <&tlmm>; +- interrupts = <5 2>; +- reg = <0x74>; - }; -}; - @@ -9456,6 +9764,193 @@ index 31d14aa6ae..0000000000 - status = "okay"; - qcom,ath10k-calibration-variant = "Teltonika-RUTX10"; -}; +diff --git a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-rutx50.dts b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-rutx50.dts +deleted file mode 100644 +index ea2102f7d6..0000000000 +--- a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-rutx50.dts ++++ /dev/null +@@ -1,181 +0,0 @@ +-// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +- +-#include "qcom-ipq4018-rutx.dtsi" +- +-/ { +- model = "Teltonika RUTX50"; +- compatible = "teltonika,rutx50"; +- +- aliases { +- led-boot = &led_rssi0; +- led-failsafe = &led_rssi0; +- led-running = &led_rssi0; +- led-upgrade = &led_rssi0; +- label-mac-device = &gmac; +- }; +- +- soc { +- gpio-export { +- compatible = "gpio-export"; +- #size-cells = <0>; +- +- gpio_modem_reset { +- gpio-export,name = "modem_reset"; +- gpio-export,output = <0>; +- gpios = <&shift_io 8 GPIO_ACTIVE_HIGH>; +- }; +- +- gpio_modem_power { +- gpio-export,name = "modem_power"; +- gpio-export,output = <0>; +- gpios = <&shift_io 9 GPIO_ACTIVE_HIGH>; +- }; +- +- gpio_out_1 { +- gpio-export,name = "sim-select"; +- /* 0 = SIM1 ; 1 = SIM2 */ +- gpio-export,output = <0>; +- gpios = <&shift_io 10 GPIO_ACTIVE_HIGH>; +- }; +- +- gpio_in_1 { +- gpio-export,name = "sim-detect"; +- gpio-export,input = <0>; +- gpios = <&tlmm 0 GPIO_ACTIVE_HIGH>; +- }; +- }; +- +- leds { +- compatible = "gpio-leds"; +- +- led-0 { +- label = "green:sim1"; +- gpios = <&shift_io 14 GPIO_ACTIVE_HIGH>; +- }; +- +- led-1 { +- label = "green:sim2"; +- gpios = <&shift_io 15 GPIO_ACTIVE_HIGH>; +- }; +- +- led-2 { +- label = "green:eth"; +- gpios = <&shift_io 6 GPIO_ACTIVE_HIGH>; +- }; +- +- led-3 { +- label = "green:wifi"; +- gpios = <&shift_io 7 GPIO_ACTIVE_HIGH>; +- }; +- +- led-4 { +- label = "green:3g"; +- gpios = <&shift_io 5 GPIO_ACTIVE_HIGH>; +- }; +- +- led-5 { +- label = "green:4g"; +- gpios = <&shift_io 4 GPIO_ACTIVE_HIGH>; +- }; +- +- led-6 { +- label = "green:5g"; +- gpios = <&shift_io 3 GPIO_ACTIVE_HIGH>; +- }; +- +- led_rssi0: led-7 { +- label = "green:rssi0"; +- gpios = <&shift_io 0 GPIO_ACTIVE_HIGH>; +- }; +- +- led-8 { +- label = "green:rssi1"; +- gpios = <&shift_io 1 GPIO_ACTIVE_HIGH>; +- }; +- +- led-9 { +- label = "green:rssi2"; +- gpios = <&shift_io 2 GPIO_ACTIVE_HIGH>; +- }; +- +- led-10 { +- label = "green:wifi2g"; +- gpios = <&shift_io 12 GPIO_ACTIVE_HIGH>; +- }; +- +- led-11 { +- label = "green:wifi5g"; +- gpios = <&shift_io 13 GPIO_ACTIVE_HIGH>; +- }; +- }; +- +- spi-gpio { +- compatible = "spi-gpio"; +- #address-cells = <1>; +- #size-cells = <0>; +- +- gpio-sck = <&tlmm 1 GPIO_ACTIVE_HIGH>; +- gpio-mosi = <&tlmm 3 GPIO_ACTIVE_HIGH>; +- cs-gpios = <&tlmm 2 GPIO_ACTIVE_HIGH>; +- num-chipselects = <1>; +- +- shift_io: shift_io@0 { +- compatible = "fairchild,74hc595"; +- reg = <0>; +- gpio-controller; +- #gpio-cells = <2>; +- /* Attn: This is specific to RUTX50 in Teltonika GPL */ +- registers-number = <2>; +- spi-max-frequency = <10000000>; +- }; +- }; +- }; +-}; +- +-&wifi0 { +- status = "okay"; +- qcom,ath10k-calibration-variant = "Teltonika-RUTX10"; +-}; +- +-&wifi1 { +- status = "okay"; +- qcom,ath10k-calibration-variant = "Teltonika-RUTX10"; +-}; +- +-&gmac { +- status = "okay"; +-}; +- +-&switch { +- status = "okay"; +-}; +- +-&swport1 { +- status = "okay"; +- +- label = "lan1"; +-}; +- +-&swport2 { +- status = "okay"; +- +- label = "lan2"; +-}; +- +-&swport3 { +- status = "okay"; +- +- label = "lan3"; +-}; +- +-&swport4 { +- status = "okay"; +- +- label = "lan4"; +-}; +- +-&swport5 { +- status = "okay"; +- +- label = "wan"; +-}; diff --git a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-sxtsq-5-ac.dts b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-sxtsq-5-ac.dts deleted file mode 100644 index de3fa96922..0000000000 @@ -13894,10 +14389,10 @@ index 723f2161c6..0000000000 -}; diff --git a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-fritzrepeater-3000.dts b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-fritzrepeater-3000.dts deleted file mode 100644 -index 8d88bc1521..0000000000 +index 41dec72542..0000000000 --- a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-fritzrepeater-3000.dts +++ /dev/null -@@ -1,269 +0,0 @@ +@@ -1,272 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0-or-later OR MIT - -#include "qcom-ipq4019.dtsi" @@ -14021,6 +14516,9 @@ index 8d88bc1521..0000000000 - status = "okay"; - - nand@0 { +- /delete-property/ nand-ecc-strength; +- /delete-property/ nand-ecc-step-size; +- - partitions { - compatible = "fixed-partitions"; - #address-cells = <1>; @@ -31728,10 +32226,10 @@ index f6ac69ecf1..0000000000 -TARGET_DEVICES += google_wifi diff --git a/target/linux/ipq40xx/image/generic.mk b/target/linux/ipq40xx/image/generic.mk deleted file mode 100644 -index f15463ae8c..0000000000 +index 7f4806b63d..0000000000 --- a/target/linux/ipq40xx/image/generic.mk +++ /dev/null -@@ -1,1209 +0,0 @@ +@@ -1,1234 +0,0 @@ - -DEVICE_VARS += NETGEAR_BOARD_ID NETGEAR_HW_ID -DEVICE_VARS += RAS_BOARD RAS_ROOTFS_SIZE RAS_VERSION @@ -32490,28 +32988,26 @@ index f15463ae8c..0000000000 -endef -TARGET_DEVICES += luma_wrtq-329acn - --define Device/meraki_mr33 +-define Device/meraki_common - $(call Device/FitImage) - DEVICE_VENDOR := Cisco Meraki -- DEVICE_MODEL := MR33 - SOC := qcom-ipq4029 - BLOCKSIZE := 128k - PAGESIZE := 2048 -- DEVICE_PACKAGES := -swconfig ath10k-firmware-qca9887-ct -- DEFAULT := n +- DEVICE_DTS_LOADADDR := 0x89000000 +- DEVICE_PACKAGES := ath10k-firmware-qca9887-ct +-endef +- +-define Device/meraki_mr33 +- $(call Device/meraki_common) +- DEVICE_MODEL := MR33 -endef -TARGET_DEVICES += meraki_mr33 - -define Device/meraki_mr74 -- $(call Device/FitImage) -- DEVICE_VENDOR := Cisco Meraki +- $(call Device/meraki_common) - DEVICE_MODEL := MR74 -- SOC := qcom-ipq4029 -- BLOCKSIZE := 128k -- PAGESIZE := 2048 -- DEVICE_PACKAGES := -swconfig ath10k-firmware-qca9887-ct - DEVICE_DTS_CONFIG := config@3 -- DEFAULT := n -endef -TARGET_DEVICES += meraki_mr74 - @@ -32810,6 +33306,22 @@ index f15463ae8c..0000000000 -# Missing DSA Setup -#TARGET_DEVICES += teltonika_rutx10 - +-define Device/teltonika_rutx50 +- $(call Device/FitImage) +- $(call Device/UbiFit) +- DEVICE_VENDOR := Teltonika +- DEVICE_MODEL := RUTX50 +- SOC := qcom-ipq4018 +- DEVICE_DTS_CONFIG := config@5 +- KERNEL_INSTALL := 1 +- BLOCKSIZE := 128k +- PAGESIZE := 2048 +- FILESYSTEMS := squashfs +- IMAGE/factory.ubi := append-ubi +- DEVICE_PACKAGES := ipq-wifi-teltonika_rutx kmod-usb-net-qmi-wwan kmod-usb-serial-option uqmi +-endef +-TARGET_DEVICES += teltonika_rutx50 +- -define Device/tel_x1pro - $(call Device/FitImage) - DEVICE_VENDOR := Telco @@ -32882,12 +33394,8 @@ index f15463ae8c..0000000000 -endef -TARGET_DEVICES += zte_mf286d - --define Device/zte_mf287plus +-define Device/zte_mf287_common - $(call Device/zte_mf28x_common) -- DEVICE_DTS_CONFIG := config@ap.dk01.1-c2 -- DEVICE_MODEL := MF287Plus -- DEVICE_ALT0_VENDOR := ZTE -- DEVICE_ALT0_MODEL := MF287 - DEVICE_PACKAGES += ipq-wifi-zte_mf287plus - SOC := qcom-ipq4018 -# The recovery image is used to return back to stock (an initramfs-based image @@ -32898,8 +33406,23 @@ index f15463ae8c..0000000000 - IMAGE/factory.bin := append-ubi - IMAGE/recovery.bin := append-squashfs4-fakeroot | sysupgrade-tar kernel=$$$$(BIN_DIR)/openwrt-$$(BOARD)$$(if $$(SUBTARGET),-$$(SUBTARGET))-$$(DEVICE_NAME)-initramfs-zImage.itb rootfs=$$$$@ | append-metadata -endef +- +-define Device/zte_mf287plus +- $(call Device/zte_mf287_common) +- DEVICE_DTS_CONFIG := config@ap.dk01.1-c2 +- DEVICE_MODEL := MF287Plus +- DEVICE_ALT0_VENDOR := ZTE +- DEVICE_ALT0_MODEL := MF287 +-endef -TARGET_DEVICES += zte_mf287plus - +-define Device/zte_mf287pro +- $(call Device/zte_mf287_common) +- DEVICE_DTS_CONFIG := config@ap.dk04.1-c1 +- DEVICE_MODEL := MF287Pro +-endef +-TARGET_DEVICES += zte_mf287pro +- -define Device/zte_mf289f - $(call Device/zte_mf28x_common) - DEVICE_MODEL := MF289F @@ -34112,7 +34635,7 @@ index 68fb4eb4ce..0000000000 - #size-cells = <0>; diff --git a/target/linux/ipq40xx/patches-5.15/704-net-phy-define-PSGMII-PHY-interface-mode.patch b/target/linux/ipq40xx/patches-5.15/704-net-phy-define-PSGMII-PHY-interface-mode.patch deleted file mode 100644 -index faac6fa145..0000000000 +index ed5b7b60fb..0000000000 --- a/target/linux/ipq40xx/patches-5.15/704-net-phy-define-PSGMII-PHY-interface-mode.patch +++ /dev/null @@ -1,69 +0,0 @@ @@ -34150,7 +34673,7 @@ index faac6fa145..0000000000 - - rev-mii ---- a/drivers/net/phy/phylink.c -+++ b/drivers/net/phy/phylink.c --@@ -366,6 +366,7 @@ void phylink_get_linkmodes(unsigned long +-@@ -371,6 +371,7 @@ void phylink_get_linkmodes(unsigned long - case PHY_INTERFACE_MODE_RGMII_RXID: - case PHY_INTERFACE_MODE_RGMII_ID: - case PHY_INTERFACE_MODE_RGMII: @@ -34158,7 +34681,7 @@ index faac6fa145..0000000000 - case PHY_INTERFACE_MODE_QSGMII: - case PHY_INTERFACE_MODE_SGMII: - case PHY_INTERFACE_MODE_GMII: --@@ -629,6 +630,7 @@ static int phylink_parse_mode(struct phy +-@@ -634,6 +635,7 @@ static int phylink_parse_mode(struct phy - - switch (pl->link_config.interface) { - case PHY_INTERFACE_MODE_SGMII: @@ -34168,7 +34691,7 @@ index faac6fa145..0000000000 - phylink_set(pl->supported, 10baseT_Full); ---- a/include/linux/phy.h -+++ b/include/linux/phy.h --@@ -138,6 +138,7 @@ typedef enum { +-@@ -139,6 +139,7 @@ typedef enum { - PHY_INTERFACE_MODE_XGMII, - PHY_INTERFACE_MODE_XLGMII, - PHY_INTERFACE_MODE_MOCA, @@ -34176,7 +34699,7 @@ index faac6fa145..0000000000 - PHY_INTERFACE_MODE_QSGMII, - PHY_INTERFACE_MODE_TRGMII, - PHY_INTERFACE_MODE_100BASEX, --@@ -243,6 +244,8 @@ static inline const char *phy_modes(phy_ +-@@ -244,6 +245,8 @@ static inline const char *phy_modes(phy_ - return "xlgmii"; - case PHY_INTERFACE_MODE_MOCA: - return "moca"; @@ -34187,10 +34710,10 @@ index faac6fa145..0000000000 - case PHY_INTERFACE_MODE_TRGMII: diff --git a/target/linux/ipq40xx/patches-5.15/705-net-dsa-add-Qualcomm-IPQ4019-built-in-switch-support.patch b/target/linux/ipq40xx/patches-5.15/705-net-dsa-add-Qualcomm-IPQ4019-built-in-switch-support.patch deleted file mode 100644 -index d75b5e514d..0000000000 +index 13b169e576..0000000000 --- a/target/linux/ipq40xx/patches-5.15/705-net-dsa-add-Qualcomm-IPQ4019-built-in-switch-support.patch +++ /dev/null -@@ -1,56 +0,0 @@ +@@ -1,57 +0,0 @@ -From b5f71652b85a85ea53162e9e2b760b84fd0d254f Mon Sep 17 00:00:00 2001 -From: Robert Marko -Date: Mon, 1 Nov 2021 18:10:28 +0100 @@ -34225,10 +34748,10 @@ index d75b5e514d..0000000000 - ---- a/drivers/net/dsa/qca/Kconfig -+++ b/drivers/net/dsa/qca/Kconfig --@@ -15,3 +15,13 @@ config NET_DSA_QCA8K +-@@ -23,3 +23,13 @@ config NET_DSA_QCA8K_LEDS_SUPPORT - help -- This enables support for the Qualcomm Atheros QCA8K Ethernet -- switch chips. +- This enabled support for LEDs present on the Qualcomm Atheros +- QCA8K Ethernet switch chips. -+ -+config NET_DSA_QCA8K_IPQ4019 -+ tristate "Qualcomm Atheros IPQ4019 built-in Ethernet switch support" @@ -34241,12 +34764,13 @@ index d75b5e514d..0000000000 -+ ---- a/drivers/net/dsa/qca/Makefile -+++ b/drivers/net/dsa/qca/Makefile --@@ -1,4 +1,5 @@ +-@@ -1,5 +1,6 @@ - # SPDX-License-Identifier: GPL-2.0-only - obj-$(CONFIG_NET_DSA_AR9331) += ar9331.o -+obj-$(CONFIG_NET_DSA_QCA8K_IPQ4019) += qca8k-ipq4019.o - obj-$(CONFIG_NET_DSA_QCA8K) += qca8k.o - qca8k-y += qca8k-common.o qca8k-8xxx.o +- ifdef CONFIG_NET_DSA_QCA8K_LEDS_SUPPORT diff --git a/target/linux/ipq40xx/patches-5.15/706-arm-dts-ipq4019-add-switch-node.patch b/target/linux/ipq40xx/patches-5.15/706-arm-dts-ipq4019-add-switch-node.patch deleted file mode 100644 index a231c7331b..0000000000 @@ -34420,7 +34944,7 @@ index dfb8d692ab..0000000000 -+#endif diff --git a/target/linux/ipq40xx/patches-5.15/708-net-phy-Add-Qualcom-QCA807x-driver.patch b/target/linux/ipq40xx/patches-5.15/708-net-phy-Add-Qualcom-QCA807x-driver.patch deleted file mode 100644 -index 87be5980c4..0000000000 +index 6a92a103d6..0000000000 --- a/target/linux/ipq40xx/patches-5.15/708-net-phy-Add-Qualcom-QCA807x-driver.patch +++ /dev/null @@ -1,50 +0,0 @@ @@ -34451,7 +34975,7 @@ index 87be5980c4..0000000000 - ---- a/drivers/net/phy/Kconfig -+++ b/drivers/net/phy/Kconfig --@@ -346,6 +346,12 @@ config AT803X_PHY +-@@ -347,6 +347,12 @@ config AT803X_PHY - Currently supports the AR8030, AR8031, AR8033, AR8035 and internal - QCA8337(Internal qca8k PHY) model - @@ -34922,10 +35446,10 @@ index 940ee02020..0000000000 - aliases { diff --git a/target/linux/ipq40xx/patches-5.15/902-dts-ipq4019-ap-dk04.1.patch b/target/linux/ipq40xx/patches-5.15/902-dts-ipq4019-ap-dk04.1.patch deleted file mode 100644 -index 05778a638f..0000000000 +index c7688de7e8..0000000000 --- a/target/linux/ipq40xx/patches-5.15/902-dts-ipq4019-ap-dk04.1.patch +++ /dev/null -@@ -1,167 +0,0 @@ +@@ -1,164 +0,0 @@ ---- a/arch/arm/boot/dts/qcom-ipq4019-ap.dk04.1.dtsi -+++ b/arch/arm/boot/dts/qcom-ipq4019-ap.dk04.1.dtsi -@@ -17,53 +17,79 @@ @@ -35044,10 +35568,11 @@ index 05778a638f..0000000000 - spi-max-frequency = <24000000>; - }; - }; --@@ -103,9 +129,48 @@ +-@@ -102,6 +128,45 @@ +- status = "okay"; - perst-gpio = <&tlmm 38 0x1>; - }; -- +-+ -+ i2c0: i2c@78b7000 { /* BLSP1 QUP2 */ -+ pinctrl-0 = <&i2c_0_pins>; -+ pinctrl-names = "default"; @@ -35055,11 +35580,6 @@ index 05778a638f..0000000000 -+ status = "okay"; -+ }; -+ -- qpic-nand@79b0000 { -- pinctrl-0 = <&nand_pins>; -- pinctrl-names = "default"; -- }; --+ -+ usb3_ss_phy: ssphy@9a000 { -+ status = "okay"; -+ }; @@ -35093,6 +35613,7 @@ index 05778a638f..0000000000 -+ }; - }; - }; +- diff --git a/target/linux/ipq40xx/patches-5.15/910-Revert-firmware-qcom_scm-Clear-download-bit-during-r.patch b/target/linux/ipq40xx/patches-5.15/910-Revert-firmware-qcom_scm-Clear-download-bit-during-r.patch deleted file mode 100644 index e24895deec..0000000000 diff --git a/patches/0059-mediatek-improve-mt7981.dtsi.patch b/patches/0059-mediatek-improve-mt7981.dtsi.patch deleted file mode 100644 index 88e12d872..000000000 --- a/patches/0059-mediatek-improve-mt7981.dtsi.patch +++ /dev/null @@ -1,132 +0,0 @@ -From 23eafe1d6f07339e666ae1492af9b322b9769d02 Mon Sep 17 00:00:00 2001 -From: Daniel Golle -Date: Sun, 27 Aug 2023 15:57:00 +0100 -Subject: [PATCH 59/60] mediatek: improve mt7981.dtsi - - * re-factor WED components to boot fine also on limited loaders - * add LEDs of integrated GE PHY - -Signed-off-by: Daniel Golle -(cherry picked from commit 3ef8760e876e09fa91b54a09b2a5003c175829d3) ---- - .../arch/arm64/boot/dts/mediatek/mt7981.dtsi | 71 ++++++++++++++----- - 1 file changed, 52 insertions(+), 19 deletions(-) - -diff --git a/target/linux/mediatek/files-5.15/arch/arm64/boot/dts/mediatek/mt7981.dtsi b/target/linux/mediatek/files-5.15/arch/arm64/boot/dts/mediatek/mt7981.dtsi -index 3629a6f6dd..05d4b7d91d 100644 ---- a/target/linux/mediatek/files-5.15/arch/arm64/boot/dts/mediatek/mt7981.dtsi -+++ b/target/linux/mediatek/files-5.15/arch/arm64/boot/dts/mediatek/mt7981.dtsi -@@ -11,6 +11,7 @@ - #include - #include - #include -+#include - #include - #include - #include -@@ -191,21 +192,6 @@ - reg = <0 0x47dc0000 0 0x240000>; - no-map; - }; -- -- wo_ilm0: wo-ilm@151e0000 { -- reg = <0 0x151e0000 0 0x8000>; -- no-map; -- }; -- -- wo_dlm0: wo-dlm@151e8000 { -- reg = <0 0x151e8000 0 0x2000>; -- no-map; -- }; -- -- wo_boot: wo-boot@15194000 { -- reg = <0 0x15194000 0 0x1000>; -- no-map; -- }; - }; - - psci { -@@ -432,6 +418,20 @@ - drive-strength = <4>; - }; - }; -+ -+ gbe_led0_pins: gbe-led0-pins { -+ mux { -+ function = "led"; -+ groups = "gbe_led0"; -+ }; -+ }; -+ -+ gbe_led1_pins: gbe-led1-pins { -+ mux { -+ function = "led"; -+ groups = "gbe_led1"; -+ }; -+ }; - }; - - ethsys: syscon@15000000 { -@@ -452,11 +452,12 @@ - reg = <0 0x15010000 0 0x1000>; - interrupt-parent = <&gic>; - interrupts = ; -- memory-region = <&wo_emi0>, <&wo_ilm0>, <&wo_dlm0>, -- <&wo_data>, <&wo_boot>; -- memory-region-names = "wo-emi", "wo-ilm", "wo-dlm", -- "wo-data", "wo-boot"; -+ memory-region = <&wo_emi0>, <&wo_data>; -+ memory-region-names = "wo-emi", "wo-data"; - mediatek,wo-ccif = <&wo_ccif0>; -+ mediatek,wo-ilm = <&wo_ilm0>; -+ mediatek,wo-dlm = <&wo_dlm0>; -+ mediatek,wo-cpuboot = <&wo_cpuboot>; - }; - - eth: ethernet@15100000 { -@@ -511,10 +512,42 @@ - phy-is-integrated; - nvmem-cells = <&phy_calibration>; - nvmem-cell-names = "phy-cal-data"; -+ -+ leds { -+ #address-cells = <1>; -+ #size-cells = <0>; -+ -+ int_gbe_phy_led0: int-gbe-phy-led0@0 { -+ reg = <0>; -+ function = LED_FUNCTION_LAN; -+ status = "disabled"; -+ }; -+ -+ int_gbe_phy_led1: int-gbe-phy-led1@1 { -+ reg = <1>; -+ function = LED_FUNCTION_LAN; -+ status = "disabled"; -+ }; -+ }; - }; - }; - }; - -+ wo_dlm0: syscon@151e8000 { -+ compatible = "mediatek,mt7986-wo-dlm", "syscon"; -+ reg = <0 0x151e8000 0 0x2000>; -+ }; -+ -+ wo_ilm0: syscon@151e0000 { -+ compatible = "mediatek,mt7986-wo-ilm", "syscon"; -+ reg = <0 0x151e0000 0 0x8000>; -+ }; -+ -+ wo_cpuboot: syscon@15194000 { -+ compatible = "mediatek,mt7986-wo-cpuboot", "syscon"; -+ reg = <0 0x15194000 0 0x1000>; -+ }; -+ - wo_ccif0: syscon@151a5000 { - compatible = "mediatek,mt7986-wo-ccif", "syscon"; - reg = <0 0x151a5000 0 0x1000>; --- -2.34.1 - diff --git a/patches/0060-mediatek-add-edgecore-eap111-support.patch b/patches/0060-mediatek-add-edgecore-eap111-support.patch index 18da01614..848d68390 100644 --- a/patches/0060-mediatek-add-edgecore-eap111-support.patch +++ b/patches/0060-mediatek-add-edgecore-eap111-support.patch @@ -1,11 +1,11 @@ -From 168061a6d41dac4650855da74c4f5f1b5e7ea925 Mon Sep 17 00:00:00 2001 +From cd67118233e5912d99dc5ba5c4cae62e622572dd Mon Sep 17 00:00:00 2001 From: John Crispin Date: Tue, 5 Sep 2023 08:58:23 +0200 -Subject: [PATCH 60/60] mediatek: add edgecore eap111 support +Subject: [PATCH] mediatek: add edgecore eap111 support Signed-off-by: John Crispin --- - .../mediatek/dts/mt7981a-edgecore-eap111.dts | 187 +++ + .../mediatek/dts/mt7981a-edgecore-eap111.dts | 189 +++ .../mediatek/files/drivers/net/phy/en8801sc.c | 1152 +++++++++++++++++ .../mediatek/files/drivers/net/phy/en8801sc.h | 255 ++++ .../filogic/base-files/etc/board.d/01_leds | 4 + @@ -13,7 +13,7 @@ Signed-off-by: John Crispin target/linux/mediatek/filogic/config-5.15 | 1 + target/linux/mediatek/image/filogic.mk | 16 + .../mediatek/patches-5.15/999-en8801sc.patch | 28 + - 8 files changed, 1646 insertions(+) + 8 files changed, 1648 insertions(+) create mode 100644 target/linux/mediatek/dts/mt7981a-edgecore-eap111.dts create mode 100644 target/linux/mediatek/files/drivers/net/phy/en8801sc.c create mode 100644 target/linux/mediatek/files/drivers/net/phy/en8801sc.h @@ -21,10 +21,10 @@ Signed-off-by: John Crispin diff --git a/target/linux/mediatek/dts/mt7981a-edgecore-eap111.dts b/target/linux/mediatek/dts/mt7981a-edgecore-eap111.dts new file mode 100644 -index 0000000000..aeedffecdf +index 0000000000..e22c099b34 --- /dev/null +++ b/target/linux/mediatek/dts/mt7981a-edgecore-eap111.dts -@@ -0,0 +1,187 @@ +@@ -0,0 +1,189 @@ +/dts-v1/; + +#include "mt7981.dtsi" @@ -101,6 +101,7 @@ index 0000000000..aeedffecdf + nvmem-cells = <&macaddr>; + nvmem-cell-names = "mac-address"; + mac-address-increment = <1>; ++ managed = "in-band-status"; + }; + + gmac1: mac@1 { @@ -121,6 +122,7 @@ index 0000000000..aeedffecdf + phy0: ethernet-phy@24 { + reg = <24>; + //compatible = "ethernet-phy-ieee802.3-c45"; ++ //compatible = "ethernet-phy-ieee802.3-c22"; + compatible = "ethernet-phy-id03a2.9471"; + phy-mode = "sgmii"; + full-duplex;