Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
This commit is contained in:
+13
-15
@@ -251,7 +251,7 @@ Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
|
||||
+}
|
||||
+
|
||||
+/^#define/ {
|
||||
+ /* DC03 contains MC enable bit and must not be set here */
|
||||
+ # DC03 contains MC enable bit and must not be set here
|
||||
+ if (tolower($2) != "mc_dc03_value")
|
||||
+ printf("WM32 0x%x %s\n", reg_base, tolower($3))
|
||||
+
|
||||
@@ -357,7 +357,7 @@ Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
|
||||
+}
|
||||
--- /dev/null
|
||||
+++ b/tools/lantiq_ram_init_uart.awk
|
||||
@@ -0,0 +1,117 @@
|
||||
@@ -0,0 +1,115 @@
|
||||
+#!/usr/bin/awk -f
|
||||
+#
|
||||
+# Copyright (C) 2011-2012 Luka Perkov <luka@openwrt.org>
|
||||
@@ -383,45 +383,45 @@ Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
|
||||
+
|
||||
+function mc_danube_prologue()
|
||||
+{
|
||||
+ /* Clear access error log registers */
|
||||
+ # Clear access error log registers
|
||||
+ print "0xbf800010", "0x0"
|
||||
+ print "0xbf800020", "0x0"
|
||||
+
|
||||
+ /* Enable DDR and SRAM module in memory controller */
|
||||
+ # Enable DDR and SRAM module in memory controller
|
||||
+ print "0xbf800060", "0x5"
|
||||
+
|
||||
+ /* Clear start bit of DDR memory controller */
|
||||
+ # Clear start bit of DDR memory controller
|
||||
+ print "0xbf801030", "0x0"
|
||||
+}
|
||||
+
|
||||
+function mc_ar9_prologue()
|
||||
+{
|
||||
+ /* Clear access error log registers */
|
||||
+ # Clear access error log registers
|
||||
+ print "0xbf800010", "0x0"
|
||||
+ print "0xbf800020", "0x0"
|
||||
+
|
||||
+ /* Enable FPI, DDR and SRAM module in memory controller */
|
||||
+ # Enable FPI, DDR and SRAM module in memory controller
|
||||
+ print "0xbf800060", "0xD"
|
||||
+
|
||||
+ /* Clear start bit of DDR memory controller */
|
||||
+ # Clear start bit of DDR memory controller
|
||||
+ print "0xbf801030", "0x0"
|
||||
+}
|
||||
+
|
||||
+function mc_ddr1_epilogue()
|
||||
+{
|
||||
+ /* Set start bit of DDR memory controller */
|
||||
+ # Set start bit of DDR memory controller
|
||||
+ print "0xbf801030", "0x100"
|
||||
+}
|
||||
+
|
||||
+function mc_ddr2_prologue()
|
||||
+{
|
||||
+ /* Put memory controller in inactive mode */
|
||||
+ # Put memory controller in inactive mode
|
||||
+ print "0xbf401070", "0x0"
|
||||
+}
|
||||
+
|
||||
+function mc_ddr2_epilogue(mc_ccr07_value)
|
||||
+{
|
||||
+ /* Put memory controller in active mode */
|
||||
+ # Put memory controller in active mode
|
||||
+ mc_ccr07_value = or(mc_ccr07_value, 0x100)
|
||||
+ printf("0xbf401070 0x%x\n", mc_ccr07_value)
|
||||
+}
|
||||
@@ -452,12 +452,10 @@ Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
|
||||
+}
|
||||
+
|
||||
+/^#define/ {
|
||||
+ /* CCR07 contains MC enable bit and must not be set here */
|
||||
+ # CCR07 contains MC enable bit and must not be set here
|
||||
+ if (tolower($2) == "mc_ccr07_value")
|
||||
+ mc_ccr07_value = strtonum($3)
|
||||
+ if (tolower($2) == "mc_dc03_value")
|
||||
+ /* CCR07 contains MC enable bit and must not be set here */
|
||||
+ else
|
||||
+ if (tolower($2) != "mc_dc03_value")
|
||||
+ printf("0x%x %s\n", reg_base, tolower($3))
|
||||
+
|
||||
+ reg_base += 0x10
|
||||
|
||||
@@ -264,6 +264,12 @@ define U-Boot/pangolin
|
||||
UENV:=pangolin
|
||||
endef
|
||||
|
||||
define U-Boot/pinecube
|
||||
BUILD_SUBTARGET:=cortexa7
|
||||
NAME:=Pine64 PineCube
|
||||
BUILD_DEVICES:=pine64_pinecube
|
||||
endef
|
||||
|
||||
define U-Boot/popstick
|
||||
BUILD_SUBTARGET:=arm926ejs
|
||||
NAME:=PopStick
|
||||
@@ -451,6 +457,7 @@ UBOOT_TARGETS := \
|
||||
orangepi_zero2w \
|
||||
orangepi_zero3 \
|
||||
pangolin \
|
||||
pinecube \
|
||||
popstick \
|
||||
pine64_plus \
|
||||
Sinovoip_BPI_M3 \
|
||||
|
||||
@@ -25,6 +25,13 @@ linksys,mr7350|\
|
||||
linksys,mr7500)
|
||||
ubootenv_add_mtd "u_env" "0x0" "0x40000" "0x20000"
|
||||
;;
|
||||
jdcloud,re-cs-02|\
|
||||
jdcloud,re-cs-07|\
|
||||
jdcloud,re-ss-01|\
|
||||
link,nn6000-v1|\
|
||||
link,nn6000-v2)
|
||||
ubootenv_add_mmc "0:APPSBLENV" "" "0x0" "0x40000" "0x20000"
|
||||
;;
|
||||
netgear,rbr350|\
|
||||
netgear,rbs350|\
|
||||
netgear,wax214|\
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
#
|
||||
# Copyright (C) 2017 OpenWrt.org
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
|
||||
[ -e /etc/config/ubootenv ] && exit 0
|
||||
|
||||
touch /etc/config/ubootenv
|
||||
|
||||
. /lib/uboot-envtools.sh
|
||||
. /lib/functions.sh
|
||||
|
||||
board=$(board_name)
|
||||
|
||||
case "$board" in
|
||||
starfive,visionfive-2-v1.3b)
|
||||
ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x10000" "0x10000"
|
||||
;;
|
||||
esac
|
||||
|
||||
config_load ubootenv
|
||||
config_foreach ubootenv_add_app_config ubootenv
|
||||
|
||||
exit 0
|
||||
@@ -50,6 +50,7 @@ ALLWIFIBOARDS:= \
|
||||
iodata_wn-dax3000gr \
|
||||
jdcloud_re-cs-02 \
|
||||
jdcloud_re-ss-01 \
|
||||
link_nn6000 \
|
||||
linksys_homewrk \
|
||||
linksys_mr5500 \
|
||||
linksys_mr6350 \
|
||||
@@ -243,6 +244,7 @@ $(eval $(call generate-ipq-wifi-package,ignitenet_ss-w2-ac2600,Ignitenet SS-W2-A
|
||||
$(eval $(call generate-ipq-wifi-package,iodata_wn-dax3000gr,I-O DATA WN-DAX3000GR))
|
||||
$(eval $(call generate-ipq-wifi-package,jdcloud_re-cs-02,JDCloud RE-CS-02))
|
||||
$(eval $(call generate-ipq-wifi-package,jdcloud_re-ss-01,JDCloud RE-SS-01))
|
||||
$(eval $(call generate-ipq-wifi-package,link_nn6000,Link NN6000))
|
||||
$(eval $(call generate-ipq-wifi-package,linksys_homewrk,Linksys HomeWRK))
|
||||
$(eval $(call generate-ipq-wifi-package,linksys_mr5500,Linksys MR5500))
|
||||
$(eval $(call generate-ipq-wifi-package,linksys_mr6350,Linksys MR6350))
|
||||
|
||||
@@ -8,9 +8,9 @@ PKG_LICENSE_FILES:=
|
||||
|
||||
PKG_SOURCE_URL:=https://github.com/openwrt/mt76
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_DATE:=2026-03-19
|
||||
PKG_SOURCE_VERSION:=39c960c3ada558b4c2e7915772483d3731573d09
|
||||
PKG_MIRROR_HASH:=7a9f8ea21eee5324e6638ace627dd305b3650ae6ca86109317d9ee83702140eb
|
||||
PKG_SOURCE_DATE:=2026-03-21
|
||||
PKG_SOURCE_VERSION:=018f60316d4dd6b4e741874eda40e2dfaa29df3b
|
||||
PKG_MIRROR_HASH:=54a8125453a6fe04c89cf5335bdf0ea16c409361e1e5a79fb339d67cee26df0e
|
||||
|
||||
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
|
||||
PKG_USE_NINJA:=0
|
||||
|
||||
@@ -10,9 +10,9 @@ include $(TOPDIR)/rules.mk
|
||||
PKG_NAME:=bridger
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL=https://github.com/nbd168/bridger
|
||||
PKG_SOURCE_DATE:=2025-10-23
|
||||
PKG_SOURCE_VERSION:=9fc2bc3e3d4d3ffa63ee202ce8097620ce300e4f
|
||||
PKG_MIRROR_HASH:=111a95327337a775e202f1aded74069887ff85f308cdf3eeb994a21160110afb
|
||||
PKG_SOURCE_DATE:=2026-03-23
|
||||
PKG_SOURCE_VERSION:=de7e00a5a673fdda38d3326b624c45facc6245d2
|
||||
PKG_MIRROR_HASH:=480047262ad886699f8abd8b25a8c292b190648d0098d207c2d1e260d0e97ab2
|
||||
|
||||
PKG_LICENSE:=GPL-2.0
|
||||
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
@@ -9,9 +9,9 @@ PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE_URL:=https://w1.fi/hostap.git
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_DATE:=2026-02-27
|
||||
PKG_SOURCE_VERSION:=8dbef087e65833dc173a9cfd7e9f980f84a1adf2
|
||||
PKG_MIRROR_HASH:=e3ac2746e603af3dd2e5f733270d889c5bdc1fd09f290e33c6c2b79443ba0f61
|
||||
PKG_SOURCE_DATE:=2026-03-19
|
||||
PKG_SOURCE_VERSION:=2a98e6b981fb3f81b3ce3aa5f3941e509f73c454
|
||||
PKG_MIRROR_HASH:=34487c2c24a93bb7ead4b1f850152bdab475ea897419be18b3dd3df2fdde6a7b
|
||||
|
||||
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
|
||||
PKG_LICENSE:=BSD-3-Clause
|
||||
|
||||
-26
@@ -1,26 +0,0 @@
|
||||
From ede0dd6448fc9e58d913cc4e57d2d5f531af899f Mon Sep 17 00:00:00 2001
|
||||
From: Nick Hainke <vincent@systemli.org>
|
||||
Date: Sun, 1 Mar 2026 17:31:14 +0100
|
||||
Subject: [PATCH] PASN: Fix the compilation errors without CONFIG_PASN
|
||||
|
||||
Fix the compilation errors by protecting the access to pasn in
|
||||
wpas_request_connection for the CONFIG_PASN disabled case.
|
||||
|
||||
Fixes: 5f3a47346be5 ("EPPKE: EPPKE authentication for SME-in-wpa_supplicant case")
|
||||
Signed-off-by: Nick Hainke <vincent@systemli.org>
|
||||
---
|
||||
wpa_supplicant/wpa_supplicant.c | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
--- a/wpa_supplicant/wpa_supplicant.c
|
||||
+++ b/wpa_supplicant/wpa_supplicant.c
|
||||
@@ -9516,7 +9516,9 @@ void wpas_request_connection(struct wpa_
|
||||
wpa_s->disconnected = 0;
|
||||
wpa_s->reassociate = 1;
|
||||
wpa_s->last_owe_group = 0;
|
||||
+#ifdef CONFIG_PASN
|
||||
wpa_pasn_reset(&wpa_s->pasn);
|
||||
+#endif /* CONFIG_PASN */
|
||||
|
||||
if (wpa_supplicant_fast_associate(wpa_s) != 1)
|
||||
wpa_supplicant_req_scan(wpa_s, 0, 0);
|
||||
+33
@@ -0,0 +1,33 @@
|
||||
From 3650b847ca9dac1e38c09116321010f33c4dc194 Mon Sep 17 00:00:00 2001
|
||||
From: Nick Hainke <vincent@systemli.org>
|
||||
Date: Fri, 20 Mar 2026 11:08:19 +0100
|
||||
Subject: [PATCH] RSN: Fix pmksa_cache_flush prototype mismatch in
|
||||
non-IEEE8021X_EAPOL case
|
||||
|
||||
Fix compilation error caused by conflicting declarations of
|
||||
pmksa_cache_flush() when IEEE8021X_EAPOL is not enabled or
|
||||
CONFIG_NO_WPA is set. The function definition in pmksa_cache.c
|
||||
was missing the addr parameter present in the header declaration
|
||||
for this build configuration.
|
||||
|
||||
Align the implementation with the header by adding the missing
|
||||
parameter.
|
||||
|
||||
Fixes: e6dbaa673f39 ("SAE: Limit PMKSA flushing on failure to the current BSS")
|
||||
Signed-off-by: Nick Hainke <vincent@systemli.org>
|
||||
---
|
||||
src/rsn_supp/pmksa_cache.c | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
--- a/src/rsn_supp/pmksa_cache.c
|
||||
+++ b/src/rsn_supp/pmksa_cache.c
|
||||
@@ -955,7 +955,8 @@ int pmksa_cache_set_current(struct wpa_s
|
||||
|
||||
|
||||
void pmksa_cache_flush(struct rsn_pmksa_cache *pmksa, void *network_ctx,
|
||||
- const u8 *pmk, size_t pmk_len, bool external_only)
|
||||
+ const u8 *pmk, size_t pmk_len, bool external_only,
|
||||
+ const u8 *addr)
|
||||
{
|
||||
}
|
||||
|
||||
+12
-12
@@ -14,7 +14,7 @@ Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
|
||||
|
||||
--- a/wpa_supplicant/wpa_supplicant.c
|
||||
+++ b/wpa_supplicant/wpa_supplicant.c
|
||||
@@ -3045,7 +3045,7 @@ static int drv_supports_vht(struct wpa_s
|
||||
@@ -3047,7 +3047,7 @@ static int drv_supports_vht(struct wpa_s
|
||||
}
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@ Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
|
||||
{
|
||||
int i;
|
||||
|
||||
@@ -3054,7 +3054,10 @@ static bool ibss_mesh_is_80mhz_avail(int
|
||||
@@ -3056,7 +3056,10 @@ static bool ibss_mesh_is_80mhz_avail(int
|
||||
|
||||
chan = hw_get_channel_chan(mode, i, NULL);
|
||||
if (!chan ||
|
||||
@@ -35,7 +35,7 @@ Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -3181,7 +3184,7 @@ static void ibss_mesh_select_40mhz(struc
|
||||
@@ -3183,7 +3186,7 @@ static void ibss_mesh_select_40mhz(struc
|
||||
const struct wpa_ssid *ssid,
|
||||
struct hostapd_hw_modes *mode,
|
||||
struct hostapd_freq_params *freq,
|
||||
@@ -44,7 +44,7 @@ Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
|
||||
{
|
||||
int chan_idx;
|
||||
struct hostapd_channel_data *pri_chan = NULL, *sec_chan = NULL;
|
||||
@@ -3212,8 +3215,11 @@ static void ibss_mesh_select_40mhz(struc
|
||||
@@ -3214,8 +3217,11 @@ static void ibss_mesh_select_40mhz(struc
|
||||
return;
|
||||
|
||||
/* Check primary channel flags */
|
||||
@@ -58,7 +58,7 @@ Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
|
||||
|
||||
#ifdef CONFIG_HT_OVERRIDES
|
||||
if (ssid->disable_ht40)
|
||||
@@ -3248,8 +3254,11 @@ static void ibss_mesh_select_40mhz(struc
|
||||
@@ -3250,8 +3256,11 @@ static void ibss_mesh_select_40mhz(struc
|
||||
return;
|
||||
|
||||
/* Check secondary channel flags */
|
||||
@@ -72,7 +72,7 @@ Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
|
||||
|
||||
if (freq->ht_enabled) {
|
||||
if (ht40 == -1) {
|
||||
@@ -3327,7 +3336,7 @@ static bool ibss_mesh_select_80_160mhz(s
|
||||
@@ -3329,7 +3338,7 @@ static bool ibss_mesh_select_80_160mhz(s
|
||||
const struct wpa_ssid *ssid,
|
||||
struct hostapd_hw_modes *mode,
|
||||
struct hostapd_freq_params *freq,
|
||||
@@ -81,7 +81,7 @@ Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
|
||||
static const int bw80[] = {
|
||||
5180, 5260, 5500, 5580, 5660, 5745, 5825,
|
||||
5955, 6035, 6115, 6195, 6275, 6355, 6435,
|
||||
@@ -3380,7 +3389,7 @@ static bool ibss_mesh_select_80_160mhz(s
|
||||
@@ -3382,7 +3391,7 @@ static bool ibss_mesh_select_80_160mhz(s
|
||||
goto skip_80mhz;
|
||||
|
||||
/* Use 40 MHz if channel not usable */
|
||||
@@ -90,7 +90,7 @@ Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
|
||||
goto skip_80mhz;
|
||||
|
||||
chwidth = CONF_OPER_CHWIDTH_80MHZ;
|
||||
@@ -3422,7 +3431,7 @@ static bool ibss_mesh_select_80_160mhz(s
|
||||
@@ -3424,7 +3433,7 @@ static bool ibss_mesh_select_80_160mhz(s
|
||||
HE_PHYCAP_CHANNEL_WIDTH_SET_160MHZ_IN_5G) &&
|
||||
(ssid->max_oper_chwidth == CONF_OPER_CHWIDTH_160MHZ ||
|
||||
ssid->max_oper_chwidth == CONF_OPER_CHWIDTH_320MHZ) &&
|
||||
@@ -99,7 +99,7 @@ Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
|
||||
for (j = 0; j < ARRAY_SIZE(bw160); j++) {
|
||||
u8 start_chan;
|
||||
|
||||
@@ -3445,11 +3454,11 @@ static bool ibss_mesh_select_80_160mhz(s
|
||||
@@ -3447,11 +3456,11 @@ static bool ibss_mesh_select_80_160mhz(s
|
||||
EHT_PHYCAP_320MHZ_IN_6GHZ_SUPPORT_MASK) && is_6ghz &&
|
||||
ssid->max_oper_chwidth == CONF_OPER_CHWIDTH_320MHZ &&
|
||||
ibss_mesh_is_80mhz_avail(channel + 16 -
|
||||
@@ -114,7 +114,7 @@ Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
|
||||
for (j = 0; j < ARRAY_SIZE(bw320); j += 2) {
|
||||
if (freq->freq >= bw320[j] &&
|
||||
freq->freq <= bw320[j + 1]) {
|
||||
@@ -3478,10 +3487,12 @@ static bool ibss_mesh_select_80_160mhz(s
|
||||
@@ -3480,10 +3489,12 @@ static bool ibss_mesh_select_80_160mhz(s
|
||||
if (!chan)
|
||||
continue;
|
||||
|
||||
@@ -131,7 +131,7 @@ Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
|
||||
|
||||
/* Found a suitable second segment for 80+80 */
|
||||
chwidth = CONF_OPER_CHWIDTH_80P80MHZ;
|
||||
@@ -3536,6 +3547,7 @@ void ibss_mesh_setup_freq(struct wpa_sup
|
||||
@@ -3538,6 +3549,7 @@ void ibss_mesh_setup_freq(struct wpa_sup
|
||||
int obss_scan = 1;
|
||||
u8 channel;
|
||||
bool is_6ghz, is_24ghz;
|
||||
@@ -139,7 +139,7 @@ Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
|
||||
|
||||
freq->freq = ssid->frequency;
|
||||
|
||||
@@ -3579,9 +3591,9 @@ void ibss_mesh_setup_freq(struct wpa_sup
|
||||
@@ -3581,9 +3593,9 @@ void ibss_mesh_setup_freq(struct wpa_sup
|
||||
/* Setup higher BW only for 5 and 6 GHz */
|
||||
if (mode->mode == HOSTAPD_MODE_IEEE80211A) {
|
||||
ibss_mesh_select_40mhz(wpa_s, ssid, mode, freq, obss_scan,
|
||||
|
||||
+1
-1
@@ -68,7 +68,7 @@ Signed-off-by: Markus Theil <markus.theil@tu-ilmenau.de>
|
||||
chan_idx, num_available_chandefs);
|
||||
--- a/src/drivers/driver_nl80211.c
|
||||
+++ b/src/drivers/driver_nl80211.c
|
||||
@@ -12007,6 +12007,10 @@ static int nl80211_switch_channel(void *
|
||||
@@ -12010,6 +12010,10 @@ static int nl80211_switch_channel(void *
|
||||
if (ret)
|
||||
goto error;
|
||||
|
||||
|
||||
+2
-2
@@ -4,7 +4,7 @@ Subject: [PATCH] fix adding back stations after a missed deauth/disassoc
|
||||
|
||||
--- a/src/ap/ieee802_11.c
|
||||
+++ b/src/ap/ieee802_11.c
|
||||
@@ -5429,6 +5429,13 @@ static int add_associated_sta(struct hos
|
||||
@@ -5566,6 +5566,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.
|
||||
@@ -18,7 +18,7 @@ Subject: [PATCH] fix adding back stations after a missed deauth/disassoc
|
||||
*/
|
||||
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)",
|
||||
@@ -5442,7 +5449,8 @@ static int add_associated_sta(struct hos
|
||||
@@ -5579,7 +5586,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) &&
|
||||
|
||||
@@ -20,7 +20,7 @@ Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
|
||||
|
||||
--- a/src/ap/hostapd.c
|
||||
+++ b/src/ap/hostapd.c
|
||||
@@ -4127,6 +4127,8 @@ int hostapd_remove_iface(struct hapd_int
|
||||
@@ -4123,6 +4123,8 @@ int hostapd_remove_iface(struct hapd_int
|
||||
void hostapd_new_assoc_sta(struct hostapd_data *hapd, struct sta_info *sta,
|
||||
int reassoc)
|
||||
{
|
||||
@@ -29,7 +29,7 @@ Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
|
||||
if (hapd->tkip_countermeasures) {
|
||||
hostapd_drv_sta_deauth(hapd, sta->addr,
|
||||
WLAN_REASON_MICHAEL_MIC_FAILURE);
|
||||
@@ -4134,10 +4136,16 @@ void hostapd_new_assoc_sta(struct hostap
|
||||
@@ -4130,10 +4132,16 @@ void hostapd_new_assoc_sta(struct hostap
|
||||
}
|
||||
|
||||
#ifdef CONFIG_IEEE80211BE
|
||||
|
||||
+1
-1
@@ -26,7 +26,7 @@ Signed-off-by: David Bauer <mail@david-bauer.net>
|
||||
|
||||
--- a/src/drivers/driver.h
|
||||
+++ b/src/drivers/driver.h
|
||||
@@ -2466,6 +2466,9 @@ struct wpa_driver_capa {
|
||||
@@ -2467,6 +2467,9 @@ struct wpa_driver_capa {
|
||||
/** Maximum number of iterations in a single scan plan */
|
||||
u32 max_sched_scan_plan_iterations;
|
||||
|
||||
|
||||
+1
-1
@@ -9,7 +9,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
--- a/src/ap/hostapd.c
|
||||
+++ b/src/ap/hostapd.c
|
||||
@@ -502,7 +502,7 @@ void hostapd_free_hapd_data(struct hosta
|
||||
@@ -498,7 +498,7 @@ void hostapd_free_hapd_data(struct hosta
|
||||
struct hapd_interfaces *ifaces = hapd->iface->interfaces;
|
||||
size_t i;
|
||||
|
||||
|
||||
+19
-19
@@ -21,7 +21,7 @@ Signed-off-by: Glenn Strauss <gstrauss@gluelogic.com>
|
||||
|
||||
--- a/hostapd/Makefile
|
||||
+++ b/hostapd/Makefile
|
||||
@@ -764,6 +764,40 @@ endif
|
||||
@@ -769,6 +769,40 @@ endif
|
||||
CFLAGS += -DTLS_DEFAULT_CIPHERS=\"$(CONFIG_TLS_DEFAULT_CIPHERS)\"
|
||||
endif
|
||||
|
||||
@@ -62,7 +62,7 @@ Signed-off-by: Glenn Strauss <gstrauss@gluelogic.com>
|
||||
ifeq ($(CONFIG_TLS), gnutls)
|
||||
ifndef CONFIG_CRYPTO
|
||||
# default to libgcrypt
|
||||
@@ -943,9 +977,11 @@ endif
|
||||
@@ -948,9 +982,11 @@ endif
|
||||
|
||||
ifneq ($(CONFIG_TLS), openssl)
|
||||
ifneq ($(CONFIG_TLS), wolfssl)
|
||||
@@ -74,7 +74,7 @@ Signed-off-by: Glenn Strauss <gstrauss@gluelogic.com>
|
||||
ifdef NEED_AES_EAX
|
||||
AESOBJS += ../src/crypto/aes-eax.o
|
||||
NEED_AES_CTR=y
|
||||
@@ -955,38 +991,48 @@ AESOBJS += ../src/crypto/aes-siv.o
|
||||
@@ -960,38 +996,48 @@ AESOBJS += ../src/crypto/aes-siv.o
|
||||
NEED_AES_CTR=y
|
||||
endif
|
||||
ifdef NEED_AES_CTR
|
||||
@@ -123,7 +123,7 @@ Signed-off-by: Glenn Strauss <gstrauss@gluelogic.com>
|
||||
ifdef NEED_AES_DEC
|
||||
ifdef CONFIG_INTERNAL_AES
|
||||
AESOBJS += ../src/crypto/aes-internal-dec.o
|
||||
@@ -1001,12 +1047,16 @@ ifneq ($(CONFIG_TLS), openssl)
|
||||
@@ -1006,12 +1052,16 @@ ifneq ($(CONFIG_TLS), openssl)
|
||||
ifneq ($(CONFIG_TLS), linux)
|
||||
ifneq ($(CONFIG_TLS), gnutls)
|
||||
ifneq ($(CONFIG_TLS), wolfssl)
|
||||
@@ -140,7 +140,7 @@ Signed-off-by: Glenn Strauss <gstrauss@gluelogic.com>
|
||||
ifdef CONFIG_INTERNAL_SHA1
|
||||
SHA1OBJS += ../src/crypto/sha1-internal.o
|
||||
ifdef NEED_FIPS186_2_PRF
|
||||
@@ -1015,16 +1065,22 @@ endif
|
||||
@@ -1020,16 +1070,22 @@ endif
|
||||
endif
|
||||
ifneq ($(CONFIG_TLS), openssl)
|
||||
ifneq ($(CONFIG_TLS), wolfssl)
|
||||
@@ -163,7 +163,7 @@ Signed-off-by: Glenn Strauss <gstrauss@gluelogic.com>
|
||||
|
||||
ifdef NEED_SHA1
|
||||
OBJS += $(SHA1OBJS)
|
||||
@@ -1034,11 +1090,13 @@ ifneq ($(CONFIG_TLS), openssl)
|
||||
@@ -1039,11 +1095,13 @@ ifneq ($(CONFIG_TLS), openssl)
|
||||
ifneq ($(CONFIG_TLS), linux)
|
||||
ifneq ($(CONFIG_TLS), gnutls)
|
||||
ifneq ($(CONFIG_TLS), wolfssl)
|
||||
@@ -177,7 +177,7 @@ Signed-off-by: Glenn Strauss <gstrauss@gluelogic.com>
|
||||
|
||||
ifdef NEED_MD5
|
||||
ifdef CONFIG_INTERNAL_MD5
|
||||
@@ -1088,56 +1146,81 @@ ifneq ($(CONFIG_TLS), openssl)
|
||||
@@ -1096,56 +1154,81 @@ ifneq ($(CONFIG_TLS), openssl)
|
||||
ifneq ($(CONFIG_TLS), linux)
|
||||
ifneq ($(CONFIG_TLS), gnutls)
|
||||
ifneq ($(CONFIG_TLS), wolfssl)
|
||||
@@ -259,7 +259,7 @@ Signed-off-by: Glenn Strauss <gstrauss@gluelogic.com>
|
||||
|
||||
ifdef CONFIG_INTERNAL_SHA384
|
||||
CFLAGS += -DCONFIG_INTERNAL_SHA384
|
||||
@@ -1182,11 +1265,13 @@ HOBJS += $(SHA1OBJS)
|
||||
@@ -1190,11 +1273,13 @@ HOBJS += $(SHA1OBJS)
|
||||
ifneq ($(CONFIG_TLS), openssl)
|
||||
ifneq ($(CONFIG_TLS), linux)
|
||||
ifneq ($(CONFIG_TLS), wolfssl)
|
||||
@@ -273,7 +273,7 @@ Signed-off-by: Glenn Strauss <gstrauss@gluelogic.com>
|
||||
|
||||
ifdef CONFIG_RADIUS_SERVER
|
||||
CFLAGS += -DRADIUS_SERVER
|
||||
@@ -1365,7 +1450,9 @@ NOBJS += ../src/utils/trace.o
|
||||
@@ -1373,7 +1458,9 @@ NOBJS += ../src/utils/trace.o
|
||||
endif
|
||||
|
||||
HOBJS += hlr_auc_gw.o ../src/utils/common.o ../src/utils/wpa_debug.o ../src/utils/os_$(CONFIG_OS).o ../src/utils/wpabuf.o ../src/crypto/milenage.o
|
||||
@@ -283,7 +283,7 @@ Signed-off-by: Glenn Strauss <gstrauss@gluelogic.com>
|
||||
ifdef CONFIG_INTERNAL_AES
|
||||
HOBJS += ../src/crypto/aes-internal.o
|
||||
HOBJS += ../src/crypto/aes-internal-enc.o
|
||||
@@ -1388,18 +1475,24 @@ SOBJS += ../src/common/sae.o
|
||||
@@ -1396,18 +1483,24 @@ SOBJS += ../src/common/sae.o
|
||||
SOBJS += ../src/common/sae_pk.o
|
||||
SOBJS += ../src/common/dragonfly.o
|
||||
SOBJS += $(AESOBJS)
|
||||
@@ -7770,7 +7770,7 @@ Signed-off-by: Glenn Strauss <gstrauss@gluelogic.com>
|
||||
CONFIG_SIM_SIMULATOR=y
|
||||
--- a/wpa_supplicant/Makefile
|
||||
+++ b/wpa_supplicant/Makefile
|
||||
@@ -1256,6 +1256,29 @@ endif
|
||||
@@ -1265,6 +1265,29 @@ endif
|
||||
CFLAGS += -DTLS_DEFAULT_CIPHERS=\"$(CONFIG_TLS_DEFAULT_CIPHERS)\"
|
||||
endif
|
||||
|
||||
@@ -7800,7 +7800,7 @@ Signed-off-by: Glenn Strauss <gstrauss@gluelogic.com>
|
||||
ifeq ($(CONFIG_TLS), gnutls)
|
||||
ifndef CONFIG_CRYPTO
|
||||
# default to libgcrypt
|
||||
@@ -1448,9 +1471,11 @@ endif
|
||||
@@ -1457,9 +1480,11 @@ endif
|
||||
|
||||
ifneq ($(CONFIG_TLS), openssl)
|
||||
ifneq ($(CONFIG_TLS), wolfssl)
|
||||
@@ -7812,7 +7812,7 @@ Signed-off-by: Glenn Strauss <gstrauss@gluelogic.com>
|
||||
ifdef CONFIG_OPENSSL_INTERNAL_AES_WRAP
|
||||
# Seems to be needed at least with BoringSSL
|
||||
NEED_INTERNAL_AES_WRAP=y
|
||||
@@ -1464,9 +1489,11 @@ endif
|
||||
@@ -1473,9 +1498,11 @@ endif
|
||||
|
||||
ifdef NEED_INTERNAL_AES_WRAP
|
||||
ifneq ($(CONFIG_TLS), linux)
|
||||
@@ -7824,7 +7824,7 @@ Signed-off-by: Glenn Strauss <gstrauss@gluelogic.com>
|
||||
ifdef NEED_AES_EAX
|
||||
AESOBJS += ../src/crypto/aes-eax.o
|
||||
NEED_AES_CTR=y
|
||||
@@ -1476,35 +1503,45 @@ AESOBJS += ../src/crypto/aes-siv.o
|
||||
@@ -1485,35 +1512,45 @@ AESOBJS += ../src/crypto/aes-siv.o
|
||||
NEED_AES_CTR=y
|
||||
endif
|
||||
ifdef NEED_AES_CTR
|
||||
@@ -7870,7 +7870,7 @@ Signed-off-by: Glenn Strauss <gstrauss@gluelogic.com>
|
||||
ifdef NEED_AES_ENC
|
||||
ifdef CONFIG_INTERNAL_AES
|
||||
AESOBJS += ../src/crypto/aes-internal-enc.o
|
||||
@@ -1519,12 +1556,16 @@ ifneq ($(CONFIG_TLS), openssl)
|
||||
@@ -1528,12 +1565,16 @@ ifneq ($(CONFIG_TLS), openssl)
|
||||
ifneq ($(CONFIG_TLS), linux)
|
||||
ifneq ($(CONFIG_TLS), gnutls)
|
||||
ifneq ($(CONFIG_TLS), wolfssl)
|
||||
@@ -7887,7 +7887,7 @@ Signed-off-by: Glenn Strauss <gstrauss@gluelogic.com>
|
||||
ifdef CONFIG_INTERNAL_SHA1
|
||||
SHA1OBJS += ../src/crypto/sha1-internal.o
|
||||
ifdef NEED_FIPS186_2_PRF
|
||||
@@ -1536,29 +1577,37 @@ CFLAGS += -DCONFIG_NO_PBKDF2
|
||||
@@ -1545,29 +1586,37 @@ CFLAGS += -DCONFIG_NO_PBKDF2
|
||||
else
|
||||
ifneq ($(CONFIG_TLS), openssl)
|
||||
ifneq ($(CONFIG_TLS), wolfssl)
|
||||
@@ -7925,7 +7925,7 @@ Signed-off-by: Glenn Strauss <gstrauss@gluelogic.com>
|
||||
ifdef NEED_MD5
|
||||
ifdef CONFIG_INTERNAL_MD5
|
||||
MD5OBJS += ../src/crypto/md5-internal.o
|
||||
@@ -1613,12 +1662,17 @@ ifneq ($(CONFIG_TLS), openssl)
|
||||
@@ -1622,12 +1671,17 @@ ifneq ($(CONFIG_TLS), openssl)
|
||||
ifneq ($(CONFIG_TLS), linux)
|
||||
ifneq ($(CONFIG_TLS), gnutls)
|
||||
ifneq ($(CONFIG_TLS), wolfssl)
|
||||
@@ -7943,7 +7943,7 @@ Signed-off-by: Glenn Strauss <gstrauss@gluelogic.com>
|
||||
ifdef CONFIG_INTERNAL_SHA256
|
||||
SHA256OBJS += ../src/crypto/sha256-internal.o
|
||||
endif
|
||||
@@ -1631,50 +1685,68 @@ CFLAGS += -DCONFIG_INTERNAL_SHA512
|
||||
@@ -1640,50 +1694,68 @@ CFLAGS += -DCONFIG_INTERNAL_SHA512
|
||||
SHA256OBJS += ../src/crypto/sha512-internal.o
|
||||
endif
|
||||
ifdef NEED_TLS_PRF_SHA256
|
||||
@@ -8012,7 +8012,7 @@ Signed-off-by: Glenn Strauss <gstrauss@gluelogic.com>
|
||||
|
||||
ifdef NEED_ASN1
|
||||
OBJS += ../src/tls/asn1.o
|
||||
@@ -1849,10 +1921,12 @@ ifdef CONFIG_FIPS
|
||||
@@ -1858,10 +1930,12 @@ ifdef CONFIG_FIPS
|
||||
CFLAGS += -DCONFIG_FIPS
|
||||
ifneq ($(CONFIG_TLS), openssl)
|
||||
ifneq ($(CONFIG_TLS), wolfssl)
|
||||
|
||||
@@ -12,7 +12,7 @@ Signed-off-by: Glenn Strauss <gstrauss@gluelogic.com>
|
||||
|
||||
--- a/hostapd/Makefile
|
||||
+++ b/hostapd/Makefile
|
||||
@@ -778,10 +778,6 @@ endif
|
||||
@@ -783,10 +783,6 @@ endif
|
||||
OBJS += ../src/crypto/crypto_$(CONFIG_CRYPTO).o
|
||||
HOBJS += ../src/crypto/crypto_$(CONFIG_CRYPTO).o
|
||||
SOBJS += ../src/crypto/crypto_$(CONFIG_CRYPTO).o
|
||||
@@ -101,7 +101,7 @@ Signed-off-by: Glenn Strauss <gstrauss@gluelogic.com>
|
||||
|
||||
--- a/wpa_supplicant/Makefile
|
||||
+++ b/wpa_supplicant/Makefile
|
||||
@@ -1267,10 +1267,6 @@ endif
|
||||
@@ -1276,10 +1276,6 @@ endif
|
||||
OBJS += ../src/crypto/crypto_$(CONFIG_CRYPTO).o
|
||||
OBJS_p += ../src/crypto/crypto_$(CONFIG_CRYPTO).o
|
||||
OBJS_priv += ../src/crypto/crypto_$(CONFIG_CRYPTO).o
|
||||
|
||||
+12
-12
@@ -61,7 +61,7 @@ Signed-off-by: Glenn Strauss <gstrauss@gluelogic.com>
|
||||
|
||||
--- a/hostapd/Makefile
|
||||
+++ b/hostapd/Makefile
|
||||
@@ -714,6 +714,7 @@ CFLAGS += -DCONFIG_TLSV12
|
||||
@@ -719,6 +719,7 @@ CFLAGS += -DCONFIG_TLSV12
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_TLS), wolfssl)
|
||||
@@ -69,7 +69,7 @@ Signed-off-by: Glenn Strauss <gstrauss@gluelogic.com>
|
||||
CFLAGS += -DCRYPTO_RSA_OAEP_SHA256
|
||||
CONFIG_CRYPTO=wolfssl
|
||||
ifdef TLS_FUNCS
|
||||
@@ -735,6 +736,7 @@ endif
|
||||
@@ -740,6 +741,7 @@ endif
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_TLS), openssl)
|
||||
@@ -77,7 +77,7 @@ Signed-off-by: Glenn Strauss <gstrauss@gluelogic.com>
|
||||
CFLAGS += -DCRYPTO_RSA_OAEP_SHA256
|
||||
CONFIG_CRYPTO=openssl
|
||||
ifdef TLS_FUNCS
|
||||
@@ -765,6 +767,7 @@ CFLAGS += -DTLS_DEFAULT_CIPHERS=\"$(CONF
|
||||
@@ -770,6 +772,7 @@ CFLAGS += -DTLS_DEFAULT_CIPHERS=\"$(CONF
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_TLS), mbedtls)
|
||||
@@ -85,7 +85,7 @@ Signed-off-by: Glenn Strauss <gstrauss@gluelogic.com>
|
||||
ifndef CONFIG_CRYPTO
|
||||
CONFIG_CRYPTO=mbedtls
|
||||
endif
|
||||
@@ -795,6 +798,7 @@ endif
|
||||
@@ -800,6 +803,7 @@ endif
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_TLS), gnutls)
|
||||
@@ -93,7 +93,7 @@ Signed-off-by: Glenn Strauss <gstrauss@gluelogic.com>
|
||||
ifndef CONFIG_CRYPTO
|
||||
# default to libgcrypt
|
||||
CONFIG_CRYPTO=gnutls
|
||||
@@ -825,6 +829,7 @@ endif
|
||||
@@ -830,6 +834,7 @@ endif
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_TLS), internal)
|
||||
@@ -101,7 +101,7 @@ Signed-off-by: Glenn Strauss <gstrauss@gluelogic.com>
|
||||
ifndef CONFIG_CRYPTO
|
||||
CONFIG_CRYPTO=internal
|
||||
endif
|
||||
@@ -903,6 +908,7 @@ endif
|
||||
@@ -908,6 +913,7 @@ endif
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_TLS), linux)
|
||||
@@ -1289,7 +1289,7 @@ Signed-off-by: Glenn Strauss <gstrauss@gluelogic.com>
|
||||
if (need_more_data) {
|
||||
--- a/wpa_supplicant/Makefile
|
||||
+++ b/wpa_supplicant/Makefile
|
||||
@@ -1214,6 +1214,7 @@ TLS_FUNCS=y
|
||||
@@ -1223,6 +1223,7 @@ TLS_FUNCS=y
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_TLS), wolfssl)
|
||||
@@ -1297,7 +1297,7 @@ Signed-off-by: Glenn Strauss <gstrauss@gluelogic.com>
|
||||
CFLAGS += -DCRYPTO_RSA_OAEP_SHA256
|
||||
ifdef TLS_FUNCS
|
||||
CFLAGS += -DWOLFSSL_DER_LOAD
|
||||
@@ -1230,6 +1231,7 @@ LIBS_p += -lwolfssl -lm
|
||||
@@ -1239,6 +1240,7 @@ LIBS_p += -lwolfssl -lm
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_TLS), openssl)
|
||||
@@ -1305,7 +1305,7 @@ Signed-off-by: Glenn Strauss <gstrauss@gluelogic.com>
|
||||
CFLAGS += -DCRYPTO_RSA_OAEP_SHA256
|
||||
ifdef TLS_FUNCS
|
||||
CFLAGS += -DEAP_TLS_OPENSSL
|
||||
@@ -1257,6 +1259,7 @@ CFLAGS += -DTLS_DEFAULT_CIPHERS=\"$(CONF
|
||||
@@ -1266,6 +1268,7 @@ CFLAGS += -DTLS_DEFAULT_CIPHERS=\"$(CONF
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_TLS), mbedtls)
|
||||
@@ -1313,7 +1313,7 @@ Signed-off-by: Glenn Strauss <gstrauss@gluelogic.com>
|
||||
ifndef CONFIG_CRYPTO
|
||||
CONFIG_CRYPTO=mbedtls
|
||||
endif
|
||||
@@ -1276,6 +1279,7 @@ endif
|
||||
@@ -1285,6 +1288,7 @@ endif
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_TLS), gnutls)
|
||||
@@ -1321,7 +1321,7 @@ Signed-off-by: Glenn Strauss <gstrauss@gluelogic.com>
|
||||
ifndef CONFIG_CRYPTO
|
||||
# default to libgcrypt
|
||||
CONFIG_CRYPTO=gnutls
|
||||
@@ -1306,6 +1310,7 @@ endif
|
||||
@@ -1315,6 +1319,7 @@ endif
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_TLS), internal)
|
||||
@@ -1329,7 +1329,7 @@ Signed-off-by: Glenn Strauss <gstrauss@gluelogic.com>
|
||||
ifndef CONFIG_CRYPTO
|
||||
CONFIG_CRYPTO=internal
|
||||
endif
|
||||
@@ -1386,6 +1391,7 @@ endif
|
||||
@@ -1395,6 +1400,7 @@ endif
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_TLS), linux)
|
||||
|
||||
+1
-1
@@ -130,7 +130,7 @@ Signed-off-by: P Praneesh <ppranees@codeaurora.org>
|
||||
#undef VHT_CAP_CHECK_MAX
|
||||
--- a/src/common/ieee802_11_defs.h
|
||||
+++ b/src/common/ieee802_11_defs.h
|
||||
@@ -1467,6 +1467,8 @@ struct ieee80211_ampe_ie {
|
||||
@@ -1468,6 +1468,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))
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/src/ap/hostapd.c
|
||||
+++ b/src/ap/hostapd.c
|
||||
@@ -2477,7 +2477,11 @@ static int hostapd_owe_iface_iter(struct
|
||||
@@ -2473,7 +2473,11 @@ static int hostapd_owe_iface_iter(struct
|
||||
if (!bss->conf->ssid.ssid_set || !bss->conf->ssid.ssid_len ||
|
||||
is_zero_ether_addr(bss->own_addr))
|
||||
continue;
|
||||
@@ -13,7 +13,7 @@
|
||||
os_memcpy(hapd->conf->owe_transition_bssid, bss->own_addr,
|
||||
ETH_ALEN);
|
||||
os_memcpy(hapd->conf->owe_transition_ssid,
|
||||
@@ -2494,10 +2498,6 @@ static int hostapd_owe_iface_iter(struct
|
||||
@@ -2490,10 +2494,6 @@ static int hostapd_owe_iface_iter(struct
|
||||
|
||||
int hostapd_owe_trans_get_info(struct hostapd_data *hapd)
|
||||
{
|
||||
|
||||
+2
-2
@@ -9,7 +9,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
--- a/hostapd/config_file.c
|
||||
+++ b/hostapd/config_file.c
|
||||
@@ -4957,6 +4957,8 @@ static int hostapd_config_fill(struct ho
|
||||
@@ -4959,6 +4959,8 @@ static int hostapd_config_fill(struct ho
|
||||
conf->punct_acs_threshold = val;
|
||||
} else if (os_strcmp(buf, "mld_ap") == 0) {
|
||||
bss->mld_ap = !!atoi(pos);
|
||||
@@ -43,7 +43,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
* If set indicate the AP as disabled in the RNR element included in the
|
||||
--- a/src/ap/hostapd.c
|
||||
+++ b/src/ap/hostapd.c
|
||||
@@ -3120,7 +3120,10 @@ struct hostapd_iface * hostapd_alloc_ifa
|
||||
@@ -3116,7 +3116,10 @@ struct hostapd_iface * hostapd_alloc_ifa
|
||||
#ifdef CONFIG_IEEE80211BE
|
||||
static void hostapd_bss_alloc_link_id(struct hostapd_data *hapd)
|
||||
{
|
||||
|
||||
@@ -43,7 +43,7 @@ This allows building both hostapd and wpa_supplicant as a single binary
|
||||
LIBS += $(DRV_AP_LIBS)
|
||||
|
||||
ifdef CONFIG_L2_PACKET
|
||||
@@ -1416,6 +1422,12 @@ install: $(addprefix $(DESTDIR)$(BINDIR)
|
||||
@@ -1424,6 +1430,12 @@ install: $(addprefix $(DESTDIR)$(BINDIR)
|
||||
_OBJS_VAR := OBJS
|
||||
include ../src/objs.mk
|
||||
|
||||
@@ -56,7 +56,7 @@ This allows building both hostapd and wpa_supplicant as a single binary
|
||||
hostapd: $(OBJS)
|
||||
$(Q)$(CC) $(LDFLAGS) -o hostapd $(OBJS) $(LIBS)
|
||||
@$(E) " LD " $@
|
||||
@@ -1504,6 +1516,12 @@ include ../src/objs.mk
|
||||
@@ -1512,6 +1524,12 @@ include ../src/objs.mk
|
||||
_OBJS_VAR := SOBJS
|
||||
include ../src/objs.mk
|
||||
|
||||
@@ -116,7 +116,7 @@ This allows building both hostapd and wpa_supplicant as a single binary
|
||||
struct hapd_interfaces *interfaces = ctx;
|
||||
--- a/src/drivers/driver.h
|
||||
+++ b/src/drivers/driver.h
|
||||
@@ -7290,8 +7290,8 @@ union wpa_event_data {
|
||||
@@ -7291,8 +7291,8 @@ union wpa_event_data {
|
||||
* Driver wrapper code should call this function whenever an event is received
|
||||
* from the driver.
|
||||
*/
|
||||
@@ -127,7 +127,7 @@ This allows building both hostapd and wpa_supplicant as a single binary
|
||||
|
||||
/**
|
||||
* wpa_supplicant_event_global - Report a driver event for wpa_supplicant
|
||||
@@ -7303,7 +7303,7 @@ void wpa_supplicant_event(void *ctx, enu
|
||||
@@ -7304,7 +7304,7 @@ void wpa_supplicant_event(void *ctx, enu
|
||||
* Same as wpa_supplicant_event(), but we search for the interface in
|
||||
* wpa_global.
|
||||
*/
|
||||
@@ -159,7 +159,7 @@ This allows building both hostapd and wpa_supplicant as a single binary
|
||||
include ../src/build.rules
|
||||
|
||||
ifdef CONFIG_BUILD_PASN_SO
|
||||
@@ -407,7 +408,9 @@ endif
|
||||
@@ -411,7 +412,9 @@ endif
|
||||
ifdef CONFIG_IBSS_RSN
|
||||
NEED_RSN_AUTHENTICATOR=y
|
||||
CFLAGS += -DCONFIG_IBSS_RSN
|
||||
@@ -169,7 +169,7 @@ This allows building both hostapd and wpa_supplicant as a single binary
|
||||
OBJS += ibss_rsn.o
|
||||
endif
|
||||
|
||||
@@ -1006,6 +1009,10 @@ ifdef CONFIG_DYNAMIC_EAP_METHODS
|
||||
@@ -1015,6 +1018,10 @@ ifdef CONFIG_DYNAMIC_EAP_METHODS
|
||||
CFLAGS += -DCONFIG_DYNAMIC_EAP_METHODS
|
||||
LIBS += -ldl -rdynamic
|
||||
endif
|
||||
@@ -180,7 +180,7 @@ This allows building both hostapd and wpa_supplicant as a single binary
|
||||
endif
|
||||
|
||||
ifdef CONFIG_AP
|
||||
@@ -1013,9 +1020,11 @@ NEED_EAP_COMMON=y
|
||||
@@ -1022,9 +1029,11 @@ NEED_EAP_COMMON=y
|
||||
NEED_RSN_AUTHENTICATOR=y
|
||||
CFLAGS += -DCONFIG_AP
|
||||
OBJS += ap.o
|
||||
@@ -192,7 +192,7 @@ This allows building both hostapd and wpa_supplicant as a single binary
|
||||
OBJS += ../src/ap/hostapd.o
|
||||
OBJS += ../src/ap/wpa_auth_glue.o
|
||||
OBJS += ../src/ap/utils.o
|
||||
@@ -1106,6 +1115,12 @@ endif
|
||||
@@ -1115,6 +1124,12 @@ endif
|
||||
ifdef CONFIG_HS20
|
||||
OBJS += ../src/ap/hs20.o
|
||||
endif
|
||||
@@ -205,7 +205,7 @@ This allows building both hostapd and wpa_supplicant as a single binary
|
||||
endif
|
||||
|
||||
ifdef CONFIG_MBO
|
||||
@@ -1115,7 +1130,9 @@ NEED_GAS=y
|
||||
@@ -1124,7 +1139,9 @@ NEED_GAS=y
|
||||
endif
|
||||
|
||||
ifdef NEED_RSN_AUTHENTICATOR
|
||||
@@ -215,7 +215,7 @@ This allows building both hostapd and wpa_supplicant as a single binary
|
||||
NEED_AES_WRAP=y
|
||||
OBJS += ../src/ap/wpa_auth.o
|
||||
OBJS += ../src/ap/wpa_auth_ie.o
|
||||
@@ -2111,6 +2128,12 @@ wpa_priv: $(BCHECK) $(OBJS_priv)
|
||||
@@ -2124,6 +2141,12 @@ wpa_priv: $(BCHECK) $(OBJS_priv)
|
||||
|
||||
_OBJS_VAR := OBJS
|
||||
include ../src/objs.mk
|
||||
@@ -228,7 +228,7 @@ This allows building both hostapd and wpa_supplicant as a single binary
|
||||
wpa_supplicant: $(BCHECK) $(OBJS) $(EXTRA_progs)
|
||||
$(Q)$(LDO) $(LDFLAGS) -o wpa_supplicant $(OBJS) $(LIBS) $(EXTRALIBS)
|
||||
@$(E) " LD " $@
|
||||
@@ -2243,6 +2266,12 @@ eap_gpsk.so: $(SRC_EAP_GPSK)
|
||||
@@ -2256,6 +2279,12 @@ eap_gpsk.so: $(SRC_EAP_GPSK)
|
||||
$(Q)sed -e 's|\@BINDIR\@|$(BINDIR)|g' $< >$@
|
||||
@$(E) " sed" $<
|
||||
|
||||
@@ -278,7 +278,7 @@ This allows building both hostapd and wpa_supplicant as a single binary
|
||||
os_memset(&eapol_test, 0, sizeof(eapol_test));
|
||||
--- a/wpa_supplicant/events.c
|
||||
+++ b/wpa_supplicant/events.c
|
||||
@@ -6519,8 +6519,8 @@ static int wpas_pasn_auth(struct wpa_sup
|
||||
@@ -6618,8 +6618,8 @@ static int wpas_pasn_auth(struct wpa_sup
|
||||
#endif /* CONFIG_PASN */
|
||||
|
||||
|
||||
@@ -289,7 +289,7 @@ This allows building both hostapd and wpa_supplicant as a single binary
|
||||
{
|
||||
struct wpa_supplicant *wpa_s = ctx;
|
||||
int resched;
|
||||
@@ -7514,7 +7514,7 @@ void wpa_supplicant_event(void *ctx, enu
|
||||
@@ -7613,7 +7613,7 @@ void wpa_supplicant_event(void *ctx, enu
|
||||
}
|
||||
|
||||
|
||||
@@ -331,7 +331,7 @@ This allows building both hostapd and wpa_supplicant as a single binary
|
||||
os_memset(&global, 0, sizeof(global));
|
||||
--- a/wpa_supplicant/wpa_supplicant.c
|
||||
+++ b/wpa_supplicant/wpa_supplicant.c
|
||||
@@ -8262,7 +8262,6 @@ struct wpa_interface * wpa_supplicant_ma
|
||||
@@ -8253,7 +8253,6 @@ struct wpa_interface * wpa_supplicant_ma
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@@ -339,7 +339,7 @@ This allows building both hostapd and wpa_supplicant as a single binary
|
||||
/**
|
||||
* wpa_supplicant_match_existing - Match existing interfaces
|
||||
* @global: Pointer to global data from wpa_supplicant_init()
|
||||
@@ -8297,6 +8296,11 @@ static int wpa_supplicant_match_existing
|
||||
@@ -8288,6 +8287,11 @@ static int wpa_supplicant_match_existing
|
||||
|
||||
#endif /* CONFIG_MATCH_IFACE */
|
||||
|
||||
@@ -351,7 +351,7 @@ This allows building both hostapd and wpa_supplicant as a single binary
|
||||
|
||||
/**
|
||||
* wpa_supplicant_add_iface - Add a new network interface
|
||||
@@ -8553,6 +8557,8 @@ struct wpa_global * wpa_supplicant_init(
|
||||
@@ -8544,6 +8548,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 */
|
||||
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] hostapd: build with LTO enabled (using jobserver for parallel
|
||||
|
||||
--- a/hostapd/Makefile
|
||||
+++ b/hostapd/Makefile
|
||||
@@ -1429,7 +1429,7 @@ hostapd_multi.a: $(BCHECK) $(OBJS)
|
||||
@@ -1437,7 +1437,7 @@ hostapd_multi.a: $(BCHECK) $(OBJS)
|
||||
@$(AR) cr $@ hostapd_multi.o $(OBJS)
|
||||
|
||||
hostapd: $(OBJS)
|
||||
@@ -14,7 +14,7 @@ Subject: [PATCH] hostapd: build with LTO enabled (using jobserver for parallel
|
||||
@$(E) " LD " $@
|
||||
|
||||
ifdef CONFIG_WPA_TRACE
|
||||
@@ -1440,7 +1440,7 @@ _OBJS_VAR := OBJS_c
|
||||
@@ -1448,7 +1448,7 @@ _OBJS_VAR := OBJS_c
|
||||
include ../src/objs.mk
|
||||
|
||||
hostapd_cli: $(OBJS_c)
|
||||
@@ -25,7 +25,7 @@ Subject: [PATCH] hostapd: build with LTO enabled (using jobserver for parallel
|
||||
NOBJS = nt_password_hash.o ../src/crypto/ms_funcs.o $(SHA1OBJS)
|
||||
--- a/wpa_supplicant/Makefile
|
||||
+++ b/wpa_supplicant/Makefile
|
||||
@@ -2135,31 +2135,31 @@ wpa_supplicant_multi.a: .config $(BCHECK
|
||||
@@ -2148,31 +2148,31 @@ wpa_supplicant_multi.a: .config $(BCHECK
|
||||
@$(AR) cr $@ wpa_supplicant_multi.o $(OBJS)
|
||||
|
||||
wpa_supplicant: $(BCHECK) $(OBJS) $(EXTRA_progs)
|
||||
|
||||
@@ -16,7 +16,7 @@ Subject: [PATCH] Remove some unnecessary control interface functionality
|
||||
else
|
||||
--- a/hostapd/ctrl_iface.c
|
||||
+++ b/hostapd/ctrl_iface.c
|
||||
@@ -3977,6 +3977,7 @@ static int hostapd_ctrl_iface_receive_pr
|
||||
@@ -3978,6 +3978,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);
|
||||
@@ -24,7 +24,7 @@ Subject: [PATCH] Remove some unnecessary control interface functionality
|
||||
} else if (os_strcmp(buf, "MIB") == 0) {
|
||||
reply_len = ieee802_11_get_mib(hapd, reply, reply_size);
|
||||
if (reply_len >= 0) {
|
||||
@@ -4018,6 +4019,7 @@ static int hostapd_ctrl_iface_receive_pr
|
||||
@@ -4019,6 +4020,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);
|
||||
@@ -131,7 +131,7 @@ Subject: [PATCH] Remove some unnecessary control interface functionality
|
||||
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
|
||||
@@ -6483,6 +6483,7 @@ static const char * wpa_bool_txt(int val
|
||||
@@ -6490,6 +6490,7 @@ static const char * wpa_bool_txt(int val
|
||||
return val ? "TRUE" : "FALSE";
|
||||
}
|
||||
|
||||
@@ -139,7 +139,7 @@ Subject: [PATCH] Remove some unnecessary control interface functionality
|
||||
|
||||
#define RSN_SUITE "%02x-%02x-%02x-%d"
|
||||
#define RSN_SUITE_ARG(s) \
|
||||
@@ -6635,7 +6636,7 @@ int wpa_get_mib_sta(struct wpa_state_mac
|
||||
@@ -6642,7 +6643,7 @@ int wpa_get_mib_sta(struct wpa_state_mac
|
||||
|
||||
return len;
|
||||
}
|
||||
@@ -150,7 +150,7 @@ Subject: [PATCH] Remove some unnecessary control interface functionality
|
||||
{
|
||||
--- a/src/rsn_supp/wpa.c
|
||||
+++ b/src/rsn_supp/wpa.c
|
||||
@@ -4251,6 +4251,8 @@ static u32 wpa_key_mgmt_suite(struct wpa
|
||||
@@ -4253,6 +4253,8 @@ static u32 wpa_key_mgmt_suite(struct wpa
|
||||
}
|
||||
|
||||
|
||||
@@ -159,7 +159,7 @@ Subject: [PATCH] Remove some unnecessary control interface functionality
|
||||
#define RSN_SUITE "%02x-%02x-%02x-%d"
|
||||
#define RSN_SUITE_ARG(s) \
|
||||
((s) >> 24) & 0xff, ((s) >> 16) & 0xff, ((s) >> 8) & 0xff, (s) & 0xff
|
||||
@@ -4332,6 +4334,7 @@ int wpa_sm_get_mib(struct wpa_sm *sm, ch
|
||||
@@ -4334,6 +4336,7 @@ int wpa_sm_get_mib(struct wpa_sm *sm, ch
|
||||
|
||||
return (int) len;
|
||||
}
|
||||
@@ -169,7 +169,7 @@ Subject: [PATCH] Remove some unnecessary control interface functionality
|
||||
|
||||
--- a/wpa_supplicant/Makefile
|
||||
+++ b/wpa_supplicant/Makefile
|
||||
@@ -1064,6 +1064,9 @@ ifdef CONFIG_FILS
|
||||
@@ -1073,6 +1073,9 @@ ifdef CONFIG_FILS
|
||||
OBJS += ../src/ap/fils_hlp.o
|
||||
endif
|
||||
ifdef CONFIG_CTRL_IFACE
|
||||
|
||||
@@ -47,7 +47,7 @@ Subject: [PATCH] Allow HT40 also on 2.4GHz if noscan option is set, which also
|
||||
/*
|
||||
--- a/wpa_supplicant/wpa_supplicant.c
|
||||
+++ b/wpa_supplicant/wpa_supplicant.c
|
||||
@@ -3117,7 +3117,7 @@ static bool ibss_mesh_can_use_vht(struct
|
||||
@@ -3119,7 +3119,7 @@ static bool ibss_mesh_can_use_vht(struct
|
||||
const struct wpa_ssid *ssid,
|
||||
struct hostapd_hw_modes *mode)
|
||||
{
|
||||
@@ -56,7 +56,7 @@ Subject: [PATCH] Allow HT40 also on 2.4GHz if noscan option is set, which also
|
||||
return false;
|
||||
|
||||
if (!drv_supports_vht(wpa_s, ssid))
|
||||
@@ -3191,7 +3191,7 @@ static void ibss_mesh_select_40mhz(struc
|
||||
@@ -3193,7 +3193,7 @@ static void ibss_mesh_select_40mhz(struc
|
||||
int i, res;
|
||||
unsigned int j;
|
||||
static const int ht40plus_5ghz[] = {
|
||||
@@ -65,7 +65,7 @@ Subject: [PATCH] Allow HT40 also on 2.4GHz if noscan option is set, which also
|
||||
149, 157, 165, 173, 184, 192
|
||||
};
|
||||
static const int ht40plus_6ghz[] = {
|
||||
@@ -3544,7 +3544,7 @@ void ibss_mesh_setup_freq(struct wpa_sup
|
||||
@@ -3546,7 +3546,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;
|
||||
@@ -74,7 +74,7 @@ Subject: [PATCH] Allow HT40 also on 2.4GHz if noscan option is set, which also
|
||||
u8 channel;
|
||||
bool is_6ghz, is_24ghz;
|
||||
bool dfs_enabled = wpa_s->conf->country[0] && (wpa_s->drv_flags & WPA_DRIVER_FLAGS_RADAR);
|
||||
@@ -3588,6 +3588,8 @@ void ibss_mesh_setup_freq(struct wpa_sup
|
||||
@@ -3590,6 +3590,8 @@ void ibss_mesh_setup_freq(struct wpa_sup
|
||||
freq->he_enabled = ibss_mesh_can_use_he(wpa_s, ssid, mode,
|
||||
ieee80211_mode);
|
||||
freq->channel = channel;
|
||||
|
||||
+2
-2
@@ -14,7 +14,7 @@ Signed-hostap: Antonio Quartulli <ordex@autistici.org>
|
||||
|
||||
--- a/src/drivers/driver.h
|
||||
+++ b/src/drivers/driver.h
|
||||
@@ -1022,6 +1022,9 @@ struct wpa_driver_associate_params {
|
||||
@@ -1023,6 +1023,9 @@ struct wpa_driver_associate_params {
|
||||
* responsible for selecting with which BSS to associate. */
|
||||
const u8 *bssid;
|
||||
|
||||
@@ -155,7 +155,7 @@ Signed-hostap: Antonio Quartulli <ordex@autistici.org>
|
||||
* macsec_policy - Determines the policy for MACsec secure session
|
||||
--- a/wpa_supplicant/wpa_supplicant.c
|
||||
+++ b/wpa_supplicant/wpa_supplicant.c
|
||||
@@ -4756,6 +4756,12 @@ static void wpas_start_assoc_cb(struct w
|
||||
@@ -4758,6 +4758,12 @@ static void wpas_start_assoc_cb(struct w
|
||||
params.beacon_int = ssid->beacon_int;
|
||||
else
|
||||
params.beacon_int = wpa_s->conf->beacon_int;
|
||||
|
||||
@@ -19,7 +19,7 @@ Tested-by: Simon Wunderlich <simon.wunderlich@openmesh.com>
|
||||
|
||||
--- a/src/drivers/driver.h
|
||||
+++ b/src/drivers/driver.h
|
||||
@@ -1968,6 +1968,7 @@ struct wpa_driver_mesh_join_params {
|
||||
@@ -1969,6 +1969,7 @@ struct wpa_driver_mesh_join_params {
|
||||
#define WPA_DRIVER_MESH_FLAG_AMPE 0x00000008
|
||||
unsigned int flags;
|
||||
bool handle_dfs;
|
||||
@@ -29,7 +29,7 @@ Tested-by: Simon Wunderlich <simon.wunderlich@openmesh.com>
|
||||
struct wpa_driver_set_key_params {
|
||||
--- a/src/drivers/driver_nl80211.c
|
||||
+++ b/src/drivers/driver_nl80211.c
|
||||
@@ -12713,6 +12713,18 @@ static int nl80211_put_mesh_id(struct nl
|
||||
@@ -12716,6 +12716,18 @@ static int nl80211_put_mesh_id(struct nl
|
||||
}
|
||||
|
||||
|
||||
@@ -48,7 +48,7 @@ Tested-by: Simon Wunderlich <simon.wunderlich@openmesh.com>
|
||||
static int nl80211_put_mesh_config(struct nl_msg *msg,
|
||||
struct wpa_driver_mesh_bss_params *params)
|
||||
{
|
||||
@@ -12774,6 +12786,7 @@ static int nl80211_join_mesh(struct i802
|
||||
@@ -12777,6 +12789,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) ||
|
||||
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Fix issues with disabling obss scan when using fixed_freq on
|
||||
|
||||
--- a/wpa_supplicant/wpa_supplicant.c
|
||||
+++ b/wpa_supplicant/wpa_supplicant.c
|
||||
@@ -3551,6 +3551,10 @@ void ibss_mesh_setup_freq(struct wpa_sup
|
||||
@@ -3553,6 +3553,10 @@ void ibss_mesh_setup_freq(struct wpa_sup
|
||||
|
||||
freq->freq = ssid->frequency;
|
||||
|
||||
|
||||
@@ -126,7 +126,7 @@ probe/assoc/auth requests via object subscribe.
|
||||
if (is_dfs0 > 0 &&
|
||||
--- a/src/ap/hostapd.c
|
||||
+++ b/src/ap/hostapd.c
|
||||
@@ -492,6 +492,7 @@ void hostapd_free_hapd_data(struct hosta
|
||||
@@ -488,6 +488,7 @@ void hostapd_free_hapd_data(struct hosta
|
||||
hapd->beacon_set_done = 0;
|
||||
|
||||
wpa_printf(MSG_DEBUG, "%s(%s)", __func__, hapd->conf->iface);
|
||||
@@ -134,7 +134,7 @@ probe/assoc/auth requests via object subscribe.
|
||||
accounting_deinit(hapd);
|
||||
hostapd_deinit_wpa(hapd);
|
||||
vlan_deinit(hapd);
|
||||
@@ -1342,6 +1343,8 @@ static int hostapd_start_beacon(struct h
|
||||
@@ -1338,6 +1339,8 @@ static int hostapd_start_beacon(struct h
|
||||
if (hapd->driver && hapd->driver->set_operstate)
|
||||
hapd->driver->set_operstate(hapd->drv_priv, 1);
|
||||
|
||||
@@ -143,7 +143,7 @@ probe/assoc/auth requests via object subscribe.
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -2582,6 +2585,7 @@ static int hostapd_setup_interface_compl
|
||||
@@ -2578,6 +2581,7 @@ static int hostapd_setup_interface_compl
|
||||
if (err)
|
||||
goto fail;
|
||||
|
||||
@@ -151,7 +151,7 @@ probe/assoc/auth requests via object subscribe.
|
||||
wpa_printf(MSG_DEBUG, "Completing interface initialization");
|
||||
if (iface->freq) {
|
||||
#ifdef NEED_AP_MLME
|
||||
@@ -2796,6 +2800,7 @@ dfs_offload:
|
||||
@@ -2792,6 +2796,7 @@ dfs_offload:
|
||||
|
||||
fail:
|
||||
wpa_printf(MSG_ERROR, "Interface initialization failed");
|
||||
@@ -159,7 +159,7 @@ probe/assoc/auth requests via object subscribe.
|
||||
|
||||
if (iface->is_no_ir) {
|
||||
hostapd_set_state(iface, HAPD_IFACE_NO_IR);
|
||||
@@ -3545,6 +3550,7 @@ void hostapd_interface_deinit_free(struc
|
||||
@@ -3541,6 +3546,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;
|
||||
@@ -195,7 +195,7 @@ probe/assoc/auth requests via object subscribe.
|
||||
struct hostapd_iface * hostapd_alloc_iface(void);
|
||||
--- a/src/ap/ieee802_11.c
|
||||
+++ b/src/ap/ieee802_11.c
|
||||
@@ -3330,7 +3330,7 @@ static void handle_auth(struct hostapd_d
|
||||
@@ -3376,7 +3376,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;
|
||||
@@ -204,7 +204,7 @@ probe/assoc/auth requests via object subscribe.
|
||||
u16 fc;
|
||||
const u8 *challenge = NULL;
|
||||
u8 resp_ies[2 + WLAN_AUTH_CHALLENGE_LEN];
|
||||
@@ -3369,6 +3369,11 @@ static void handle_auth(struct hostapd_d
|
||||
@@ -3415,6 +3415,11 @@ static void handle_auth(struct hostapd_d
|
||||
else
|
||||
sa = mgmt->sa;
|
||||
#endif /* CONFIG_IEEE80211BE */
|
||||
@@ -216,7 +216,7 @@ probe/assoc/auth requests via object subscribe.
|
||||
|
||||
auth_alg = le_to_host16(mgmt->u.auth.auth_alg);
|
||||
auth_transaction = le_to_host16(mgmt->u.auth.auth_transaction);
|
||||
@@ -3538,6 +3543,13 @@ static void handle_auth(struct hostapd_d
|
||||
@@ -3584,6 +3589,13 @@ static void handle_auth(struct hostapd_d
|
||||
resp = WLAN_STATUS_UNSPECIFIED_FAILURE;
|
||||
goto fail;
|
||||
}
|
||||
@@ -230,7 +230,7 @@ probe/assoc/auth requests via object subscribe.
|
||||
if (res == HOSTAPD_ACL_PENDING)
|
||||
return;
|
||||
|
||||
@@ -6029,7 +6041,7 @@ static void handle_assoc(struct hostapd_
|
||||
@@ -6189,7 +6201,7 @@ static void handle_assoc(struct hostapd_
|
||||
int resp = WLAN_STATUS_SUCCESS;
|
||||
u16 reply_res = WLAN_STATUS_UNSPECIFIED_FAILURE;
|
||||
const u8 *pos;
|
||||
@@ -239,7 +239,7 @@ probe/assoc/auth requests via object subscribe.
|
||||
struct sta_info *sta;
|
||||
u8 *tmp = NULL;
|
||||
#ifdef CONFIG_FILS
|
||||
@@ -6283,6 +6295,11 @@ static void handle_assoc(struct hostapd_
|
||||
@@ -6445,6 +6457,11 @@ static void handle_assoc(struct hostapd_
|
||||
left = res;
|
||||
}
|
||||
#endif /* CONFIG_FILS */
|
||||
@@ -251,7 +251,7 @@ probe/assoc/auth requests via object subscribe.
|
||||
|
||||
/* followed by SSID and Supported rates; and HT capabilities if 802.11n
|
||||
* is used */
|
||||
@@ -6375,6 +6392,7 @@ static void handle_assoc(struct hostapd_
|
||||
@@ -6537,6 +6554,7 @@ static void handle_assoc(struct hostapd_
|
||||
|
||||
#ifdef CONFIG_TAXONOMY
|
||||
taxonomy_sta_info_assoc_req(hapd, sta, pos, left);
|
||||
@@ -259,7 +259,7 @@ probe/assoc/auth requests via object subscribe.
|
||||
#endif /* CONFIG_TAXONOMY */
|
||||
|
||||
sta->pending_wds_enable = 0;
|
||||
@@ -6388,6 +6406,13 @@ static void handle_assoc(struct hostapd_
|
||||
@@ -6550,6 +6568,13 @@ static void handle_assoc(struct hostapd_
|
||||
}
|
||||
#endif /* CONFIG_FILS */
|
||||
|
||||
@@ -273,7 +273,7 @@ probe/assoc/auth requests via object subscribe.
|
||||
fail:
|
||||
|
||||
/*
|
||||
@@ -6626,6 +6651,7 @@ static void handle_disassoc(struct hosta
|
||||
@@ -6788,6 +6813,7 @@ static void handle_disassoc(struct hosta
|
||||
(unsigned long) len);
|
||||
return;
|
||||
}
|
||||
@@ -281,7 +281,7 @@ probe/assoc/auth requests via object subscribe.
|
||||
|
||||
sta = ap_get_sta(hapd, mgmt->sa);
|
||||
if (!sta) {
|
||||
@@ -6657,6 +6683,8 @@ static void handle_deauth(struct hostapd
|
||||
@@ -6819,6 +6845,8 @@ static void handle_deauth(struct hostapd
|
||||
/* Clear the PTKSA cache entries for PASN */
|
||||
ptksa_cache_flush(hapd->ptksa, mgmt->sa, WPA_CIPHER_NONE);
|
||||
|
||||
@@ -400,7 +400,7 @@ probe/assoc/auth requests via object subscribe.
|
||||
hapd->msg_ctx_parent != hapd->msg_ctx)
|
||||
--- a/src/ap/sta_info.h
|
||||
+++ b/src/ap/sta_info.h
|
||||
@@ -258,6 +258,7 @@ struct sta_info {
|
||||
@@ -265,6 +265,7 @@ struct sta_info {
|
||||
#ifdef CONFIG_TAXONOMY
|
||||
struct wpabuf *probe_ie_taxonomy;
|
||||
struct wpabuf *assoc_ie_taxonomy;
|
||||
@@ -408,7 +408,7 @@ probe/assoc/auth requests via object subscribe.
|
||||
#endif /* CONFIG_TAXONOMY */
|
||||
|
||||
#ifdef CONFIG_FILS
|
||||
@@ -305,6 +306,7 @@ struct sta_info {
|
||||
@@ -312,6 +313,7 @@ struct sta_info {
|
||||
#endif /* CONFIG_TESTING_OPTIONS */
|
||||
#ifdef CONFIG_AIRTIME_POLICY
|
||||
unsigned int airtime_weight;
|
||||
|
||||
@@ -8,7 +8,7 @@ as adding/removing interfaces.
|
||||
|
||||
--- a/wpa_supplicant/wpa_supplicant.c
|
||||
+++ b/wpa_supplicant/wpa_supplicant.c
|
||||
@@ -1268,6 +1268,7 @@ void wpa_supplicant_set_state(struct wpa
|
||||
@@ -1266,6 +1266,7 @@ void wpa_supplicant_set_state(struct wpa
|
||||
sme_sched_obss_scan(wpa_s, 0);
|
||||
}
|
||||
wpa_s->wpa_state = state;
|
||||
@@ -16,7 +16,7 @@ as adding/removing interfaces.
|
||||
|
||||
#ifndef CONFIG_NO_ROBUST_AV
|
||||
if (state == WPA_COMPLETED && dl_list_len(&wpa_s->active_scs_ids) &&
|
||||
@@ -8395,6 +8396,8 @@ struct wpa_supplicant * wpa_supplicant_a
|
||||
@@ -8386,6 +8387,8 @@ struct wpa_supplicant * wpa_supplicant_a
|
||||
}
|
||||
#endif /* CONFIG_P2P */
|
||||
|
||||
@@ -25,7 +25,7 @@ as adding/removing interfaces.
|
||||
return wpa_s;
|
||||
}
|
||||
|
||||
@@ -8421,6 +8424,8 @@ int wpa_supplicant_remove_iface(struct w
|
||||
@@ -8412,6 +8415,8 @@ int wpa_supplicant_remove_iface(struct w
|
||||
struct wpa_supplicant *parent = wpa_s->parent;
|
||||
#endif /* CONFIG_MESH */
|
||||
|
||||
@@ -34,7 +34,7 @@ as adding/removing interfaces.
|
||||
/* Remove interface from the global list of interfaces */
|
||||
prev = global->ifaces;
|
||||
if (prev == wpa_s) {
|
||||
@@ -8740,6 +8745,7 @@ struct wpa_global * wpa_supplicant_init(
|
||||
@@ -8731,6 +8736,7 @@ struct wpa_global * wpa_supplicant_init(
|
||||
|
||||
eloop_register_timeout(WPA_SUPPLICANT_CLEANUP_INTERVAL, 0,
|
||||
wpas_periodic, global, NULL);
|
||||
@@ -42,7 +42,7 @@ as adding/removing interfaces.
|
||||
|
||||
return global;
|
||||
}
|
||||
@@ -8812,6 +8818,8 @@ void wpa_supplicant_deinit(struct wpa_gl
|
||||
@@ -8803,6 +8809,8 @@ void wpa_supplicant_deinit(struct wpa_gl
|
||||
|
||||
wpas_notify_supplicant_deinitialized(global);
|
||||
|
||||
@@ -164,7 +164,7 @@ as adding/removing interfaces.
|
||||
ifdef CONFIG_CODE_COVERAGE
|
||||
--- a/hostapd/ctrl_iface.c
|
||||
+++ b/hostapd/ctrl_iface.c
|
||||
@@ -5950,6 +5950,7 @@ try_again:
|
||||
@@ -5951,6 +5951,7 @@ try_again:
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -172,7 +172,7 @@ as adding/removing interfaces.
|
||||
wpa_msg_register_cb(hostapd_ctrl_iface_msg_cb);
|
||||
|
||||
return 0;
|
||||
@@ -6051,6 +6052,7 @@ fail:
|
||||
@@ -6052,6 +6053,7 @@ fail:
|
||||
os_free(fname);
|
||||
|
||||
interface->global_ctrl_sock = s;
|
||||
@@ -226,7 +226,7 @@ as adding/removing interfaces.
|
||||
{
|
||||
--- a/src/ap/hostapd.c
|
||||
+++ b/src/ap/hostapd.c
|
||||
@@ -267,6 +267,8 @@ int hostapd_reload_config(struct hostapd
|
||||
@@ -263,6 +263,8 @@ int hostapd_reload_config(struct hostapd
|
||||
struct hostapd_config *newconf, *oldconf;
|
||||
size_t j;
|
||||
|
||||
@@ -235,7 +235,7 @@ as adding/removing interfaces.
|
||||
if (iface->config_fname == NULL) {
|
||||
/* Only in-memory config in use - assume it has been updated */
|
||||
hostapd_clear_old(iface);
|
||||
@@ -492,6 +494,7 @@ void hostapd_free_hapd_data(struct hosta
|
||||
@@ -488,6 +490,7 @@ void hostapd_free_hapd_data(struct hosta
|
||||
hapd->beacon_set_done = 0;
|
||||
|
||||
wpa_printf(MSG_DEBUG, "%s(%s)", __func__, hapd->conf->iface);
|
||||
@@ -243,7 +243,7 @@ as adding/removing interfaces.
|
||||
hostapd_ubus_free_bss(hapd);
|
||||
accounting_deinit(hapd);
|
||||
hostapd_deinit_wpa(hapd);
|
||||
@@ -653,7 +656,7 @@ static void hostapd_mld_move_vlan_list(s
|
||||
@@ -649,7 +652,7 @@ static void hostapd_mld_move_vlan_list(s
|
||||
* If the BSS being removed is the first link, the next link becomes the first
|
||||
* link.
|
||||
*/
|
||||
@@ -252,7 +252,7 @@ as adding/removing interfaces.
|
||||
{
|
||||
#ifdef CONFIG_IEEE80211BE
|
||||
int i;
|
||||
@@ -761,6 +764,7 @@ void hostapd_cleanup_iface_partial(struc
|
||||
@@ -757,6 +760,7 @@ void hostapd_cleanup_iface_partial(struc
|
||||
static void hostapd_cleanup_iface(struct hostapd_iface *iface)
|
||||
{
|
||||
wpa_printf(MSG_DEBUG, "%s(%p)", __func__, iface);
|
||||
@@ -260,7 +260,7 @@ as adding/removing interfaces.
|
||||
eloop_cancel_timeout(hostapd_interface_setup_failure_handler, iface,
|
||||
NULL);
|
||||
|
||||
@@ -1344,6 +1348,7 @@ static int hostapd_start_beacon(struct h
|
||||
@@ -1340,6 +1344,7 @@ static int hostapd_start_beacon(struct h
|
||||
hapd->driver->set_operstate(hapd->drv_priv, 1);
|
||||
|
||||
hostapd_ubus_add_bss(hapd);
|
||||
@@ -268,7 +268,7 @@ as adding/removing interfaces.
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -1419,8 +1424,7 @@ static int hostapd_bss_radius_init(struc
|
||||
@@ -1415,8 +1420,7 @@ static int hostapd_bss_radius_init(struc
|
||||
* initialized. Most of the modules that are initialized here will be
|
||||
* deinitialized in hostapd_cleanup().
|
||||
*/
|
||||
@@ -278,7 +278,7 @@ as adding/removing interfaces.
|
||||
{
|
||||
struct hostapd_bss_config *conf = hapd->conf;
|
||||
u8 ssid[SSID_MAX_LEN + 1];
|
||||
@@ -1462,12 +1466,17 @@ static int hostapd_setup_bss(struct host
|
||||
@@ -1458,12 +1462,17 @@ static int hostapd_setup_bss(struct host
|
||||
|
||||
if (!first || first == -1) {
|
||||
u8 *addr = hapd->own_addr;
|
||||
@@ -297,7 +297,7 @@ as adding/removing interfaces.
|
||||
hapd->iface->bss[0]->own_addr) ==
|
||||
0) {
|
||||
wpa_printf(MSG_ERROR, "BSS '%s' may not have "
|
||||
@@ -1497,6 +1506,7 @@ static int hostapd_setup_bss(struct host
|
||||
@@ -1493,6 +1502,7 @@ static int hostapd_setup_bss(struct host
|
||||
hapd->mld_link_id, hapd->conf->iface);
|
||||
goto setup_mld;
|
||||
}
|
||||
@@ -305,7 +305,7 @@ as adding/removing interfaces.
|
||||
}
|
||||
#endif /* CONFIG_IEEE80211BE */
|
||||
|
||||
@@ -1505,7 +1515,7 @@ static int hostapd_setup_bss(struct host
|
||||
@@ -1501,7 +1511,7 @@ static int hostapd_setup_bss(struct host
|
||||
conf->iface, addr, hapd,
|
||||
&hapd->drv_priv, force_ifname, if_addr,
|
||||
conf->bridge[0] ? conf->bridge : NULL,
|
||||
@@ -314,7 +314,7 @@ as adding/removing interfaces.
|
||||
wpa_printf(MSG_ERROR, "Failed to add BSS (BSSID="
|
||||
MACSTR ")", MAC2STR(hapd->own_addr));
|
||||
hapd->interface_added = 0;
|
||||
@@ -1528,7 +1538,7 @@ static int hostapd_setup_bss(struct host
|
||||
@@ -1524,7 +1534,7 @@ static int hostapd_setup_bss(struct host
|
||||
|
||||
#ifdef CONFIG_IEEE80211BE
|
||||
setup_mld:
|
||||
@@ -323,7 +323,7 @@ as adding/removing interfaces.
|
||||
wpa_printf(MSG_DEBUG,
|
||||
"MLD: Set link_id=%u, mld_addr=" MACSTR
|
||||
", own_addr=" MACSTR,
|
||||
@@ -1546,6 +1556,8 @@ setup_mld:
|
||||
@@ -1542,6 +1552,8 @@ setup_mld:
|
||||
}
|
||||
#endif /* CONFIG_IEEE80211BE */
|
||||
|
||||
@@ -332,7 +332,7 @@ as adding/removing interfaces.
|
||||
if (conf->wmm_enabled < 0)
|
||||
conf->wmm_enabled = hapd->iconf->ieee80211n |
|
||||
hapd->iconf->ieee80211ax;
|
||||
@@ -1871,7 +1883,7 @@ int hostapd_set_acl(struct hostapd_data
|
||||
@@ -1867,7 +1879,7 @@ int hostapd_set_acl(struct hostapd_data
|
||||
}
|
||||
|
||||
|
||||
@@ -341,7 +341,7 @@ as adding/removing interfaces.
|
||||
{
|
||||
#ifdef CONFIG_IEEE80211BE
|
||||
int ret;
|
||||
@@ -2544,7 +2556,7 @@ static int hostapd_owe_iface_iter2(struc
|
||||
@@ -2540,7 +2552,7 @@ static int hostapd_owe_iface_iter2(struc
|
||||
#endif /* CONFIG_OWE */
|
||||
|
||||
|
||||
@@ -350,7 +350,7 @@ as adding/removing interfaces.
|
||||
{
|
||||
#ifdef CONFIG_OWE
|
||||
/* Check whether the enabled BSS can complete OWE transition mode
|
||||
@@ -3001,7 +3013,7 @@ hostapd_alloc_bss_data(struct hostapd_if
|
||||
@@ -2997,7 +3009,7 @@ hostapd_alloc_bss_data(struct hostapd_if
|
||||
}
|
||||
|
||||
|
||||
@@ -359,7 +359,7 @@ as adding/removing interfaces.
|
||||
{
|
||||
if (!hapd)
|
||||
return;
|
||||
@@ -3209,7 +3221,7 @@ fail:
|
||||
@@ -3205,7 +3217,7 @@ fail:
|
||||
}
|
||||
|
||||
|
||||
@@ -368,7 +368,7 @@ as adding/removing interfaces.
|
||||
{
|
||||
#ifdef CONFIG_IEEE80211BE
|
||||
struct hostapd_mld *mld, **all_mld;
|
||||
@@ -4090,7 +4102,8 @@ int hostapd_remove_iface(struct hapd_int
|
||||
@@ -4086,7 +4098,8 @@ int hostapd_remove_iface(struct hapd_int
|
||||
hapd_iface = interfaces->iface[i];
|
||||
if (hapd_iface == NULL)
|
||||
return -1;
|
||||
@@ -442,7 +442,7 @@ as adding/removing interfaces.
|
||||
void hostapd_switch_color(struct hostapd_data *hapd, u64 bitmap);
|
||||
--- a/src/ap/ieee802_11.c
|
||||
+++ b/src/ap/ieee802_11.c
|
||||
@@ -663,12 +663,17 @@ const char * sae_get_password(struct hos
|
||||
@@ -668,12 +668,17 @@ const char * sae_get_password(struct hos
|
||||
struct sae_pt **s_pt,
|
||||
const struct sae_pk **s_pk)
|
||||
{
|
||||
@@ -461,7 +461,7 @@ as adding/removing interfaces.
|
||||
/* With sae_track_password functionality enabled, try to first find the
|
||||
* next viable wildcard-address password if a password identifier was
|
||||
* not used. Select an wildcard-addr entry if the STA is known to have
|
||||
@@ -730,12 +735,30 @@ const char * sae_get_password(struct hos
|
||||
@@ -735,12 +740,30 @@ const char * sae_get_password(struct hos
|
||||
pt = hapd->conf->ssid.pt;
|
||||
}
|
||||
|
||||
@@ -494,7 +494,7 @@ as adding/removing interfaces.
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3698,6 +3721,12 @@ static void handle_auth(struct hostapd_d
|
||||
@@ -3744,6 +3767,12 @@ static void handle_auth(struct hostapd_d
|
||||
goto fail;
|
||||
}
|
||||
|
||||
@@ -532,7 +532,7 @@ as adding/removing interfaces.
|
||||
if (sta->p2p_ie != NULL &&
|
||||
--- a/src/ap/sta_info.h
|
||||
+++ b/src/ap/sta_info.h
|
||||
@@ -183,6 +183,9 @@ struct sta_info {
|
||||
@@ -190,6 +190,9 @@ struct sta_info {
|
||||
int vlan_id_bound; /* updated by ap_sta_bind_vlan() */
|
||||
/* PSKs from RADIUS authentication server */
|
||||
struct hostapd_sta_wpa_psk_short *psk;
|
||||
@@ -588,7 +588,7 @@ as adding/removing interfaces.
|
||||
}
|
||||
--- a/src/drivers/driver.h
|
||||
+++ b/src/drivers/driver.h
|
||||
@@ -4173,6 +4173,25 @@ struct wpa_driver_ops {
|
||||
@@ -4174,6 +4174,25 @@ struct wpa_driver_ops {
|
||||
const char *ifname);
|
||||
|
||||
/**
|
||||
@@ -614,7 +614,7 @@ as adding/removing interfaces.
|
||||
* set_sta_vlan - Bind a station into a specific interface (AP only)
|
||||
* @priv: Private driver interface data
|
||||
* @ifname: Interface (main or virtual BSS or VLAN)
|
||||
@@ -7016,6 +7035,7 @@ union wpa_event_data {
|
||||
@@ -7017,6 +7036,7 @@ union wpa_event_data {
|
||||
|
||||
/**
|
||||
* struct ch_switch
|
||||
@@ -622,7 +622,7 @@ as adding/removing interfaces.
|
||||
* @freq: Frequency of new channel in MHz
|
||||
* @ht_enabled: Whether this is an HT channel
|
||||
* @ch_offset: Secondary channel offset
|
||||
@@ -7026,6 +7046,7 @@ union wpa_event_data {
|
||||
@@ -7027,6 +7047,7 @@ union wpa_event_data {
|
||||
* @punct_bitmap: Puncturing bitmap
|
||||
*/
|
||||
struct ch_switch {
|
||||
@@ -742,7 +742,7 @@ as adding/removing interfaces.
|
||||
}
|
||||
|
||||
if (drv->capa.flags2 & WPA_DRIVER_FLAGS2_CONTROL_PORT_RX) {
|
||||
@@ -9636,6 +9654,50 @@ static int wpa_driver_nl80211_if_remove(
|
||||
@@ -9639,6 +9657,50 @@ static int wpa_driver_nl80211_if_remove(
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -793,7 +793,7 @@ as adding/removing interfaces.
|
||||
|
||||
static int cookie_handler(struct nl_msg *msg, void *arg)
|
||||
{
|
||||
@@ -11535,6 +11597,37 @@ static bool nl80211_is_drv_shared(void *
|
||||
@@ -11538,6 +11600,37 @@ static bool nl80211_is_drv_shared(void *
|
||||
#endif /* CONFIG_IEEE80211BE */
|
||||
|
||||
|
||||
@@ -831,7 +831,7 @@ as adding/removing interfaces.
|
||||
static int driver_nl80211_send_mlme(void *priv, const u8 *data,
|
||||
size_t data_len, int noack,
|
||||
unsigned int freq,
|
||||
@@ -15541,6 +15634,8 @@ const struct wpa_driver_ops wpa_driver_n
|
||||
@@ -15544,6 +15637,8 @@ const struct wpa_driver_ops wpa_driver_n
|
||||
.set_acl = wpa_driver_nl80211_set_acl,
|
||||
.if_add = wpa_driver_nl80211_if_add,
|
||||
.if_remove = driver_nl80211_if_remove,
|
||||
@@ -842,7 +842,7 @@ as adding/removing interfaces.
|
||||
.sta_add = wpa_driver_nl80211_sta_add,
|
||||
--- a/src/drivers/driver_nl80211_event.c
|
||||
+++ b/src/drivers/driver_nl80211_event.c
|
||||
@@ -1260,6 +1260,7 @@ static void mlme_event_ch_switch(struct
|
||||
@@ -1261,6 +1261,7 @@ static void mlme_event_ch_switch(struct
|
||||
struct nlattr *bw, struct nlattr *cf1,
|
||||
struct nlattr *cf2,
|
||||
struct nlattr *punct_bitmap,
|
||||
@@ -850,7 +850,7 @@ as adding/removing interfaces.
|
||||
int finished)
|
||||
{
|
||||
struct i802_bss *bss;
|
||||
@@ -1325,6 +1326,8 @@ static void mlme_event_ch_switch(struct
|
||||
@@ -1326,6 +1327,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);
|
||||
@@ -859,7 +859,7 @@ as adding/removing interfaces.
|
||||
|
||||
if (link) {
|
||||
data.ch_switch.link_id = nla_get_u8(link);
|
||||
@@ -4331,6 +4334,7 @@ static void do_process_drv_event(struct
|
||||
@@ -4332,6 +4335,7 @@ static void do_process_drv_event(struct
|
||||
tb[NL80211_ATTR_CENTER_FREQ1],
|
||||
tb[NL80211_ATTR_CENTER_FREQ2],
|
||||
tb[NL80211_ATTR_PUNCT_BITMAP],
|
||||
@@ -867,7 +867,7 @@ as adding/removing interfaces.
|
||||
0);
|
||||
break;
|
||||
case NL80211_CMD_CH_SWITCH_NOTIFY:
|
||||
@@ -4343,6 +4347,7 @@ static void do_process_drv_event(struct
|
||||
@@ -4344,6 +4348,7 @@ static void do_process_drv_event(struct
|
||||
tb[NL80211_ATTR_CENTER_FREQ1],
|
||||
tb[NL80211_ATTR_CENTER_FREQ2],
|
||||
tb[NL80211_ATTR_PUNCT_BITMAP],
|
||||
@@ -941,7 +941,7 @@ as adding/removing interfaces.
|
||||
ifdef CONFIG_CODE_COVERAGE
|
||||
CFLAGS += -O0 -fprofile-arcs -ftest-coverage -U_FORTIFY_SOURCE
|
||||
LIBS += -lgcov
|
||||
@@ -1068,6 +1076,9 @@ ifdef CONFIG_CTRL_IFACE_MIB
|
||||
@@ -1077,6 +1085,9 @@ ifdef CONFIG_CTRL_IFACE_MIB
|
||||
CFLAGS += -DCONFIG_CTRL_IFACE_MIB
|
||||
endif
|
||||
OBJS += ../src/ap/ctrl_iface_ap.o
|
||||
@@ -961,7 +961,7 @@ as adding/removing interfaces.
|
||||
|
||||
|
||||
#define MAX_OWE_TRANSITION_BSS_SELECT_COUNT 5
|
||||
@@ -1717,6 +1718,12 @@ struct wpa_ssid * wpa_scan_res_match(str
|
||||
@@ -1729,6 +1730,12 @@ struct wpa_ssid * wpa_scan_res_match(str
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@@ -974,7 +974,7 @@ as adding/removing interfaces.
|
||||
for (ssid = group; ssid; ssid = only_first_ssid ? NULL : ssid->pnext) {
|
||||
if (wpa_scan_res_ok(wpa_s, ssid, match_ssid, match_ssid_len,
|
||||
bss, bssid_ignore_count, debug_print, link))
|
||||
@@ -3127,8 +3134,8 @@ fail:
|
||||
@@ -3139,8 +3146,8 @@ fail:
|
||||
static void multi_ap_process_assoc_resp(struct wpa_supplicant *wpa_s,
|
||||
const u8 *ies, size_t ies_len)
|
||||
{
|
||||
@@ -984,7 +984,7 @@ as adding/removing interfaces.
|
||||
u16 status;
|
||||
|
||||
wpa_s->multi_ap_ie = 0;
|
||||
@@ -3139,13 +3146,13 @@ static void multi_ap_process_assoc_resp(
|
||||
@@ -3151,13 +3158,13 @@ static void multi_ap_process_assoc_resp(
|
||||
return;
|
||||
|
||||
status = check_multi_ap_ie(elems.multi_ap + 4, elems.multi_ap_len - 4,
|
||||
@@ -1001,7 +1001,7 @@ as adding/removing interfaces.
|
||||
MULTI_AP_FRONTHAUL_BSS);
|
||||
wpa_s->multi_ap_ie = 1;
|
||||
}
|
||||
@@ -5749,6 +5756,13 @@ static void wpas_event_rx_mgmt_action(st
|
||||
@@ -5848,6 +5855,13 @@ static void wpas_event_rx_mgmt_action(st
|
||||
}
|
||||
#endif /* CONFIG_WNM */
|
||||
|
||||
@@ -1015,7 +1015,7 @@ as adding/removing interfaces.
|
||||
#ifdef CONFIG_GAS
|
||||
if ((mgmt->u.action.category == WLAN_ACTION_PUBLIC ||
|
||||
mgmt->u.action.category == WLAN_ACTION_PROTECTED_DUAL) &&
|
||||
@@ -6555,6 +6569,7 @@ void supplicant_event(void *ctx, enum wp
|
||||
@@ -6654,6 +6668,7 @@ void supplicant_event(void *ctx, enum wp
|
||||
event_to_string(event), event);
|
||||
#endif /* CONFIG_NO_STDOUT_DEBUG */
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ as adding/removing interfaces.
|
||||
|
||||
--- a/hostapd/config_file.c
|
||||
+++ b/hostapd/config_file.c
|
||||
@@ -5008,7 +5008,14 @@ struct hostapd_config * hostapd_config_r
|
||||
@@ -5012,7 +5012,14 @@ struct hostapd_config * hostapd_config_r
|
||||
int errors = 0;
|
||||
size_t i;
|
||||
|
||||
@@ -58,7 +58,7 @@ as adding/removing interfaces.
|
||||
return NULL;
|
||||
--- a/src/ap/hostapd.c
|
||||
+++ b/src/ap/hostapd.c
|
||||
@@ -3414,8 +3414,13 @@ hostapd_interface_init_bss(struct hapd_i
|
||||
@@ -3410,8 +3410,13 @@ hostapd_interface_init_bss(struct hapd_i
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -47,7 +47,7 @@ full device, e.g. in order to deal with hardware/driver limitations
|
||||
" since no room for additional STA",
|
||||
--- a/src/ap/hostapd.c
|
||||
+++ b/src/ap/hostapd.c
|
||||
@@ -259,6 +259,29 @@ static int hostapd_iface_conf_changed(st
|
||||
@@ -255,6 +255,29 @@ static int hostapd_iface_conf_changed(st
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -112,7 +112,7 @@ untagged DHCP packets
|
||||
hapd->x_snoop_initialized = false;
|
||||
--- a/src/drivers/driver.h
|
||||
+++ b/src/drivers/driver.h
|
||||
@@ -4587,7 +4587,7 @@ struct wpa_driver_ops {
|
||||
@@ -4588,7 +4588,7 @@ struct wpa_driver_ops {
|
||||
* Returns: 0 on success, negative (<0) on failure
|
||||
*/
|
||||
int (*br_set_net_param)(void *priv, enum drv_br_net_param param,
|
||||
@@ -123,7 +123,7 @@ untagged DHCP packets
|
||||
* get_wowlan - Get wake-on-wireless status
|
||||
--- a/src/drivers/driver_nl80211.c
|
||||
+++ b/src/drivers/driver_nl80211.c
|
||||
@@ -13233,7 +13233,7 @@ static const char * drv_br_net_param_str
|
||||
@@ -13236,7 +13236,7 @@ static const char * drv_br_net_param_str
|
||||
|
||||
|
||||
static int wpa_driver_br_set_net_param(void *priv, enum drv_br_net_param param,
|
||||
@@ -132,7 +132,7 @@ untagged DHCP packets
|
||||
{
|
||||
struct i802_bss *bss = priv;
|
||||
char path[128];
|
||||
@@ -13259,8 +13259,11 @@ static int wpa_driver_br_set_net_param(v
|
||||
@@ -13262,8 +13262,11 @@ static int wpa_driver_br_set_net_param(v
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ Use the NAS identifier to find the right receiver context on incoming messages
|
||||
|
||||
--- a/src/ap/hostapd.c
|
||||
+++ b/src/ap/hostapd.c
|
||||
@@ -1405,6 +1405,7 @@ static int hostapd_bss_radius_init(struc
|
||||
@@ -1401,6 +1401,7 @@ static int hostapd_bss_radius_init(struc
|
||||
|
||||
os_memset(&das_conf, 0, sizeof(das_conf));
|
||||
das_conf.port = conf->radius_das_port;
|
||||
|
||||
+7
-7
@@ -39,7 +39,7 @@ Hotfix-by: Sebastian Gottschall https://github.com/mirror/dd-wrt/commit/0c3001a6
|
||||
|
||||
--- a/hostapd/Makefile
|
||||
+++ b/hostapd/Makefile
|
||||
@@ -1440,6 +1440,11 @@ CFLAGS += -DCONFIG_PROCESS_COORDINATION
|
||||
@@ -1448,6 +1448,11 @@ CFLAGS += -DCONFIG_PROCESS_COORDINATION
|
||||
OBJS += ../src/common/proc_coord.o
|
||||
endif
|
||||
|
||||
@@ -53,8 +53,8 @@ Hotfix-by: Sebastian Gottschall https://github.com/mirror/dd-wrt/commit/0c3001a6
|
||||
|
||||
--- a/hostapd/config_file.c
|
||||
+++ b/hostapd/config_file.c
|
||||
@@ -4999,6 +4999,15 @@ static int hostapd_config_fill(struct ho
|
||||
bss->mld_indicate_disabled = atoi(pos);
|
||||
@@ -5003,6 +5003,15 @@ static int hostapd_config_fill(struct ho
|
||||
conf->disable_mcs15_rx = atoi(pos);
|
||||
#endif /* CONFIG_TESTING_OPTIONS */
|
||||
#endif /* CONFIG_IEEE80211BE */
|
||||
+#ifdef CONFIG_APUP
|
||||
@@ -373,7 +373,7 @@ Hotfix-by: Sebastian Gottschall https://github.com/mirror/dd-wrt/commit/0c3001a6
|
||||
|
||||
#ifdef CONFIG_FILS
|
||||
static struct wpabuf *
|
||||
@@ -4092,8 +4095,8 @@ static u16 check_multi_ap(struct hostapd
|
||||
@@ -4138,8 +4141,8 @@ static u16 check_multi_ap(struct hostapd
|
||||
}
|
||||
|
||||
|
||||
@@ -384,7 +384,7 @@ Hotfix-by: Sebastian Gottschall https://github.com/mirror/dd-wrt/commit/0c3001a6
|
||||
{
|
||||
/* Supported rates not used in IEEE 802.11ad/DMG */
|
||||
if (hapd->iface->current_mode &&
|
||||
@@ -4543,7 +4546,7 @@ static int __check_assoc_ies(struct host
|
||||
@@ -4604,7 +4607,7 @@ static int __check_assoc_ies(struct host
|
||||
elems->ext_capab_len);
|
||||
if (resp != WLAN_STATUS_SUCCESS)
|
||||
goto out;
|
||||
@@ -393,7 +393,7 @@ Hotfix-by: Sebastian Gottschall https://github.com/mirror/dd-wrt/commit/0c3001a6
|
||||
if (resp != WLAN_STATUS_SUCCESS)
|
||||
goto out;
|
||||
|
||||
@@ -6747,6 +6750,11 @@ static void handle_beacon(struct hostapd
|
||||
@@ -6909,6 +6912,11 @@ static void handle_beacon(struct hostapd
|
||||
0);
|
||||
|
||||
ap_list_process_beacon(hapd->iface, mgmt, &elems, fi);
|
||||
@@ -418,7 +418,7 @@ Hotfix-by: Sebastian Gottschall https://github.com/mirror/dd-wrt/commit/0c3001a6
|
||||
u16 copy_sta_vendor_vht(struct hostapd_data *hapd, struct sta_info *sta,
|
||||
--- a/src/drivers/driver.h
|
||||
+++ b/src/drivers/driver.h
|
||||
@@ -4281,7 +4281,7 @@ struct wpa_driver_ops {
|
||||
@@ -4282,7 +4282,7 @@ struct wpa_driver_ops {
|
||||
* Returns: 0 on success, -1 on failure
|
||||
*/
|
||||
int (*set_wds_sta)(void *priv, const u8 *addr, int aid, int val,
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
+
|
||||
--- a/src/ap/sta_info.h
|
||||
+++ b/src/ap/sta_info.h
|
||||
@@ -423,23 +423,8 @@ int ap_sta_re_add(struct hostapd_data *h
|
||||
@@ -430,23 +430,8 @@ int ap_sta_re_add(struct hostapd_data *h
|
||||
|
||||
void ap_free_sta_pasn(struct hostapd_data *hapd, struct sta_info *sta);
|
||||
|
||||
|
||||
@@ -1123,9 +1123,9 @@ hostapd_rrm_nr_set(struct ubus_context *ctx, struct ubus_object *obj,
|
||||
if (strlen(s) == 0) {
|
||||
/* Copy BSSID from neighbor report */
|
||||
if (hwaddr_compact_aton(nr_s, bssid))
|
||||
goto invalid;
|
||||
goto invalid_free;
|
||||
} else if (hwaddr_aton(s, bssid)) {
|
||||
goto invalid;
|
||||
goto invalid_free;
|
||||
}
|
||||
|
||||
/* SSID */
|
||||
@@ -1136,7 +1136,7 @@ hostapd_rrm_nr_set(struct ubus_context *ctx, struct ubus_object *obj,
|
||||
} else {
|
||||
ssid.ssid_len = strlen(s);
|
||||
if (ssid.ssid_len > sizeof(ssid.ssid))
|
||||
goto invalid;
|
||||
goto invalid_free;
|
||||
|
||||
memcpy(&ssid, s, ssid.ssid_len);
|
||||
}
|
||||
@@ -1145,6 +1145,8 @@ hostapd_rrm_nr_set(struct ubus_context *ctx, struct ubus_object *obj,
|
||||
wpabuf_free(data);
|
||||
continue;
|
||||
|
||||
invalid_free:
|
||||
wpabuf_free(data);
|
||||
invalid:
|
||||
return UBUS_STATUS_INVALID_ARGUMENT;
|
||||
}
|
||||
@@ -1252,6 +1254,7 @@ hostapd_rrm_beacon_req(struct ubus_context *ctx, struct ubus_object *obj,
|
||||
}
|
||||
|
||||
ret = hostapd_send_beacon_req(hapd, addr, 0, req);
|
||||
wpabuf_free(req);
|
||||
if (ret < 0)
|
||||
return -ret;
|
||||
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
From: Felix Fietkau <nbd@nbd.name>
|
||||
Date: Fri, 20 Mar 2026 11:53:30 +0000
|
||||
Subject: [PATCH] nl80211: fix HE MCS set parsing
|
||||
|
||||
The Channel Width Set bits occupy B1-B4 of byte 0 of he_cap_phy.
|
||||
Since this attribute is a byte array, not an integer, reading it via
|
||||
nla_get_u16() produces an endian-dependent result. The << 8 shift was
|
||||
correct on big-endian but wrong on little-endian.
|
||||
|
||||
Fix this by reading byte 0 directly as a uint8_t, making the check
|
||||
endian-neutral.
|
||||
|
||||
Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
---
|
||||
|
||||
--- a/lib/nl80211.c
|
||||
+++ b/lib/nl80211.c
|
||||
@@ -1575,21 +1575,22 @@ uc_nl_convert_rta_he_mcs(const uc_nl_att
|
||||
uint8_t bw_support_mask[] = { (1 << 1) | (1 << 2), (1 << 3), (1 << 4) };
|
||||
uc_value_t *mcs_set, *mcs_bw, *mcs_dir, *mcs_entry, *mcs_idx;
|
||||
uint16_t bw[] = { 80, 160, 8080 }, mcs[6];
|
||||
- uint16_t u16, phy_cap_0 = 0;
|
||||
+ uint8_t phy_cap_0 = 0;
|
||||
+ uint16_t u16;
|
||||
size_t i, j, k, l, max_idx;
|
||||
|
||||
if (!nla_check_len(attr, sizeof(mcs)))
|
||||
return NULL;
|
||||
|
||||
if (nla_check_len(phy_attr, sizeof(phy_cap_0)))
|
||||
- phy_cap_0 = nla_get_u16(phy_attr);
|
||||
+ phy_cap_0 = *(uint8_t *)nla_data(phy_attr);
|
||||
|
||||
memcpy(mcs, nla_data(attr), sizeof(mcs));
|
||||
|
||||
mcs_set = ucv_array_new_length(vm, 3);
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(bw); i++) {
|
||||
- if (!(phy_cap_0 & (bw_support_mask[i] << 8)))
|
||||
+ if (!(phy_cap_0 & bw_support_mask[i]))
|
||||
continue;
|
||||
|
||||
mcs_bw = ucv_object_new(vm);
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
static int spinand_read_reg_op(struct spinand_device *spinand, u8 reg, u8 *val)
|
||||
{
|
||||
@@ -1596,6 +1597,7 @@ static int spinand_probe(struct spi_mem
|
||||
@@ -1604,6 +1605,7 @@ static int spinand_probe(struct spi_mem
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
ret = mtd_device_register(mtd, NULL, 0);
|
||||
if (ret)
|
||||
goto err_spinand_cleanup;
|
||||
@@ -1603,6 +1605,7 @@ static int spinand_probe(struct spi_mem
|
||||
@@ -1611,6 +1613,7 @@ static int spinand_probe(struct spi_mem
|
||||
return 0;
|
||||
|
||||
err_spinand_cleanup:
|
||||
@@ -24,7 +24,7 @@
|
||||
spinand_cleanup(spinand);
|
||||
|
||||
return ret;
|
||||
@@ -1621,6 +1624,7 @@ static int spinand_remove(struct spi_mem
|
||||
@@ -1629,6 +1632,7 @@ static int spinand_remove(struct spi_mem
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
|
||||
@@ -312,7 +312,7 @@ SVN-Revision: 35130
|
||||
case IPV6_2292HOPOPTS:
|
||||
--- a/net/ipv6/exthdrs.c
|
||||
+++ b/net/ipv6/exthdrs.c
|
||||
@@ -980,7 +980,7 @@ static bool ipv6_hop_jumbo(struct sk_buf
|
||||
@@ -986,7 +986,7 @@ static bool ipv6_hop_jumbo(struct sk_buf
|
||||
goto drop;
|
||||
}
|
||||
|
||||
|
||||
@@ -45,7 +45,7 @@ Submitted-by: Christopher Hill <ch6574@gmail.com>
|
||||
|
||||
--- a/drivers/mfd/Kconfig
|
||||
+++ b/drivers/mfd/Kconfig
|
||||
@@ -2330,6 +2330,14 @@ config RAVE_SP_CORE
|
||||
@@ -2354,6 +2354,14 @@ config RAVE_SP_CORE
|
||||
Select this to get support for the Supervisory Processor
|
||||
device found on several devices in RAVE line of hardware.
|
||||
|
||||
|
||||
+1
-1
@@ -11,7 +11,7 @@ This reverts commit 83b2a8fe43bda0c11981ad6afa5dd0104d78be28.
|
||||
|
||||
--- a/drivers/spi/spidev.c
|
||||
+++ b/drivers/spi/spidev.c
|
||||
@@ -428,7 +428,7 @@ spidev_ioctl(struct file *filp, unsigned
|
||||
@@ -415,7 +415,7 @@ spidev_ioctl(struct file *filp, unsigned
|
||||
}
|
||||
|
||||
if (ctlr->use_gpio_descriptors && spi_get_csgpiod(spi, 0))
|
||||
|
||||
+1
-1
@@ -13,7 +13,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
|
||||
--- a/drivers/spi/spidev.c
|
||||
+++ b/drivers/spi/spidev.c
|
||||
@@ -721,7 +721,7 @@ MODULE_DEVICE_TABLE(spi, spidev_spi_ids)
|
||||
@@ -703,7 +703,7 @@ MODULE_DEVICE_TABLE(spi, spidev_spi_ids)
|
||||
*/
|
||||
static int spidev_of_check(struct device *dev)
|
||||
{
|
||||
|
||||
+1
-1
@@ -86,7 +86,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
|
||||
--- a/arch/arm/include/asm/string.h
|
||||
+++ b/arch/arm/include/asm/string.h
|
||||
@@ -68,4 +68,9 @@ static inline void *memset64(uint64_t *p
|
||||
@@ -72,4 +72,9 @@ static inline void *memset64(uint64_t *p
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
+3
-3
@@ -19,10 +19,10 @@ Signed-off-by: Charles Mirabile <cmirabil@redhat.com>
|
||||
|
||||
--- a/drivers/mfd/simple-mfd-i2c.c
|
||||
+++ b/drivers/mfd/simple-mfd-i2c.c
|
||||
@@ -88,6 +88,7 @@ static const struct of_device_id simple_
|
||||
@@ -119,6 +119,7 @@ static const struct of_device_id simple_
|
||||
{ .compatible = "maxim,max77705-battery", .data = &maxim_mon_max77705},
|
||||
{ .compatible = "silergy,sy7636a", .data = &silergy_sy7636a},
|
||||
{ .compatible = "maxim,max5970", .data = &maxim_max5970},
|
||||
{ .compatible = "maxim,max5978", .data = &maxim_max5970},
|
||||
{ .compatible = "spacemit,p1", .data = &spacemit_p1, },
|
||||
+ { .compatible = "raspberrypi,sensehat" },
|
||||
{}
|
||||
};
|
||||
|
||||
+1
-1
@@ -18626,7 +18626,7 @@ Signed-off-by: j-schambacher <joerg@hifiberry.com>
|
||||
* For devices with more than one control interface, we assume the
|
||||
--- a/sound/usb/quirks.c
|
||||
+++ b/sound/usb/quirks.c
|
||||
@@ -2393,6 +2393,8 @@ static const struct usb_audio_quirk_flag
|
||||
@@ -2395,6 +2395,8 @@ static const struct usb_audio_quirk_flag
|
||||
QUIRK_FLAG_ALIGN_TRANSFER),
|
||||
DEVICE_FLG(0x534d, 0x2109, /* MacroSilicon MS2109 */
|
||||
QUIRK_FLAG_ALIGN_TRANSFER),
|
||||
|
||||
+1
-1
@@ -37,7 +37,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
|
||||
static int lan78xx_read_reg(struct lan78xx_net *dev, u32 index, u32 *data)
|
||||
{
|
||||
u32 *buf;
|
||||
@@ -3464,8 +3473,14 @@ static int lan78xx_bind(struct lan78xx_n
|
||||
@@ -3462,8 +3471,14 @@ static int lan78xx_bind(struct lan78xx_n
|
||||
if (DEFAULT_RX_CSUM_ENABLE)
|
||||
dev->net->features |= NETIF_F_RXCSUM;
|
||||
|
||||
|
||||
+1
-1
@@ -28,7 +28,7 @@ See: https://github.com/raspberrypi/linux/issues/2447
|
||||
static int lan78xx_read_reg(struct lan78xx_net *dev, u32 index, u32 *data)
|
||||
{
|
||||
u32 *buf;
|
||||
@@ -4448,7 +4453,13 @@ static int lan78xx_probe(struct usb_inte
|
||||
@@ -4446,7 +4451,13 @@ static int lan78xx_probe(struct usb_inte
|
||||
if (ret < 0)
|
||||
goto out4;
|
||||
|
||||
|
||||
+3
-3
@@ -14,7 +14,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
|
||||
--- a/drivers/net/usb/lan78xx.c
|
||||
+++ b/drivers/net/usb/lan78xx.c
|
||||
@@ -2915,6 +2915,11 @@ static int lan78xx_reset(struct lan78xx_
|
||||
@@ -2913,6 +2913,11 @@ static int lan78xx_reset(struct lan78xx_
|
||||
int ret;
|
||||
u32 buf;
|
||||
u8 sig;
|
||||
@@ -26,7 +26,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
|
||||
ret = lan78xx_read_reg(dev, HW_CFG, &buf);
|
||||
if (ret < 0)
|
||||
@@ -2983,6 +2988,10 @@ static int lan78xx_reset(struct lan78xx_
|
||||
@@ -2981,6 +2986,10 @@ static int lan78xx_reset(struct lan78xx_
|
||||
buf |= HW_CFG_CLK125_EN_;
|
||||
buf |= HW_CFG_REFCLK25_EN_;
|
||||
|
||||
@@ -37,7 +37,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
ret = lan78xx_write_reg(dev, HW_CFG, buf);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
@@ -3085,6 +3094,9 @@ static int lan78xx_reset(struct lan78xx_
|
||||
@@ -3083,6 +3092,9 @@ static int lan78xx_reset(struct lan78xx_
|
||||
buf |= MAC_CR_AUTO_DUPLEX_ | MAC_CR_AUTO_SPEED_;
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -16,7 +16,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
|
||||
|
||||
--- a/drivers/media/i2c/adv7180.c
|
||||
+++ b/drivers/media/i2c/adv7180.c
|
||||
@@ -1352,6 +1352,7 @@ static const struct adv7180_chip_info ad
|
||||
@@ -1359,6 +1359,7 @@ static const struct adv7180_chip_info ad
|
||||
static int init_device(struct adv7180_state *state)
|
||||
{
|
||||
int ret;
|
||||
@@ -24,7 +24,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
|
||||
|
||||
mutex_lock(&state->mutex);
|
||||
|
||||
@@ -1399,6 +1400,18 @@ static int init_device(struct adv7180_st
|
||||
@@ -1406,6 +1407,18 @@ static int init_device(struct adv7180_st
|
||||
goto out_unlock;
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -14,7 +14,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
|
||||
|
||||
--- a/drivers/media/i2c/adv7180.c
|
||||
+++ b/drivers/media/i2c/adv7180.c
|
||||
@@ -1341,6 +1341,7 @@ static const struct adv7180_chip_info ad
|
||||
@@ -1348,6 +1348,7 @@ static const struct adv7180_chip_info ad
|
||||
BIT(ADV7182_INPUT_SVIDEO_AIN1_AIN2) |
|
||||
BIT(ADV7182_INPUT_SVIDEO_AIN3_AIN4) |
|
||||
BIT(ADV7182_INPUT_SVIDEO_AIN7_AIN8) |
|
||||
|
||||
+2
-2
@@ -37,7 +37,7 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||
|
||||
--- a/drivers/gpu/drm/v3d/v3d_drv.c
|
||||
+++ b/drivers/gpu/drm/v3d/v3d_drv.c
|
||||
@@ -331,6 +331,21 @@ static int v3d_platform_drm_probe(struct
|
||||
@@ -333,6 +333,21 @@ static int v3d_platform_drm_probe(struct
|
||||
}
|
||||
}
|
||||
|
||||
@@ -59,7 +59,7 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||
if (v3d->ver < 41) {
|
||||
ret = map_regs(v3d, &v3d->gca_regs, "gca");
|
||||
if (ret)
|
||||
@@ -360,6 +375,8 @@ static int v3d_platform_drm_probe(struct
|
||||
@@ -362,6 +377,8 @@ static int v3d_platform_drm_probe(struct
|
||||
ret = v3d_sysfs_init(dev);
|
||||
if (ret)
|
||||
goto drm_unregister;
|
||||
|
||||
+2
-2
@@ -41,7 +41,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
struct drm_device *drm;
|
||||
struct v3d_dev *v3d;
|
||||
int ret;
|
||||
@@ -337,7 +343,20 @@ static int v3d_platform_drm_probe(struct
|
||||
@@ -339,7 +345,20 @@ static int v3d_platform_drm_probe(struct
|
||||
dev_err(dev, "Failed to get clock (%ld)\n", PTR_ERR(v3d->clk));
|
||||
return PTR_ERR(v3d->clk);
|
||||
}
|
||||
@@ -63,7 +63,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
/* For downclocking, drop it to the minimum frequency we can get from
|
||||
* the CPRMAN clock generator dividing off our parent. The divider is
|
||||
* 4 bits, but ask for just higher than that so that rounding doesn't
|
||||
@@ -375,7 +394,7 @@ static int v3d_platform_drm_probe(struct
|
||||
@@ -377,7 +396,7 @@ static int v3d_platform_drm_probe(struct
|
||||
ret = v3d_sysfs_init(dev);
|
||||
if (ret)
|
||||
goto drm_unregister;
|
||||
|
||||
+1
-1
@@ -32,7 +32,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
||||
#define USB_VENDOR_ID_BELKIN 0x050d
|
||||
#define USB_DEVICE_ID_FLIP_KVM 0x3201
|
||||
|
||||
@@ -1475,6 +1478,9 @@
|
||||
@@ -1480,6 +1483,9 @@
|
||||
#define USB_VENDOR_ID_XIAOMI 0x2717
|
||||
#define USB_DEVICE_ID_MI_SILENT_MOUSE 0x5014
|
||||
|
||||
|
||||
+4
-4
@@ -26,7 +26,7 @@ Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
||||
|
||||
v4l2_ctrl_handler_init(&sensor->ctrls, 9);
|
||||
|
||||
@@ -1351,6 +1352,11 @@ static int ov5647_init_controls(struct o
|
||||
@@ -1353,6 +1354,11 @@ static int ov5647_init_controls(struct o
|
||||
ARRAY_SIZE(ov5647_test_pattern_menu) - 1,
|
||||
0, 0, ov5647_test_pattern_menu);
|
||||
|
||||
@@ -38,9 +38,9 @@ Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
||||
if (sensor->ctrls.error)
|
||||
goto handler_free;
|
||||
|
||||
@@ -1434,7 +1440,7 @@ static int ov5647_probe(struct i2c_clien
|
||||
|
||||
sensor->mode = OV5647_DEFAULT_MODE;
|
||||
@@ -1441,7 +1447,7 @@ static int ov5647_probe(struct i2c_clien
|
||||
sd->internal_ops = &ov5647_subdev_internal_ops;
|
||||
sd->flags |= V4L2_SUBDEV_FL_HAS_DEVNODE | V4L2_SUBDEV_FL_HAS_EVENTS;
|
||||
|
||||
- ret = ov5647_init_controls(sensor);
|
||||
+ ret = ov5647_init_controls(sensor, dev);
|
||||
|
||||
-25
@@ -1,25 +0,0 @@
|
||||
From 70c32664e555b0641cc187eebf0d738eb10a33a0 Mon Sep 17 00:00:00 2001
|
||||
From: David Plowman <david.plowman@raspberrypi.com>
|
||||
Date: Tue, 11 May 2021 12:52:26 +0100
|
||||
Subject: [PATCH] media: i2c: ov5647: Correct pixel array offset
|
||||
|
||||
The top offset in the pixel array is actually 6 (see page 3-1 of the
|
||||
OV5647 data sheet).
|
||||
|
||||
Fixes: f2f7ad5ce5e52 ("media: i2c: ov5647: Selection compliance fixes")
|
||||
Signed-off-by: David Plowman <david.plowman@raspberrypi.com>
|
||||
---
|
||||
drivers/media/i2c/ov5647.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
--- a/drivers/media/i2c/ov5647.c
|
||||
+++ b/drivers/media/i2c/ov5647.c
|
||||
@@ -69,7 +69,7 @@
|
||||
#define OV5647_NATIVE_HEIGHT 1956U
|
||||
|
||||
#define OV5647_PIXEL_ARRAY_LEFT 16U
|
||||
-#define OV5647_PIXEL_ARRAY_TOP 16U
|
||||
+#define OV5647_PIXEL_ARRAY_TOP 6U
|
||||
#define OV5647_PIXEL_ARRAY_WIDTH 2592U
|
||||
#define OV5647_PIXEL_ARRAY_HEIGHT 1944U
|
||||
|
||||
-26
@@ -1,26 +0,0 @@
|
||||
From 3a415d5da89b4a2d83f5590820fa649293eef6ba Mon Sep 17 00:00:00 2001
|
||||
From: David Plowman <david.plowman@raspberrypi.com>
|
||||
Date: Tue, 11 May 2021 12:57:22 +0100
|
||||
Subject: [PATCH] media: i2c: ov5647: Correct minimum VBLANK value
|
||||
|
||||
Trial and error reveals that the minimum vblank value appears to be 24
|
||||
(the OV5647 data sheet does not give any clues). This fixes streaming
|
||||
lock-ups in full resolution mode.
|
||||
|
||||
Fixes: 9b5a5ebedc303 ("media: i2c: ov5647: Add support for V4L2_CID_VBLANK")
|
||||
Signed-off-by: David Plowman <david.plowman@raspberrypi.com>
|
||||
---
|
||||
drivers/media/i2c/ov5647.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
--- a/drivers/media/i2c/ov5647.c
|
||||
+++ b/drivers/media/i2c/ov5647.c
|
||||
@@ -73,7 +73,7 @@
|
||||
#define OV5647_PIXEL_ARRAY_WIDTH 2592U
|
||||
#define OV5647_PIXEL_ARRAY_HEIGHT 1944U
|
||||
|
||||
-#define OV5647_VBLANK_MIN 4
|
||||
+#define OV5647_VBLANK_MIN 24
|
||||
#define OV5647_VTS_MAX 32767
|
||||
|
||||
#define OV5647_EXPOSURE_MIN 4
|
||||
-50
@@ -1,50 +0,0 @@
|
||||
From 2469a06f61b88939d92fd8e61a32afd5566c0be0 Mon Sep 17 00:00:00 2001
|
||||
From: David Plowman <david.plowman@raspberrypi.com>
|
||||
Date: Thu, 21 Oct 2021 14:47:00 +0100
|
||||
Subject: [PATCH] media: i2c: ov5647: Sensor should report RAW color space
|
||||
|
||||
Tested on Raspberry Pi running libcamera.
|
||||
|
||||
Signed-off-by: David Plowman <david.plowman@raspberrypi.com>
|
||||
---
|
||||
drivers/media/i2c/ov5647.c | 8 ++++----
|
||||
1 file changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
--- a/drivers/media/i2c/ov5647.c
|
||||
+++ b/drivers/media/i2c/ov5647.c
|
||||
@@ -508,7 +508,7 @@ static const struct ov5647_mode ov5647_m
|
||||
{
|
||||
.format = {
|
||||
.code = MEDIA_BUS_FMT_SBGGR10_1X10,
|
||||
- .colorspace = V4L2_COLORSPACE_SRGB,
|
||||
+ .colorspace = V4L2_COLORSPACE_RAW,
|
||||
.field = V4L2_FIELD_NONE,
|
||||
.width = 2592,
|
||||
.height = 1944
|
||||
@@ -529,7 +529,7 @@ static const struct ov5647_mode ov5647_m
|
||||
{
|
||||
.format = {
|
||||
.code = MEDIA_BUS_FMT_SBGGR10_1X10,
|
||||
- .colorspace = V4L2_COLORSPACE_SRGB,
|
||||
+ .colorspace = V4L2_COLORSPACE_RAW,
|
||||
.field = V4L2_FIELD_NONE,
|
||||
.width = 1920,
|
||||
.height = 1080
|
||||
@@ -550,7 +550,7 @@ static const struct ov5647_mode ov5647_m
|
||||
{
|
||||
.format = {
|
||||
.code = MEDIA_BUS_FMT_SBGGR10_1X10,
|
||||
- .colorspace = V4L2_COLORSPACE_SRGB,
|
||||
+ .colorspace = V4L2_COLORSPACE_RAW,
|
||||
.field = V4L2_FIELD_NONE,
|
||||
.width = 1296,
|
||||
.height = 972
|
||||
@@ -571,7 +571,7 @@ static const struct ov5647_mode ov5647_m
|
||||
{
|
||||
.format = {
|
||||
.code = MEDIA_BUS_FMT_SBGGR10_1X10,
|
||||
- .colorspace = V4L2_COLORSPACE_SRGB,
|
||||
+ .colorspace = V4L2_COLORSPACE_RAW,
|
||||
.field = V4L2_FIELD_NONE,
|
||||
.width = 640,
|
||||
.height = 480
|
||||
+1
-1
@@ -170,7 +170,7 @@ Signed-off-by: David Plowman <david.plowman@raspberrypi.com>
|
||||
default:
|
||||
dev_info(&client->dev,
|
||||
"Control (id:0x%x, val:0x%x) not supported\n",
|
||||
@@ -1354,6 +1408,16 @@ static int ov5647_init_controls(struct o
|
||||
@@ -1356,6 +1410,16 @@ static int ov5647_init_controls(struct o
|
||||
ARRAY_SIZE(ov5647_test_pattern_menu) - 1,
|
||||
0, 0, ov5647_test_pattern_menu);
|
||||
|
||||
|
||||
+1
-1
@@ -15,7 +15,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
|
||||
--- a/drivers/spi/spidev.c
|
||||
+++ b/drivers/spi/spidev.c
|
||||
@@ -711,6 +711,7 @@ static const struct spi_device_id spidev
|
||||
@@ -693,6 +693,7 @@ static const struct spi_device_id spidev
|
||||
{ .name = "spi-authenta" },
|
||||
{ .name = "em3581" },
|
||||
{ .name = "si3210" },
|
||||
|
||||
+1
-1
@@ -95,7 +95,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
static int ov5647_init_controls(struct ov5647 *sensor, struct device *dev)
|
||||
{
|
||||
struct i2c_client *client = v4l2_get_subdevdata(&sensor->sd);
|
||||
@@ -1502,6 +1533,12 @@ static int ov5647_probe(struct i2c_clien
|
||||
@@ -1504,6 +1535,12 @@ static int ov5647_probe(struct i2c_clien
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
|
||||
+4
-4
@@ -17,7 +17,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
|
||||
--- a/drivers/mfd/Kconfig
|
||||
+++ b/drivers/mfd/Kconfig
|
||||
@@ -1186,6 +1186,16 @@ config MFD_SY7636A
|
||||
@@ -1210,6 +1210,16 @@ config MFD_SY7636A
|
||||
To enable support for building sub-devices as modules,
|
||||
choose M here.
|
||||
|
||||
@@ -52,10 +52,10 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
static int simple_mfd_i2c_probe(struct i2c_client *i2c)
|
||||
{
|
||||
const struct simple_mfd_data *simple_mfd_data;
|
||||
@@ -88,6 +97,7 @@ static const struct of_device_id simple_
|
||||
@@ -119,6 +128,7 @@ static const struct of_device_id simple_
|
||||
{ .compatible = "maxim,max77705-battery", .data = &maxim_mon_max77705},
|
||||
{ .compatible = "silergy,sy7636a", .data = &silergy_sy7636a},
|
||||
{ .compatible = "maxim,max5970", .data = &maxim_max5970},
|
||||
{ .compatible = "maxim,max5978", .data = &maxim_max5970},
|
||||
{ .compatible = "spacemit,p1", .data = &spacemit_p1, },
|
||||
+ { .compatible = "raspberrypi,poe-core", &rpi_poe_core },
|
||||
{ .compatible = "raspberrypi,sensehat" },
|
||||
{}
|
||||
|
||||
+1
-1
@@ -15,7 +15,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
|
||||
--- a/drivers/media/i2c/ov5647.c
|
||||
+++ b/drivers/media/i2c/ov5647.c
|
||||
@@ -1566,7 +1566,7 @@ static int ov5647_probe(struct i2c_clien
|
||||
@@ -1568,7 +1568,7 @@ static int ov5647_probe(struct i2c_clien
|
||||
if (ret < 0)
|
||||
goto power_off;
|
||||
|
||||
|
||||
+1
-1
@@ -68,7 +68,7 @@ Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
|
||||
|
||||
--- a/drivers/char/random.c
|
||||
+++ b/drivers/char/random.c
|
||||
@@ -867,6 +867,14 @@ void __init random_init_early(const char
|
||||
@@ -857,6 +857,14 @@ void __init random_init_early(const char
|
||||
unsigned long entropy[BLAKE2S_BLOCK_SIZE / sizeof(long)];
|
||||
size_t i, longs, arch_bits;
|
||||
|
||||
|
||||
+1
-1
@@ -78,7 +78,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
|
||||
*norm = state->curr_norm;
|
||||
|
||||
return 0;
|
||||
@@ -890,6 +914,8 @@ static int adv7180_s_stream(struct v4l2_
|
||||
@@ -897,6 +921,8 @@ static int adv7180_s_stream(struct v4l2_
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -10,7 +10,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
|
||||
--- a/drivers/hwmon/aht10.c
|
||||
+++ b/drivers/hwmon/aht10.c
|
||||
@@ -57,6 +57,12 @@ static const struct i2c_device_id aht10_
|
||||
@@ -62,6 +62,12 @@ static const struct i2c_device_id aht10_
|
||||
};
|
||||
MODULE_DEVICE_TABLE(i2c, aht10_id);
|
||||
|
||||
@@ -23,7 +23,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
/**
|
||||
* struct aht10_data - All the data required to operate an AHT10/AHT20 chip
|
||||
* @client: the i2c client associated with the AHT10/AHT20
|
||||
@@ -380,6 +386,7 @@ static int aht10_probe(struct i2c_client
|
||||
@@ -395,6 +401,7 @@ static int aht10_probe(struct i2c_client
|
||||
static struct i2c_driver aht10_driver = {
|
||||
.driver = {
|
||||
.name = "aht10",
|
||||
|
||||
+13
-13
@@ -191,7 +191,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
static void macb_init_buffers(struct macb *bp)
|
||||
{
|
||||
struct macb_queue *queue;
|
||||
@@ -976,6 +992,7 @@ static int macb_mii_init(struct macb *bp
|
||||
@@ -974,6 +990,7 @@ static int macb_mii_init(struct macb *bp
|
||||
bp->mii_bus->write = &macb_mdio_write_c22;
|
||||
bp->mii_bus->read_c45 = &macb_mdio_read_c45;
|
||||
bp->mii_bus->write_c45 = &macb_mdio_write_c45;
|
||||
@@ -199,7 +199,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
snprintf(bp->mii_bus->id, MII_BUS_ID_SIZE, "%s-%x",
|
||||
bp->pdev->name, bp->pdev->id);
|
||||
bp->mii_bus->priv = bp;
|
||||
@@ -1641,6 +1658,11 @@ static int macb_rx(struct macb_queue *qu
|
||||
@@ -1639,6 +1656,11 @@ static int macb_rx(struct macb_queue *qu
|
||||
|
||||
macb_init_rx_ring(queue);
|
||||
queue_writel(queue, RBQP, queue->rx_ring_dma);
|
||||
@@ -211,7 +211,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
|
||||
macb_writel(bp, NCR, ctrl | MACB_BIT(RE));
|
||||
|
||||
@@ -1943,8 +1965,9 @@ static irqreturn_t macb_interrupt(int ir
|
||||
@@ -1941,8 +1963,9 @@ static irqreturn_t macb_interrupt(int ir
|
||||
queue_writel(queue, ISR, MACB_BIT(TCOMP) |
|
||||
MACB_BIT(TXUBR));
|
||||
|
||||
@@ -222,7 +222,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
wmb(); // ensure softirq can see update
|
||||
}
|
||||
|
||||
@@ -2400,6 +2423,11 @@ static netdev_tx_t macb_start_xmit(struc
|
||||
@@ -2398,6 +2421,11 @@ static netdev_tx_t macb_start_xmit(struc
|
||||
skb_tx_timestamp(skb);
|
||||
|
||||
spin_lock(&bp->lock);
|
||||
@@ -234,7 +234,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
macb_writel(bp, NCR, macb_readl(bp, NCR) | MACB_BIT(TSTART));
|
||||
spin_unlock(&bp->lock);
|
||||
|
||||
@@ -2806,6 +2834,37 @@ static void macb_configure_dma(struct ma
|
||||
@@ -2804,6 +2832,37 @@ static void macb_configure_dma(struct ma
|
||||
}
|
||||
}
|
||||
|
||||
@@ -272,7 +272,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
static void macb_init_hw(struct macb *bp)
|
||||
{
|
||||
u32 config;
|
||||
@@ -2834,6 +2893,11 @@ static void macb_init_hw(struct macb *bp
|
||||
@@ -2832,6 +2891,11 @@ static void macb_init_hw(struct macb *bp
|
||||
if (bp->caps & MACB_CAPS_JUMBO)
|
||||
bp->rx_frm_len_mask = MACB_RX_JFRMLEN_MASK;
|
||||
|
||||
@@ -284,7 +284,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
macb_configure_dma(bp);
|
||||
|
||||
/* Enable RX partial store and forward and set watermark */
|
||||
@@ -3200,6 +3264,52 @@ static void gem_get_ethtool_strings(stru
|
||||
@@ -3199,6 +3263,52 @@ static void gem_get_ethtool_strings(stru
|
||||
}
|
||||
}
|
||||
|
||||
@@ -337,7 +337,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
static struct net_device_stats *macb_get_stats(struct net_device *dev)
|
||||
{
|
||||
struct macb *bp = netdev_priv(dev);
|
||||
@@ -3784,6 +3894,8 @@ static const struct ethtool_ops macb_eth
|
||||
@@ -3783,6 +3893,8 @@ static const struct ethtool_ops macb_eth
|
||||
};
|
||||
|
||||
static const struct ethtool_ops gem_ethtool_ops = {
|
||||
@@ -346,7 +346,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
.get_regs_len = macb_get_regs_len,
|
||||
.get_regs = macb_get_regs,
|
||||
.get_wol = macb_get_wol,
|
||||
@@ -3793,6 +3905,8 @@ static const struct ethtool_ops gem_etht
|
||||
@@ -3792,6 +3904,8 @@ static const struct ethtool_ops gem_etht
|
||||
.get_ethtool_stats = gem_get_ethtool_stats,
|
||||
.get_strings = gem_get_ethtool_strings,
|
||||
.get_sset_count = gem_get_sset_count,
|
||||
@@ -355,7 +355,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
.get_link_ksettings = macb_get_link_ksettings,
|
||||
.set_link_ksettings = macb_set_link_ksettings,
|
||||
.get_ringparam = macb_get_ringparam,
|
||||
@@ -5114,6 +5228,11 @@ static int macb_probe(struct platform_de
|
||||
@@ -5113,6 +5227,11 @@ static int macb_probe(struct platform_de
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -367,7 +367,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
spin_lock_init(&bp->lock);
|
||||
spin_lock_init(&bp->stats_lock);
|
||||
|
||||
@@ -5174,6 +5293,21 @@ static int macb_probe(struct platform_de
|
||||
@@ -5173,6 +5292,21 @@ static int macb_probe(struct platform_de
|
||||
else
|
||||
bp->phy_interface = interface;
|
||||
|
||||
@@ -389,7 +389,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
/* IP specific init */
|
||||
err = init(pdev);
|
||||
if (err)
|
||||
@@ -5245,6 +5379,19 @@ static void macb_remove(struct platform_
|
||||
@@ -5244,6 +5378,19 @@ static void macb_remove(struct platform_
|
||||
}
|
||||
}
|
||||
|
||||
@@ -409,7 +409,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
static int __maybe_unused macb_suspend(struct device *dev)
|
||||
{
|
||||
struct net_device *netdev = dev_get_drvdata(dev);
|
||||
@@ -5498,6 +5645,7 @@ static const struct dev_pm_ops macb_pm_o
|
||||
@@ -5497,6 +5644,7 @@ static const struct dev_pm_ops macb_pm_o
|
||||
static struct platform_driver macb_driver = {
|
||||
.probe = macb_probe,
|
||||
.remove_new = macb_remove,
|
||||
|
||||
+3
-3
@@ -308,7 +308,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
dwc->tx_fifo_resize_max_num = tx_fifo_resize_max_num;
|
||||
}
|
||||
|
||||
@@ -2187,6 +2234,12 @@ static int dwc3_probe(struct platform_de
|
||||
@@ -2202,6 +2249,12 @@ static int dwc3_probe(struct platform_de
|
||||
if (IS_ERR(dwc->usb_psy))
|
||||
return dev_err_probe(dev, PTR_ERR(dwc->usb_psy), "couldn't get usb power supply\n");
|
||||
|
||||
@@ -333,7 +333,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
/* Global Debug LSP MUX Select */
|
||||
#define DWC3_GDBGLSPMUX_ENDBC BIT(15) /* Host only */
|
||||
#define DWC3_GDBGLSPMUX_HOSTSELECT(n) ((n) & 0x3fff)
|
||||
@@ -1087,6 +1090,7 @@ struct dwc3_scratchpad_array {
|
||||
@@ -1089,6 +1092,7 @@ struct dwc3_scratchpad_array {
|
||||
* @tx_max_burst_prd: max periodic ESS transmit burst size
|
||||
* @tx_fifo_resize_max_num: max number of fifos allocated during txfifo resize
|
||||
* @clear_stall_protocol: endpoint number that requires a delayed status phase
|
||||
@@ -341,7 +341,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
* @hsphy_interface: "utmi" or "ulpi"
|
||||
* @connected: true when we're connected to a host, false otherwise
|
||||
* @softconnect: true when gadget connect is called, false when disconnect runs
|
||||
@@ -1338,6 +1342,7 @@ struct dwc3 {
|
||||
@@ -1342,6 +1346,7 @@ struct dwc3 {
|
||||
u8 tx_max_burst_prd;
|
||||
u8 tx_fifo_resize_max_num;
|
||||
u8 clear_stall_protocol;
|
||||
|
||||
@@ -25,7 +25,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
|
||||
--- a/drivers/mfd/Kconfig
|
||||
+++ b/drivers/mfd/Kconfig
|
||||
@@ -2384,6 +2384,17 @@ config MFD_INTEL_M10_BMC_PMCI
|
||||
@@ -2408,6 +2408,17 @@ config MFD_INTEL_M10_BMC_PMCI
|
||||
additional drivers must be enabled in order to use the functionality
|
||||
of the device.
|
||||
|
||||
|
||||
+1
-1
@@ -37,7 +37,7 @@ Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>
|
||||
+
|
||||
config VIDEO_DW9714
|
||||
tristate "DW9714 lens voice coil support"
|
||||
depends on I2C && VIDEO_DEV
|
||||
depends on GPIOLIB && I2C && VIDEO_DEV
|
||||
--- a/drivers/media/i2c/Makefile
|
||||
+++ b/drivers/media/i2c/Makefile
|
||||
@@ -26,6 +26,7 @@ obj-$(CONFIG_VIDEO_ARDUCAM_PIVARIETY) +=
|
||||
|
||||
+2
-2
@@ -17,7 +17,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
|
||||
--- a/drivers/media/i2c/adv7180.c
|
||||
+++ b/drivers/media/i2c/adv7180.c
|
||||
@@ -732,10 +732,15 @@ static int adv7180_enum_mbus_code(struct
|
||||
@@ -739,10 +739,15 @@ static int adv7180_enum_mbus_code(struct
|
||||
struct v4l2_subdev_state *sd_state,
|
||||
struct v4l2_subdev_mbus_code_enum *code)
|
||||
{
|
||||
@@ -34,7 +34,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -745,7 +750,10 @@ static int adv7180_mbus_fmt(struct v4l2_
|
||||
@@ -752,7 +757,10 @@ static int adv7180_mbus_fmt(struct v4l2_
|
||||
{
|
||||
struct adv7180_state *state = to_state(sd);
|
||||
|
||||
|
||||
+5
-5
@@ -36,7 +36,7 @@ This reverts commit 00ecb85c58501f8f7ae75fcb069bbbad5542e853.
|
||||
};
|
||||
#define to_adv7180_sd(_ctrl) (&container_of(_ctrl->handler, \
|
||||
struct adv7180_state, \
|
||||
@@ -625,6 +636,9 @@ static int adv7180_s_ctrl(struct v4l2_ct
|
||||
@@ -632,6 +643,9 @@ static int adv7180_s_ctrl(struct v4l2_ct
|
||||
|
||||
if (ret)
|
||||
return ret;
|
||||
@@ -46,7 +46,7 @@ This reverts commit 00ecb85c58501f8f7ae75fcb069bbbad5542e853.
|
||||
val = ctrl->val;
|
||||
switch (ctrl->id) {
|
||||
case V4L2_CID_BRIGHTNESS:
|
||||
@@ -666,6 +680,7 @@ static int adv7180_s_ctrl(struct v4l2_ct
|
||||
@@ -673,6 +687,7 @@ static int adv7180_s_ctrl(struct v4l2_ct
|
||||
ret = -EINVAL;
|
||||
}
|
||||
|
||||
@@ -54,7 +54,7 @@ This reverts commit 00ecb85c58501f8f7ae75fcb069bbbad5542e853.
|
||||
mutex_unlock(&state->mutex);
|
||||
return ret;
|
||||
}
|
||||
@@ -686,7 +701,7 @@ static const struct v4l2_ctrl_config adv
|
||||
@@ -693,7 +708,7 @@ static const struct v4l2_ctrl_config adv
|
||||
|
||||
static int adv7180_init_controls(struct adv7180_state *state)
|
||||
{
|
||||
@@ -63,7 +63,7 @@ This reverts commit 00ecb85c58501f8f7ae75fcb069bbbad5542e853.
|
||||
|
||||
v4l2_ctrl_new_std(&state->ctrl_hdl, &adv7180_ctrl_ops,
|
||||
V4L2_CID_BRIGHTNESS, ADV7180_BRI_MIN,
|
||||
@@ -712,6 +727,17 @@ static int adv7180_init_controls(struct
|
||||
@@ -719,6 +734,17 @@ static int adv7180_init_controls(struct
|
||||
test_pattern_menu);
|
||||
}
|
||||
|
||||
@@ -81,7 +81,7 @@ This reverts commit 00ecb85c58501f8f7ae75fcb069bbbad5542e853.
|
||||
state->sd.ctrl_handler = &state->ctrl_hdl;
|
||||
if (state->ctrl_hdl.error) {
|
||||
int err = state->ctrl_hdl.error;
|
||||
@@ -839,7 +865,16 @@ static int adv7180_set_pad_format(struct
|
||||
@@ -846,7 +872,16 @@ static int adv7180_set_pad_format(struct
|
||||
ret = adv7180_mbus_fmt(sd, &format->format);
|
||||
|
||||
if (format->which == V4L2_SUBDEV_FORMAT_ACTIVE) {
|
||||
|
||||
+2
-2
@@ -45,7 +45,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
#define DWC3_GUCTL1_RESUME_OPMODE_HS_HOST BIT(10)
|
||||
|
||||
/* Global Status Register */
|
||||
@@ -1142,10 +1143,12 @@ struct dwc3_scratchpad_array {
|
||||
@@ -1144,10 +1145,12 @@ struct dwc3_scratchpad_array {
|
||||
* generation after resume from suspend.
|
||||
* @ulpi_ext_vbus_drv: Set to confiure the upli chip to drives CPEN pin
|
||||
* VBUS with an external supply.
|
||||
@@ -62,7 +62,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
* @gfladj_refclk_lpm_sel: set if we need to enable SOF/ITP counter
|
||||
* running based on ref_clk
|
||||
* @tx_de_emphasis_quirk: set if we enable Tx de-emphasis quirk
|
||||
@@ -1386,6 +1389,7 @@ struct dwc3 {
|
||||
@@ -1390,6 +1393,7 @@ struct dwc3 {
|
||||
unsigned ulpi_ext_vbus_drv:1;
|
||||
unsigned parkmode_disable_ss_quirk:1;
|
||||
unsigned parkmode_disable_hs_quirk:1;
|
||||
|
||||
+1
-1
@@ -15,7 +15,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
|
||||
--- a/drivers/net/usb/lan78xx.c
|
||||
+++ b/drivers/net/usb/lan78xx.c
|
||||
@@ -2440,7 +2440,26 @@ static int lan78xx_phy_init(struct lan78
|
||||
@@ -2438,7 +2438,26 @@ static int lan78xx_phy_init(struct lan78
|
||||
mii_adv_to_linkmode_adv_t(fc, mii_adv);
|
||||
linkmode_or(phydev->advertising, fc, phydev->advertising);
|
||||
|
||||
|
||||
+2
-2
@@ -102,7 +102,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
/* Read-only, but we adjust it based on mode. */
|
||||
break;
|
||||
|
||||
@@ -1421,10 +1421,11 @@ static int ov5647_init_controls(struct o
|
||||
@@ -1423,10 +1423,11 @@ static int ov5647_init_controls(struct o
|
||||
sensor->mode->pixel_rate, 1,
|
||||
sensor->mode->pixel_rate);
|
||||
|
||||
@@ -116,7 +116,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
hblank);
|
||||
|
||||
sensor->vblank = v4l2_ctrl_new_std(&sensor->ctrls, &ov5647_ctrl_ops,
|
||||
@@ -1458,7 +1459,6 @@ static int ov5647_init_controls(struct o
|
||||
@@ -1460,7 +1461,6 @@ static int ov5647_init_controls(struct o
|
||||
goto handler_free;
|
||||
|
||||
sensor->pixel_rate->flags |= V4L2_CTRL_FLAG_READ_ONLY;
|
||||
|
||||
+4
-4
@@ -70,7 +70,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
@@ -439,6 +451,7 @@ static const struct ov5647_mode ov5647_m
|
||||
.height = 1920,
|
||||
},
|
||||
.pixel_rate = 55000000,
|
||||
.pixel_rate = 58333000,
|
||||
+ .link_freq_index = FREQ_INDEX_VGA,
|
||||
.hts = 1852,
|
||||
.vts = 0x1f8,
|
||||
@@ -91,9 +91,9 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
- v4l2_ctrl_handler_init(&sensor->ctrls, 9);
|
||||
+ v4l2_ctrl_handler_init(&sensor->ctrls, 10);
|
||||
|
||||
v4l2_ctrl_new_std(&sensor->ctrls, &ov5647_ctrl_ops,
|
||||
V4L2_CID_AUTOGAIN, 0, 1, 1, 0);
|
||||
@@ -1302,6 +1317,14 @@ static int ov5647_init_controls(struct o
|
||||
sensor->ctrls.lock = &sensor->lock;
|
||||
|
||||
@@ -1304,6 +1319,14 @@ static int ov5647_init_controls(struct o
|
||||
if (sensor->vflip)
|
||||
sensor->vflip->flags |= V4L2_CTRL_FLAG_MODIFY_LAYOUT;
|
||||
|
||||
|
||||
+2
-2
@@ -57,7 +57,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
#define DWC3_GUCTL1_PARKMODE_DISABLE_SS BIT(17)
|
||||
#define DWC3_GUCTL1_PARKMODE_DISABLE_HS BIT(16)
|
||||
#define DWC3_GUCTL1_PARKMODE_DISABLE_FSLS BIT(15)
|
||||
@@ -1143,6 +1145,8 @@ struct dwc3_scratchpad_array {
|
||||
@@ -1145,6 +1147,8 @@ struct dwc3_scratchpad_array {
|
||||
* generation after resume from suspend.
|
||||
* @ulpi_ext_vbus_drv: Set to confiure the upli chip to drives CPEN pin
|
||||
* VBUS with an external supply.
|
||||
@@ -66,7 +66,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
* @parkmode_disable_ss_quirk: If set, disable park mode feature for all
|
||||
* Superspeed instances.
|
||||
* @parkmode_disable_hs_quirk: If set, disable park mode feature for all
|
||||
@@ -1387,6 +1391,8 @@ struct dwc3 {
|
||||
@@ -1391,6 +1395,8 @@ struct dwc3 {
|
||||
unsigned dis_tx_ipgap_linecheck_quirk:1;
|
||||
unsigned resume_hs_terminations:1;
|
||||
unsigned ulpi_ext_vbus_drv:1;
|
||||
|
||||
+2
-2
@@ -15,7 +15,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
|
||||
--- a/drivers/net/ethernet/cadence/macb_main.c
|
||||
+++ b/drivers/net/ethernet/cadence/macb_main.c
|
||||
@@ -5077,6 +5077,17 @@ static const struct macb_config versal_c
|
||||
@@ -5076,6 +5076,17 @@ static const struct macb_config versal_c
|
||||
.usrio = &macb_default_usrio,
|
||||
};
|
||||
|
||||
@@ -33,7 +33,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
static const struct of_device_id macb_dt_ids[] = {
|
||||
{ .compatible = "cdns,at91sam9260-macb", .data = &at91sam9260_config },
|
||||
{ .compatible = "cdns,macb" },
|
||||
@@ -5097,6 +5108,7 @@ static const struct of_device_id macb_dt
|
||||
@@ -5096,6 +5107,7 @@ static const struct of_device_id macb_dt
|
||||
{ .compatible = "microchip,mpfs-macb", .data = &mpfs_config },
|
||||
{ .compatible = "microchip,sama7g5-gem", .data = &sama7g5_gem_config },
|
||||
{ .compatible = "microchip,sama7g5-emac", .data = &sama7g5_emac_config },
|
||||
|
||||
+1
-1
@@ -12,7 +12,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
|
||||
--- a/drivers/pci/probe.c
|
||||
+++ b/drivers/pci/probe.c
|
||||
@@ -992,9 +992,6 @@ static int pci_register_host_bridge(stru
|
||||
@@ -994,9 +994,6 @@ static int pci_register_host_bridge(stru
|
||||
else
|
||||
pr_info("PCI host bridge to bus %s\n", name);
|
||||
|
||||
|
||||
+2
-2
@@ -301,7 +301,7 @@ Signed-off-by: Maíra Canal <mcanal@igalia.com>
|
||||
mmu_debug = V3D_READ(V3D_MMU_DEBUG_INFO);
|
||||
mask = DMA_BIT_MASK(30 + V3D_GET_FIELD(mmu_debug, V3D_MMU_PA_WIDTH));
|
||||
ret = dma_set_mask_and_coherent(dev, mask);
|
||||
@@ -325,6 +366,11 @@ static int v3d_platform_drm_probe(struct
|
||||
@@ -327,6 +368,11 @@ static int v3d_platform_drm_probe(struct
|
||||
ident1 = V3D_READ(V3D_HUB_IDENT1);
|
||||
v3d->ver = (V3D_GET_FIELD(ident1, V3D_HUB_IDENT1_TVER) * 10 +
|
||||
V3D_GET_FIELD(ident1, V3D_HUB_IDENT1_REV));
|
||||
@@ -313,7 +313,7 @@ Signed-off-by: Maíra Canal <mcanal@igalia.com>
|
||||
v3d->cores = V3D_GET_FIELD(ident1, V3D_HUB_IDENT1_NCORES);
|
||||
WARN_ON(v3d->cores > 1); /* multicore not yet implemented */
|
||||
|
||||
@@ -377,7 +423,7 @@ static int v3d_platform_drm_probe(struct
|
||||
@@ -379,7 +425,7 @@ static int v3d_platform_drm_probe(struct
|
||||
v3d->clk_down_rate =
|
||||
(clk_get_rate(clk_get_parent(v3d->clk)) / (1 << 4)) + 10000;
|
||||
|
||||
|
||||
+1
-1
@@ -29,7 +29,7 @@ Signed-off-by: Maíra Canal <mcanal@igalia.com>
|
||||
|
||||
--- a/drivers/gpu/drm/v3d/v3d_drv.c
|
||||
+++ b/drivers/gpu/drm/v3d/v3d_drv.c
|
||||
@@ -485,6 +485,8 @@ static void v3d_platform_drm_remove(stru
|
||||
@@ -487,6 +487,8 @@ static void v3d_platform_drm_remove(stru
|
||||
dma_free_wc(v3d->drm.dev, 4096, v3d->mmu_scratch,
|
||||
v3d->mmu_scratch_paddr);
|
||||
|
||||
|
||||
+1
-1
@@ -18,7 +18,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
|
||||
--- a/drivers/pci/quirks.c
|
||||
+++ b/drivers/pci/quirks.c
|
||||
@@ -6256,6 +6256,22 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_I
|
||||
@@ -6283,6 +6283,22 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_I
|
||||
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x56b1, aspm_l1_acceptable_latency);
|
||||
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x56c0, aspm_l1_acceptable_latency);
|
||||
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x56c1, aspm_l1_acceptable_latency);
|
||||
|
||||
+1
-26
@@ -17,16 +17,7 @@ Signed-off-by: Josh Martinez <8892161+joshermar@users.noreply.github.com>
|
||||
|
||||
--- a/drivers/hwmon/aht10.c
|
||||
+++ b/drivers/hwmon/aht10.c
|
||||
@@ -37,6 +37,8 @@
|
||||
#define AHT10_CMD_MEAS 0b10101100
|
||||
#define AHT10_CMD_RST 0b10111010
|
||||
|
||||
+#define AHT20_CMD_INIT 0b10111110
|
||||
+
|
||||
/*
|
||||
* Flags in the answer byte/command
|
||||
*/
|
||||
@@ -59,6 +61,7 @@ MODULE_DEVICE_TABLE(i2c, aht10_id);
|
||||
@@ -64,6 +64,7 @@ MODULE_DEVICE_TABLE(i2c, aht10_id);
|
||||
|
||||
static const struct of_device_id aht10_of_id[] = {
|
||||
{ .compatible = "aosong,aht10", },
|
||||
@@ -34,19 +25,3 @@ Signed-off-by: Josh Martinez <8892161+joshermar@users.noreply.github.com>
|
||||
{ }
|
||||
};
|
||||
MODULE_DEVICE_TABLE(of, aht10_of_id);
|
||||
@@ -107,8 +110,13 @@ struct aht10_data {
|
||||
*/
|
||||
static int aht10_init(struct aht10_data *data)
|
||||
{
|
||||
- const u8 cmd_init[] = {AHT10_CMD_INIT, AHT10_CAL_ENABLED | AHT10_MODE_CYC,
|
||||
- 0x00};
|
||||
+ u8 cmd_init[] = {AHT10_CMD_INIT, AHT10_CAL_ENABLED | AHT10_MODE_CYC, 0x00};
|
||||
+
|
||||
+ if (data->crc8) { /* AHT20 */
|
||||
+ cmd_init[0] = AHT20_CMD_INIT;
|
||||
+ cmd_init[1] = AHT10_CAL_ENABLED;
|
||||
+ }
|
||||
+
|
||||
int res;
|
||||
u8 status;
|
||||
struct i2c_client *client = data->client;
|
||||
|
||||
+1
-1
@@ -17,7 +17,7 @@ Signed-off-by: Maíra Canal <mcanal@igalia.com>
|
||||
|
||||
--- a/drivers/gpu/drm/v3d/v3d_drv.c
|
||||
+++ b/drivers/gpu/drm/v3d/v3d_drv.c
|
||||
@@ -395,21 +395,18 @@ static int v3d_platform_drm_probe(struct
|
||||
@@ -397,21 +397,18 @@ static int v3d_platform_drm_probe(struct
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
static int spinand_read_reg_op(struct spinand_device *spinand, u8 reg, u8 *val)
|
||||
{
|
||||
@@ -1596,6 +1597,7 @@ static int spinand_probe(struct spi_mem
|
||||
@@ -1604,6 +1605,7 @@ static int spinand_probe(struct spi_mem
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
ret = mtd_device_register(mtd, NULL, 0);
|
||||
if (ret)
|
||||
goto err_spinand_cleanup;
|
||||
@@ -1603,6 +1605,7 @@ static int spinand_probe(struct spi_mem
|
||||
@@ -1611,6 +1613,7 @@ static int spinand_probe(struct spi_mem
|
||||
return 0;
|
||||
|
||||
err_spinand_cleanup:
|
||||
@@ -24,7 +24,7 @@
|
||||
spinand_cleanup(spinand);
|
||||
|
||||
return ret;
|
||||
@@ -1621,6 +1624,7 @@ static int spinand_remove(struct spi_mem
|
||||
@@ -1629,6 +1632,7 @@ static int spinand_remove(struct spi_mem
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
#define PCIE_AHB_TRANS_BASE0_L 0x438
|
||||
#define PCIE_AHB_TRANS_BASE0_H 0x43c
|
||||
#define AHB2PCIE_SIZE(x) ((x) & GENMASK(4, 0))
|
||||
@@ -748,6 +754,86 @@ static int mtk_pcie_startup_port_v2(stru
|
||||
@@ -750,6 +756,86 @@ static int mtk_pcie_startup_port_v2(stru
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -132,7 +132,7 @@
|
||||
static void __iomem *mtk_pcie_map_bus(struct pci_bus *bus,
|
||||
unsigned int devfn, int where)
|
||||
{
|
||||
@@ -1114,6 +1200,20 @@ static int mtk_pcie_probe(struct platfor
|
||||
@@ -1116,6 +1202,20 @@ static int mtk_pcie_probe(struct platfor
|
||||
if (err)
|
||||
goto put_resources;
|
||||
|
||||
@@ -153,7 +153,7 @@
|
||||
return 0;
|
||||
|
||||
put_resources:
|
||||
@@ -1223,12 +1323,19 @@ static const struct mtk_pcie_soc mtk_pci
|
||||
@@ -1225,12 +1325,19 @@ static const struct mtk_pcie_soc mtk_pci
|
||||
.setup_irq = mtk_pcie_setup_irq,
|
||||
};
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ Suggested-by: Bjorn Helgaas <helgaas@kernel.org>
|
||||
Signed-off-by: Ahmed Naseef <naseefkm@gmail.com>
|
||||
--- a/drivers/pci/probe.c
|
||||
+++ b/drivers/pci/probe.c
|
||||
@@ -351,6 +351,9 @@ static void pci_read_bridge_io(struct pc
|
||||
@@ -349,6 +349,9 @@ static void pci_read_bridge_io(struct pc
|
||||
unsigned long io_mask, io_granularity, base, limit;
|
||||
struct pci_bus_region region;
|
||||
|
||||
@@ -26,7 +26,7 @@ Signed-off-by: Ahmed Naseef <naseefkm@gmail.com>
|
||||
io_mask = PCI_IO_RANGE_MASK;
|
||||
io_granularity = 0x1000;
|
||||
if (dev->io_window_1k) {
|
||||
@@ -412,6 +415,9 @@ static void pci_read_bridge_mmio_pref(st
|
||||
@@ -410,6 +413,9 @@ static void pci_read_bridge_mmio_pref(st
|
||||
pci_bus_addr_t base, limit;
|
||||
struct pci_bus_region region;
|
||||
|
||||
|
||||
+4
-4
@@ -64,7 +64,7 @@ Signed-off-by: Stephen Boyd <sboyd@kernel.org>
|
||||
{
|
||||
--- a/include/linux/clk.h
|
||||
+++ b/include/linux/clk.h
|
||||
@@ -496,11 +496,13 @@ int __must_check devm_clk_bulk_get_all(s
|
||||
@@ -520,11 +520,13 @@ int __must_check devm_clk_bulk_get_all(s
|
||||
struct clk_bulk_data **clks);
|
||||
|
||||
/**
|
||||
@@ -80,7 +80,7 @@ Signed-off-by: Stephen Boyd <sboyd@kernel.org>
|
||||
*
|
||||
* This helper function allows drivers to get all clocks of the
|
||||
* consumer and enables them in one operation with management.
|
||||
@@ -508,8 +510,8 @@ int __must_check devm_clk_bulk_get_all(s
|
||||
@@ -532,8 +534,8 @@ int __must_check devm_clk_bulk_get_all(s
|
||||
* is unbound.
|
||||
*/
|
||||
|
||||
@@ -91,7 +91,7 @@ Signed-off-by: Stephen Boyd <sboyd@kernel.org>
|
||||
|
||||
/**
|
||||
* devm_clk_get - lookup and obtain a managed reference to a clock producer.
|
||||
@@ -1034,7 +1036,7 @@ static inline int __must_check devm_clk_
|
||||
@@ -1041,7 +1043,7 @@ static inline int __must_check devm_clk_
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -100,7 +100,7 @@ Signed-off-by: Stephen Boyd <sboyd@kernel.org>
|
||||
struct clk_bulk_data **clks)
|
||||
{
|
||||
return 0;
|
||||
@@ -1136,6 +1138,15 @@ static inline void clk_restore_context(v
|
||||
@@ -1136,6 +1138,15 @@ static inline struct clk *clk_get_sys(co
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
-73
@@ -1,73 +0,0 @@
|
||||
From 9fb6fef0fb49124291837af1da5028f79d53f98e Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= <ilpo.jarvinen@linux.intel.com>
|
||||
Date: Fri, 14 Jun 2024 13:06:03 +0300
|
||||
Subject: [PATCH] resource: Add resource set range and size helpers
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Setting the end address for a resource with a given size lacks a helper and
|
||||
is therefore coded manually unlike the getter side which has a helper for
|
||||
resource size calculation. Also, almost all callsites that calculate the
|
||||
end address for a resource also set the start address right before it like
|
||||
this:
|
||||
|
||||
res->start = start_addr;
|
||||
res->end = res->start + size - 1;
|
||||
|
||||
Add resource_set_range(res, start_addr, size) that sets the start address
|
||||
and calculates the end address to simplify this often repeated fragment.
|
||||
|
||||
Also add resource_set_size() for the cases where setting the start address
|
||||
of the resource is not necessary but mention in its kerneldoc that
|
||||
resource_set_range() is preferred when setting both addresses.
|
||||
|
||||
Link: https://lore.kernel.org/r/20240614100606.15830-2-ilpo.jarvinen@linux.intel.com
|
||||
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
|
||||
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
|
||||
Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
|
||||
---
|
||||
include/linux/ioport.h | 32 ++++++++++++++++++++++++++++++++
|
||||
1 file changed, 32 insertions(+)
|
||||
|
||||
--- a/include/linux/ioport.h
|
||||
+++ b/include/linux/ioport.h
|
||||
@@ -249,6 +249,38 @@ struct resource *lookup_resource(struct
|
||||
int adjust_resource(struct resource *res, resource_size_t start,
|
||||
resource_size_t size);
|
||||
resource_size_t resource_alignment(struct resource *res);
|
||||
+
|
||||
+/**
|
||||
+ * resource_set_size - Calculate resource end address from size and start
|
||||
+ * @res: Resource descriptor
|
||||
+ * @size: Size of the resource
|
||||
+ *
|
||||
+ * Calculate the end address for @res based on @size.
|
||||
+ *
|
||||
+ * Note: The start address of @res must be set when calling this function.
|
||||
+ * Prefer resource_set_range() if setting both the start address and @size.
|
||||
+ */
|
||||
+static inline void resource_set_size(struct resource *res, resource_size_t size)
|
||||
+{
|
||||
+ res->end = res->start + size - 1;
|
||||
+}
|
||||
+
|
||||
+/**
|
||||
+ * resource_set_range - Set resource start and end addresses
|
||||
+ * @res: Resource descriptor
|
||||
+ * @start: Start address for the resource
|
||||
+ * @size: Size of the resource
|
||||
+ *
|
||||
+ * Set @res start address and calculate the end address based on @size.
|
||||
+ */
|
||||
+static inline void resource_set_range(struct resource *res,
|
||||
+ resource_size_t start,
|
||||
+ resource_size_t size)
|
||||
+{
|
||||
+ res->start = start;
|
||||
+ resource_set_size(res, size);
|
||||
+}
|
||||
+
|
||||
static inline resource_size_t resource_size(const struct resource *res)
|
||||
{
|
||||
return res->end - res->start + 1;
|
||||
+1
-1
@@ -26,7 +26,7 @@ Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
|
||||
obj-$(CONFIG_MTD_SPI_NAND) += spinand.o
|
||||
--- a/drivers/mtd/nand/spi/core.c
|
||||
+++ b/drivers/mtd/nand/spi/core.c
|
||||
@@ -1115,6 +1115,7 @@ static const struct spinand_manufacturer
|
||||
@@ -1123,6 +1123,7 @@ static const struct spinand_manufacturer
|
||||
&alliancememory_spinand_manufacturer,
|
||||
&ato_spinand_manufacturer,
|
||||
&esmt_c8_spinand_manufacturer,
|
||||
|
||||
+4
-4
@@ -14,7 +14,7 @@ Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
|
||||
|
||||
--- a/drivers/mtd/nand/spi/core.c
|
||||
+++ b/drivers/mtd/nand/spi/core.c
|
||||
@@ -1028,18 +1028,13 @@ static int spinand_create_dirmap(struct
|
||||
@@ -1036,18 +1036,13 @@ static int spinand_create_dirmap(struct
|
||||
unsigned int plane)
|
||||
{
|
||||
struct nand_device *nand = spinand_to_nand(spinand);
|
||||
@@ -35,7 +35,7 @@ Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
|
||||
info.op_tmpl = *spinand->op_templates.update_cache;
|
||||
desc = devm_spi_mem_dirmap_create(&spinand->spimem->spi->dev,
|
||||
spinand->spimem, &info);
|
||||
@@ -1048,6 +1043,8 @@ static int spinand_create_dirmap(struct
|
||||
@@ -1056,6 +1051,8 @@ static int spinand_create_dirmap(struct
|
||||
|
||||
spinand->dirmaps[plane].wdesc = desc;
|
||||
|
||||
@@ -44,7 +44,7 @@ Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
|
||||
info.op_tmpl = *spinand->op_templates.read_cache;
|
||||
desc = devm_spi_mem_dirmap_create(&spinand->spimem->spi->dev,
|
||||
spinand->spimem, &info);
|
||||
@@ -1063,6 +1060,7 @@ static int spinand_create_dirmap(struct
|
||||
@@ -1071,6 +1068,7 @@ static int spinand_create_dirmap(struct
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -52,7 +52,7 @@ Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
|
||||
info.op_tmpl = *spinand->op_templates.update_cache;
|
||||
info.op_tmpl.data.ecc = true;
|
||||
desc = devm_spi_mem_dirmap_create(&spinand->spimem->spi->dev,
|
||||
@@ -1072,6 +1070,8 @@ static int spinand_create_dirmap(struct
|
||||
@@ -1080,6 +1078,8 @@ static int spinand_create_dirmap(struct
|
||||
|
||||
spinand->dirmaps[plane].wdesc_ecc = desc;
|
||||
|
||||
|
||||
+3
-3
@@ -29,7 +29,7 @@ Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
|
||||
|
||||
--- a/drivers/mtd/nand/spi/core.c
|
||||
+++ b/drivers/mtd/nand/spi/core.c
|
||||
@@ -1024,6 +1024,39 @@ static int spinand_mtd_block_isreserved(
|
||||
@@ -1032,6 +1032,39 @@ static int spinand_mtd_block_isreserved(
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -69,7 +69,7 @@ Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
|
||||
static int spinand_create_dirmap(struct spinand_device *spinand,
|
||||
unsigned int plane)
|
||||
{
|
||||
@@ -1043,11 +1076,8 @@ static int spinand_create_dirmap(struct
|
||||
@@ -1051,11 +1084,8 @@ static int spinand_create_dirmap(struct
|
||||
|
||||
spinand->dirmaps[plane].wdesc = desc;
|
||||
|
||||
@@ -82,7 +82,7 @@ Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
|
||||
if (IS_ERR(desc))
|
||||
return PTR_ERR(desc);
|
||||
|
||||
@@ -1070,12 +1100,9 @@ static int spinand_create_dirmap(struct
|
||||
@@ -1078,12 +1108,9 @@ static int spinand_create_dirmap(struct
|
||||
|
||||
spinand->dirmaps[plane].wdesc_ecc = desc;
|
||||
|
||||
|
||||
+1
-1
@@ -40,7 +40,7 @@ Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
|
||||
}
|
||||
|
||||
if (req->datalen)
|
||||
@@ -841,10 +849,19 @@ static int spinand_mtd_read(struct mtd_i
|
||||
@@ -849,10 +857,19 @@ static int spinand_mtd_read(struct mtd_i
|
||||
|
||||
old_stats = mtd->ecc_stats;
|
||||
|
||||
|
||||
+2
-2
@@ -34,7 +34,7 @@ Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
|
||||
memset(spinand->oobbuf, 0xff, nanddev_per_page_oobsize(nand));
|
||||
|
||||
/* Only enable or disable the engine */
|
||||
@@ -921,9 +924,17 @@ static bool spinand_isbad(struct nand_de
|
||||
@@ -929,9 +932,17 @@ static bool spinand_isbad(struct nand_de
|
||||
.oobbuf.in = marker,
|
||||
.mode = MTD_OPS_RAW,
|
||||
};
|
||||
@@ -53,7 +53,7 @@ Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
|
||||
if (marker[0] != 0xff || marker[1] != 0xff)
|
||||
return true;
|
||||
|
||||
@@ -966,7 +977,14 @@ static int spinand_markbad(struct nand_d
|
||||
@@ -974,7 +985,14 @@ static int spinand_markbad(struct nand_d
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
|
||||
+1
-1
@@ -31,7 +31,7 @@ Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
|
||||
obj-$(CONFIG_MTD_SPI_NAND) += spinand.o
|
||||
--- a/drivers/mtd/nand/spi/core.c
|
||||
+++ b/drivers/mtd/nand/spi/core.c
|
||||
@@ -1183,6 +1183,7 @@ static const struct spinand_manufacturer
|
||||
@@ -1191,6 +1191,7 @@ static const struct spinand_manufacturer
|
||||
¯onix_spinand_manufacturer,
|
||||
µn_spinand_manufacturer,
|
||||
¶gon_spinand_manufacturer,
|
||||
|
||||
+1
-1
@@ -19,7 +19,7 @@ Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
|
||||
|
||||
--- a/drivers/mtd/nand/spi/core.c
|
||||
+++ b/drivers/mtd/nand/spi/core.c
|
||||
@@ -1176,6 +1176,7 @@ static const struct nand_ops spinand_ops
|
||||
@@ -1184,6 +1184,7 @@ static const struct nand_ops spinand_ops
|
||||
static const struct spinand_manufacturer *spinand_manufacturers[] = {
|
||||
&alliancememory_spinand_manufacturer,
|
||||
&ato_spinand_manufacturer,
|
||||
|
||||
+1
-1
@@ -19,7 +19,7 @@ Signed-off-by: Jens Axboe <axboe@kernel.dk>
|
||||
|
||||
--- a/block/blk.h
|
||||
+++ b/block/blk.h
|
||||
@@ -570,6 +570,7 @@ void blk_free_ext_minor(unsigned int min
|
||||
@@ -574,6 +574,7 @@ void blk_free_ext_minor(unsigned int min
|
||||
#define ADDPART_FLAG_NONE 0
|
||||
#define ADDPART_FLAG_RAID 1
|
||||
#define ADDPART_FLAG_WHOLEDISK 2
|
||||
|
||||
+4
-4
@@ -59,7 +59,7 @@ Signed-off-by: Bevan Weiss <bevan.weiss@gmail.com>
|
||||
if (!count)
|
||||
count = scnprintf(buf, len, "no parameters");
|
||||
else
|
||||
@@ -1631,6 +1655,9 @@ static int set_machine_constraints(struc
|
||||
@@ -1636,6 +1660,9 @@ static int set_machine_constraints(struc
|
||||
rdev->last_off = ktime_get();
|
||||
}
|
||||
|
||||
@@ -69,7 +69,7 @@ Signed-off-by: Bevan Weiss <bevan.weiss@gmail.com>
|
||||
print_constraints(rdev);
|
||||
return 0;
|
||||
}
|
||||
@@ -4646,6 +4673,87 @@ int regulator_get_current_limit(struct r
|
||||
@@ -4651,6 +4678,87 @@ int regulator_get_current_limit(struct r
|
||||
EXPORT_SYMBOL_GPL(regulator_get_current_limit);
|
||||
|
||||
/**
|
||||
@@ -157,7 +157,7 @@ Signed-off-by: Bevan Weiss <bevan.weiss@gmail.com>
|
||||
* regulator_set_mode - set regulator operating mode
|
||||
* @regulator: regulator source
|
||||
* @mode: operating mode - one of the REGULATOR_MODE constants
|
||||
@@ -5283,6 +5391,8 @@ static struct attribute *regulator_dev_a
|
||||
@@ -5288,6 +5396,8 @@ static struct attribute *regulator_dev_a
|
||||
&dev_attr_suspend_standby_mode.attr,
|
||||
&dev_attr_suspend_mem_mode.attr,
|
||||
&dev_attr_suspend_disk_mode.attr,
|
||||
@@ -166,7 +166,7 @@ Signed-off-by: Bevan Weiss <bevan.weiss@gmail.com>
|
||||
NULL
|
||||
};
|
||||
|
||||
@@ -5364,6 +5474,10 @@ static umode_t regulator_attr_is_visible
|
||||
@@ -5369,6 +5479,10 @@ static umode_t regulator_attr_is_visible
|
||||
attr == &dev_attr_suspend_disk_mode.attr)
|
||||
return ops->set_suspend_mode ? mode : 0;
|
||||
|
||||
|
||||
+1
-1
@@ -18,7 +18,7 @@ Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
|
||||
|
||||
--- a/drivers/base/power/wakeirq.c
|
||||
+++ b/drivers/base/power/wakeirq.c
|
||||
@@ -103,6 +103,32 @@ void dev_pm_clear_wake_irq(struct device
|
||||
@@ -106,6 +106,32 @@ void dev_pm_clear_wake_irq(struct device
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(dev_pm_clear_wake_irq);
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user