mirror of
git://git.openwrt.org/openwrt/openwrt.git
synced 2026-06-12 03:47:26 -04:00
Compare commits
126 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
761ee326d7 | ||
|
|
539228933c | ||
|
|
fc876e9d50 | ||
|
|
29f3f276a8 | ||
|
|
242bca458f | ||
|
|
5509043972 | ||
|
|
47b419b7af | ||
|
|
6179b450fb | ||
|
|
d06733b599 | ||
|
|
235d6eec75 | ||
|
|
ba84c3640b | ||
|
|
6dcf9882e4 | ||
|
|
b887384eb0 | ||
|
|
50243ef2d8 | ||
|
|
6747179486 | ||
|
|
d4a2742822 | ||
|
|
ae5488a5cc | ||
|
|
db1f15d576 | ||
|
|
f316798bda | ||
|
|
565809404d | ||
|
|
56e044645d | ||
|
|
97bb0a4360 | ||
|
|
8204c594ce | ||
|
|
187213c669 | ||
|
|
ad51fee6c9 | ||
|
|
ae242eb34e | ||
|
|
ea7d1f0913 | ||
|
|
5bd18cb7c7 | ||
|
|
040588ca75 | ||
|
|
d0179c8176 | ||
|
|
d903a23de4 | ||
|
|
bc48bf7013 | ||
|
|
2c36ed03e5 | ||
|
|
bd9b964b24 | ||
|
|
75d2f9f1c8 | ||
|
|
898c336e89 | ||
|
|
fe37f2e52a | ||
|
|
6fc7344c93 | ||
|
|
c678cfaa5b | ||
|
|
b0d7794a95 | ||
|
|
fe5e590b46 | ||
|
|
f75d7a5954 | ||
|
|
f932613def | ||
|
|
1417fdfc90 | ||
|
|
6b0bbe3223 | ||
|
|
876932b850 | ||
|
|
fc75f87823 | ||
|
|
3b3d16ec49 | ||
|
|
417e79967c | ||
|
|
3430dee9d3 | ||
|
|
a4241700a9 | ||
|
|
46ee3045b9 | ||
|
|
deb967324c | ||
|
|
6c51ea2eea | ||
|
|
87bc997e53 | ||
|
|
b4728c3e5a | ||
|
|
b0834b0265 | ||
|
|
880258bb1d | ||
|
|
dfe1b5e82a | ||
|
|
271c9ac39a | ||
|
|
730df799ee | ||
|
|
760721d6f0 | ||
|
|
829ff45697 | ||
|
|
f15fa8b343 | ||
|
|
86dfa17101 | ||
|
|
dfdeda4b85 | ||
|
|
dec59db8fb | ||
|
|
94751c9959 | ||
|
|
066e418c70 | ||
|
|
2820ab6a28 | ||
|
|
16810687a2 | ||
|
|
677edb0bbc | ||
|
|
f856aff0f6 | ||
|
|
dc84b287b5 | ||
|
|
081ff3eee2 | ||
|
|
775f9d56ce | ||
|
|
6935d0fac5 | ||
|
|
7aac01cf88 | ||
|
|
4e41f2385d | ||
|
|
d62241cf5a | ||
|
|
1292a493a6 | ||
|
|
4f2c6dbc39 | ||
|
|
b5ad709554 | ||
|
|
55af6e1af0 | ||
|
|
125a2e1311 | ||
|
|
515ffb40cb | ||
|
|
b551214c9d | ||
|
|
239cdcd90c | ||
|
|
db554fd450 | ||
|
|
6d5c434b14 | ||
|
|
a281c02288 | ||
|
|
d557e23932 | ||
|
|
769253775c | ||
|
|
cafbecf853 | ||
|
|
265d9112b3 | ||
|
|
cd9998ef1b | ||
|
|
0edb5d4fc0 | ||
|
|
25f85d4293 | ||
|
|
e3b120f682 | ||
|
|
b389c3d66f | ||
|
|
33b45c0a0e | ||
|
|
e70669e690 | ||
|
|
182af4caea | ||
|
|
28d4b213bc | ||
|
|
1a75174b9b | ||
|
|
cb8b632f1a | ||
|
|
0d428857d5 | ||
|
|
4f0e281775 | ||
|
|
607091d4fe | ||
|
|
92c2a4cf93 | ||
|
|
9bc6a18ede | ||
|
|
c46b689149 | ||
|
|
088bb1e12e | ||
|
|
e0e022e612 | ||
|
|
676e2f7192 | ||
|
|
0f30b8d2d2 | ||
|
|
1efcdb2446 | ||
|
|
fb44dd7314 | ||
|
|
1ec1aa9cc7 | ||
|
|
4d89918a98 | ||
|
|
fa0a7e00e8 | ||
|
|
87477c756e | ||
|
|
5332351821 | ||
|
|
6e561fe0a1 | ||
|
|
1d9f6d389e | ||
|
|
dced292d68 |
@@ -1,4 +1,4 @@
|
||||
src-git packages https://git.openwrt.org/feed/packages.git^b5ed85f6e94aa08de1433272dc007550f4a28201
|
||||
src-git luci https://git.openwrt.org/project/luci.git^63ba3cba5b7bfb803a875d4d8f01248634687fd5
|
||||
src-git routing https://git.openwrt.org/feed/routing.git^e351d1e623e9ef2ab78f28cb1ce8d271d28c902d
|
||||
src-git packages https://git.openwrt.org/feed/packages.git^e59d9ef823bcb581e3939789b4eaeaf900b79759
|
||||
src-git luci https://git.openwrt.org/project/luci.git^7ce34fe1a53db10bb9dd0223467f5bb71a29a659
|
||||
src-git routing https://git.openwrt.org/feed/routing.git^4a06b031dc16628c9b8351ac297ecdbc92695dc2
|
||||
src-git telephony https://git.openwrt.org/feed/telephony.git^98c8a5aa4624312ed758e2e2b6d4039050a1649d
|
||||
|
||||
@@ -68,6 +68,8 @@ ifeq ($(HOST_USE_NINJA),1)
|
||||
define Host/Uninstall/Default
|
||||
+$(NINJA) -C $(HOST_CMAKE_BINARY_DIR) uninstall
|
||||
endef
|
||||
else
|
||||
CMAKE_HOST_OPTIONS += -DCMAKE_GENERATOR="Unix Makefiles"
|
||||
endif
|
||||
|
||||
ifeq ($(PKG_USE_NINJA),1)
|
||||
@@ -80,6 +82,8 @@ ifeq ($(PKG_USE_NINJA),1)
|
||||
define Build/Install/Default
|
||||
+DESTDIR="$(PKG_INSTALL_DIR)" $(NINJA) -C $(CMAKE_BINARY_DIR) install
|
||||
endef
|
||||
else
|
||||
CMAKE_OPTIONS += -DCMAKE_GENERATOR="Unix Makefiles"
|
||||
endif
|
||||
|
||||
define Build/Configure/Default
|
||||
|
||||
@@ -33,7 +33,7 @@ define FeedSourcesAppend
|
||||
echo 'src/gz %d_core %U/targets/%S/packages'; \
|
||||
$(strip $(if $(CONFIG_PER_FEED_REPO), \
|
||||
echo 'src/gz %d_base %U/packages/%A/base'; \
|
||||
$(if $(filter %SNAPSHOT-y,$(VERSION_NUMBER)-$(CONFIG_BUILDBOT)), \
|
||||
$(if $(CONFIG_BUILDBOT), \
|
||||
echo 'src/gz %d_kmods %U/targets/%S/kmods/$(LINUX_VERSION)-$(LINUX_RELEASE)-$(LINUX_VERMAGIC)';) \
|
||||
$(foreach feed,$(FEEDS_AVAILABLE), \
|
||||
$(if $(CONFIG_FEED_$(feed)), \
|
||||
|
||||
@@ -487,6 +487,15 @@ endef
|
||||
|
||||
define Device/Check/Common
|
||||
_PROFILE_SET = $$(strip $$(foreach profile,$$(PROFILES) DEVICE_$(1),$$(call DEVICE_CHECK_PROFILE,$$(profile))))
|
||||
# Check if device is disabled and if so do not mark to be installed when ImageBuilder is used
|
||||
ifeq ($(IB),1)
|
||||
ifeq ($$(DEFAULT),n)
|
||||
_PROFILE_SET :=
|
||||
endif
|
||||
ifeq ($$(BROKEN),y)
|
||||
_PROFILE_SET :=
|
||||
endif
|
||||
endif
|
||||
DEVICE_PACKAGES += $$(call extra_packages,$$(DEVICE_PACKAGES))
|
||||
ifdef TARGET_PER_DEVICE_ROOTFS
|
||||
$$(eval $$(call merge_packages,_PACKAGES,$$(DEVICE_PACKAGES) $$(call DEVICE_EXTRA_PACKAGES,$(1))))
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
LINUX_VERSION-5.15 = .167
|
||||
LINUX_KERNEL_HASH-5.15.167 = b1751f18ece3df08d502dd87a9ab1a317dc0f9486355bf8ee62ba6af0b35da30
|
||||
LINUX_VERSION-5.15 = .189
|
||||
LINUX_KERNEL_HASH-5.15.189 = e3d0025b87278e14733cb326700f17c7cceb54d920622b0d5fcd58a88c6850c3
|
||||
|
||||
@@ -176,6 +176,7 @@ $(eval $(call SetupHostCommand,perl,Please install Perl 5.x, \
|
||||
perl --version | grep "perl.*v5"))
|
||||
|
||||
$(eval $(call SetupHostCommand,python,Please install Python >= 3.6, \
|
||||
python3.12 -V 2>&1 | grep 'Python 3', \
|
||||
python3.11 -V 2>&1 | grep 'Python 3', \
|
||||
python3.10 -V 2>&1 | grep 'Python 3', \
|
||||
python3.9 -V 2>&1 | grep 'Python 3', \
|
||||
@@ -185,6 +186,7 @@ $(eval $(call SetupHostCommand,python,Please install Python >= 3.6, \
|
||||
python3 -V 2>&1 | grep -E 'Python 3\.([6-9]|[0-9][0-9])\.?'))
|
||||
|
||||
$(eval $(call SetupHostCommand,python3,Please install Python >= 3.6, \
|
||||
python3.12 -V 2>&1 | grep 'Python 3', \
|
||||
python3.11 -V 2>&1 | grep 'Python 3', \
|
||||
python3.10 -V 2>&1 | grep 'Python 3', \
|
||||
python3.9 -V 2>&1 | grep 'Python 3', \
|
||||
@@ -195,7 +197,8 @@ $(eval $(call SetupHostCommand,python3,Please install Python >= 3.6, \
|
||||
|
||||
$(eval $(call TestHostCommand,python3-distutils, \
|
||||
Please install the Python3 distutils module, \
|
||||
$(STAGING_DIR_HOST)/bin/python3 -c 'from distutils import util'))
|
||||
printf 'from sys import version_info\nif version_info < (3, 12):\n\tfrom distutils import util' | \
|
||||
$(STAGING_DIR_HOST)/bin/python3 -))
|
||||
|
||||
$(eval $(call TestHostCommand,python3-stdlib, \
|
||||
Please install the Python3 stdlib module, \
|
||||
|
||||
@@ -23,13 +23,13 @@ PKG_CONFIG_DEPENDS += \
|
||||
sanitize = $(call tolower,$(subst _,-,$(subst $(space),-,$(1))))
|
||||
|
||||
VERSION_NUMBER:=$(call qstrip,$(CONFIG_VERSION_NUMBER))
|
||||
VERSION_NUMBER:=$(if $(VERSION_NUMBER),$(VERSION_NUMBER),23.05.5)
|
||||
VERSION_NUMBER:=$(if $(VERSION_NUMBER),$(VERSION_NUMBER),23.05.6)
|
||||
|
||||
VERSION_CODE:=$(call qstrip,$(CONFIG_VERSION_CODE))
|
||||
VERSION_CODE:=$(if $(VERSION_CODE),$(VERSION_CODE),r24106-10cc5fcd00)
|
||||
VERSION_CODE:=$(if $(VERSION_CODE),$(VERSION_CODE),r24232-539228933c)
|
||||
|
||||
VERSION_REPO:=$(call qstrip,$(CONFIG_VERSION_REPO))
|
||||
VERSION_REPO:=$(if $(VERSION_REPO),$(VERSION_REPO),https://downloads.openwrt.org/releases/23.05.5)
|
||||
VERSION_REPO:=$(if $(VERSION_REPO),$(VERSION_REPO),https://downloads.openwrt.org/releases/23.05.6)
|
||||
|
||||
VERSION_DIST:=$(call qstrip,$(CONFIG_VERSION_DIST))
|
||||
VERSION_DIST:=$(if $(VERSION_DIST),$(VERSION_DIST),OpenWrt)
|
||||
|
||||
@@ -190,7 +190,7 @@ if VERSIONOPT
|
||||
config VERSION_REPO
|
||||
string
|
||||
prompt "Release repository"
|
||||
default "https://downloads.openwrt.org/releases/23.05.5"
|
||||
default "https://downloads.openwrt.org/releases/23.05.6"
|
||||
help
|
||||
This is the repository address embedded in the image, it defaults
|
||||
to the trunk snapshot repo; the url may contain the following placeholders:
|
||||
|
||||
@@ -73,6 +73,8 @@ endef
|
||||
|
||||
HOST_BUILD_PREFIX := $(STAGING_DIR_HOST)
|
||||
|
||||
HOST_CFLAGS +=-std=gnu17
|
||||
|
||||
CONFIGURE_VARS += \
|
||||
grub_build_mkfont_excuse="don't want fonts"
|
||||
|
||||
|
||||
@@ -119,7 +119,8 @@ domywifi,dw33d)
|
||||
glinet,gl-ar150)
|
||||
ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x8000" "0x10000"
|
||||
;;
|
||||
huawei,ap5030dn)
|
||||
huawei,ap5030dn|\
|
||||
huawei,ap6010dn)
|
||||
ubootenv_add_uci_config "/dev/mtd3" "0x0" "0x20000" "0x20000"
|
||||
;;
|
||||
netgear,wndr3700|\
|
||||
@@ -160,6 +161,7 @@ ruckus,zf7372)
|
||||
ubootenv_add_uci_config "/dev/mtd2" "0x0" "0x40000" "0x10000"
|
||||
;;
|
||||
sophos,ap15|\
|
||||
sophos,ap15c|\
|
||||
sophos,ap55|\
|
||||
sophos,ap55c|\
|
||||
sophos,ap100|\
|
||||
|
||||
@@ -77,6 +77,7 @@ jcg,q20|\
|
||||
linksys,e7350|\
|
||||
netgear,eax12|\
|
||||
netgear,wax202|\
|
||||
netis,n6|\
|
||||
zyxel,wsm20)
|
||||
ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x20000" "0x20000"
|
||||
;;
|
||||
|
||||
@@ -0,0 +1,725 @@
|
||||
From 506df9dc5881b74ca6463b89e9edcd14732a7da5 Mon Sep 17 00:00:00 2001
|
||||
From: Shiji Yang <yangshiji66@outlook.com>
|
||||
Date: Thu, 3 Aug 2023 09:47:16 +0800
|
||||
Subject: [PATCH] treewide: rework linker symbol declarations in sections
|
||||
header
|
||||
|
||||
1. Convert all linker symbols to char[] type so that we can get the
|
||||
corresponding address by calling array name 'var' or its address
|
||||
'&var'. In this way, we can avoid some potential issues[1].
|
||||
2. Remove unused symbol '_TEXT_BASE'. It has been abandoned and has
|
||||
not been referenced by any source code.
|
||||
3. Move '__data_end' to the arch x86's own sections header as it's
|
||||
only used by x86 arch.
|
||||
4. Remove some duplicate declared linker symbols. Now we use the
|
||||
standard header file to declare them.
|
||||
|
||||
[1] This patch fixes the boot failure on MIPS target. Error log:
|
||||
SPL: Image overlaps SPL
|
||||
|
||||
Fixes: 1b8a1be1a1f1 ("spl: spl_legacy: Fix spl_end address")
|
||||
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
|
||||
Reviewed-by: Tom Rini <trini@konsulko.com>
|
||||
---
|
||||
arch/arc/include/asm/sections.h | 5 +--
|
||||
arch/arc/lib/relocate.c | 7 +---
|
||||
arch/arm/include/asm/spl.h | 3 --
|
||||
arch/microblaze/include/asm/processor.h | 5 ---
|
||||
arch/x86/include/asm/sections.h | 2 ++
|
||||
board/advantech/imx8qm_dmsse20_a1/spl.c | 1 +
|
||||
board/advantech/imx8qm_rom7720_a1/spl.c | 1 +
|
||||
board/aristainetos/aristainetos.c | 2 +-
|
||||
board/beacon/imx8mm/spl.c | 1 +
|
||||
board/beacon/imx8mn/spl.c | 1 +
|
||||
board/bosch/acc/acc.c | 1 +
|
||||
board/bsh/imx8mn_smm_s2/spl.c | 1 +
|
||||
board/cloos/imx8mm_phg/spl.c | 1 +
|
||||
board/compulab/cl-som-imx7/spl.c | 1 +
|
||||
board/compulab/imx8mm-cl-iot-gate/spl.c | 1 +
|
||||
board/congatec/cgtqmx8/spl.c | 1 +
|
||||
board/dhelectronics/dh_imx6/dh_imx6_spl.c | 1 +
|
||||
board/dhelectronics/dh_imx8mp/spl.c | 1 +
|
||||
board/engicam/imx8mm/spl.c | 1 +
|
||||
board/freescale/imx8mm_evk/spl.c | 1 +
|
||||
board/freescale/imx8mn_evk/spl.c | 1 +
|
||||
board/freescale/imx8mq_evk/spl.c | 1 +
|
||||
board/freescale/imx8qm_mek/spl.c | 1 +
|
||||
board/freescale/imx8qxp_mek/spl.c | 1 +
|
||||
board/freescale/imx8ulp_evk/spl.c | 1 +
|
||||
board/freescale/imx93_evk/spl.c | 1 +
|
||||
board/freescale/ls1021aiot/ls1021aiot.c | 1 +
|
||||
board/freescale/ls1021aqds/ls1021aqds.c | 1 +
|
||||
board/freescale/ls1021atsn/ls1021atsn.c | 1 +
|
||||
board/freescale/ls1021atwr/ls1021atwr.c | 1 +
|
||||
board/freescale/mx6sabreauto/mx6sabreauto.c | 1 +
|
||||
board/freescale/mx6sabresd/mx6sabresd.c | 1 +
|
||||
board/freescale/mx6slevk/mx6slevk.c | 1 +
|
||||
.../mx6ul_14x14_evk/mx6ul_14x14_evk.c | 1 +
|
||||
board/gateworks/venice/spl.c | 1 +
|
||||
board/k+p/kp_imx6q_tpc/kp_imx6q_tpc_spl.c | 1 +
|
||||
board/kontron/pitx_imx8m/spl.c | 1 +
|
||||
board/kontron/sl-mx6ul/spl.c | 1 +
|
||||
board/kontron/sl-mx8mm/spl.c | 1 +
|
||||
board/liebherr/display5/spl.c | 1 +
|
||||
board/mntre/imx8mq_reform2/spl.c | 1 +
|
||||
board/phytec/pcm058/pcm058.c | 1 +
|
||||
board/phytec/phycore_imx8mm/spl.c | 1 +
|
||||
board/ronetix/imx7-cm/spl.c | 1 +
|
||||
board/ronetix/imx8mq-cm/spl.c | 1 +
|
||||
board/siemens/capricorn/spl.c | 1 +
|
||||
board/softing/vining_2000/vining_2000.c | 1 +
|
||||
board/solidrun/mx6cuboxi/mx6cuboxi.c | 1 +
|
||||
board/technexion/pico-imx6ul/spl.c | 1 +
|
||||
board/technexion/pico-imx7d/spl.c | 1 +
|
||||
board/technexion/pico-imx8mq/spl.c | 1 +
|
||||
board/toradex/apalis_imx6/apalis_imx6.c | 1 +
|
||||
board/toradex/colibri_imx6/colibri_imx6.c | 1 +
|
||||
board/toradex/verdin-imx8mm/spl.c | 1 +
|
||||
board/udoo/neo/neo.c | 1 +
|
||||
board/variscite/dart_6ul/spl.c | 1 +
|
||||
board/variscite/imx8mn_var_som/spl.c | 1 +
|
||||
include/asm-generic/sections.h | 34 ++++---------------
|
||||
58 files changed, 64 insertions(+), 45 deletions(-)
|
||||
|
||||
--- a/arch/arc/include/asm/sections.h
|
||||
+++ b/arch/arc/include/asm/sections.h
|
||||
@@ -8,7 +8,8 @@
|
||||
|
||||
#include <asm-generic/sections.h>
|
||||
|
||||
-extern ulong __ivt_start;
|
||||
-extern ulong __ivt_end;
|
||||
+extern char __ivt_start[];
|
||||
+extern char __ivt_end[];
|
||||
+extern char __text_end[];
|
||||
|
||||
#endif /* __ASM_ARC_SECTIONS_H */
|
||||
--- a/arch/arc/lib/relocate.c
|
||||
+++ b/arch/arc/lib/relocate.c
|
||||
@@ -6,14 +6,9 @@
|
||||
#include <common.h>
|
||||
#include <elf.h>
|
||||
#include <log.h>
|
||||
-#include <asm-generic/sections.h>
|
||||
+#include <asm/sections.h>
|
||||
#include <asm/global_data.h>
|
||||
|
||||
-extern ulong __image_copy_start;
|
||||
-extern ulong __ivt_start;
|
||||
-extern ulong __ivt_end;
|
||||
-extern ulong __text_end;
|
||||
-
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
int copy_uboot_to_ram(void)
|
||||
--- a/arch/arm/include/asm/spl.h
|
||||
+++ b/arch/arm/include/asm/spl.h
|
||||
@@ -34,9 +34,6 @@ enum {
|
||||
};
|
||||
#endif
|
||||
|
||||
-/* Linker symbols. */
|
||||
-extern char __bss_start[], __bss_end[];
|
||||
-
|
||||
#ifndef CONFIG_DM
|
||||
extern gd_t gdata;
|
||||
#endif
|
||||
--- a/arch/microblaze/include/asm/processor.h
|
||||
+++ b/arch/microblaze/include/asm/processor.h
|
||||
@@ -6,11 +6,6 @@
|
||||
#ifndef __ASM_MICROBLAZE_PROCESSOR_H
|
||||
#define __ASM_MICROBLAZE_PROCESSOR_H
|
||||
|
||||
-/* References to section boundaries */
|
||||
-
|
||||
-extern char _end[];
|
||||
-extern char __text_start[];
|
||||
-
|
||||
/* Microblaze board initialization function */
|
||||
void board_init(void);
|
||||
|
||||
--- a/arch/x86/include/asm/sections.h
|
||||
+++ b/arch/x86/include/asm/sections.h
|
||||
@@ -8,4 +8,6 @@
|
||||
|
||||
#include <asm-generic/sections.h>
|
||||
|
||||
+extern char __data_end[];
|
||||
+
|
||||
#endif
|
||||
--- a/board/advantech/imx8qm_dmsse20_a1/spl.c
|
||||
+++ b/board/advantech/imx8qm_dmsse20_a1/spl.c
|
||||
@@ -14,6 +14,7 @@
|
||||
#include <firmware/imx/sci/sci.h>
|
||||
#include <asm/arch/imx8-pins.h>
|
||||
#include <asm/arch/iomux.h>
|
||||
+#include <asm/sections.h>
|
||||
#include <fsl_esdhc_imx.h>
|
||||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
--- a/board/advantech/imx8qm_rom7720_a1/spl.c
|
||||
+++ b/board/advantech/imx8qm_rom7720_a1/spl.c
|
||||
@@ -17,6 +17,7 @@
|
||||
#include <firmware/imx/sci/sci.h>
|
||||
#include <asm/arch/imx8-pins.h>
|
||||
#include <asm/arch/iomux.h>
|
||||
+#include <asm/sections.h>
|
||||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
--- a/board/aristainetos/aristainetos.c
|
||||
+++ b/board/aristainetos/aristainetos.c
|
||||
@@ -27,6 +27,7 @@
|
||||
#include <asm/arch/crm_regs.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/arch/sys_proto.h>
|
||||
+#include <asm/sections.h>
|
||||
#include <bmp_logo.h>
|
||||
#include <dm/root.h>
|
||||
#include <env.h>
|
||||
@@ -217,7 +218,6 @@ static void set_gpr_register(void)
|
||||
&iomuxc_regs->gpr[12]);
|
||||
}
|
||||
|
||||
-extern char __bss_start[], __bss_end[];
|
||||
int board_early_init_f(void)
|
||||
{
|
||||
select_ldb_di_clock_source(MXC_PLL5_CLK);
|
||||
--- a/board/beacon/imx8mm/spl.c
|
||||
+++ b/board/beacon/imx8mm/spl.c
|
||||
@@ -14,6 +14,7 @@
|
||||
#include <asm/arch/sys_proto.h>
|
||||
#include <asm/mach-imx/boot_mode.h>
|
||||
#include <asm/arch/ddr.h>
|
||||
+#include <asm/sections.h>
|
||||
|
||||
#include <dm/uclass.h>
|
||||
#include <dm/device.h>
|
||||
--- a/board/beacon/imx8mn/spl.c
|
||||
+++ b/board/beacon/imx8mn/spl.c
|
||||
@@ -20,6 +20,7 @@
|
||||
#include <asm/mach-imx/iomux-v3.h>
|
||||
#include <asm/mach-imx/gpio.h>
|
||||
#include <asm/mach-imx/mxc_i2c.h>
|
||||
+#include <asm/sections.h>
|
||||
#include <fsl_esdhc_imx.h>
|
||||
#include <mmc.h>
|
||||
#include <linux/delay.h>
|
||||
--- a/board/bosch/acc/acc.c
|
||||
+++ b/board/bosch/acc/acc.c
|
||||
@@ -28,6 +28,7 @@
|
||||
#include <asm/arch/mx6-pins.h>
|
||||
#include <asm/arch/sys_proto.h>
|
||||
#include <asm/mach-imx/iomux-v3.h>
|
||||
+#include <asm/sections.h>
|
||||
#include <usb.h>
|
||||
#include <usb/ehci-ci.h>
|
||||
#include <fuse.h>
|
||||
--- a/board/bsh/imx8mn_smm_s2/spl.c
|
||||
+++ b/board/bsh/imx8mn_smm_s2/spl.c
|
||||
@@ -13,6 +13,7 @@
|
||||
#include <asm/arch/sys_proto.h>
|
||||
#include <asm/mach-imx/boot_mode.h>
|
||||
#include <asm/mach-imx/gpio.h>
|
||||
+#include <asm/sections.h>
|
||||
#include <dm/device.h>
|
||||
#include <dm/uclass.h>
|
||||
|
||||
--- a/board/cloos/imx8mm_phg/spl.c
|
||||
+++ b/board/cloos/imx8mm_phg/spl.c
|
||||
@@ -19,6 +19,7 @@
|
||||
#include <asm/arch/sys_proto.h>
|
||||
#include <asm/mach-imx/boot_mode.h>
|
||||
#include <asm/arch/ddr.h>
|
||||
+#include <asm/sections.h>
|
||||
|
||||
#include <dm/uclass.h>
|
||||
#include <dm/device.h>
|
||||
--- a/board/compulab/cl-som-imx7/spl.c
|
||||
+++ b/board/compulab/cl-som-imx7/spl.c
|
||||
@@ -16,6 +16,7 @@
|
||||
#include <asm/arch-mx7/mx7-pins.h>
|
||||
#include <asm/arch-mx7/clock.h>
|
||||
#include <asm/arch-mx7/mx7-ddr.h>
|
||||
+#include <asm/sections.h>
|
||||
#include "common.h"
|
||||
|
||||
#ifdef CONFIG_FSL_ESDHC_IMX
|
||||
--- a/board/compulab/imx8mm-cl-iot-gate/spl.c
|
||||
+++ b/board/compulab/imx8mm-cl-iot-gate/spl.c
|
||||
@@ -21,6 +21,7 @@
|
||||
#include <asm/mach-imx/mxc_i2c.h>
|
||||
#include <asm/mach-imx/gpio.h>
|
||||
#include <asm/arch/ddr.h>
|
||||
+#include <asm/sections.h>
|
||||
|
||||
#include <dm/uclass.h>
|
||||
#include <dm/device.h>
|
||||
--- a/board/congatec/cgtqmx8/spl.c
|
||||
+++ b/board/congatec/cgtqmx8/spl.c
|
||||
@@ -10,6 +10,7 @@
|
||||
#include <init.h>
|
||||
#include <log.h>
|
||||
#include <spl.h>
|
||||
+#include <asm/sections.h>
|
||||
#include <dm/uclass.h>
|
||||
#include <dm/device.h>
|
||||
#include <dm/uclass-internal.h>
|
||||
--- a/board/dhelectronics/dh_imx6/dh_imx6_spl.c
|
||||
+++ b/board/dhelectronics/dh_imx6/dh_imx6_spl.c
|
||||
@@ -21,6 +21,7 @@
|
||||
#include <asm/mach-imx/iomux-v3.h>
|
||||
#include <asm/mach-imx/mxc_i2c.h>
|
||||
#include <asm/io.h>
|
||||
+#include <asm/sections.h>
|
||||
#include <asm/system.h>
|
||||
#include <errno.h>
|
||||
#include <fuse.h>
|
||||
--- a/board/dhelectronics/dh_imx8mp/spl.c
|
||||
+++ b/board/dhelectronics/dh_imx8mp/spl.c
|
||||
@@ -15,6 +15,7 @@
|
||||
#include <asm/arch/sys_proto.h>
|
||||
#include <asm/mach-imx/boot_mode.h>
|
||||
#include <asm/arch/ddr.h>
|
||||
+#include <asm/sections.h>
|
||||
|
||||
#include <dm/uclass.h>
|
||||
#include <dm/device.h>
|
||||
--- a/board/engicam/imx8mm/spl.c
|
||||
+++ b/board/engicam/imx8mm/spl.c
|
||||
@@ -16,6 +16,7 @@
|
||||
#include <asm/arch/sys_proto.h>
|
||||
#include <asm/mach-imx/boot_mode.h>
|
||||
#include <asm/arch/ddr.h>
|
||||
+#include <asm/sections.h>
|
||||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
--- a/board/freescale/imx8mm_evk/spl.c
|
||||
+++ b/board/freescale/imx8mm_evk/spl.c
|
||||
@@ -19,6 +19,7 @@
|
||||
#include <asm/arch/sys_proto.h>
|
||||
#include <asm/mach-imx/boot_mode.h>
|
||||
#include <asm/arch/ddr.h>
|
||||
+#include <asm/sections.h>
|
||||
|
||||
#include <dm/uclass.h>
|
||||
#include <dm/device.h>
|
||||
--- a/board/freescale/imx8mn_evk/spl.c
|
||||
+++ b/board/freescale/imx8mn_evk/spl.c
|
||||
@@ -20,6 +20,7 @@
|
||||
#include <asm/arch/sys_proto.h>
|
||||
#include <asm/mach-imx/boot_mode.h>
|
||||
#include <asm/arch/ddr.h>
|
||||
+#include <asm/sections.h>
|
||||
|
||||
#include <dm/uclass.h>
|
||||
#include <dm/device.h>
|
||||
--- a/board/freescale/imx8mq_evk/spl.c
|
||||
+++ b/board/freescale/imx8mq_evk/spl.c
|
||||
@@ -20,6 +20,7 @@
|
||||
#include <asm/mach-imx/iomux-v3.h>
|
||||
#include <asm/mach-imx/gpio.h>
|
||||
#include <asm/mach-imx/mxc_i2c.h>
|
||||
+#include <asm/sections.h>
|
||||
#include <fsl_esdhc_imx.h>
|
||||
#include <fsl_sec.h>
|
||||
#include <mmc.h>
|
||||
--- a/board/freescale/imx8qm_mek/spl.c
|
||||
+++ b/board/freescale/imx8qm_mek/spl.c
|
||||
@@ -17,6 +17,7 @@
|
||||
#include <dm/device-internal.h>
|
||||
#include <dm/lists.h>
|
||||
#include <asm/arch/sys_proto.h>
|
||||
+#include <asm/sections.h>
|
||||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
--- a/board/freescale/imx8qxp_mek/spl.c
|
||||
+++ b/board/freescale/imx8qxp_mek/spl.c
|
||||
@@ -22,6 +22,7 @@
|
||||
#include <asm/arch/imx8-pins.h>
|
||||
#include <asm/arch/iomux.h>
|
||||
#include <asm/arch/sys_proto.h>
|
||||
+#include <asm/sections.h>
|
||||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
--- a/board/freescale/imx8ulp_evk/spl.c
|
||||
+++ b/board/freescale/imx8ulp_evk/spl.c
|
||||
@@ -20,6 +20,7 @@
|
||||
#include <asm/arch/rdc.h>
|
||||
#include <asm/arch/upower.h>
|
||||
#include <asm/mach-imx/s400_api.h>
|
||||
+#include <asm/sections.h>
|
||||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
--- a/board/freescale/imx93_evk/spl.c
|
||||
+++ b/board/freescale/imx93_evk/spl.c
|
||||
@@ -21,6 +21,7 @@
|
||||
#include <asm/arch-mx7ulp/gpio.h>
|
||||
#include <asm/mach-imx/syscounter.h>
|
||||
#include <asm/mach-imx/s400_api.h>
|
||||
+#include <asm/sections.h>
|
||||
#include <dm/uclass.h>
|
||||
#include <dm/device.h>
|
||||
#include <dm/uclass-internal.h>
|
||||
--- a/board/freescale/ls1021aiot/ls1021aiot.c
|
||||
+++ b/board/freescale/ls1021aiot/ls1021aiot.c
|
||||
@@ -18,6 +18,7 @@
|
||||
|
||||
#include <asm/arch/ls102xa_devdis.h>
|
||||
#include <asm/arch/ls102xa_soc.h>
|
||||
+#include <asm/sections.h>
|
||||
#include <fsl_csu.h>
|
||||
#include <fsl_immap.h>
|
||||
#include <netdev.h>
|
||||
--- a/board/freescale/ls1021aqds/ls1021aqds.c
|
||||
+++ b/board/freescale/ls1021aqds/ls1021aqds.c
|
||||
@@ -16,6 +16,7 @@
|
||||
#include <asm/arch/fsl_serdes.h>
|
||||
#include <asm/arch/ls102xa_soc.h>
|
||||
#include <asm/arch/ls102xa_devdis.h>
|
||||
+#include <asm/sections.h>
|
||||
#include <hwconfig.h>
|
||||
#include <mmc.h>
|
||||
#include <fsl_csu.h>
|
||||
--- a/board/freescale/ls1021atsn/ls1021atsn.c
|
||||
+++ b/board/freescale/ls1021atsn/ls1021atsn.c
|
||||
@@ -12,6 +12,7 @@
|
||||
#include <asm/arch/ls102xa_soc.h>
|
||||
#include <asm/arch/fsl_serdes.h>
|
||||
#include <asm/global_data.h>
|
||||
+#include <asm/sections.h>
|
||||
#include <linux/delay.h>
|
||||
#include "../common/sleep.h"
|
||||
#include <fsl_validate.h>
|
||||
--- a/board/freescale/ls1021atwr/ls1021atwr.c
|
||||
+++ b/board/freescale/ls1021atwr/ls1021atwr.c
|
||||
@@ -18,6 +18,7 @@
|
||||
#include <asm/arch/fsl_serdes.h>
|
||||
#include <asm/arch/ls102xa_devdis.h>
|
||||
#include <asm/arch/ls102xa_soc.h>
|
||||
+#include <asm/sections.h>
|
||||
#include <hwconfig.h>
|
||||
#include <mmc.h>
|
||||
#include <fsl_csu.h>
|
||||
--- a/board/freescale/mx6sabreauto/mx6sabreauto.c
|
||||
+++ b/board/freescale/mx6sabreauto/mx6sabreauto.c
|
||||
@@ -15,6 +15,7 @@
|
||||
#include <asm/arch/imx-regs.h>
|
||||
#include <asm/arch/iomux.h>
|
||||
#include <asm/arch/mx6-pins.h>
|
||||
+#include <asm/sections.h>
|
||||
#include <env.h>
|
||||
#include <linux/errno.h>
|
||||
#include <asm/gpio.h>
|
||||
--- a/board/freescale/mx6sabresd/mx6sabresd.c
|
||||
+++ b/board/freescale/mx6sabresd/mx6sabresd.c
|
||||
@@ -14,6 +14,7 @@
|
||||
#include <asm/arch/mx6-pins.h>
|
||||
#include <asm/global_data.h>
|
||||
#include <asm/mach-imx/spi.h>
|
||||
+#include <asm/sections.h>
|
||||
#include <env.h>
|
||||
#include <linux/errno.h>
|
||||
#include <asm/gpio.h>
|
||||
--- a/board/freescale/mx6slevk/mx6slevk.c
|
||||
+++ b/board/freescale/mx6slevk/mx6slevk.c
|
||||
@@ -19,6 +19,7 @@
|
||||
#include <asm/mach-imx/iomux-v3.h>
|
||||
#include <asm/mach-imx/mxc_i2c.h>
|
||||
#include <asm/io.h>
|
||||
+#include <asm/sections.h>
|
||||
#include <linux/sizes.h>
|
||||
#include <common.h>
|
||||
#include <fsl_esdhc_imx.h>
|
||||
--- a/board/freescale/mx6ul_14x14_evk/mx6ul_14x14_evk.c
|
||||
+++ b/board/freescale/mx6ul_14x14_evk/mx6ul_14x14_evk.c
|
||||
@@ -18,6 +18,7 @@
|
||||
#include <asm/mach-imx/boot_mode.h>
|
||||
#include <asm/mach-imx/mxc_i2c.h>
|
||||
#include <asm/io.h>
|
||||
+#include <asm/sections.h>
|
||||
#include <common.h>
|
||||
#include <env.h>
|
||||
#include <fsl_esdhc_imx.h>
|
||||
--- a/board/gateworks/venice/spl.c
|
||||
+++ b/board/gateworks/venice/spl.c
|
||||
@@ -19,6 +19,7 @@
|
||||
#include <asm/mach-imx/mxc_i2c.h>
|
||||
#include <asm/arch/ddr.h>
|
||||
#include <asm-generic/gpio.h>
|
||||
+#include <asm/sections.h>
|
||||
#include <dm/uclass.h>
|
||||
#include <dm/device.h>
|
||||
#include <dm/pinctrl.h>
|
||||
--- a/board/k+p/kp_imx6q_tpc/kp_imx6q_tpc_spl.c
|
||||
+++ b/board/k+p/kp_imx6q_tpc/kp_imx6q_tpc_spl.c
|
||||
@@ -14,6 +14,7 @@
|
||||
#include <asm/arch/mx6-ddr.h>
|
||||
#include <asm/arch/sys_proto.h>
|
||||
#include <asm/global_data.h>
|
||||
+#include <asm/sections.h>
|
||||
#include <asm/io.h>
|
||||
#include <errno.h>
|
||||
#include <spl.h>
|
||||
--- a/board/kontron/pitx_imx8m/spl.c
|
||||
+++ b/board/kontron/pitx_imx8m/spl.c
|
||||
@@ -16,6 +16,7 @@
|
||||
#include <asm/mach-imx/iomux-v3.h>
|
||||
#include <asm/mach-imx/gpio.h>
|
||||
#include <asm/mach-imx/mxc_i2c.h>
|
||||
+#include <asm/sections.h>
|
||||
#include <linux/delay.h>
|
||||
#include <power/pmic.h>
|
||||
#include <power/pfuze100_pmic.h>
|
||||
--- a/board/kontron/sl-mx6ul/spl.c
|
||||
+++ b/board/kontron/sl-mx6ul/spl.c
|
||||
@@ -11,6 +11,7 @@
|
||||
#include <asm/gpio.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/mach-imx/iomux-v3.h>
|
||||
+#include <asm/sections.h>
|
||||
#include <fsl_esdhc_imx.h>
|
||||
#include <init.h>
|
||||
#include <linux/delay.h>
|
||||
--- a/board/kontron/sl-mx8mm/spl.c
|
||||
+++ b/board/kontron/sl-mx8mm/spl.c
|
||||
@@ -12,6 +12,7 @@
|
||||
#include <asm/gpio.h>
|
||||
#include <asm/mach-imx/boot_mode.h>
|
||||
#include <asm/mach-imx/iomux-v3.h>
|
||||
+#include <asm/sections.h>
|
||||
#include <dm/uclass.h>
|
||||
#include <dm/device.h>
|
||||
#include <dm/uclass-internal.h>
|
||||
--- a/board/liebherr/display5/spl.c
|
||||
+++ b/board/liebherr/display5/spl.c
|
||||
@@ -25,6 +25,7 @@
|
||||
#include "asm/arch/iomux.h"
|
||||
#include <asm/mach-imx/iomux-v3.h>
|
||||
#include <asm/gpio.h>
|
||||
+#include <asm/sections.h>
|
||||
#include <fsl_esdhc_imx.h>
|
||||
#include <netdev.h>
|
||||
#include <bootcount.h>
|
||||
--- a/board/mntre/imx8mq_reform2/spl.c
|
||||
+++ b/board/mntre/imx8mq_reform2/spl.c
|
||||
@@ -21,6 +21,7 @@
|
||||
#include <asm/mach-imx/iomux-v3.h>
|
||||
#include <asm/mach-imx/gpio.h>
|
||||
#include <asm/mach-imx/mxc_i2c.h>
|
||||
+#include <asm/sections.h>
|
||||
#include <fsl_esdhc_imx.h>
|
||||
#include <mmc.h>
|
||||
#include <linux/delay.h>
|
||||
--- a/board/phytec/pcm058/pcm058.c
|
||||
+++ b/board/phytec/pcm058/pcm058.c
|
||||
@@ -17,6 +17,7 @@
|
||||
#include <asm/global_data.h>
|
||||
#include <asm/mach-imx/boot_mode.h>
|
||||
#include <asm/arch/sys_proto.h>
|
||||
+#include <asm/sections.h>
|
||||
#include <dm.h>
|
||||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
--- a/board/phytec/phycore_imx8mm/spl.c
|
||||
+++ b/board/phytec/phycore_imx8mm/spl.c
|
||||
@@ -12,6 +12,7 @@
|
||||
#include <asm/global_data.h>
|
||||
#include <asm/mach-imx/boot_mode.h>
|
||||
#include <asm/mach-imx/iomux-v3.h>
|
||||
+#include <asm/sections.h>
|
||||
#include <hang.h>
|
||||
#include <init.h>
|
||||
#include <log.h>
|
||||
--- a/board/ronetix/imx7-cm/spl.c
|
||||
+++ b/board/ronetix/imx7-cm/spl.c
|
||||
@@ -16,6 +16,7 @@
|
||||
#include <asm/arch-mx7/mx7-ddr.h>
|
||||
#include <asm/mach-imx/iomux-v3.h>
|
||||
#include <asm/gpio.h>
|
||||
+#include <asm/sections.h>
|
||||
#include <fsl_esdhc_imx.h>
|
||||
#include <spl.h>
|
||||
|
||||
--- a/board/ronetix/imx8mq-cm/spl.c
|
||||
+++ b/board/ronetix/imx8mq-cm/spl.c
|
||||
@@ -13,6 +13,7 @@
|
||||
#include <asm/arch/clock.h>
|
||||
#include <asm/mach-imx/gpio.h>
|
||||
#include <asm/mach-imx/mxc_i2c.h>
|
||||
+#include <asm/sections.h>
|
||||
#include <fsl_esdhc_imx.h>
|
||||
#include <linux/delay.h>
|
||||
#include <spl.h>
|
||||
--- a/board/siemens/capricorn/spl.c
|
||||
+++ b/board/siemens/capricorn/spl.c
|
||||
@@ -10,6 +10,7 @@
|
||||
#include <spl.h>
|
||||
#include <dm.h>
|
||||
#include <asm/global_data.h>
|
||||
+#include <asm/sections.h>
|
||||
#include <dm/uclass.h>
|
||||
#include <dm/device.h>
|
||||
#include <dm/uclass-internal.h>
|
||||
--- a/board/softing/vining_2000/vining_2000.c
|
||||
+++ b/board/softing/vining_2000/vining_2000.c
|
||||
@@ -19,6 +19,7 @@
|
||||
#include <asm/mach-imx/iomux-v3.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/mach-imx/mxc_i2c.h>
|
||||
+#include <asm/sections.h>
|
||||
#include <env.h>
|
||||
#include <linux/bitops.h>
|
||||
#include <linux/delay.h>
|
||||
--- a/board/solidrun/mx6cuboxi/mx6cuboxi.c
|
||||
+++ b/board/solidrun/mx6cuboxi/mx6cuboxi.c
|
||||
@@ -32,6 +32,7 @@
|
||||
#include <asm/mach-imx/iomux-v3.h>
|
||||
#include <asm/mach-imx/sata.h>
|
||||
#include <asm/mach-imx/video.h>
|
||||
+#include <asm/sections.h>
|
||||
#include <mmc.h>
|
||||
#include <fsl_esdhc_imx.h>
|
||||
#include <malloc.h>
|
||||
--- a/board/technexion/pico-imx6ul/spl.c
|
||||
+++ b/board/technexion/pico-imx6ul/spl.c
|
||||
@@ -14,6 +14,7 @@
|
||||
#include <asm/gpio.h>
|
||||
#include <asm/mach-imx/iomux-v3.h>
|
||||
#include <asm/mach-imx/boot_mode.h>
|
||||
+#include <asm/sections.h>
|
||||
#include <fsl_esdhc_imx.h>
|
||||
#include <linux/libfdt.h>
|
||||
#include <spl.h>
|
||||
--- a/board/technexion/pico-imx7d/spl.c
|
||||
+++ b/board/technexion/pico-imx7d/spl.c
|
||||
@@ -16,6 +16,7 @@
|
||||
#include <asm/arch-mx7/mx7-ddr.h>
|
||||
#include <asm/mach-imx/iomux-v3.h>
|
||||
#include <asm/gpio.h>
|
||||
+#include <asm/sections.h>
|
||||
#include <fsl_esdhc_imx.h>
|
||||
#include <spl.h>
|
||||
|
||||
--- a/board/technexion/pico-imx8mq/spl.c
|
||||
+++ b/board/technexion/pico-imx8mq/spl.c
|
||||
@@ -16,6 +16,7 @@
|
||||
#include <asm/mach-imx/gpio.h>
|
||||
#include <asm/mach-imx/iomux-v3.h>
|
||||
#include <asm/mach-imx/mxc_i2c.h>
|
||||
+#include <asm/sections.h>
|
||||
#include <linux/delay.h>
|
||||
#include <errno.h>
|
||||
#include <fsl_esdhc_imx.h>
|
||||
--- a/board/toradex/apalis_imx6/apalis_imx6.c
|
||||
+++ b/board/toradex/apalis_imx6/apalis_imx6.c
|
||||
@@ -30,6 +30,7 @@
|
||||
#include <asm/mach-imx/iomux-v3.h>
|
||||
#include <asm/mach-imx/sata.h>
|
||||
#include <asm/mach-imx/video.h>
|
||||
+#include <asm/sections.h>
|
||||
#include <dm/device-internal.h>
|
||||
#include <dm/platform_data/serial_mxc.h>
|
||||
#include <dwc_ahsata.h>
|
||||
--- a/board/toradex/colibri_imx6/colibri_imx6.c
|
||||
+++ b/board/toradex/colibri_imx6/colibri_imx6.c
|
||||
@@ -29,6 +29,7 @@
|
||||
#include <asm/mach-imx/iomux-v3.h>
|
||||
#include <asm/mach-imx/sata.h>
|
||||
#include <asm/mach-imx/video.h>
|
||||
+#include <asm/sections.h>
|
||||
#include <cpu.h>
|
||||
#include <dm/platform_data/serial_mxc.h>
|
||||
#include <fsl_esdhc_imx.h>
|
||||
--- a/board/toradex/verdin-imx8mm/spl.c
|
||||
+++ b/board/toradex/verdin-imx8mm/spl.c
|
||||
@@ -16,6 +16,7 @@
|
||||
#include <asm/io.h>
|
||||
#include <asm/mach-imx/boot_mode.h>
|
||||
#include <asm/mach-imx/iomux-v3.h>
|
||||
+#include <asm/sections.h>
|
||||
#include <cpu_func.h>
|
||||
#include <dm/device.h>
|
||||
#include <dm/device-internal.h>
|
||||
--- a/board/udoo/neo/neo.c
|
||||
+++ b/board/udoo/neo/neo.c
|
||||
@@ -17,6 +17,7 @@
|
||||
#include <asm/global_data.h>
|
||||
#include <asm/gpio.h>
|
||||
#include <asm/mach-imx/iomux-v3.h>
|
||||
+#include <asm/sections.h>
|
||||
#include <dm.h>
|
||||
#include <env.h>
|
||||
#include <mmc.h>
|
||||
--- a/board/variscite/dart_6ul/spl.c
|
||||
+++ b/board/variscite/dart_6ul/spl.c
|
||||
@@ -12,6 +12,7 @@
|
||||
#include <asm/arch/mx6-ddr.h>
|
||||
#include <asm/arch/mx6-pins.h>
|
||||
#include <asm/arch/crm_regs.h>
|
||||
+#include <asm/sections.h>
|
||||
#include <fsl_esdhc_imx.h>
|
||||
|
||||
#define UART_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_PUE | \
|
||||
--- a/board/variscite/imx8mn_var_som/spl.c
|
||||
+++ b/board/variscite/imx8mn_var_som/spl.c
|
||||
@@ -13,6 +13,7 @@
|
||||
#include <asm/arch/sys_proto.h>
|
||||
#include <asm/mach-imx/boot_mode.h>
|
||||
#include <asm/mach-imx/gpio.h>
|
||||
+#include <asm/sections.h>
|
||||
#include <dm/device.h>
|
||||
#include <dm/uclass.h>
|
||||
|
||||
--- a/include/asm-generic/sections.h
|
||||
+++ b/include/asm-generic/sections.h
|
||||
@@ -61,8 +61,12 @@ static inline int arch_is_kernel_data(un
|
||||
/* Start of U-Boot text region */
|
||||
extern char __text_start[];
|
||||
|
||||
-/* This marks the end of the text region which must be relocated */
|
||||
-extern char __image_copy_end[];
|
||||
+/* This marks the text region which must be relocated */
|
||||
+extern char __image_copy_start[], __image_copy_end[];
|
||||
+
|
||||
+extern char __bss_end[];
|
||||
+extern char __rel_dyn_start[], __rel_dyn_end[];
|
||||
+extern char _image_binary_end[];
|
||||
|
||||
/*
|
||||
* This is the U-Boot entry point - prior to relocation it should be same
|
||||
@@ -70,30 +74,4 @@ extern char __image_copy_end[];
|
||||
*/
|
||||
extern void _start(void);
|
||||
|
||||
-/*
|
||||
- * ARM defines its symbols as char[]. Other arches define them as ulongs.
|
||||
- */
|
||||
-#ifdef CONFIG_ARM
|
||||
-
|
||||
-extern char __bss_start[];
|
||||
-extern char __bss_end[];
|
||||
-extern char __image_copy_start[];
|
||||
-extern char __image_copy_end[];
|
||||
-extern char _image_binary_end[];
|
||||
-extern char __rel_dyn_start[];
|
||||
-extern char __rel_dyn_end[];
|
||||
-
|
||||
-#else /* don't use offsets: */
|
||||
-
|
||||
-/* Exports from the Linker Script */
|
||||
-extern ulong __data_end;
|
||||
-extern ulong __rel_dyn_start;
|
||||
-extern ulong __rel_dyn_end;
|
||||
-extern ulong __bss_end;
|
||||
-extern ulong _image_binary_end;
|
||||
-
|
||||
-extern ulong _TEXT_BASE; /* code start */
|
||||
-
|
||||
-#endif
|
||||
-
|
||||
#endif /* _ASM_GENERIC_SECTIONS_H_ */
|
||||
@@ -1,14 +1,14 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=wireless-regdb
|
||||
PKG_VERSION:=2024.07.04
|
||||
PKG_VERSION:=2025.07.10
|
||||
PKG_RELEASE:=1
|
||||
PKG_LICENSE:=ISC
|
||||
PKG_LICENSE_FILES:=LICENSE
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
||||
PKG_SOURCE_URL:=@KERNEL/software/network/wireless-regdb/
|
||||
PKG_HASH:=9832a14e1be24abff7be30dee3c9a1afb5fdfcf475a0d91aafef039f8d85f5eb
|
||||
PKG_HASH:=a8340bcdcd1b5db6c79149879d122b170f3bb075381718d4f429ad831a6fa28d
|
||||
|
||||
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
|
||||
@@ -10,13 +10,13 @@ include $(INCLUDE_DIR)/kernel.mk
|
||||
|
||||
PKG_NAME:=mac80211
|
||||
|
||||
PKG_VERSION:=6.1.110-1
|
||||
PKG_VERSION:=6.1.145-1
|
||||
PKG_RELEASE:=1
|
||||
PKG_LICENSE:=GPL-2.0-only
|
||||
PKG_LICENSE_FILES:=COPYING
|
||||
|
||||
PKG_SOURCE_URL:=@KERNEL/linux/kernel/projects/backports/stable/v6.1.110/
|
||||
PKG_HASH:=2415bc529ca25be0aa597f9638d8b6fc4138080bbaea96881a38101896df6703
|
||||
PKG_SOURCE_URL:=@KERNEL/linux/kernel/projects/backports/stable/v6.1.145/
|
||||
PKG_HASH:=05f2c39f1be0aab49014a6e27a9492ce7ed0491f552db8a07f3ba0de33b9317d
|
||||
|
||||
PKG_SOURCE:=backports-$(PKG_VERSION).tar.xz
|
||||
PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/backports-$(PKG_VERSION)
|
||||
|
||||
@@ -203,7 +203,7 @@ mac80211_hostapd_setup_base() {
|
||||
dsss_cck_40:1
|
||||
|
||||
ht_cap_mask=0
|
||||
for cap in $(iw phy "$phy" info | grep 'Capabilities:' | cut -d: -f2); do
|
||||
for cap in $(iw phy "$phy" info | grep -E '^\s*Capabilities:' | cut -d: -f2); do
|
||||
ht_cap_mask="$(($ht_cap_mask | $cap))"
|
||||
done
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/net/wireless/reg.c
|
||||
+++ b/net/wireless/reg.c
|
||||
@@ -3373,6 +3373,8 @@ void regulatory_hint_country_ie(struct w
|
||||
@@ -3374,6 +3374,8 @@ void regulatory_hint_country_ie(struct w
|
||||
enum environment_cap env = ENVIRON_ANY;
|
||||
struct regulatory_request *request = NULL, *lr;
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
/* IE len must be evenly divisible by 2 */
|
||||
if (country_ie_len & 0x01)
|
||||
return;
|
||||
@@ -3624,6 +3626,7 @@ static bool is_wiphy_all_set_reg_flag(en
|
||||
@@ -3625,6 +3627,7 @@ static bool is_wiphy_all_set_reg_flag(en
|
||||
|
||||
void regulatory_hint_disconnect(void)
|
||||
{
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
#include "../ath.h"
|
||||
#include "ath5k.h"
|
||||
#include "debug.h"
|
||||
@@ -71,7 +72,7 @@ static void ath5k_pci_read_cachesize(str
|
||||
@@ -73,7 +74,7 @@ static void ath5k_pci_read_cachesize(str
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -17,7 +17,7 @@
|
||||
*/
|
||||
static bool
|
||||
ath5k_pci_eeprom_read(struct ath_common *common, u32 offset, u16 *data)
|
||||
@@ -79,6 +80,19 @@ ath5k_pci_eeprom_read(struct ath_common
|
||||
@@ -81,6 +82,19 @@ ath5k_pci_eeprom_read(struct ath_common
|
||||
struct ath5k_hw *ah = (struct ath5k_hw *) common->ah;
|
||||
u32 status, timeout;
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
/*
|
||||
* Initialize EEPROM access
|
||||
*/
|
||||
@@ -122,6 +136,16 @@ static int ath5k_pci_eeprom_read_mac(str
|
||||
@@ -124,6 +138,16 @@ static int ath5k_pci_eeprom_read_mac(str
|
||||
u16 data;
|
||||
int octet;
|
||||
|
||||
|
||||
@@ -456,7 +456,7 @@ v13:
|
||||
{
|
||||
--- a/drivers/net/wireless/ath/ath10k/wmi-tlv.c
|
||||
+++ b/drivers/net/wireless/ath/ath10k/wmi-tlv.c
|
||||
@@ -4598,6 +4598,8 @@ static const struct wmi_ops wmi_tlv_ops
|
||||
@@ -4603,6 +4603,8 @@ static const struct wmi_ops wmi_tlv_ops
|
||||
.gen_echo = ath10k_wmi_tlv_op_gen_echo,
|
||||
.gen_vdev_spectral_conf = ath10k_wmi_tlv_op_gen_vdev_spectral_conf,
|
||||
.gen_vdev_spectral_enable = ath10k_wmi_tlv_op_gen_vdev_spectral_enable,
|
||||
@@ -467,7 +467,7 @@ v13:
|
||||
static const struct wmi_peer_flags_map wmi_tlv_peer_flags_map = {
|
||||
--- a/drivers/net/wireless/ath/ath10k/wmi.c
|
||||
+++ b/drivers/net/wireless/ath/ath10k/wmi.c
|
||||
@@ -7492,6 +7492,49 @@ ath10k_wmi_op_gen_peer_set_param(struct
|
||||
@@ -7493,6 +7493,49 @@ ath10k_wmi_op_gen_peer_set_param(struct
|
||||
return skb;
|
||||
}
|
||||
|
||||
@@ -517,7 +517,7 @@ v13:
|
||||
static struct sk_buff *
|
||||
ath10k_wmi_op_gen_set_psmode(struct ath10k *ar, u32 vdev_id,
|
||||
enum wmi_sta_ps_mode psmode)
|
||||
@@ -9180,6 +9223,9 @@ static const struct wmi_ops wmi_ops = {
|
||||
@@ -9181,6 +9224,9 @@ static const struct wmi_ops wmi_ops = {
|
||||
.fw_stats_fill = ath10k_wmi_main_op_fw_stats_fill,
|
||||
.get_vdev_subtype = ath10k_wmi_op_get_vdev_subtype,
|
||||
.gen_echo = ath10k_wmi_op_gen_echo,
|
||||
@@ -527,7 +527,7 @@ v13:
|
||||
/* .gen_bcn_tmpl not implemented */
|
||||
/* .gen_prb_tmpl not implemented */
|
||||
/* .gen_p2p_go_bcn_ie not implemented */
|
||||
@@ -9250,6 +9296,8 @@ static const struct wmi_ops wmi_10_1_ops
|
||||
@@ -9251,6 +9297,8 @@ static const struct wmi_ops wmi_10_1_ops
|
||||
.fw_stats_fill = ath10k_wmi_10x_op_fw_stats_fill,
|
||||
.get_vdev_subtype = ath10k_wmi_op_get_vdev_subtype,
|
||||
.gen_echo = ath10k_wmi_op_gen_echo,
|
||||
@@ -536,7 +536,7 @@ v13:
|
||||
/* .gen_bcn_tmpl not implemented */
|
||||
/* .gen_prb_tmpl not implemented */
|
||||
/* .gen_p2p_go_bcn_ie not implemented */
|
||||
@@ -9322,6 +9370,8 @@ static const struct wmi_ops wmi_10_2_ops
|
||||
@@ -9323,6 +9371,8 @@ static const struct wmi_ops wmi_10_2_ops
|
||||
.gen_delba_send = ath10k_wmi_op_gen_delba_send,
|
||||
.fw_stats_fill = ath10k_wmi_10x_op_fw_stats_fill,
|
||||
.get_vdev_subtype = ath10k_wmi_op_get_vdev_subtype,
|
||||
@@ -545,7 +545,7 @@ v13:
|
||||
/* .gen_pdev_enable_adaptive_cca not implemented */
|
||||
};
|
||||
|
||||
@@ -9393,6 +9443,8 @@ static const struct wmi_ops wmi_10_2_4_o
|
||||
@@ -9394,6 +9444,8 @@ static const struct wmi_ops wmi_10_2_4_o
|
||||
ath10k_wmi_op_gen_pdev_enable_adaptive_cca,
|
||||
.get_vdev_subtype = ath10k_wmi_10_2_4_op_get_vdev_subtype,
|
||||
.gen_bb_timing = ath10k_wmi_10_2_4_op_gen_bb_timing,
|
||||
@@ -554,7 +554,7 @@ v13:
|
||||
/* .gen_bcn_tmpl not implemented */
|
||||
/* .gen_prb_tmpl not implemented */
|
||||
/* .gen_p2p_go_bcn_ie not implemented */
|
||||
@@ -9474,6 +9526,8 @@ static const struct wmi_ops wmi_10_4_ops
|
||||
@@ -9475,6 +9527,8 @@ static const struct wmi_ops wmi_10_4_ops
|
||||
.gen_pdev_bss_chan_info_req = ath10k_wmi_10_2_op_gen_pdev_bss_chan_info,
|
||||
.gen_echo = ath10k_wmi_op_gen_echo,
|
||||
.gen_pdev_get_tpc_config = ath10k_wmi_10_2_4_op_gen_pdev_get_tpc_config,
|
||||
|
||||
@@ -35,7 +35,7 @@ Link: https://lore.kernel.org/r/20220923170235.18873-1-quic_adisi@quicinc.com
|
||||
|
||||
--- a/drivers/net/wireless/ath/ath11k/core.c
|
||||
+++ b/drivers/net/wireless/ath/ath11k/core.c
|
||||
@@ -1668,7 +1668,7 @@ static void ath11k_update_11d(struct wor
|
||||
@@ -1675,7 +1675,7 @@ static void ath11k_update_11d(struct wor
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,7 +44,7 @@ Link: https://lore.kernel.org/r/20220923170235.18873-1-quic_adisi@quicinc.com
|
||||
{
|
||||
struct ath11k *ar;
|
||||
struct ath11k_pdev *pdev;
|
||||
@@ -1757,9 +1757,6 @@ static void ath11k_core_restart(struct w
|
||||
@@ -1764,9 +1764,6 @@ static void ath11k_core_restart(struct w
|
||||
struct ath11k_base *ab = container_of(work, struct ath11k_base, restart_work);
|
||||
int ret;
|
||||
|
||||
@@ -56,7 +56,7 @@ Link: https://lore.kernel.org/r/20220923170235.18873-1-quic_adisi@quicinc.com
|
||||
ath11k_err(ab, "failed to reconfigure driver on crash recovery\n");
|
||||
--- a/drivers/net/wireless/ath/ath11k/core.h
|
||||
+++ b/drivers/net/wireless/ath/ath11k/core.h
|
||||
@@ -1158,6 +1158,7 @@ int ath11k_core_check_smbios(struct ath1
|
||||
@@ -1160,6 +1160,7 @@ int ath11k_core_check_smbios(struct ath1
|
||||
void ath11k_core_halt(struct ath11k *ar);
|
||||
int ath11k_core_resume(struct ath11k_base *ab);
|
||||
int ath11k_core_suspend(struct ath11k_base *ab);
|
||||
@@ -66,7 +66,7 @@ Link: https://lore.kernel.org/r/20220923170235.18873-1-quic_adisi@quicinc.com
|
||||
const char *filename);
|
||||
--- a/drivers/net/wireless/ath/ath11k/qmi.c
|
||||
+++ b/drivers/net/wireless/ath/ath11k/qmi.c
|
||||
@@ -3169,6 +3169,9 @@ static void ath11k_qmi_driver_event_work
|
||||
@@ -3178,6 +3178,9 @@ static void ath11k_qmi_driver_event_work
|
||||
case ATH11K_QMI_EVENT_SERVER_EXIT:
|
||||
set_bit(ATH11K_FLAG_CRASH_FLUSH, &ab->dev_flags);
|
||||
set_bit(ATH11K_FLAG_RECOVERY, &ab->dev_flags);
|
||||
|
||||
@@ -90,7 +90,7 @@ Link: https://lore.kernel.org/r/20221007051130.6067-1-quic_mpubbise@quicinc.com
|
||||
|
||||
exit:
|
||||
kfree(arg.chan_list);
|
||||
@@ -9072,6 +9094,9 @@ static int __ath11k_mac_register(struct
|
||||
@@ -9074,6 +9096,9 @@ static int __ath11k_mac_register(struct
|
||||
NL80211_EXT_FEATURE_UNSOL_BCAST_PROBE_RESP);
|
||||
}
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@ Link: https://lore.kernel.org/r/20221014155054.11471-1-quic_nmaran@quicinc.com
|
||||
|
||||
--- a/drivers/net/wireless/ath/ath11k/core.c
|
||||
+++ b/drivers/net/wireless/ath/ath11k/core.c
|
||||
@@ -1704,6 +1704,10 @@ void ath11k_core_pre_reconfigure_recover
|
||||
@@ -1711,6 +1711,10 @@ void ath11k_core_pre_reconfigure_recover
|
||||
ath11k_mac_tx_mgmt_pending_free, ar);
|
||||
idr_destroy(&ar->txmgmt_idr);
|
||||
wake_up(&ar->txmgmt_empty_waitq);
|
||||
|
||||
@@ -34,7 +34,7 @@ Link: https://lore.kernel.org/r/20221122132152.17771-4-quic_kathirve@quicinc.com
|
||||
.rx_mac_buf_ring = false,
|
||||
--- a/drivers/net/wireless/ath/ath11k/core.h
|
||||
+++ b/drivers/net/wireless/ath/ath11k/core.h
|
||||
@@ -1145,6 +1145,9 @@ extern const struct service_to_pipe ath1
|
||||
@@ -1147,6 +1147,9 @@ extern const struct service_to_pipe ath1
|
||||
extern const struct ce_pipe_config ath11k_target_ce_config_wlan_qca6390[];
|
||||
extern const struct service_to_pipe ath11k_target_service_to_ce_map_wlan_qca6390[];
|
||||
|
||||
|
||||
@@ -212,7 +212,7 @@ Link: https://lore.kernel.org/r/20221122132152.17771-5-quic_kathirve@quicinc.com
|
||||
.rx_mac_buf_ring = false,
|
||||
--- a/drivers/net/wireless/ath/ath11k/core.h
|
||||
+++ b/drivers/net/wireless/ath/ath11k/core.h
|
||||
@@ -851,6 +851,7 @@ struct ath11k_base {
|
||||
@@ -853,6 +853,7 @@ struct ath11k_base {
|
||||
struct ath11k_dp dp;
|
||||
|
||||
void __iomem *mem;
|
||||
|
||||
@@ -146,7 +146,7 @@ Link: https://lore.kernel.org/r/20221220044435.10506-1-quic_rajkbhag@quicinc.com
|
||||
if (changed & BSS_CHANGED_FILS_DISCOVERY ||
|
||||
changed & BSS_CHANGED_UNSOL_BCAST_PROBE_RESP)
|
||||
ath11k_mac_fils_discovery(arvif, info);
|
||||
@@ -9125,6 +9139,10 @@ static int __ath11k_mac_register(struct
|
||||
@@ -9127,6 +9141,10 @@ static int __ath11k_mac_register(struct
|
||||
wiphy_ext_feature_set(ar->hw->wiphy,
|
||||
NL80211_EXT_FEATURE_SET_SCAN_DWELL);
|
||||
|
||||
|
||||
@@ -36,7 +36,7 @@ Link: https://lore.kernel.org/r/20221219053844.4084486-1-quic_mkenna@quicinc.com
|
||||
static int ath11k_hw_mac_id_to_pdev_id_ipq8074(struct ath11k_hw_params *hw,
|
||||
--- a/drivers/net/wireless/ath/ath11k/mac.c
|
||||
+++ b/drivers/net/wireless/ath/ath11k/mac.c
|
||||
@@ -9186,6 +9186,11 @@ static int __ath11k_mac_register(struct
|
||||
@@ -9188,6 +9188,11 @@ static int __ath11k_mac_register(struct
|
||||
goto err_free_if_combs;
|
||||
}
|
||||
|
||||
|
||||
@@ -65,7 +65,7 @@ Link: https://lore.kernel.org/r/20230309164434.32660-1-quic_hprem@quicinc.com
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -3037,39 +3014,51 @@ static int ath11k_dp_rx_reap_mon_status_
|
||||
@@ -3044,39 +3021,51 @@ static int ath11k_dp_rx_reap_mon_status_
|
||||
|
||||
spin_lock_bh(&rx_ring->idr_lock);
|
||||
skb = idr_find(&rx_ring->bufs_idr, buf_id);
|
||||
|
||||
@@ -106,7 +106,7 @@ Link: https://lore.kernel.org/r/20230317072034.8217-1-quic_gjothira@quicinc.com
|
||||
(vif->type == NL80211_IFTYPE_AP ||
|
||||
vif->type == NL80211_IFTYPE_MESH_POINT)) {
|
||||
arvif->ftm_responder = info->ftm_responder;
|
||||
@@ -9246,7 +9246,7 @@ static int __ath11k_mac_register(struct
|
||||
@@ -9248,7 +9248,7 @@ static int __ath11k_mac_register(struct
|
||||
wiphy_ext_feature_set(ar->hw->wiphy,
|
||||
NL80211_EXT_FEATURE_SET_SCAN_DWELL);
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@ Link: https://lore.kernel.org/r/20230320110312.20639-1-quic_ppranees@quicinc.com
|
||||
|
||||
--- a/drivers/net/wireless/ath/ath11k/hal_rx.c
|
||||
+++ b/drivers/net/wireless/ath/ath11k/hal_rx.c
|
||||
@@ -865,6 +865,12 @@ ath11k_hal_rx_populate_mu_user_info(void
|
||||
@@ -866,6 +866,12 @@ ath11k_hal_rx_populate_mu_user_info(void
|
||||
ath11k_hal_rx_populate_byte_count(rx_tlv, ppdu_info, rx_user_status);
|
||||
}
|
||||
|
||||
@@ -37,7 +37,7 @@ Link: https://lore.kernel.org/r/20230320110312.20639-1-quic_ppranees@quicinc.com
|
||||
static enum hal_rx_mon_status
|
||||
ath11k_hal_rx_parse_mon_status_tlv(struct ath11k_base *ab,
|
||||
struct hal_rx_mon_ppdu_info *ppdu_info,
|
||||
@@ -1459,9 +1465,11 @@ ath11k_hal_rx_parse_mon_status_tlv(struc
|
||||
@@ -1460,9 +1466,11 @@ ath11k_hal_rx_parse_mon_status_tlv(struc
|
||||
break;
|
||||
}
|
||||
case HAL_RX_MPDU_START: {
|
||||
|
||||
@@ -19,7 +19,7 @@ Link: https://lore.kernel.org/r/20230405090425.1351-1-kvalo@kernel.org
|
||||
|
||||
--- a/drivers/net/wireless/ath/ath11k/dp_rx.c
|
||||
+++ b/drivers/net/wireless/ath/ath11k/dp_rx.c
|
||||
@@ -3114,8 +3114,11 @@ int ath11k_peer_rx_frag_setup(struct ath
|
||||
@@ -3121,8 +3121,11 @@ int ath11k_peer_rx_frag_setup(struct ath
|
||||
int i;
|
||||
|
||||
tfm = crypto_alloc_shash("michael_mic", 0, 0);
|
||||
|
||||
@@ -18,7 +18,7 @@ Link: https://lore.kernel.org/r/20230403184155.8670-3-quic_nmaran@quicinc.com
|
||||
|
||||
--- a/drivers/net/wireless/ath/ath11k/dp_rx.c
|
||||
+++ b/drivers/net/wireless/ath/ath11k/dp_rx.c
|
||||
@@ -3606,7 +3606,7 @@ static int ath11k_dp_rx_frag_h_mpdu(stru
|
||||
@@ -3613,7 +3613,7 @@ static int ath11k_dp_rx_frag_h_mpdu(stru
|
||||
goto out_unlock;
|
||||
}
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@ Link: https://lore.kernel.org/r/20230403195738.25367-3-quic_pradeepc@quicinc.com
|
||||
|
||||
--- a/drivers/net/wireless/ath/ath11k/hal_rx.c
|
||||
+++ b/drivers/net/wireless/ath/ath11k/hal_rx.c
|
||||
@@ -1029,7 +1029,7 @@ ath11k_hal_rx_parse_mon_status_tlv(struc
|
||||
@@ -1030,7 +1030,7 @@ ath11k_hal_rx_parse_mon_status_tlv(struc
|
||||
info1 = __le32_to_cpu(vht_sig->info1);
|
||||
|
||||
ppdu_info->ldpc = FIELD_GET(HAL_RX_VHT_SIG_A_INFO_INFO1_SU_MU_CODING,
|
||||
@@ -27,7 +27,7 @@ Link: https://lore.kernel.org/r/20230403195738.25367-3-quic_pradeepc@quicinc.com
|
||||
ppdu_info->mcs = FIELD_GET(HAL_RX_VHT_SIG_A_INFO_INFO1_MCS,
|
||||
info1);
|
||||
gi_setting = FIELD_GET(HAL_RX_VHT_SIG_A_INFO_INFO1_GI_SETTING,
|
||||
@@ -1452,7 +1452,7 @@ ath11k_hal_rx_parse_mon_status_tlv(struc
|
||||
@@ -1453,7 +1453,7 @@ ath11k_hal_rx_parse_mon_status_tlv(struc
|
||||
* PHYRX_OTHER_RECEIVE_INFO TLV.
|
||||
*/
|
||||
ppdu_info->rssi_comb =
|
||||
|
||||
@@ -56,7 +56,7 @@ Link: https://lore.kernel.org/r/20230405221648.17950-2-quic_alokad@quicinc.com
|
||||
#define ATH11K_QUEUE_LEN 4096
|
||||
--- a/drivers/net/wireless/ath/ath11k/mac.c
|
||||
+++ b/drivers/net/wireless/ath/ath11k/mac.c
|
||||
@@ -9013,19 +9013,23 @@ static int ath11k_mac_setup_iface_combin
|
||||
@@ -9015,19 +9015,23 @@ static int ath11k_mac_setup_iface_combin
|
||||
|
||||
static const u8 ath11k_if_types_ext_capa[] = {
|
||||
[0] = WLAN_EXT_CAPA1_EXT_CHANNEL_SWITCHING,
|
||||
@@ -80,7 +80,7 @@ Link: https://lore.kernel.org/r/20230405221648.17950-2-quic_alokad@quicinc.com
|
||||
};
|
||||
|
||||
static const struct wiphy_iftype_ext_capab ath11k_iftypes_ext_capa[] = {
|
||||
@@ -9263,6 +9267,9 @@ static int __ath11k_mac_register(struct
|
||||
@@ -9265,6 +9269,9 @@ static int __ath11k_mac_register(struct
|
||||
wiphy_ext_feature_set(ar->hw->wiphy,
|
||||
NL80211_EXT_FEATURE_ENABLE_FTM_RESPONDER);
|
||||
|
||||
|
||||
@@ -1,128 +0,0 @@
|
||||
From 86f85575a3f6a20cef1c8bb98e78585fe3a53ccc Mon Sep 17 00:00:00 2001
|
||||
From: Govindaraj Saminathan <quic_gsaminat@quicinc.com>
|
||||
Date: Fri, 26 May 2023 12:41:06 +0300
|
||||
Subject: [PATCH 82/84] wifi: ath11k: remove unused function
|
||||
ath11k_tm_event_wmi()
|
||||
|
||||
The function ath11k_tm_event_wmi() is only defined and it is not used
|
||||
anywhere. Hence remove the unused.
|
||||
|
||||
Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1
|
||||
|
||||
Signed-off-by: Govindaraj Saminathan <quic_gsaminat@quicinc.com>
|
||||
Signed-off-by: Raj Kumar Bhagat <quic_rajkbhag@quicinc.com>
|
||||
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
|
||||
Link: https://lore.kernel.org/r/20230517135934.16408-2-quic_rajkbhag@quicinc.com
|
||||
---
|
||||
drivers/net/wireless/ath/ath11k/testmode.c | 64 +---------------------
|
||||
drivers/net/wireless/ath/ath11k/testmode.h | 8 +--
|
||||
2 files changed, 2 insertions(+), 70 deletions(-)
|
||||
|
||||
--- a/drivers/net/wireless/ath/ath11k/testmode.c
|
||||
+++ b/drivers/net/wireless/ath/ath11k/testmode.c
|
||||
@@ -1,6 +1,7 @@
|
||||
// SPDX-License-Identifier: BSD-3-Clause-Clear
|
||||
/*
|
||||
* Copyright (c) 2018-2019 The Linux Foundation. All rights reserved.
|
||||
+ * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*/
|
||||
|
||||
#include "testmode.h"
|
||||
@@ -20,69 +21,6 @@ static const struct nla_policy ath11k_tm
|
||||
[ATH11K_TM_ATTR_VERSION_MINOR] = { .type = NLA_U32 },
|
||||
};
|
||||
|
||||
-/* Returns true if callee consumes the skb and the skb should be discarded.
|
||||
- * Returns false if skb is not used. Does not sleep.
|
||||
- */
|
||||
-bool ath11k_tm_event_wmi(struct ath11k *ar, u32 cmd_id, struct sk_buff *skb)
|
||||
-{
|
||||
- struct sk_buff *nl_skb;
|
||||
- bool consumed;
|
||||
- int ret;
|
||||
-
|
||||
- ath11k_dbg(ar->ab, ATH11K_DBG_TESTMODE,
|
||||
- "testmode event wmi cmd_id %d skb %pK skb->len %d\n",
|
||||
- cmd_id, skb, skb->len);
|
||||
-
|
||||
- ath11k_dbg_dump(ar->ab, ATH11K_DBG_TESTMODE, NULL, "", skb->data, skb->len);
|
||||
-
|
||||
- spin_lock_bh(&ar->data_lock);
|
||||
-
|
||||
- consumed = true;
|
||||
-
|
||||
- nl_skb = cfg80211_testmode_alloc_event_skb(ar->hw->wiphy,
|
||||
- 2 * sizeof(u32) + skb->len,
|
||||
- GFP_ATOMIC);
|
||||
- if (!nl_skb) {
|
||||
- ath11k_warn(ar->ab,
|
||||
- "failed to allocate skb for testmode wmi event\n");
|
||||
- goto out;
|
||||
- }
|
||||
-
|
||||
- ret = nla_put_u32(nl_skb, ATH11K_TM_ATTR_CMD, ATH11K_TM_CMD_WMI);
|
||||
- if (ret) {
|
||||
- ath11k_warn(ar->ab,
|
||||
- "failed to put testmode wmi event cmd attribute: %d\n",
|
||||
- ret);
|
||||
- kfree_skb(nl_skb);
|
||||
- goto out;
|
||||
- }
|
||||
-
|
||||
- ret = nla_put_u32(nl_skb, ATH11K_TM_ATTR_WMI_CMDID, cmd_id);
|
||||
- if (ret) {
|
||||
- ath11k_warn(ar->ab,
|
||||
- "failed to put testmode wmi even cmd_id: %d\n",
|
||||
- ret);
|
||||
- kfree_skb(nl_skb);
|
||||
- goto out;
|
||||
- }
|
||||
-
|
||||
- ret = nla_put(nl_skb, ATH11K_TM_ATTR_DATA, skb->len, skb->data);
|
||||
- if (ret) {
|
||||
- ath11k_warn(ar->ab,
|
||||
- "failed to copy skb to testmode wmi event: %d\n",
|
||||
- ret);
|
||||
- kfree_skb(nl_skb);
|
||||
- goto out;
|
||||
- }
|
||||
-
|
||||
- cfg80211_testmode_event(nl_skb, GFP_ATOMIC);
|
||||
-
|
||||
-out:
|
||||
- spin_unlock_bh(&ar->data_lock);
|
||||
-
|
||||
- return consumed;
|
||||
-}
|
||||
-
|
||||
static int ath11k_tm_cmd_get_version(struct ath11k *ar, struct nlattr *tb[])
|
||||
{
|
||||
struct sk_buff *skb;
|
||||
--- a/drivers/net/wireless/ath/ath11k/testmode.h
|
||||
+++ b/drivers/net/wireless/ath/ath11k/testmode.h
|
||||
@@ -1,24 +1,18 @@
|
||||
/* SPDX-License-Identifier: BSD-3-Clause-Clear */
|
||||
/*
|
||||
* Copyright (c) 2018-2019 The Linux Foundation. All rights reserved.
|
||||
+ * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*/
|
||||
|
||||
#include "core.h"
|
||||
|
||||
#ifdef CPTCFG_NL80211_TESTMODE
|
||||
|
||||
-bool ath11k_tm_event_wmi(struct ath11k *ar, u32 cmd_id, struct sk_buff *skb);
|
||||
int ath11k_tm_cmd(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
|
||||
void *data, int len);
|
||||
|
||||
#else
|
||||
|
||||
-static inline bool ath11k_tm_event_wmi(struct ath11k *ar, u32 cmd_id,
|
||||
- struct sk_buff *skb)
|
||||
-{
|
||||
- return false;
|
||||
-}
|
||||
-
|
||||
static inline int ath11k_tm_cmd(struct ieee80211_hw *hw,
|
||||
struct ieee80211_vif *vif,
|
||||
void *data, int len)
|
||||
@@ -91,7 +91,7 @@ Link: https://lore.kernel.org/r/20230517135934.16408-4-quic_rajkbhag@quicinc.com
|
||||
static const struct ath11k_hw_params ath11k_hw_params[] = {
|
||||
{
|
||||
.hw_rev = ATH11K_HW_IPQ8074,
|
||||
@@ -1381,6 +1385,11 @@ static int ath11k_core_soc_create(struct
|
||||
@@ -1382,6 +1386,11 @@ static int ath11k_core_soc_create(struct
|
||||
{
|
||||
int ret;
|
||||
|
||||
@@ -103,16 +103,16 @@ Link: https://lore.kernel.org/r/20230517135934.16408-4-quic_rajkbhag@quicinc.com
|
||||
ret = ath11k_qmi_init_service(ab);
|
||||
if (ret) {
|
||||
ath11k_err(ab, "failed to initialize qmi :%d\n", ret);
|
||||
@@ -1607,7 +1616,7 @@ int ath11k_core_qmi_firmware_ready(struc
|
||||
{
|
||||
int ret;
|
||||
@@ -1622,7 +1631,7 @@ int ath11k_core_qmi_firmware_ready(struc
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
- ret = ath11k_core_start_firmware(ab, ATH11K_FIRMWARE_MODE_NORMAL);
|
||||
+ ret = ath11k_core_start_firmware(ab, ab->fw_mode);
|
||||
if (ret) {
|
||||
ath11k_err(ab, "failed to start firmware: %d\n", ret);
|
||||
return ret;
|
||||
@@ -1772,7 +1781,8 @@ void ath11k_core_pre_reconfigure_recover
|
||||
@@ -1779,7 +1788,8 @@ void ath11k_core_pre_reconfigure_recover
|
||||
for (i = 0; i < ab->num_radios; i++) {
|
||||
pdev = &ab->pdevs[i];
|
||||
ar = pdev->ar;
|
||||
@@ -122,7 +122,7 @@ Link: https://lore.kernel.org/r/20230517135934.16408-4-quic_rajkbhag@quicinc.com
|
||||
continue;
|
||||
|
||||
ieee80211_stop_queues(ar->hw);
|
||||
@@ -1841,7 +1851,12 @@ static void ath11k_core_post_reconfigure
|
||||
@@ -1848,7 +1858,12 @@ static void ath11k_core_post_reconfigure
|
||||
ath11k_warn(ab,
|
||||
"device is wedged, will not restart radio %d\n", i);
|
||||
break;
|
||||
@@ -170,7 +170,7 @@ Link: https://lore.kernel.org/r/20230517135934.16408-4-quic_rajkbhag@quicinc.com
|
||||
/* Add other states as required */
|
||||
};
|
||||
|
||||
@@ -709,6 +712,8 @@ struct ath11k {
|
||||
@@ -711,6 +714,8 @@ struct ath11k {
|
||||
u32 last_ppdu_id;
|
||||
u32 cached_ppdu_id;
|
||||
int monitor_vdev_id;
|
||||
@@ -179,7 +179,7 @@ Link: https://lore.kernel.org/r/20230517135934.16408-4-quic_rajkbhag@quicinc.com
|
||||
#ifdef CPTCFG_ATH11K_DEBUGFS
|
||||
struct ath11k_debug debug;
|
||||
#endif
|
||||
@@ -838,6 +843,7 @@ struct ath11k_msi_config {
|
||||
@@ -840,6 +845,7 @@ struct ath11k_msi_config {
|
||||
/* Master structure to hold the hw data which may be used in core module */
|
||||
struct ath11k_base {
|
||||
enum ath11k_hw_rev hw_rev;
|
||||
@@ -187,7 +187,7 @@ Link: https://lore.kernel.org/r/20230517135934.16408-4-quic_rajkbhag@quicinc.com
|
||||
struct platform_device *pdev;
|
||||
struct device *dev;
|
||||
struct ath11k_qmi qmi;
|
||||
@@ -978,6 +984,14 @@ struct ath11k_base {
|
||||
@@ -980,6 +986,14 @@ struct ath11k_base {
|
||||
const struct ath11k_pci_ops *ops;
|
||||
} pci;
|
||||
|
||||
|
||||
@@ -30,7 +30,7 @@ Link: https://lore.kernel.org/r/20230517135934.16408-5-quic_rajkbhag@quicinc.com
|
||||
*/
|
||||
|
||||
#include <linux/elf.h>
|
||||
@@ -2465,6 +2465,14 @@ static int ath11k_qmi_load_bdf_qmi(struc
|
||||
@@ -2474,6 +2474,14 @@ static int ath11k_qmi_load_bdf_qmi(struc
|
||||
|
||||
fw_entry = ath11k_core_firmware_request(ab, ATH11K_DEFAULT_CAL_FILE);
|
||||
if (IS_ERR(fw_entry)) {
|
||||
|
||||
@@ -115,7 +115,7 @@ Link: https://lore.kernel.org/r/20230726141032.3061-2-quic_rajkbhag@quicinc.com
|
||||
.cbcal_restart_fw = true,
|
||||
.fix_l1ss = true,
|
||||
.supports_dynamic_smps_6ghz = false,
|
||||
@@ -749,6 +757,18 @@ void ath11k_fw_stats_free(struct ath11k_
|
||||
@@ -750,6 +758,18 @@ void ath11k_fw_stats_free(struct ath11k_
|
||||
ath11k_fw_stats_bcn_free(&stats->bcn);
|
||||
}
|
||||
|
||||
@@ -136,7 +136,7 @@ Link: https://lore.kernel.org/r/20230726141032.3061-2-quic_rajkbhag@quicinc.com
|
||||
int ret;
|
||||
--- a/drivers/net/wireless/ath/ath11k/core.h
|
||||
+++ b/drivers/net/wireless/ath/ath11k/core.h
|
||||
@@ -1186,6 +1186,7 @@ void ath11k_core_halt(struct ath11k *ar)
|
||||
@@ -1188,6 +1188,7 @@ void ath11k_core_halt(struct ath11k *ar)
|
||||
int ath11k_core_resume(struct ath11k_base *ab);
|
||||
int ath11k_core_suspend(struct ath11k_base *ab);
|
||||
void ath11k_core_pre_reconfigure_recovery(struct ath11k_base *ab);
|
||||
@@ -158,7 +158,7 @@ Link: https://lore.kernel.org/r/20230726141032.3061-2-quic_rajkbhag@quicinc.com
|
||||
u32 num_vdevs;
|
||||
--- a/drivers/net/wireless/ath/ath11k/qmi.c
|
||||
+++ b/drivers/net/wireless/ath/ath11k/qmi.c
|
||||
@@ -2082,7 +2082,7 @@ static int ath11k_qmi_assign_target_mem_
|
||||
@@ -2091,7 +2091,7 @@ static int ath11k_qmi_assign_target_mem_
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
@@ -167,7 +167,7 @@ Link: https://lore.kernel.org/r/20230726141032.3061-2-quic_rajkbhag@quicinc.com
|
||||
if (hremote_node) {
|
||||
ab->qmi.target_mem[idx].paddr =
|
||||
res.start + host_ddr_sz;
|
||||
@@ -3212,8 +3212,8 @@ static void ath11k_qmi_driver_event_work
|
||||
@@ -3221,8 +3221,8 @@ static void ath11k_qmi_driver_event_work
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
@@ -122,7 +122,7 @@ Link: https://lore.kernel.org/r/20230726141032.3061-3-quic_rajkbhag@quicinc.com
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_address.h>
|
||||
#include <linux/ioport.h>
|
||||
@@ -2842,6 +2843,33 @@ int ath11k_qmi_firmware_start(struct ath
|
||||
@@ -2851,6 +2852,33 @@ int ath11k_qmi_firmware_start(struct ath
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@ Link: https://lore.kernel.org/r/20230726141032.3061-4-quic_rajkbhag@quicinc.com
|
||||
|
||||
--- a/drivers/net/wireless/ath/ath11k/qmi.c
|
||||
+++ b/drivers/net/wireless/ath/ath11k/qmi.c
|
||||
@@ -2847,7 +2847,7 @@ int ath11k_qmi_fwreset_from_cold_boot(st
|
||||
@@ -2856,7 +2856,7 @@ int ath11k_qmi_fwreset_from_cold_boot(st
|
||||
{
|
||||
int timeout;
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@ Link: https://lore.kernel.org/r/20230830060226.18664-1-quic_wgong@quicinc.com
|
||||
|
||||
--- a/drivers/net/wireless/ath/ath11k/core.c
|
||||
+++ b/drivers/net/wireless/ath/ath11k/core.c
|
||||
@@ -985,9 +985,15 @@ int ath11k_core_check_dt(struct ath11k_b
|
||||
@@ -986,9 +986,15 @@ int ath11k_core_check_dt(struct ath11k_b
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -39,7 +39,7 @@ Link: https://lore.kernel.org/r/20230830060226.18664-1-quic_wgong@quicinc.com
|
||||
{
|
||||
/* strlen(',variant=') + strlen(ab->qmi.target.bdf_ext) */
|
||||
char variant[9 + ATH11K_QMI_BDF_EXT_STR_LENGTH] = { 0 };
|
||||
@@ -998,11 +1004,8 @@ static int __ath11k_core_create_board_na
|
||||
@@ -999,11 +1005,8 @@ static int __ath11k_core_create_board_na
|
||||
|
||||
switch (ab->id.bdf_search) {
|
||||
case ATH11K_BDF_SEARCH_BUS_AND_BOARD:
|
||||
@@ -53,7 +53,7 @@ Link: https://lore.kernel.org/r/20230830060226.18664-1-quic_wgong@quicinc.com
|
||||
scnprintf(name, name_len,
|
||||
"bus=%s,vendor=%04x,device=%04x,subsystem-vendor=%04x,subsystem-device=%04x,qmi-chip-id=%d,qmi-board-id=%d%s",
|
||||
ath11k_bus_str(ab->hif.bus),
|
||||
@@ -1012,6 +1015,19 @@ static int __ath11k_core_create_board_na
|
||||
@@ -1013,6 +1016,19 @@ static int __ath11k_core_create_board_na
|
||||
ab->qmi.target.chip_id,
|
||||
ab->qmi.target.board_id,
|
||||
variant);
|
||||
@@ -73,7 +73,7 @@ Link: https://lore.kernel.org/r/20230830060226.18664-1-quic_wgong@quicinc.com
|
||||
break;
|
||||
default:
|
||||
scnprintf(name, name_len,
|
||||
@@ -1030,19 +1046,29 @@ static int __ath11k_core_create_board_na
|
||||
@@ -1031,19 +1047,29 @@ static int __ath11k_core_create_board_na
|
||||
static int ath11k_core_create_board_name(struct ath11k_base *ab, char *name,
|
||||
size_t name_len)
|
||||
{
|
||||
@@ -106,7 +106,7 @@ Link: https://lore.kernel.org/r/20230830060226.18664-1-quic_wgong@quicinc.com
|
||||
}
|
||||
|
||||
const struct firmware *ath11k_core_firmware_request(struct ath11k_base *ab,
|
||||
@@ -1289,16 +1315,21 @@ int ath11k_core_fetch_board_data_api_1(s
|
||||
@@ -1290,16 +1316,21 @@ int ath11k_core_fetch_board_data_api_1(s
|
||||
#define BOARD_NAME_SIZE 200
|
||||
int ath11k_core_fetch_bdf(struct ath11k_base *ab, struct ath11k_board_data *bd)
|
||||
{
|
||||
@@ -132,7 +132,7 @@ Link: https://lore.kernel.org/r/20230830060226.18664-1-quic_wgong@quicinc.com
|
||||
}
|
||||
|
||||
ab->bd_api = 2;
|
||||
@@ -1307,13 +1338,19 @@ int ath11k_core_fetch_bdf(struct ath11k_
|
||||
@@ -1308,13 +1339,19 @@ int ath11k_core_fetch_bdf(struct ath11k_
|
||||
ATH11K_BD_IE_BOARD_NAME,
|
||||
ATH11K_BD_IE_BOARD_DATA);
|
||||
if (!ret)
|
||||
@@ -155,7 +155,7 @@ Link: https://lore.kernel.org/r/20230830060226.18664-1-quic_wgong@quicinc.com
|
||||
}
|
||||
|
||||
ret = ath11k_core_fetch_board_data_api_n(ab, bd, fallback_boardname,
|
||||
@@ -1321,7 +1358,28 @@ int ath11k_core_fetch_bdf(struct ath11k_
|
||||
@@ -1322,7 +1359,28 @@ int ath11k_core_fetch_bdf(struct ath11k_
|
||||
ATH11K_BD_IE_BOARD_NAME,
|
||||
ATH11K_BD_IE_BOARD_DATA);
|
||||
if (!ret)
|
||||
@@ -185,7 +185,7 @@ Link: https://lore.kernel.org/r/20230830060226.18664-1-quic_wgong@quicinc.com
|
||||
|
||||
ab->bd_api = 1;
|
||||
ret = ath11k_core_fetch_board_data_api_1(ab, bd, ATH11K_DEFAULT_BOARD_FILE);
|
||||
@@ -1334,14 +1392,22 @@ int ath11k_core_fetch_bdf(struct ath11k_
|
||||
@@ -1335,14 +1393,22 @@ int ath11k_core_fetch_bdf(struct ath11k_
|
||||
ath11k_err(ab, "failed to fetch board data for %s from %s\n",
|
||||
fallback_boardname, filepath);
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@ Signed-off-by: Robert Marko <robimarko@gmail.com>
|
||||
{
|
||||
.hw_rev = ATH11K_HW_IPQ8074,
|
||||
.name = "ipq8074 hw2.0",
|
||||
@@ -2040,7 +2040,8 @@ static void ath11k_core_reset(struct wor
|
||||
@@ -2047,7 +2047,8 @@ static void ath11k_core_reset(struct wor
|
||||
static int ath11k_init_hw_params(struct ath11k_base *ab)
|
||||
{
|
||||
const struct ath11k_hw_params *hw_params = NULL;
|
||||
@@ -41,7 +41,7 @@ Signed-off-by: Robert Marko <robimarko@gmail.com>
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(ath11k_hw_params); i++) {
|
||||
hw_params = &ath11k_hw_params[i];
|
||||
@@ -2056,7 +2057,31 @@ static int ath11k_init_hw_params(struct
|
||||
@@ -2063,7 +2064,31 @@ static int ath11k_init_hw_params(struct
|
||||
|
||||
ab->hw_params = *hw_params;
|
||||
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
--- a/drivers/net/wireless/ath/ath5k/pci.c
|
||||
+++ b/drivers/net/wireless/ath/ath5k/pci.c
|
||||
@@ -47,6 +47,8 @@ static const struct pci_device_id ath5k_
|
||||
{ PCI_VDEVICE(ATHEROS, 0x001b) }, /* 5413 Eagle */
|
||||
{ PCI_VDEVICE(ATHEROS, 0x001c) }, /* PCI-E cards */
|
||||
{ PCI_VDEVICE(ATHEROS, 0x001d) }, /* 2417 Nala */
|
||||
+ { PCI_VDEVICE(ATHEROS, 0xff16) }, /* 2413,2414 sx76x on lantiq_danube */
|
||||
+ { PCI_VDEVICE(ATHEROS, 0xff1a) }, /* 2417 arv45xx on lantiq_danube */
|
||||
{ PCI_VDEVICE(ATHEROS, 0xff1b) }, /* AR5BXB63 */
|
||||
{ 0 }
|
||||
};
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/drivers/net/wireless/ath/ath9k/init.c
|
||||
+++ b/drivers/net/wireless/ath/ath9k/init.c
|
||||
@@ -882,6 +882,7 @@ static const struct ieee80211_iface_limi
|
||||
@@ -884,6 +884,7 @@ static const struct ieee80211_iface_limi
|
||||
BIT(NL80211_IFTYPE_AP) },
|
||||
{ .max = 1, .types = BIT(NL80211_IFTYPE_P2P_CLIENT) |
|
||||
BIT(NL80211_IFTYPE_P2P_GO) },
|
||||
|
||||
@@ -14,7 +14,7 @@ Signed-off-by: David Bauer <mail@david-bauer.net>
|
||||
|
||||
--- a/drivers/net/wireless/ath/ath9k/init.c
|
||||
+++ b/drivers/net/wireless/ath/ath9k/init.c
|
||||
@@ -963,6 +963,7 @@ static void ath9k_set_hw_capab(struct at
|
||||
@@ -965,6 +965,7 @@ static void ath9k_set_hw_capab(struct at
|
||||
ieee80211_hw_set(hw, HOST_BROADCAST_PS_BUFFERING);
|
||||
ieee80211_hw_set(hw, SUPPORT_FAST_XMIT);
|
||||
ieee80211_hw_set(hw, SUPPORTS_CLONED_SKBS);
|
||||
@@ -22,7 +22,7 @@ Signed-off-by: David Bauer <mail@david-bauer.net>
|
||||
|
||||
if (ath9k_ps_enable)
|
||||
ieee80211_hw_set(hw, SUPPORTS_PS);
|
||||
@@ -975,9 +976,6 @@ static void ath9k_set_hw_capab(struct at
|
||||
@@ -977,9 +978,6 @@ static void ath9k_set_hw_capab(struct at
|
||||
IEEE80211_RADIOTAP_MCS_HAVE_STBC;
|
||||
}
|
||||
|
||||
|
||||
@@ -55,7 +55,7 @@
|
||||
int ath9k_init_debug(struct ath_hw *ah)
|
||||
{
|
||||
struct ath_common *common = ath9k_hw_common(ah);
|
||||
@@ -1432,6 +1480,8 @@ int ath9k_init_debug(struct ath_hw *ah)
|
||||
@@ -1430,6 +1478,8 @@ int ath9k_init_debug(struct ath_hw *ah)
|
||||
ath9k_tx99_init_debug(sc);
|
||||
ath9k_cmn_spectral_init_debug(&sc->spec_priv, sc->debug.debugfs_phy);
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/drivers/net/wireless/ath/ath9k/init.c
|
||||
+++ b/drivers/net/wireless/ath/ath9k/init.c
|
||||
@@ -1178,25 +1178,25 @@ static int __init ath9k_init(void)
|
||||
@@ -1180,25 +1180,25 @@ static int __init ath9k_init(void)
|
||||
{
|
||||
int error;
|
||||
|
||||
|
||||
@@ -53,7 +53,7 @@
|
||||
int ath9k_init_debug(struct ath_hw *ah)
|
||||
{
|
||||
struct ath_common *common = ath9k_hw_common(ah);
|
||||
@@ -1482,6 +1528,8 @@ int ath9k_init_debug(struct ath_hw *ah)
|
||||
@@ -1480,6 +1526,8 @@ int ath9k_init_debug(struct ath_hw *ah)
|
||||
|
||||
debugfs_create_file("eeprom", S_IRUSR, sc->debug.debugfs_phy, sc,
|
||||
&fops_eeprom);
|
||||
|
||||
@@ -181,7 +181,7 @@
|
||||
|
||||
--- a/drivers/net/wireless/ath/ath9k/init.c
|
||||
+++ b/drivers/net/wireless/ath/ath9k/init.c
|
||||
@@ -1088,7 +1088,7 @@ int ath9k_init_device(u16 devid, struct
|
||||
@@ -1090,7 +1090,7 @@ int ath9k_init_device(u16 devid, struct
|
||||
|
||||
#ifdef CPTCFG_MAC80211_LEDS
|
||||
/* must be initialized before ieee80211_register_hw */
|
||||
@@ -254,7 +254,7 @@
|
||||
|
||||
int ath9k_init_debug(struct ath_hw *ah)
|
||||
{
|
||||
@@ -1530,6 +1585,10 @@ int ath9k_init_debug(struct ath_hw *ah)
|
||||
@@ -1528,6 +1583,10 @@ int ath9k_init_debug(struct ath_hw *ah)
|
||||
&fops_eeprom);
|
||||
debugfs_create_file("chanbw", S_IRUSR | S_IWUSR, sc->debug.debugfs_phy,
|
||||
sc, &fops_chanbw);
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
int ath9k_init_debug(struct ath_hw *ah)
|
||||
{
|
||||
struct ath_common *common = ath9k_hw_common(ah);
|
||||
@@ -1589,6 +1633,8 @@ int ath9k_init_debug(struct ath_hw *ah)
|
||||
@@ -1587,6 +1631,8 @@ int ath9k_init_debug(struct ath_hw *ah)
|
||||
debugfs_create_file("gpio_led", S_IWUSR,
|
||||
sc->debug.debugfs_phy, sc, &fops_gpio_led);
|
||||
#endif
|
||||
|
||||
@@ -55,7 +55,7 @@
|
||||
ops->spectral_scan_config = ar9003_hw_spectral_scan_config;
|
||||
--- a/drivers/net/wireless/ath/ath9k/init.c
|
||||
+++ b/drivers/net/wireless/ath/ath9k/init.c
|
||||
@@ -870,7 +870,8 @@ static void ath9k_init_txpower_limits(st
|
||||
@@ -872,7 +872,8 @@ static void ath9k_init_txpower_limits(st
|
||||
if (ah->caps.hw_caps & ATH9K_HW_CAP_5GHZ)
|
||||
ath9k_init_band_txpower(sc, NL80211_BAND_5GHZ);
|
||||
|
||||
@@ -65,7 +65,7 @@
|
||||
}
|
||||
|
||||
static const struct ieee80211_iface_limit if_limits[] = {
|
||||
@@ -1048,6 +1049,18 @@ static void ath9k_set_hw_capab(struct at
|
||||
@@ -1050,6 +1051,18 @@ static void ath9k_set_hw_capab(struct at
|
||||
wiphy_ext_feature_set(hw->wiphy, NL80211_EXT_FEATURE_CAN_REPLACE_PTK0);
|
||||
}
|
||||
|
||||
@@ -84,7 +84,7 @@
|
||||
int ath9k_init_device(u16 devid, struct ath_softc *sc,
|
||||
const struct ath_bus_ops *bus_ops)
|
||||
{
|
||||
@@ -1095,6 +1108,8 @@ int ath9k_init_device(u16 devid, struct
|
||||
@@ -1097,6 +1110,8 @@ int ath9k_init_device(u16 devid, struct
|
||||
|
||||
wiphy_read_of_freq_limits(hw->wiphy);
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/drivers/net/wireless/ath/ath9k/init.c
|
||||
+++ b/drivers/net/wireless/ath/ath9k/init.c
|
||||
@@ -696,6 +696,12 @@ static int ath9k_of_init(struct ath_soft
|
||||
@@ -698,6 +698,12 @@ static int ath9k_of_init(struct ath_soft
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
static int ath9k_init_softc(u16 devid, struct ath_softc *sc,
|
||||
const struct ath_bus_ops *bus_ops)
|
||||
{
|
||||
@@ -803,6 +809,9 @@ static int ath9k_init_softc(u16 devid, s
|
||||
@@ -805,6 +811,9 @@ static int ath9k_init_softc(u16 devid, s
|
||||
if (ret)
|
||||
goto err_hw;
|
||||
|
||||
|
||||
@@ -49,9 +49,9 @@ Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
|
||||
void brcmf_of_probe(struct device *dev, enum brcmf_bus_type bus_type,
|
||||
struct brcmf_mp_device *settings)
|
||||
{
|
||||
@@ -106,6 +136,8 @@ void brcmf_of_probe(struct device *dev,
|
||||
of_node_put(root);
|
||||
@@ -105,6 +135,8 @@ void brcmf_of_probe(struct device *dev,
|
||||
}
|
||||
of_node_put(root);
|
||||
|
||||
+ brcmf_of_probe_cc(dev, settings);
|
||||
+
|
||||
|
||||
@@ -24,7 +24,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
#include "of.h"
|
||||
|
||||
static int brcmf_of_get_country_codes(struct device *dev,
|
||||
@@ -168,3 +169,38 @@ void brcmf_of_probe(struct device *dev,
|
||||
@@ -167,3 +168,38 @@ void brcmf_of_probe(struct device *dev,
|
||||
sdio->oob_irq_nr = irq;
|
||||
sdio->oob_irq_flags = irqf;
|
||||
}
|
||||
|
||||
@@ -6,5 +6,5 @@
|
||||
depends on m
|
||||
- select CFG80211_WEXT
|
||||
depends on CRYPTO
|
||||
depends on CRYPTO_LIB_AES
|
||||
select BPAUTO_CRYPTO_LIB_ARC4
|
||||
help
|
||||
|
||||
@@ -0,0 +1,121 @@
|
||||
From 8dc94a59cfad70ec3a808add56718255eee39ab2 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Marangi <ansuelsmth@gmail.com>
|
||||
Date: Sat, 29 Mar 2025 12:50:55 +0100
|
||||
Subject: [PATCH] backports: handle genlmsg_multicast_allns upstream backport
|
||||
changes
|
||||
|
||||
Better handle genlmsg_multicast_allns upstream backport changes that
|
||||
dropped a flag to the function middle version. Use a backport function
|
||||
if backports project is tried to be built on older kernel version.
|
||||
|
||||
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
|
||||
---
|
||||
backport-include/net/genetlink.h | 11 +++++
|
||||
compat/Makefile | 3 +-
|
||||
compat/backport-genetlink.c | 60 +++++++++++++++++++++++
|
||||
3 files changed, 73 insertions(+), 1 deletion(-)
|
||||
|
||||
--- a/backport-include/net/genetlink.h
|
||||
+++ b/backport-include/net/genetlink.h
|
||||
@@ -192,4 +192,15 @@ int backport_genlmsg_multicast_allns(con
|
||||
#define genlmsg_multicast_allns LINUX_BACKPORT(genlmsg_multicast_allns)
|
||||
#endif /* LINUX_VERSION_IS_LESS(5,2,0) */
|
||||
|
||||
+#if LINUX_VERSION_IN_RANGE(5,15,0,5,15,169) || \
|
||||
+ LINUX_VERSION_IN_RANGE(6,1,0,6,1,115) || \
|
||||
+ LINUX_VERSION_IN_RANGE(6,6,0,6,6,58)
|
||||
+#define genlmsg_multicast_allns LINUX_BACKPORT(genlmsg_multicast_allns)
|
||||
+int backport_genlmsg_multicast_allns(const struct genl_family *family,
|
||||
+ struct sk_buff *skb, u32 portid,
|
||||
+ unsigned int group);
|
||||
+#endif /* LINUX_VERSION_IN_RANGE(5,15,0,5,15,169) ||
|
||||
+ LINUX_VERSION_IN_RANGE(6,1,0,6,1,115) ||
|
||||
+ LINUX_VERSION_IN_RANGE(6,6,0,6,6,58) */
|
||||
+
|
||||
#endif /* __BACKPORT_NET_GENETLINK_H */
|
||||
--- a/compat/Makefile
|
||||
+++ b/compat/Makefile
|
||||
@@ -16,7 +16,8 @@ compat-$(CPTCFG_KERNEL_5_9) += backport-
|
||||
compat-$(CPTCFG_KERNEL_5_10) += backport-5.10.o
|
||||
compat-$(CPTCFG_KERNEL_5_11) += backport-5.11.o
|
||||
compat-$(CPTCFG_KERNEL_5_13) += backport-5.13.o
|
||||
-compat-$(CPTCFG_KERNEL_5_15) += backport-5.15.o
|
||||
+compat-$(CPTCFG_KERNEL_5_15) += backport-5.15.o backport-genetlink.o
|
||||
+compat-$(CPTCFG_KERNEL_6_1) += backport-genetlink.o
|
||||
compat-$(CPTCFG_KERNEL_6_4) += backport-6.4.o
|
||||
|
||||
compat-$(CPTCFG_BPAUTO_BUILD_CRYPTO_LIB_ARC4) += lib-crypto-arc4.o
|
||||
--- a/compat/backport-genetlink.c
|
||||
+++ b/compat/backport-genetlink.c
|
||||
@@ -17,6 +17,7 @@
|
||||
#include <net/netlink.h>
|
||||
#include <net/sock.h>
|
||||
|
||||
+#if LINUX_VERSION_IS_LESS(5,2,0)
|
||||
static const struct genl_family *find_family_real_ops(const struct genl_ops **ops)
|
||||
{
|
||||
const struct genl_family *family;
|
||||
@@ -249,3 +250,63 @@ int backport_genlmsg_multicast_allns(con
|
||||
return genlmsg_mcast(skb, portid, group);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(backport_genlmsg_multicast_allns);
|
||||
+#endif /* LINUX_VERSION_IS_LESS(5,2,0) */
|
||||
+
|
||||
+#if LINUX_VERSION_IN_RANGE(5,15,0,5,15,169) || \
|
||||
+ LINUX_VERSION_IN_RANGE(6,1,0,6,1,115) || \
|
||||
+ LINUX_VERSION_IN_RANGE(6,6,0,6,6,58)
|
||||
+static int genlmsg_mcast(struct sk_buff *skb, u32 portid, unsigned long group)
|
||||
+{
|
||||
+ struct sk_buff *tmp;
|
||||
+ struct net *net, *prev = NULL;
|
||||
+ bool delivered = false;
|
||||
+ int err;
|
||||
+
|
||||
+ rcu_read_lock();
|
||||
+ for_each_net_rcu(net) {
|
||||
+ if (prev) {
|
||||
+ tmp = skb_clone(skb, GFP_ATOMIC);
|
||||
+ if (!tmp) {
|
||||
+ err = -ENOMEM;
|
||||
+ goto error;
|
||||
+ }
|
||||
+ err = nlmsg_multicast(prev->genl_sock, tmp,
|
||||
+ portid, group, GFP_ATOMIC);
|
||||
+ if (!err)
|
||||
+ delivered = true;
|
||||
+ else if (err != -ESRCH)
|
||||
+ goto error;
|
||||
+ }
|
||||
+
|
||||
+ prev = net;
|
||||
+ }
|
||||
+ err = nlmsg_multicast(prev->genl_sock, skb, portid, group, GFP_ATOMIC);
|
||||
+
|
||||
+ rcu_read_unlock();
|
||||
+
|
||||
+ if (!err)
|
||||
+ delivered = true;
|
||||
+ else if (err != -ESRCH)
|
||||
+ return err;
|
||||
+ return delivered ? 0 : -ESRCH;
|
||||
+ error:
|
||||
+ rcu_read_unlock();
|
||||
+
|
||||
+ kfree_skb(skb);
|
||||
+ return err;
|
||||
+}
|
||||
+
|
||||
+int backport_genlmsg_multicast_allns(const struct genl_family *family,
|
||||
+ struct sk_buff *skb, u32 portid,
|
||||
+ unsigned int group)
|
||||
+{
|
||||
+ if (WARN_ON_ONCE(group >= family->n_mcgrps))
|
||||
+ return -EINVAL;
|
||||
+
|
||||
+ group = family->mcgrp_offset + group;
|
||||
+ return genlmsg_mcast(skb, portid, group);
|
||||
+}
|
||||
+EXPORT_SYMBOL_GPL(backport_genlmsg_multicast_allns);
|
||||
+#endif /* LINUX_VERSION_IN_RANGE(5,15,0,5,15,169) ||
|
||||
+ LINUX_VERSION_IN_RANGE(6,1,0,6,1,115) ||
|
||||
+ LINUX_VERSION_IN_RANGE(6,6,0,6,6,58) */
|
||||
@@ -8,7 +8,7 @@ Subject: [PATCH] mac80211: allow scans in access point mode (for site survey)
|
||||
|
||||
--- a/net/mac80211/cfg.c
|
||||
+++ b/net/mac80211/cfg.c
|
||||
@@ -2734,6 +2734,8 @@ static int ieee80211_scan(struct wiphy *
|
||||
@@ -2735,6 +2735,8 @@ static int ieee80211_scan(struct wiphy *
|
||||
*/
|
||||
fallthrough;
|
||||
case NL80211_IFTYPE_AP:
|
||||
|
||||
@@ -51,7 +51,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
*
|
||||
* Drivers can optionally delegate responsibility for scheduling queues to
|
||||
* mac80211, to take advantage of airtime fairness accounting. In this case, to
|
||||
@@ -2257,8 +2258,8 @@ struct ieee80211_link_sta {
|
||||
@@ -2258,8 +2259,8 @@ struct ieee80211_link_sta {
|
||||
* For non MLO STA it will point to the deflink data. For MLO STA
|
||||
* ieee80211_sta_recalc_aggregates() must be called to update it.
|
||||
* @support_p2p_ps: indicates whether the STA supports P2P PS mechanism or not.
|
||||
@@ -62,7 +62,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
* @deflink: This holds the default link STA information, for non MLO STA all link
|
||||
* specific STA information is accessed through @deflink or through
|
||||
* link[0] which points to address of @deflink. For MLO Link STA
|
||||
@@ -5700,7 +5701,7 @@ void ieee80211_key_replay(struct ieee802
|
||||
@@ -5714,7 +5715,7 @@ void ieee80211_key_replay(struct ieee802
|
||||
* @hw: pointer as obtained from ieee80211_alloc_hw().
|
||||
* @queue: queue number (counted from zero).
|
||||
*
|
||||
@@ -71,7 +71,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
*/
|
||||
void ieee80211_wake_queue(struct ieee80211_hw *hw, int queue);
|
||||
|
||||
@@ -5709,7 +5710,7 @@ void ieee80211_wake_queue(struct ieee802
|
||||
@@ -5723,7 +5724,7 @@ void ieee80211_wake_queue(struct ieee802
|
||||
* @hw: pointer as obtained from ieee80211_alloc_hw().
|
||||
* @queue: queue number (counted from zero).
|
||||
*
|
||||
@@ -80,7 +80,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
*/
|
||||
void ieee80211_stop_queue(struct ieee80211_hw *hw, int queue);
|
||||
|
||||
@@ -5718,7 +5719,7 @@ void ieee80211_stop_queue(struct ieee802
|
||||
@@ -5732,7 +5733,7 @@ void ieee80211_stop_queue(struct ieee802
|
||||
* @hw: pointer as obtained from ieee80211_alloc_hw().
|
||||
* @queue: queue number (counted from zero).
|
||||
*
|
||||
@@ -89,7 +89,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
*
|
||||
* Return: %true if the queue is stopped. %false otherwise.
|
||||
*/
|
||||
@@ -5729,7 +5730,7 @@ int ieee80211_queue_stopped(struct ieee8
|
||||
@@ -5743,7 +5744,7 @@ int ieee80211_queue_stopped(struct ieee8
|
||||
* ieee80211_stop_queues - stop all queues
|
||||
* @hw: pointer as obtained from ieee80211_alloc_hw().
|
||||
*
|
||||
@@ -98,7 +98,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
*/
|
||||
void ieee80211_stop_queues(struct ieee80211_hw *hw);
|
||||
|
||||
@@ -5737,7 +5738,7 @@ void ieee80211_stop_queues(struct ieee80
|
||||
@@ -5751,7 +5752,7 @@ void ieee80211_stop_queues(struct ieee80
|
||||
* ieee80211_wake_queues - wake all queues
|
||||
* @hw: pointer as obtained from ieee80211_alloc_hw().
|
||||
*
|
||||
@@ -107,7 +107,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
*/
|
||||
void ieee80211_wake_queues(struct ieee80211_hw *hw);
|
||||
|
||||
@@ -6960,6 +6961,18 @@ static inline struct sk_buff *ieee80211_
|
||||
@@ -6974,6 +6975,18 @@ static inline struct sk_buff *ieee80211_
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -36,7 +36,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
.remove_interface = ar5523_remove_interface,
|
||||
--- a/drivers/net/wireless/ath/ath11k/mac.c
|
||||
+++ b/drivers/net/wireless/ath/ath11k/mac.c
|
||||
@@ -8599,6 +8599,7 @@ err_fallback:
|
||||
@@ -8601,6 +8601,7 @@ err_fallback:
|
||||
|
||||
static const struct ieee80211_ops ath11k_ops = {
|
||||
.tx = ath11k_mac_op_tx,
|
||||
@@ -166,7 +166,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
.add_interface = p54_add_interface,
|
||||
--- a/drivers/net/wireless/mac80211_hwsim.c
|
||||
+++ b/drivers/net/wireless/mac80211_hwsim.c
|
||||
@@ -3109,6 +3109,7 @@ static int mac80211_hwsim_change_sta_lin
|
||||
@@ -3114,6 +3114,7 @@ static int mac80211_hwsim_change_sta_lin
|
||||
|
||||
#define HWSIM_COMMON_OPS \
|
||||
.tx = mac80211_hwsim_tx, \
|
||||
@@ -306,7 +306,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
.add_interface = rtl8187_add_interface,
|
||||
--- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c
|
||||
+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c
|
||||
@@ -6546,6 +6546,7 @@ static void rtl8xxxu_stop(struct ieee802
|
||||
@@ -6553,6 +6553,7 @@ static void rtl8xxxu_stop(struct ieee802
|
||||
|
||||
static const struct ieee80211_ops rtl8xxxu_ops = {
|
||||
.tx = rtl8xxxu_tx,
|
||||
@@ -336,7 +336,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
.stop = rtw_ops_stop,
|
||||
--- a/drivers/net/wireless/realtek/rtw89/mac80211.c
|
||||
+++ b/drivers/net/wireless/realtek/rtw89/mac80211.c
|
||||
@@ -916,6 +916,7 @@ static int rtw89_ops_set_tid_config(stru
|
||||
@@ -918,6 +918,7 @@ static int rtw89_ops_set_tid_config(stru
|
||||
|
||||
const struct ieee80211_ops rtw89_ops = {
|
||||
.tx = rtw89_ops_tx,
|
||||
|
||||
@@ -11,7 +11,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
|
||||
--- a/net/mac80211/cfg.c
|
||||
+++ b/net/mac80211/cfg.c
|
||||
@@ -4359,9 +4359,6 @@ static int ieee80211_get_txq_stats(struc
|
||||
@@ -4361,9 +4361,6 @@ static int ieee80211_get_txq_stats(struc
|
||||
struct ieee80211_sub_if_data *sdata;
|
||||
int ret = 0;
|
||||
|
||||
@@ -63,7 +63,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
NL80211_EXT_FEATURE_AQL))
|
||||
--- a/net/mac80211/ieee80211_i.h
|
||||
+++ b/net/mac80211/ieee80211_i.h
|
||||
@@ -2301,7 +2301,6 @@ void ieee80211_wake_queue_by_reason(stru
|
||||
@@ -2299,7 +2299,6 @@ void ieee80211_wake_queue_by_reason(stru
|
||||
void ieee80211_stop_queue_by_reason(struct ieee80211_hw *hw, int queue,
|
||||
enum queue_stop_reason reason,
|
||||
bool refcounted);
|
||||
@@ -73,7 +73,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
void ieee80211_add_pending_skbs(struct ieee80211_local *local,
|
||||
--- a/net/mac80211/iface.c
|
||||
+++ b/net/mac80211/iface.c
|
||||
@@ -481,12 +481,6 @@ static void ieee80211_do_stop(struct iee
|
||||
@@ -482,12 +482,6 @@ static void ieee80211_do_stop(struct iee
|
||||
if (cancel_scan)
|
||||
ieee80211_scan_cancel(local);
|
||||
|
||||
@@ -86,7 +86,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
ieee80211_roc_purge(local, sdata);
|
||||
|
||||
switch (sdata->vif.type) {
|
||||
@@ -834,25 +828,6 @@ static void ieee80211_uninit(struct net_
|
||||
@@ -852,25 +846,6 @@ static void ieee80211_uninit(struct net_
|
||||
ieee80211_teardown_sdata(IEEE80211_DEV_TO_SUB_IF(dev));
|
||||
}
|
||||
|
||||
@@ -112,7 +112,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
static void
|
||||
ieee80211_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats)
|
||||
{
|
||||
@@ -866,7 +841,6 @@ static const struct net_device_ops ieee8
|
||||
@@ -884,7 +859,6 @@ static const struct net_device_ops ieee8
|
||||
.ndo_start_xmit = ieee80211_subif_start_xmit,
|
||||
.ndo_set_rx_mode = ieee80211_set_multicast_list,
|
||||
.ndo_set_mac_address = ieee80211_change_mac,
|
||||
@@ -120,7 +120,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
.ndo_get_stats64 = ieee80211_get_stats64,
|
||||
};
|
||||
|
||||
@@ -988,7 +962,6 @@ static const struct net_device_ops ieee8
|
||||
@@ -1006,7 +980,6 @@ static const struct net_device_ops ieee8
|
||||
.ndo_start_xmit = ieee80211_subif_start_xmit_8023,
|
||||
.ndo_set_rx_mode = ieee80211_set_multicast_list,
|
||||
.ndo_set_mac_address = ieee80211_change_mac,
|
||||
@@ -128,7 +128,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
.ndo_get_stats64 = ieee80211_get_stats64,
|
||||
#if LINUX_VERSION_IS_GEQ(5,13,0)
|
||||
.ndo_fill_forward_path = ieee80211_netdev_fill_forward_path,
|
||||
@@ -1492,35 +1465,6 @@ int ieee80211_do_open(struct wireless_de
|
||||
@@ -1510,35 +1483,6 @@ int ieee80211_do_open(struct wireless_de
|
||||
|
||||
ieee80211_recalc_ps(local);
|
||||
|
||||
@@ -164,7 +164,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
set_bit(SDATA_STATE_RUNNING, &sdata->state);
|
||||
|
||||
return 0;
|
||||
@@ -1550,17 +1494,12 @@ static void ieee80211_if_setup(struct ne
|
||||
@@ -1568,17 +1512,12 @@ static void ieee80211_if_setup(struct ne
|
||||
{
|
||||
ether_setup(dev);
|
||||
dev->priv_flags &= ~IFF_TX_SKB_SHARING;
|
||||
@@ -183,7 +183,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
static void ieee80211_iface_process_skb(struct ieee80211_local *local,
|
||||
struct ieee80211_sub_if_data *sdata,
|
||||
struct sk_buff *skb)
|
||||
@@ -2145,9 +2084,7 @@ int ieee80211_if_add(struct ieee80211_lo
|
||||
@@ -2163,9 +2102,7 @@ int ieee80211_if_add(struct ieee80211_lo
|
||||
struct net_device *ndev = NULL;
|
||||
struct ieee80211_sub_if_data *sdata = NULL;
|
||||
struct txq_info *txqi;
|
||||
@@ -193,7 +193,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
|
||||
ASSERT_RTNL();
|
||||
|
||||
@@ -2170,30 +2107,18 @@ int ieee80211_if_add(struct ieee80211_lo
|
||||
@@ -2188,30 +2125,18 @@ int ieee80211_if_add(struct ieee80211_lo
|
||||
sizeof(void *));
|
||||
int txq_size = 0;
|
||||
|
||||
@@ -228,7 +228,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
ndev->tstats = netdev_alloc_pcpu_stats(struct pcpu_sw_netstats);
|
||||
--- a/net/mac80211/main.c
|
||||
+++ b/net/mac80211/main.c
|
||||
@@ -634,7 +634,7 @@ struct ieee80211_hw *ieee80211_alloc_hw_
|
||||
@@ -636,7 +636,7 @@ struct ieee80211_hw *ieee80211_alloc_hw_
|
||||
|
||||
if (WARN_ON(!ops->tx || !ops->start || !ops->stop || !ops->config ||
|
||||
!ops->add_interface || !ops->remove_interface ||
|
||||
@@ -237,7 +237,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
return NULL;
|
||||
|
||||
if (WARN_ON(ops->sta_state && (ops->sta_add || ops->sta_remove)))
|
||||
@@ -723,9 +723,7 @@ struct ieee80211_hw *ieee80211_alloc_hw_
|
||||
@@ -725,9 +725,7 @@ struct ieee80211_hw *ieee80211_alloc_hw_
|
||||
if (!ops->set_key)
|
||||
wiphy->flags |= WIPHY_FLAG_IBSS_RSN;
|
||||
|
||||
@@ -248,7 +248,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
wiphy_ext_feature_set(wiphy, NL80211_EXT_FEATURE_RRM);
|
||||
|
||||
wiphy->bss_priv_size = sizeof(struct ieee80211_bss);
|
||||
@@ -838,10 +836,7 @@ struct ieee80211_hw *ieee80211_alloc_hw_
|
||||
@@ -840,10 +838,7 @@ struct ieee80211_hw *ieee80211_alloc_hw_
|
||||
atomic_set(&local->agg_queue_stop[i], 0);
|
||||
}
|
||||
tasklet_setup(&local->tx_pending_tasklet, ieee80211_tx_pending);
|
||||
@@ -466,7 +466,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
}
|
||||
spin_unlock_irqrestore(&local->queue_stop_reason_lock, flags);
|
||||
|
||||
@@ -5970,10 +5951,9 @@ int ieee80211_tx_control_port(struct wip
|
||||
@@ -5972,10 +5953,9 @@ int ieee80211_tx_control_port(struct wip
|
||||
}
|
||||
|
||||
if (!IS_ERR(sta)) {
|
||||
|
||||
@@ -22,7 +22,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
.stop = rtw_ops_stop,
|
||||
--- a/drivers/net/wireless/realtek/rtw89/mac80211.c
|
||||
+++ b/drivers/net/wireless/realtek/rtw89/mac80211.c
|
||||
@@ -916,7 +916,6 @@ static int rtw89_ops_set_tid_config(stru
|
||||
@@ -918,7 +918,6 @@ static int rtw89_ops_set_tid_config(stru
|
||||
|
||||
const struct ieee80211_ops rtw89_ops = {
|
||||
.tx = rtw89_ops_tx,
|
||||
|
||||
@@ -59,7 +59,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
flow = fq_find_fattest_flow(fq);
|
||||
--- a/include/net/mac80211.h
|
||||
+++ b/include/net/mac80211.h
|
||||
@@ -1816,6 +1816,10 @@ struct ieee80211_vif_cfg {
|
||||
@@ -1817,6 +1817,10 @@ struct ieee80211_vif_cfg {
|
||||
* @addr: address of this interface
|
||||
* @p2p: indicates whether this AP or STA interface is a p2p
|
||||
* interface, i.e. a GO or p2p-sta respectively
|
||||
@@ -70,7 +70,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
* @driver_flags: flags/capabilities the driver has for this interface,
|
||||
* these need to be set (or cleared) when the interface is added
|
||||
* or, if supported by the driver, the interface type is changed
|
||||
@@ -1855,6 +1859,7 @@ struct ieee80211_vif {
|
||||
@@ -1856,6 +1860,7 @@ struct ieee80211_vif {
|
||||
|
||||
struct ieee80211_txq *txq;
|
||||
|
||||
@@ -80,7 +80,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
--- a/net/mac80211/iface.c
|
||||
+++ b/net/mac80211/iface.c
|
||||
@@ -2218,6 +2218,7 @@ int ieee80211_if_add(struct ieee80211_lo
|
||||
@@ -2236,6 +2236,7 @@ int ieee80211_if_add(struct ieee80211_lo
|
||||
ndev->priv_flags |= IFF_LIVE_ADDR_CHANGE;
|
||||
ndev->hw_features |= ndev->features &
|
||||
MAC80211_SUPPORTED_FEATURES_TX;
|
||||
|
||||
@@ -68,7 +68,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
};
|
||||
|
||||
#ifdef CPTCFG_MAC80211_MESH
|
||||
@@ -2009,6 +2024,11 @@ int ieee80211_tx_control_port(struct wip
|
||||
@@ -2007,6 +2022,11 @@ int ieee80211_tx_control_port(struct wip
|
||||
int link_id, u64 *cookie);
|
||||
int ieee80211_probe_mesh_link(struct wiphy *wiphy, struct net_device *dev,
|
||||
const u8 *buf, size_t len);
|
||||
@@ -262,7 +262,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
static inline
|
||||
--- a/net/mac80211/mesh_hwmp.c
|
||||
+++ b/net/mac80211/mesh_hwmp.c
|
||||
@@ -394,6 +394,7 @@ static u32 hwmp_route_info_get(struct ie
|
||||
@@ -400,6 +400,7 @@ static u32 hwmp_route_info_get(struct ie
|
||||
u32 orig_sn, orig_metric;
|
||||
unsigned long orig_lifetime, exp_time;
|
||||
u32 last_hop_metric, new_metric;
|
||||
@@ -270,7 +270,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
bool process = true;
|
||||
u8 hopcount;
|
||||
|
||||
@@ -491,8 +492,10 @@ static u32 hwmp_route_info_get(struct ie
|
||||
@@ -497,8 +498,10 @@ static u32 hwmp_route_info_get(struct ie
|
||||
}
|
||||
|
||||
if (fresh_info) {
|
||||
@@ -282,7 +282,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
mesh_path_assign_nexthop(mpath, sta);
|
||||
mpath->flags |= MESH_PATH_SN_VALID;
|
||||
mpath->metric = new_metric;
|
||||
@@ -502,6 +505,8 @@ static u32 hwmp_route_info_get(struct ie
|
||||
@@ -508,6 +511,8 @@ static u32 hwmp_route_info_get(struct ie
|
||||
mpath->hop_count = hopcount;
|
||||
mesh_path_activate(mpath);
|
||||
spin_unlock_bh(&mpath->state_lock);
|
||||
@@ -291,7 +291,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
ewma_mesh_fail_avg_init(&sta->mesh->fail_avg);
|
||||
/* init it at a low value - 0 start is tricky */
|
||||
ewma_mesh_fail_avg_add(&sta->mesh->fail_avg, 1);
|
||||
@@ -539,8 +544,10 @@ static u32 hwmp_route_info_get(struct ie
|
||||
@@ -545,8 +550,10 @@ static u32 hwmp_route_info_get(struct ie
|
||||
}
|
||||
|
||||
if (fresh_info) {
|
||||
@@ -303,7 +303,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
mesh_path_assign_nexthop(mpath, sta);
|
||||
mpath->metric = last_hop_metric;
|
||||
mpath->exp_time = time_after(mpath->exp_time, exp_time)
|
||||
@@ -548,6 +555,8 @@ static u32 hwmp_route_info_get(struct ie
|
||||
@@ -554,6 +561,8 @@ static u32 hwmp_route_info_get(struct ie
|
||||
mpath->hop_count = 1;
|
||||
mesh_path_activate(mpath);
|
||||
spin_unlock_bh(&mpath->state_lock);
|
||||
@@ -312,7 +312,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
ewma_mesh_fail_avg_init(&sta->mesh->fail_avg);
|
||||
/* init it at a low value - 0 start is tricky */
|
||||
ewma_mesh_fail_avg_add(&sta->mesh->fail_avg, 1);
|
||||
@@ -1215,6 +1224,20 @@ static int mesh_nexthop_lookup_nolearn(s
|
||||
@@ -1223,6 +1232,20 @@ static int mesh_nexthop_lookup_nolearn(s
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -333,7 +333,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
/**
|
||||
* mesh_nexthop_lookup - put the appropriate next hop on a mesh frame. Calling
|
||||
* this function is considered "using" the associated mpath, so preempt a path
|
||||
@@ -1242,19 +1265,15 @@ int mesh_nexthop_lookup(struct ieee80211
|
||||
@@ -1250,19 +1273,15 @@ int mesh_nexthop_lookup(struct ieee80211
|
||||
if (!mpath || !(mpath->flags & MESH_PATH_ACTIVE))
|
||||
return -ENOENT;
|
||||
|
||||
|
||||
@@ -106,7 +106,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
rx_accept:
|
||||
--- a/net/mac80211/ieee80211_i.h
|
||||
+++ b/net/mac80211/ieee80211_i.h
|
||||
@@ -2029,6 +2029,8 @@ void __ieee80211_xmit_fast(struct ieee80
|
||||
@@ -2027,6 +2027,8 @@ void __ieee80211_xmit_fast(struct ieee80
|
||||
struct ieee80211_fast_tx *fast_tx,
|
||||
struct sk_buff *skb, bool ampdu,
|
||||
const u8 *da, const u8 *sa);
|
||||
|
||||
@@ -13,7 +13,7 @@ Signed-off-by: Ryder Lee <ryder.lee@mediatek.com>
|
||||
|
||||
--- a/include/net/mac80211.h
|
||||
+++ b/include/net/mac80211.h
|
||||
@@ -5977,6 +5977,18 @@ void ieee80211_queue_delayed_work(struct
|
||||
@@ -5991,6 +5991,18 @@ void ieee80211_queue_delayed_work(struct
|
||||
unsigned long delay);
|
||||
|
||||
/**
|
||||
|
||||
@@ -10,7 +10,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
--- a/net/mac80211/rx.c
|
||||
+++ b/net/mac80211/rx.c
|
||||
@@ -4580,6 +4580,12 @@ void ieee80211_check_fast_rx(struct sta_
|
||||
@@ -4584,6 +4584,12 @@ void ieee80211_check_fast_rx(struct sta_
|
||||
}
|
||||
|
||||
break;
|
||||
@@ -23,7 +23,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
default:
|
||||
goto clear;
|
||||
}
|
||||
@@ -4788,6 +4794,7 @@ static bool ieee80211_invoke_fast_rx(str
|
||||
@@ -4792,6 +4798,7 @@ static bool ieee80211_invoke_fast_rx(str
|
||||
struct sk_buff *skb = rx->skb;
|
||||
struct ieee80211_hdr *hdr = (void *)skb->data;
|
||||
struct ieee80211_rx_status *status = IEEE80211_SKB_RXCB(skb);
|
||||
@@ -31,7 +31,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
int orig_len = skb->len;
|
||||
int hdrlen = ieee80211_hdrlen(hdr->frame_control);
|
||||
int snap_offs = hdrlen;
|
||||
@@ -4849,7 +4856,8 @@ static bool ieee80211_invoke_fast_rx(str
|
||||
@@ -4853,7 +4860,8 @@ static bool ieee80211_invoke_fast_rx(str
|
||||
snap_offs += IEEE80211_CCMP_HDR_LEN;
|
||||
}
|
||||
|
||||
@@ -41,7 +41,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
if (!pskb_may_pull(skb, snap_offs + sizeof(*payload)))
|
||||
return false;
|
||||
|
||||
@@ -4888,13 +4896,29 @@ static bool ieee80211_invoke_fast_rx(str
|
||||
@@ -4892,13 +4900,29 @@ static bool ieee80211_invoke_fast_rx(str
|
||||
/* do the header conversion - first grab the addresses */
|
||||
ether_addr_copy(addrs.da, skb->data + fast_rx->da_offs);
|
||||
ether_addr_copy(addrs.sa, skb->data + fast_rx->sa_offs);
|
||||
|
||||
@@ -12,7 +12,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
--- a/include/net/mac80211.h
|
||||
+++ b/include/net/mac80211.h
|
||||
@@ -4201,6 +4201,10 @@ struct ieee80211_prep_tx_info {
|
||||
@@ -4215,6 +4215,10 @@ struct ieee80211_prep_tx_info {
|
||||
* Note that a sta can also be inserted or removed with valid links,
|
||||
* i.e. passed to @sta_add/@sta_state with sta->valid_links not zero.
|
||||
* In fact, cannot change from having valid_links and not having them.
|
||||
@@ -23,7 +23,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
*/
|
||||
struct ieee80211_ops {
|
||||
void (*tx)(struct ieee80211_hw *hw,
|
||||
@@ -4556,6 +4560,11 @@ struct ieee80211_ops {
|
||||
@@ -4570,6 +4574,11 @@ struct ieee80211_ops {
|
||||
struct ieee80211_vif *vif,
|
||||
struct ieee80211_sta *sta,
|
||||
u16 old_links, u16 new_links);
|
||||
@@ -75,7 +75,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
MAC80211_SUPPORTED_FEATURES_RX)
|
||||
--- a/net/mac80211/iface.c
|
||||
+++ b/net/mac80211/iface.c
|
||||
@@ -834,6 +834,21 @@ ieee80211_get_stats64(struct net_device
|
||||
@@ -852,6 +852,21 @@ ieee80211_get_stats64(struct net_device
|
||||
dev_fetch_sw_netstats(stats, dev->tstats);
|
||||
}
|
||||
|
||||
@@ -97,7 +97,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
static const struct net_device_ops ieee80211_dataif_ops = {
|
||||
.ndo_open = ieee80211_open,
|
||||
.ndo_stop = ieee80211_stop,
|
||||
@@ -842,6 +857,7 @@ static const struct net_device_ops ieee8
|
||||
@@ -860,6 +875,7 @@ static const struct net_device_ops ieee8
|
||||
.ndo_set_rx_mode = ieee80211_set_multicast_list,
|
||||
.ndo_set_mac_address = ieee80211_change_mac,
|
||||
.ndo_get_stats64 = ieee80211_get_stats64,
|
||||
@@ -105,7 +105,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
};
|
||||
|
||||
#if LINUX_VERSION_IS_GEQ(5,2,0)
|
||||
@@ -966,6 +982,7 @@ static const struct net_device_ops ieee8
|
||||
@@ -984,6 +1000,7 @@ static const struct net_device_ops ieee8
|
||||
#if LINUX_VERSION_IS_GEQ(5,13,0)
|
||||
.ndo_fill_forward_path = ieee80211_netdev_fill_forward_path,
|
||||
#endif
|
||||
|
||||
@@ -12,7 +12,7 @@ Reviewed-by: Greenman, Gregory <gregory.greenman@intel.com>
|
||||
|
||||
--- a/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
|
||||
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
|
||||
@@ -4844,9 +4844,6 @@ static void iwl_mvm_mac_flush(struct iee
|
||||
@@ -4848,9 +4848,6 @@ static void iwl_mvm_mac_flush(struct iee
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ Reviewed-by: Greenman, Gregory <gregory.greenman@intel.com>
|
||||
/* Make sure we're done with the deferred traffic before flushing */
|
||||
flush_work(&mvm->add_stream_wk);
|
||||
|
||||
@@ -4864,9 +4861,6 @@ static void iwl_mvm_mac_flush(struct iee
|
||||
@@ -4868,9 +4865,6 @@ static void iwl_mvm_mac_flush(struct iee
|
||||
if (mvmsta->vif != vif)
|
||||
continue;
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ Reviewed-by: Greenman, Gregory <gregory.greenman@intel.com>
|
||||
|
||||
--- a/include/net/mac80211.h
|
||||
+++ b/include/net/mac80211.h
|
||||
@@ -3927,6 +3927,10 @@ struct ieee80211_prep_tx_info {
|
||||
@@ -3941,6 +3941,10 @@ struct ieee80211_prep_tx_info {
|
||||
* Note that vif can be NULL.
|
||||
* The callback can sleep.
|
||||
*
|
||||
@@ -23,7 +23,7 @@ Reviewed-by: Greenman, Gregory <gregory.greenman@intel.com>
|
||||
* @channel_switch: Drivers that need (or want) to offload the channel
|
||||
* switch operation for CSAs received from the AP may implement this
|
||||
* callback. They must then call ieee80211_chswitch_done() to indicate
|
||||
@@ -4381,6 +4385,8 @@ struct ieee80211_ops {
|
||||
@@ -4395,6 +4399,8 @@ struct ieee80211_ops {
|
||||
#endif
|
||||
void (*flush)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
|
||||
u32 queues, bool drop);
|
||||
|
||||
@@ -11,7 +11,7 @@ Reviewed-by: Greenman, Gregory <gregory.greenman@intel.com>
|
||||
|
||||
--- a/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
|
||||
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
|
||||
@@ -4880,6 +4880,31 @@ static void iwl_mvm_mac_flush(struct iee
|
||||
@@ -4887,6 +4887,31 @@ static void iwl_mvm_mac_flush(struct iee
|
||||
iwl_trans_wait_tx_queues_empty(mvm->trans, msk);
|
||||
}
|
||||
|
||||
@@ -43,7 +43,7 @@ Reviewed-by: Greenman, Gregory <gregory.greenman@intel.com>
|
||||
static int iwl_mvm_mac_get_survey(struct ieee80211_hw *hw, int idx,
|
||||
struct survey_info *survey)
|
||||
{
|
||||
@@ -5407,6 +5432,7 @@ const struct ieee80211_ops iwl_mvm_hw_op
|
||||
@@ -5414,6 +5439,7 @@ const struct ieee80211_ops iwl_mvm_hw_op
|
||||
.mgd_complete_tx = iwl_mvm_mac_mgd_complete_tx,
|
||||
.mgd_protect_tdls_discover = iwl_mvm_mac_mgd_protect_tdls_discover,
|
||||
.flush = iwl_mvm_mac_flush,
|
||||
|
||||
@@ -38,7 +38,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
|
||||
--- a/include/net/mac80211.h
|
||||
+++ b/include/net/mac80211.h
|
||||
@@ -5265,6 +5265,74 @@ ieee80211_beacon_get_template(struct iee
|
||||
@@ -5279,6 +5279,74 @@ ieee80211_beacon_get_template(struct iee
|
||||
unsigned int link_id);
|
||||
|
||||
/**
|
||||
@@ -129,7 +129,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
}
|
||||
|
||||
new = kzalloc(size, GFP_KERNEL);
|
||||
@@ -3396,8 +3396,11 @@ cfg80211_beacon_dup(struct cfg80211_beac
|
||||
@@ -3398,8 +3398,11 @@ cfg80211_beacon_dup(struct cfg80211_beac
|
||||
|
||||
len = beacon->head_len + beacon->tail_len + beacon->beacon_ies_len +
|
||||
beacon->proberesp_ies_len + beacon->assocresp_ies_len +
|
||||
@@ -222,7 +222,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
offs->mbssid_off = skb->len - mbssid_len;
|
||||
}
|
||||
|
||||
@@ -5288,12 +5298,51 @@ ieee80211_beacon_get_ap(struct ieee80211
|
||||
@@ -5290,12 +5300,51 @@ ieee80211_beacon_get_ap(struct ieee80211
|
||||
return skb;
|
||||
}
|
||||
|
||||
@@ -275,7 +275,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
{
|
||||
struct ieee80211_local *local = hw_to_local(hw);
|
||||
struct beacon_data *beacon = NULL;
|
||||
@@ -5322,8 +5371,29 @@ __ieee80211_beacon_get(struct ieee80211_
|
||||
@@ -5324,8 +5373,29 @@ __ieee80211_beacon_get(struct ieee80211_
|
||||
if (!beacon)
|
||||
goto out;
|
||||
|
||||
@@ -307,7 +307,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
} else if (sdata->vif.type == NL80211_IFTYPE_ADHOC) {
|
||||
struct ieee80211_if_ibss *ifibss = &sdata->u.ibss;
|
||||
struct ieee80211_hdr *hdr;
|
||||
@@ -5411,10 +5481,50 @@ ieee80211_beacon_get_template(struct iee
|
||||
@@ -5413,10 +5483,50 @@ ieee80211_beacon_get_template(struct iee
|
||||
struct ieee80211_mutable_offsets *offs,
|
||||
unsigned int link_id)
|
||||
{
|
||||
@@ -359,7 +359,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
struct sk_buff *ieee80211_beacon_get_tim(struct ieee80211_hw *hw,
|
||||
struct ieee80211_vif *vif,
|
||||
u16 *tim_offset, u16 *tim_length,
|
||||
@@ -5422,7 +5532,9 @@ struct sk_buff *ieee80211_beacon_get_tim
|
||||
@@ -5424,7 +5534,9 @@ struct sk_buff *ieee80211_beacon_get_tim
|
||||
{
|
||||
struct ieee80211_mutable_offsets offs = {};
|
||||
struct sk_buff *bcn = __ieee80211_beacon_get(hw, vif, &offs, false,
|
||||
|
||||
@@ -113,7 +113,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
{
|
||||
--- a/net/wireless/core.h
|
||||
+++ b/net/wireless/core.h
|
||||
@@ -497,6 +497,8 @@ void cfg80211_set_dfs_state(struct wiphy
|
||||
@@ -491,6 +491,8 @@ void cfg80211_set_dfs_state(struct wiphy
|
||||
enum nl80211_dfs_state dfs_state);
|
||||
|
||||
void cfg80211_dfs_channels_update_work(struct work_struct *work);
|
||||
|
||||
@@ -76,7 +76,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
|
||||
--- a/net/wireless/core.h
|
||||
+++ b/net/wireless/core.h
|
||||
@@ -283,6 +283,8 @@ struct cfg80211_event {
|
||||
@@ -277,6 +277,8 @@ struct cfg80211_event {
|
||||
} ij;
|
||||
struct {
|
||||
u8 bssid[ETH_ALEN];
|
||||
@@ -85,7 +85,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
} pa;
|
||||
};
|
||||
};
|
||||
@@ -427,7 +429,8 @@ int cfg80211_disconnect(struct cfg80211_
|
||||
@@ -421,7 +423,8 @@ int cfg80211_disconnect(struct cfg80211_
|
||||
bool wextev);
|
||||
void __cfg80211_roamed(struct wireless_dev *wdev,
|
||||
struct cfg80211_roam_info *info);
|
||||
@@ -97,7 +97,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
void cfg80211_autodisconnect_wk(struct work_struct *work);
|
||||
--- a/net/wireless/nl80211.c
|
||||
+++ b/net/wireless/nl80211.c
|
||||
@@ -18024,7 +18024,8 @@ void nl80211_send_roamed(struct cfg80211
|
||||
@@ -18041,7 +18041,8 @@ void nl80211_send_roamed(struct cfg80211
|
||||
}
|
||||
|
||||
void nl80211_send_port_authorized(struct cfg80211_registered_device *rdev,
|
||||
@@ -107,7 +107,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
{
|
||||
struct sk_buff *msg;
|
||||
void *hdr;
|
||||
@@ -18044,6 +18045,11 @@ void nl80211_send_port_authorized(struct
|
||||
@@ -18061,6 +18062,11 @@ void nl80211_send_port_authorized(struct
|
||||
nla_put(msg, NL80211_ATTR_MAC, ETH_ALEN, bssid))
|
||||
goto nla_put_failure;
|
||||
|
||||
@@ -133,7 +133,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
const u8 *ie, size_t ie_len, bool from_ap);
|
||||
--- a/net/wireless/sme.c
|
||||
+++ b/net/wireless/sme.c
|
||||
@@ -1266,7 +1266,8 @@ out:
|
||||
@@ -1267,7 +1267,8 @@ out:
|
||||
}
|
||||
EXPORT_SYMBOL(cfg80211_roamed);
|
||||
|
||||
@@ -143,7 +143,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
{
|
||||
ASSERT_WDEV_LOCK(wdev);
|
||||
|
||||
@@ -1279,11 +1280,11 @@ void __cfg80211_port_authorized(struct w
|
||||
@@ -1280,11 +1281,11 @@ void __cfg80211_port_authorized(struct w
|
||||
return;
|
||||
|
||||
nl80211_send_port_authorized(wiphy_to_rdev(wdev->wiphy), wdev->netdev,
|
||||
@@ -157,7 +157,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
{
|
||||
struct wireless_dev *wdev = dev->ieee80211_ptr;
|
||||
struct cfg80211_registered_device *rdev = wiphy_to_rdev(wdev->wiphy);
|
||||
@@ -1293,12 +1294,15 @@ void cfg80211_port_authorized(struct net
|
||||
@@ -1294,12 +1295,15 @@ void cfg80211_port_authorized(struct net
|
||||
if (WARN_ON(!bssid))
|
||||
return;
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
|
||||
--- a/include/net/mac80211.h
|
||||
+++ b/include/net/mac80211.h
|
||||
@@ -1477,6 +1477,7 @@ enum mac80211_rx_encoding {
|
||||
@@ -1478,6 +1478,7 @@ enum mac80211_rx_encoding {
|
||||
RX_ENC_HT,
|
||||
RX_ENC_VHT,
|
||||
RX_ENC_HE,
|
||||
@@ -26,7 +26,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -1510,7 +1511,7 @@ enum mac80211_rx_encoding {
|
||||
@@ -1511,7 +1512,7 @@ enum mac80211_rx_encoding {
|
||||
* @antenna: antenna used
|
||||
* @rate_idx: index of data rate into band's supported rates or MCS index if
|
||||
* HT or VHT is used (%RX_FLAG_HT/%RX_FLAG_VHT)
|
||||
@@ -35,7 +35,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
* @flag: %RX_FLAG_\*
|
||||
* @encoding: &enum mac80211_rx_encoding
|
||||
* @bw: &enum rate_info_bw
|
||||
@@ -1518,6 +1519,8 @@ enum mac80211_rx_encoding {
|
||||
@@ -1519,6 +1520,8 @@ enum mac80211_rx_encoding {
|
||||
* @he_ru: HE RU, from &enum nl80211_he_ru_alloc
|
||||
* @he_gi: HE GI, from &enum nl80211_he_gi
|
||||
* @he_dcm: HE DCM value
|
||||
@@ -44,7 +44,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
* @rx_flags: internal RX flags for mac80211
|
||||
* @ampdu_reference: A-MPDU reference number, must be a different value for
|
||||
* each A-MPDU but the same for each subframe within one A-MPDU
|
||||
@@ -1539,8 +1542,18 @@ struct ieee80211_rx_status {
|
||||
@@ -1540,8 +1543,18 @@ struct ieee80211_rx_status {
|
||||
u32 flag;
|
||||
u16 freq: 13, freq_offset: 1;
|
||||
u8 enc_flags;
|
||||
@@ -67,7 +67,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
u8 rx_flags;
|
||||
--- a/net/mac80211/rx.c
|
||||
+++ b/net/mac80211/rx.c
|
||||
@@ -5358,6 +5358,15 @@ void ieee80211_rx_list(struct ieee80211_
|
||||
@@ -5362,6 +5362,15 @@ void ieee80211_rx_list(struct ieee80211_
|
||||
status->rate_idx, status->nss))
|
||||
goto drop;
|
||||
break;
|
||||
@@ -157,7 +157,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
return STA_STATS_RATE_INVALID;
|
||||
--- a/net/mac80211/util.c
|
||||
+++ b/net/mac80211/util.c
|
||||
@@ -3902,6 +3902,19 @@ u64 ieee80211_calculate_rx_timestamp(str
|
||||
@@ -3905,6 +3905,19 @@ u64 ieee80211_calculate_rx_timestamp(str
|
||||
|
||||
/* Fill cfg80211 rate info */
|
||||
switch (status->encoding) {
|
||||
|
||||
@@ -62,7 +62,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
bool mu_mimo_owner;
|
||||
--- a/net/mac80211/cfg.c
|
||||
+++ b/net/mac80211/cfg.c
|
||||
@@ -4197,7 +4197,7 @@ static int ieee80211_set_ap_chanwidth(st
|
||||
@@ -4199,7 +4199,7 @@ static int ieee80211_set_ap_chanwidth(st
|
||||
struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev);
|
||||
struct ieee80211_link_data *link;
|
||||
int ret;
|
||||
@@ -84,7 +84,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
struct ieee80211_bss_conf *link_conf = link->conf;
|
||||
--- a/net/mac80211/ieee80211_i.h
|
||||
+++ b/net/mac80211/ieee80211_i.h
|
||||
@@ -2499,7 +2499,7 @@ int ieee80211_link_unreserve_chanctx(str
|
||||
@@ -2497,7 +2497,7 @@ int ieee80211_link_unreserve_chanctx(str
|
||||
int __must_check
|
||||
ieee80211_link_change_bandwidth(struct ieee80211_link_data *link,
|
||||
const struct cfg80211_chan_def *chandef,
|
||||
@@ -255,7 +255,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
{
|
||||
struct ieee80211_sub_if_data *sdata = link->sdata;
|
||||
struct ieee80211_local *local = sdata->local;
|
||||
@@ -4140,6 +4275,7 @@ static bool ieee80211_assoc_config_link(
|
||||
@@ -4141,6 +4276,7 @@ static bool ieee80211_assoc_config_link(
|
||||
link_sta);
|
||||
|
||||
bss_conf->eht_support = link_sta->pub->eht_cap.has_eht;
|
||||
@@ -263,7 +263,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
} else {
|
||||
bss_conf->eht_support = false;
|
||||
}
|
||||
@@ -5452,6 +5588,45 @@ static bool ieee80211_rx_our_beacon(cons
|
||||
@@ -5453,6 +5589,45 @@ static bool ieee80211_rx_our_beacon(cons
|
||||
return ether_addr_equal(tx_bssid, bss->transmitted_bss->bssid);
|
||||
}
|
||||
|
||||
@@ -309,7 +309,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
static void ieee80211_rx_mgmt_beacon(struct ieee80211_link_data *link,
|
||||
struct ieee80211_hdr *hdr, size_t len,
|
||||
struct ieee80211_rx_status *rx_status)
|
||||
@@ -5468,7 +5643,7 @@ static void ieee80211_rx_mgmt_beacon(str
|
||||
@@ -5469,7 +5644,7 @@ static void ieee80211_rx_mgmt_beacon(str
|
||||
struct ieee80211_channel *chan;
|
||||
struct link_sta_info *link_sta;
|
||||
struct sta_info *sta;
|
||||
@@ -318,7 +318,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
bool erp_valid;
|
||||
u8 erp_value = 0;
|
||||
u32 ncrc = 0;
|
||||
@@ -5761,6 +5936,21 @@ static void ieee80211_rx_mgmt_beacon(str
|
||||
@@ -5762,6 +5937,21 @@ static void ieee80211_rx_mgmt_beacon(str
|
||||
elems->pwr_constr_elem,
|
||||
elems->cisco_dtpc_elem);
|
||||
|
||||
@@ -340,7 +340,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
ieee80211_link_info_change_notify(sdata, link, changed);
|
||||
free:
|
||||
kfree(elems);
|
||||
@@ -6862,9 +7052,12 @@ ieee80211_setup_assoc_link(struct ieee80
|
||||
@@ -6863,9 +7053,12 @@ ieee80211_setup_assoc_link(struct ieee80
|
||||
ieee80211_apply_htcap_overrides(sdata, &sta_ht_cap);
|
||||
}
|
||||
|
||||
@@ -353,7 +353,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
const struct element *elem;
|
||||
u8 dtim_count = 0;
|
||||
|
||||
@@ -6893,6 +7086,31 @@ ieee80211_setup_assoc_link(struct ieee80
|
||||
@@ -6894,6 +7087,31 @@ ieee80211_setup_assoc_link(struct ieee80
|
||||
link->conf->ema_ap = true;
|
||||
else
|
||||
link->conf->ema_ap = false;
|
||||
|
||||
@@ -120,7 +120,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
break;
|
||||
link->u.mgd.conn_flags |=
|
||||
ieee80211_chandef_downgrade(chandef);
|
||||
@@ -5613,8 +5552,8 @@ static bool ieee80211_config_puncturing(
|
||||
@@ -5614,8 +5553,8 @@ static bool ieee80211_config_puncturing(
|
||||
extracted == link->conf->eht_puncturing)
|
||||
return true;
|
||||
|
||||
@@ -131,7 +131,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
link_info(link,
|
||||
"Got an invalid disable subchannel bitmap from AP %pM: bitmap = 0x%x, bw = 0x%x. disconnect\n",
|
||||
link->u.mgd.bssid,
|
||||
@@ -7102,8 +7041,8 @@ ieee80211_setup_assoc_link(struct ieee80
|
||||
@@ -7103,8 +7042,8 @@ ieee80211_setup_assoc_link(struct ieee80
|
||||
u16 bitmap;
|
||||
|
||||
bitmap = get_unaligned_le16(disable_subchannel_bitmap);
|
||||
|
||||
@@ -137,7 +137,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
int nl80211_parse_chandef(struct cfg80211_registered_device *rdev,
|
||||
struct genl_info *info,
|
||||
struct cfg80211_chan_def *chandef)
|
||||
@@ -5969,6 +5985,14 @@ static int nl80211_start_ap(struct sk_bu
|
||||
@@ -5974,6 +5990,14 @@ static int nl80211_start_ap(struct sk_bu
|
||||
goto out;
|
||||
}
|
||||
|
||||
@@ -152,7 +152,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
if (!cfg80211_reg_can_beacon_relax(&rdev->wiphy, ¶ms->chandef,
|
||||
wdev->iftype)) {
|
||||
err = -EINVAL;
|
||||
@@ -10107,6 +10131,14 @@ skip_beacons:
|
||||
@@ -10126,6 +10150,14 @@ skip_beacons:
|
||||
if (info->attrs[NL80211_ATTR_CH_SWITCH_BLOCK_TX])
|
||||
params.block_tx = true;
|
||||
|
||||
|
||||
@@ -91,7 +91,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
* ieee80211_operating_class_to_band - convert operating class to band
|
||||
--- a/net/mac80211/cfg.c
|
||||
+++ b/net/mac80211/cfg.c
|
||||
@@ -3612,7 +3612,8 @@ static int __ieee80211_csa_finalize(stru
|
||||
@@ -3614,7 +3614,8 @@ static int __ieee80211_csa_finalize(stru
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
@@ -101,7 +101,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -3884,7 +3885,7 @@ __ieee80211_channel_switch(struct wiphy
|
||||
@@ -3886,7 +3887,7 @@ __ieee80211_channel_switch(struct wiphy
|
||||
|
||||
cfg80211_ch_switch_started_notify(sdata->dev,
|
||||
&sdata->deflink.csa_chandef, 0,
|
||||
@@ -132,7 +132,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
/* use driver's channel switch callback */
|
||||
--- a/net/wireless/nl80211.c
|
||||
+++ b/net/wireless/nl80211.c
|
||||
@@ -19085,7 +19085,7 @@ static void nl80211_ch_switch_notify(str
|
||||
@@ -19100,7 +19100,7 @@ static void nl80211_ch_switch_notify(str
|
||||
struct cfg80211_chan_def *chandef,
|
||||
gfp_t gfp,
|
||||
enum nl80211_commands notif,
|
||||
@@ -141,7 +141,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
{
|
||||
struct wireless_dev *wdev = netdev->ieee80211_ptr;
|
||||
struct sk_buff *msg;
|
||||
@@ -19119,6 +19119,9 @@ static void nl80211_ch_switch_notify(str
|
||||
@@ -19134,6 +19134,9 @@ static void nl80211_ch_switch_notify(str
|
||||
goto nla_put_failure;
|
||||
}
|
||||
|
||||
@@ -151,7 +151,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
genlmsg_end(msg, hdr);
|
||||
|
||||
genlmsg_multicast_netns(&nl80211_fam, wiphy_net(&rdev->wiphy), msg, 0,
|
||||
@@ -19131,7 +19134,7 @@ static void nl80211_ch_switch_notify(str
|
||||
@@ -19146,7 +19149,7 @@ static void nl80211_ch_switch_notify(str
|
||||
|
||||
void cfg80211_ch_switch_notify(struct net_device *dev,
|
||||
struct cfg80211_chan_def *chandef,
|
||||
@@ -160,7 +160,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
{
|
||||
struct wireless_dev *wdev = dev->ieee80211_ptr;
|
||||
struct wiphy *wiphy = wdev->wiphy;
|
||||
@@ -19140,7 +19143,7 @@ void cfg80211_ch_switch_notify(struct ne
|
||||
@@ -19155,7 +19158,7 @@ void cfg80211_ch_switch_notify(struct ne
|
||||
ASSERT_WDEV_LOCK(wdev);
|
||||
WARN_INVALID_LINK_ID(wdev, link_id);
|
||||
|
||||
@@ -169,7 +169,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
|
||||
switch (wdev->iftype) {
|
||||
case NL80211_IFTYPE_STATION:
|
||||
@@ -19168,14 +19171,15 @@ void cfg80211_ch_switch_notify(struct ne
|
||||
@@ -19183,14 +19186,15 @@ void cfg80211_ch_switch_notify(struct ne
|
||||
cfg80211_sched_dfs_chan_update(rdev);
|
||||
|
||||
nl80211_ch_switch_notify(rdev, dev, link_id, chandef, GFP_KERNEL,
|
||||
@@ -187,7 +187,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
{
|
||||
struct wireless_dev *wdev = dev->ieee80211_ptr;
|
||||
struct wiphy *wiphy = wdev->wiphy;
|
||||
@@ -19184,11 +19188,13 @@ void cfg80211_ch_switch_started_notify(s
|
||||
@@ -19199,11 +19203,13 @@ void cfg80211_ch_switch_started_notify(s
|
||||
ASSERT_WDEV_LOCK(wdev);
|
||||
WARN_INVALID_LINK_ID(wdev, link_id);
|
||||
|
||||
|
||||
@@ -59,7 +59,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
if (sdata->vif.type == NL80211_IFTYPE_AP &&
|
||||
params->mbssid_config.tx_wdev) {
|
||||
err = ieee80211_set_ap_mbssid_options(sdata,
|
||||
@@ -3571,6 +3576,12 @@ static int __ieee80211_csa_finalize(stru
|
||||
@@ -3573,6 +3578,12 @@ static int __ieee80211_csa_finalize(stru
|
||||
lockdep_assert_held(&local->mtx);
|
||||
lockdep_assert_held(&local->chanctx_mtx);
|
||||
|
||||
@@ -72,7 +72,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
/*
|
||||
* using reservation isn't immediate as it may be deferred until later
|
||||
* with multi-vif. once reservation is complete it will re-schedule the
|
||||
@@ -3613,7 +3624,7 @@ static int __ieee80211_csa_finalize(stru
|
||||
@@ -3615,7 +3626,7 @@ static int __ieee80211_csa_finalize(stru
|
||||
return err;
|
||||
|
||||
cfg80211_ch_switch_notify(sdata->dev, &sdata->deflink.csa_chandef, 0,
|
||||
@@ -81,7 +81,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -3875,9 +3886,13 @@ __ieee80211_channel_switch(struct wiphy
|
||||
@@ -3877,9 +3888,13 @@ __ieee80211_channel_switch(struct wiphy
|
||||
goto out;
|
||||
}
|
||||
|
||||
@@ -95,7 +95,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
|
||||
if (sdata->deflink.csa_block_tx)
|
||||
ieee80211_stop_vif_queues(local, sdata,
|
||||
@@ -3885,7 +3900,8 @@ __ieee80211_channel_switch(struct wiphy
|
||||
@@ -3887,7 +3902,8 @@ __ieee80211_channel_switch(struct wiphy
|
||||
|
||||
cfg80211_ch_switch_started_notify(sdata->dev,
|
||||
&sdata->deflink.csa_chandef, 0,
|
||||
|
||||
@@ -21,7 +21,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
|
||||
--- a/net/mac80211/mlme.c
|
||||
+++ b/net/mac80211/mlme.c
|
||||
@@ -3239,7 +3239,7 @@ static void ieee80211_mgd_probe_ap(struc
|
||||
@@ -3240,7 +3240,7 @@ static void ieee80211_mgd_probe_ap(struc
|
||||
struct ieee80211_if_managed *ifmgd = &sdata->u.mgd;
|
||||
bool already = false;
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
|
||||
--- a/net/mac80211/util.c
|
||||
+++ b/net/mac80211/util.c
|
||||
@@ -2497,21 +2497,55 @@ int ieee80211_reconfig(struct ieee80211_
|
||||
@@ -2500,21 +2500,55 @@ int ieee80211_reconfig(struct ieee80211_
|
||||
|
||||
/* Finally also reconfigure all the BSS information */
|
||||
list_for_each_entry(sdata, &local->interfaces, list) {
|
||||
@@ -77,7 +77,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
}
|
||||
|
||||
switch (sdata->vif.type) {
|
||||
@@ -2531,42 +2565,42 @@ int ieee80211_reconfig(struct ieee80211_
|
||||
@@ -2534,42 +2568,42 @@ int ieee80211_reconfig(struct ieee80211_
|
||||
&sdata->deflink.tx_conf[i]);
|
||||
break;
|
||||
}
|
||||
@@ -150,7 +150,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
break;
|
||||
case NL80211_IFTYPE_OCB:
|
||||
changed |= BSS_CHANGED_OCB;
|
||||
@@ -2601,6 +2635,7 @@ int ieee80211_reconfig(struct ieee80211_
|
||||
@@ -2604,6 +2638,7 @@ int ieee80211_reconfig(struct ieee80211_
|
||||
case NL80211_IFTYPE_NAN:
|
||||
res = ieee80211_reconfig_nan(sdata);
|
||||
if (res < 0) {
|
||||
@@ -158,7 +158,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
ieee80211_handle_reconfig_failure(local);
|
||||
return res;
|
||||
}
|
||||
@@ -2618,6 +2653,10 @@ int ieee80211_reconfig(struct ieee80211_
|
||||
@@ -2621,6 +2656,10 @@ int ieee80211_reconfig(struct ieee80211_
|
||||
WARN_ON(1);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -53,7 +53,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
int ieee80211_reconfig(struct ieee80211_local *local)
|
||||
{
|
||||
struct ieee80211_hw *hw = &local->hw;
|
||||
@@ -2610,7 +2639,13 @@ int ieee80211_reconfig(struct ieee80211_
|
||||
@@ -2613,7 +2642,13 @@ int ieee80211_reconfig(struct ieee80211_
|
||||
changed |= BSS_CHANGED_IBSS;
|
||||
fallthrough;
|
||||
case NL80211_IFTYPE_AP:
|
||||
@@ -68,7 +68,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
|
||||
if (sdata->vif.bss_conf.ftm_responder == 1 &&
|
||||
wiphy_ext_feature_isset(sdata->local->hw.wiphy,
|
||||
@@ -2620,6 +2655,13 @@ int ieee80211_reconfig(struct ieee80211_
|
||||
@@ -2623,6 +2658,13 @@ int ieee80211_reconfig(struct ieee80211_
|
||||
if (sdata->vif.type == NL80211_IFTYPE_AP) {
|
||||
changed |= BSS_CHANGED_AP_PROBE_RESP;
|
||||
|
||||
|
||||
@@ -33,7 +33,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
|
||||
--- a/include/net/mac80211.h
|
||||
+++ b/include/net/mac80211.h
|
||||
@@ -1936,6 +1936,27 @@ struct ieee80211_vif {
|
||||
@@ -1937,6 +1937,27 @@ struct ieee80211_vif {
|
||||
u8 drv_priv[] __aligned(sizeof(void *));
|
||||
};
|
||||
|
||||
@@ -132,7 +132,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
chanctx_conf = rcu_dereference(sdata->vif.bss_conf.chanctx_conf);
|
||||
--- a/net/mac80211/iface.c
|
||||
+++ b/net/mac80211/iface.c
|
||||
@@ -542,7 +542,7 @@ static void ieee80211_do_stop(struct iee
|
||||
@@ -543,7 +543,7 @@ static void ieee80211_do_stop(struct iee
|
||||
cancel_work_sync(&sdata->recalc_smps);
|
||||
|
||||
sdata_lock(sdata);
|
||||
@@ -141,7 +141,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
"destroying interface with valid links 0x%04x\n",
|
||||
sdata->vif.valid_links);
|
||||
|
||||
@@ -1855,7 +1855,7 @@ static int ieee80211_runtime_change_ifty
|
||||
@@ -1873,7 +1873,7 @@ static int ieee80211_runtime_change_ifty
|
||||
return -EBUSY;
|
||||
|
||||
/* for now, don't support changing while links exist */
|
||||
@@ -217,7 +217,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
ieee80211_recalc_smps(sdata, &sdata->deflink);
|
||||
ieee80211_recalc_ps_vif(sdata);
|
||||
|
||||
@@ -2982,7 +2982,7 @@ static void ieee80211_set_disassoc(struc
|
||||
@@ -2983,7 +2983,7 @@ static void ieee80211_set_disassoc(struc
|
||||
sta_info_flush(sdata);
|
||||
|
||||
/* finally reset all BSS / config parameters */
|
||||
@@ -226,7 +226,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
changed |= ieee80211_reset_erp_info(sdata);
|
||||
|
||||
ieee80211_led_assoc(local, 0);
|
||||
@@ -3007,7 +3007,7 @@ static void ieee80211_set_disassoc(struc
|
||||
@@ -3008,7 +3008,7 @@ static void ieee80211_set_disassoc(struc
|
||||
sizeof(sdata->vif.bss_conf.mu_group.membership));
|
||||
memset(sdata->vif.bss_conf.mu_group.position, 0,
|
||||
sizeof(sdata->vif.bss_conf.mu_group.position));
|
||||
@@ -235,7 +235,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
changed |= BSS_CHANGED_MU_GROUPS;
|
||||
sdata->vif.bss_conf.mu_mimo_owner = false;
|
||||
|
||||
@@ -3021,7 +3021,7 @@ static void ieee80211_set_disassoc(struc
|
||||
@@ -3022,7 +3022,7 @@ static void ieee80211_set_disassoc(struc
|
||||
changed |= BSS_CHANGED_ARP_FILTER;
|
||||
|
||||
sdata->vif.bss_conf.qos = false;
|
||||
@@ -244,7 +244,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
changed |= BSS_CHANGED_QOS;
|
||||
/* The BSSID (not really interesting) and HT changed */
|
||||
changed |= BSS_CHANGED_BSSID | BSS_CHANGED_HT;
|
||||
@@ -3191,7 +3191,7 @@ static void ieee80211_mgd_probe_ap_send(
|
||||
@@ -3192,7 +3192,7 @@ static void ieee80211_mgd_probe_ap_send(
|
||||
u8 unicast_limit = max(1, max_probe_tries - 3);
|
||||
struct sta_info *sta;
|
||||
|
||||
@@ -253,7 +253,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
return;
|
||||
|
||||
/*
|
||||
@@ -3239,7 +3239,7 @@ static void ieee80211_mgd_probe_ap(struc
|
||||
@@ -3240,7 +3240,7 @@ static void ieee80211_mgd_probe_ap(struc
|
||||
struct ieee80211_if_managed *ifmgd = &sdata->u.mgd;
|
||||
bool already = false;
|
||||
|
||||
@@ -262,7 +262,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
return;
|
||||
|
||||
if (!ieee80211_sdata_running(sdata))
|
||||
@@ -3314,7 +3314,7 @@ struct sk_buff *ieee80211_ap_probereq_ge
|
||||
@@ -3315,7 +3315,7 @@ struct sk_buff *ieee80211_ap_probereq_ge
|
||||
int ssid_len;
|
||||
|
||||
if (WARN_ON(sdata->vif.type != NL80211_IFTYPE_STATION ||
|
||||
@@ -271,7 +271,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
return NULL;
|
||||
|
||||
sdata_assert_lock(sdata);
|
||||
@@ -3379,7 +3379,8 @@ static void __ieee80211_disconnect(struc
|
||||
@@ -3380,7 +3380,8 @@ static void __ieee80211_disconnect(struc
|
||||
}
|
||||
|
||||
/* in MLO assume we have a link where we can TX the frame */
|
||||
@@ -281,7 +281,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
|
||||
if (!ifmgd->driver_disconnect) {
|
||||
unsigned int link_id;
|
||||
@@ -3578,7 +3579,7 @@ static void ieee80211_destroy_assoc_data
|
||||
@@ -3579,7 +3580,7 @@ static void ieee80211_destroy_assoc_data
|
||||
for (i = 0; i < ARRAY_SIZE(data.bss); i++)
|
||||
data.bss[i] = assoc_data->link[i].bss;
|
||||
|
||||
@@ -290,7 +290,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
data.ap_mld_addr = assoc_data->ap_addr;
|
||||
|
||||
cfg80211_assoc_failure(sdata->dev, &data);
|
||||
@@ -4979,7 +4980,7 @@ static bool ieee80211_assoc_success(stru
|
||||
@@ -4980,7 +4981,7 @@ static bool ieee80211_assoc_success(stru
|
||||
if (WARN_ON(!sta))
|
||||
goto out_err;
|
||||
|
||||
@@ -299,7 +299,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
u16 valid_links = 0;
|
||||
|
||||
for (link_id = 0; link_id < IEEE80211_MLD_MAX_NUM_LINKS; link_id++) {
|
||||
@@ -5008,7 +5009,7 @@ static bool ieee80211_assoc_success(stru
|
||||
@@ -5009,7 +5010,7 @@ static bool ieee80211_assoc_success(stru
|
||||
if (WARN_ON(!link))
|
||||
goto out_err;
|
||||
|
||||
@@ -308,7 +308,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
link_info(link,
|
||||
"local address %pM, AP link address %pM\n",
|
||||
link->conf->addr,
|
||||
@@ -5240,7 +5241,7 @@ static void ieee80211_rx_mgmt_assoc_resp
|
||||
@@ -5241,7 +5242,7 @@ static void ieee80211_rx_mgmt_assoc_resp
|
||||
ifmgd->broken_ap = true;
|
||||
}
|
||||
|
||||
@@ -317,7 +317,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
if (!elems->multi_link) {
|
||||
sdata_info(sdata,
|
||||
"MLO association with %pM but no multi-link element in response!\n",
|
||||
@@ -5304,7 +5305,7 @@ static void ieee80211_rx_mgmt_assoc_resp
|
||||
@@ -5305,7 +5306,7 @@ static void ieee80211_rx_mgmt_assoc_resp
|
||||
resp.uapsd_queues |= ieee80211_ac_to_qos_mask[ac];
|
||||
}
|
||||
|
||||
@@ -326,7 +326,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
ether_addr_copy(ap_mld_addr, sdata->vif.cfg.ap_addr);
|
||||
resp.ap_mld_addr = ap_mld_addr;
|
||||
}
|
||||
@@ -5629,7 +5630,7 @@ static void ieee80211_rx_mgmt_beacon(str
|
||||
@@ -5630,7 +5631,7 @@ static void ieee80211_rx_mgmt_beacon(str
|
||||
rcu_read_unlock();
|
||||
|
||||
if (ifmgd->assoc_data && ifmgd->assoc_data->need_beacon &&
|
||||
@@ -335,7 +335,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
ieee80211_rx_our_beacon(bssid, ifmgd->assoc_data->link[0].bss)) {
|
||||
parse_params.bss = ifmgd->assoc_data->link[0].bss;
|
||||
elems = ieee802_11_parse_elems_full(&parse_params);
|
||||
@@ -6319,7 +6320,7 @@ static void ieee80211_sta_bcn_mon_timer(
|
||||
@@ -6320,7 +6321,7 @@ static void ieee80211_sta_bcn_mon_timer(
|
||||
struct ieee80211_sub_if_data *sdata =
|
||||
from_timer(sdata, t, u.mgd.bcn_mon_timer);
|
||||
|
||||
@@ -344,7 +344,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
return;
|
||||
|
||||
if (sdata->vif.bss_conf.csa_active &&
|
||||
@@ -6343,7 +6344,7 @@ static void ieee80211_sta_conn_mon_timer
|
||||
@@ -6344,7 +6345,7 @@ static void ieee80211_sta_conn_mon_timer
|
||||
struct sta_info *sta;
|
||||
unsigned long timeout;
|
||||
|
||||
@@ -353,7 +353,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
return;
|
||||
|
||||
if (sdata->vif.bss_conf.csa_active &&
|
||||
@@ -6898,7 +6899,7 @@ int ieee80211_mgd_auth(struct ieee80211_
|
||||
@@ -6899,7 +6900,7 @@ int ieee80211_mgd_auth(struct ieee80211_
|
||||
return 0;
|
||||
|
||||
err_clear:
|
||||
@@ -456,7 +456,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
chanctx_conf =
|
||||
rcu_dereference(sdata->vif.bss_conf.chanctx_conf);
|
||||
if (unlikely(!chanctx_conf)) {
|
||||
@@ -6008,7 +6008,7 @@ void __ieee80211_tx_skb_tid_band(struct
|
||||
@@ -6010,7 +6010,7 @@ void __ieee80211_tx_skb_tid_band(struct
|
||||
BUILD_BUG_ON(!FIELD_FIT(IEEE80211_TX_CTRL_MLO_LINK,
|
||||
IEEE80211_LINK_UNSPECIFIED));
|
||||
|
||||
@@ -465,7 +465,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
link = 0;
|
||||
} else if (link_id >= 0) {
|
||||
link = link_id;
|
||||
@@ -6054,7 +6054,7 @@ void ieee80211_tx_skb_tid(struct ieee802
|
||||
@@ -6056,7 +6056,7 @@ void ieee80211_tx_skb_tid(struct ieee802
|
||||
enum nl80211_band band;
|
||||
|
||||
rcu_read_lock();
|
||||
@@ -485,7 +485,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
struct {
|
||||
u8 id;
|
||||
u8 len;
|
||||
@@ -2546,7 +2546,7 @@ int ieee80211_reconfig(struct ieee80211_
|
||||
@@ -2549,7 +2549,7 @@ int ieee80211_reconfig(struct ieee80211_
|
||||
continue;
|
||||
|
||||
sdata_lock(sdata);
|
||||
@@ -494,7 +494,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
struct ieee80211_bss_conf *old[IEEE80211_MLD_MAX_NUM_LINKS] = {
|
||||
[0] = &sdata->vif.bss_conf,
|
||||
};
|
||||
@@ -2566,7 +2566,7 @@ int ieee80211_reconfig(struct ieee80211_
|
||||
@@ -2569,7 +2569,7 @@ int ieee80211_reconfig(struct ieee80211_
|
||||
for (link_id = 0;
|
||||
link_id < ARRAY_SIZE(sdata->vif.link_conf);
|
||||
link_id++) {
|
||||
@@ -503,7 +503,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
!(sdata->vif.active_links & BIT(link_id)))
|
||||
continue;
|
||||
|
||||
@@ -2598,12 +2598,12 @@ int ieee80211_reconfig(struct ieee80211_
|
||||
@@ -2601,12 +2601,12 @@ int ieee80211_reconfig(struct ieee80211_
|
||||
if (sdata->vif.bss_conf.mu_mimo_owner)
|
||||
changed |= BSS_CHANGED_MU_GROUPS;
|
||||
|
||||
@@ -518,7 +518,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
changed |= BSS_CHANGED_ASSOC |
|
||||
BSS_CHANGED_ARP_FILTER |
|
||||
BSS_CHANGED_PS;
|
||||
@@ -2641,7 +2641,7 @@ int ieee80211_reconfig(struct ieee80211_
|
||||
@@ -2644,7 +2644,7 @@ int ieee80211_reconfig(struct ieee80211_
|
||||
case NL80211_IFTYPE_AP:
|
||||
changed |= BSS_CHANGED_P2P_PS;
|
||||
|
||||
@@ -527,7 +527,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
ieee80211_vif_cfg_change_notify(sdata,
|
||||
BSS_CHANGED_SSID);
|
||||
else
|
||||
@@ -2655,7 +2655,7 @@ int ieee80211_reconfig(struct ieee80211_
|
||||
@@ -2658,7 +2658,7 @@ int ieee80211_reconfig(struct ieee80211_
|
||||
if (sdata->vif.type == NL80211_IFTYPE_AP) {
|
||||
changed |= BSS_CHANGED_AP_PROBE_RESP;
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||
--- a/include/net/mac80211.h
|
||||
+++ b/include/net/mac80211.h
|
||||
@@ -1714,6 +1714,7 @@ enum ieee80211_smps_mode {
|
||||
@@ -1715,6 +1715,7 @@ enum ieee80211_smps_mode {
|
||||
*
|
||||
* @power_level: requested transmit power (in dBm), backward compatibility
|
||||
* value only that is set to the minimum of all interfaces
|
||||
@@ -26,7 +26,7 @@
|
||||
*
|
||||
* @chandef: the channel definition to tune to
|
||||
* @radar_enabled: whether radar detection is enabled
|
||||
@@ -1734,6 +1735,7 @@ enum ieee80211_smps_mode {
|
||||
@@ -1735,6 +1736,7 @@ enum ieee80211_smps_mode {
|
||||
struct ieee80211_conf {
|
||||
u32 flags;
|
||||
int power_level, dynamic_ps_timeout;
|
||||
@@ -56,7 +56,7 @@
|
||||
__NL80211_ATTR_AFTER_LAST,
|
||||
--- a/net/mac80211/cfg.c
|
||||
+++ b/net/mac80211/cfg.c
|
||||
@@ -3079,6 +3079,19 @@ static int ieee80211_get_tx_power(struct
|
||||
@@ -3081,6 +3081,19 @@ static int ieee80211_get_tx_power(struct
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -76,7 +76,7 @@
|
||||
static void ieee80211_rfkill_poll(struct wiphy *wiphy)
|
||||
{
|
||||
struct ieee80211_local *local = wiphy_priv(wiphy);
|
||||
@@ -5009,6 +5022,7 @@ const struct cfg80211_ops mac80211_confi
|
||||
@@ -5011,6 +5024,7 @@ const struct cfg80211_ops mac80211_confi
|
||||
.set_wiphy_params = ieee80211_set_wiphy_params,
|
||||
.set_tx_power = ieee80211_set_tx_power,
|
||||
.get_tx_power = ieee80211_get_tx_power,
|
||||
@@ -105,7 +105,7 @@
|
||||
u32 offchannel_flag;
|
||||
|
||||
offchannel_flag = local->hw.conf.flags & IEEE80211_CONF_OFFCHANNEL;
|
||||
@@ -157,6 +157,12 @@ static u32 ieee80211_hw_conf_chan(struct
|
||||
@@ -159,6 +159,12 @@ static u32 ieee80211_hw_conf_chan(struct
|
||||
}
|
||||
rcu_read_unlock();
|
||||
|
||||
@@ -118,7 +118,7 @@
|
||||
if (local->hw.conf.power_level != power) {
|
||||
changed |= IEEE80211_CONF_CHANGE_POWER;
|
||||
local->hw.conf.power_level = power;
|
||||
@@ -766,6 +772,7 @@ struct ieee80211_hw *ieee80211_alloc_hw_
|
||||
@@ -768,6 +774,7 @@ struct ieee80211_hw *ieee80211_alloc_hw_
|
||||
IEEE80211_RADIOTAP_MCS_HAVE_BW;
|
||||
local->hw.radiotap_vht_details = IEEE80211_RADIOTAP_VHT_KNOWN_GI |
|
||||
IEEE80211_RADIOTAP_VHT_KNOWN_BANDWIDTH;
|
||||
|
||||
@@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=r8101
|
||||
PKG_VERSION:=1.039.00
|
||||
PKG_RELEASE:=2
|
||||
PKG_RELEASE:=3
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
|
||||
PKG_SOURCE_URL:=https://github.com/openwrt/rtl8101/releases/download/$(PKG_VERSION)
|
||||
@@ -20,7 +20,7 @@ define KernelPackage/r8101
|
||||
TITLE:=Realtek RTL8101 PCI Fast Ethernet driver
|
||||
DEPENDS:=@PCI_SUPPORT +kmod-libphy
|
||||
FILES:=$(PKG_BUILD_DIR)/src/r8101.ko
|
||||
AUTOLOAD:=$(call AutoProbe,r8101)
|
||||
AUTOLOAD:=$(call AutoProbe,r8101,1)
|
||||
PROVIDES:=kmod-r8169
|
||||
endef
|
||||
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=r8125
|
||||
PKG_VERSION:=9.013.02
|
||||
PKG_RELEASE:=4
|
||||
PKG_VERSION:=9.016.00
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
|
||||
PKG_SOURCE_URL:=https://github.com/openwrt/rtl8125/releases/download/$(PKG_VERSION)
|
||||
PKG_HASH:=d36410ee99c956f250d9cd08340d8c36567d190f420a8ee128ff6e51225aac0c
|
||||
PKG_HASH:=cd1955dd07d2f5a6faaa210ffc4e8af992421295a32ab6ddcfa759bed9eba922
|
||||
|
||||
PKG_BUILD_PARALLEL:=1
|
||||
PKG_LICENSE:=GPLv2
|
||||
@@ -20,19 +20,23 @@ define KernelPackage/r8125
|
||||
TITLE:=Realtek RTL8125 PCI 2.5 Gigabit Ethernet driver
|
||||
DEPENDS:=@PCI_SUPPORT +kmod-libphy
|
||||
FILES:=$(PKG_BUILD_DIR)/src/r8125.ko
|
||||
AUTOLOAD:=$(call AutoProbe,r8125)
|
||||
AUTOLOAD:=$(call AutoProbe,r8125,1)
|
||||
PROVIDES:=kmod-r8169
|
||||
VARIANT:=regular
|
||||
PKG_MAKE_FLAGS += CONFIG_ASPM=n
|
||||
endef
|
||||
|
||||
define KernelPackage/r8125-rss
|
||||
$(call KernelPackage/r8125)
|
||||
CONFLICTS:=kmod-r8125
|
||||
TITLE+= (RSS)
|
||||
VARIANT:=rss
|
||||
endef
|
||||
|
||||
ifeq ($(BUILD_VARIANT),rss)
|
||||
PKG_MAKE_FLAGS += ENABLE_RSS_SUPPORT=y
|
||||
PKG_MAKE_FLAGS += \
|
||||
ENABLE_MULTIPLE_TX_QUEUE=y \
|
||||
ENABLE_RSS_SUPPORT=y
|
||||
endif
|
||||
|
||||
define Build/Compile
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
From cd20cf48c0ec2a01fd9f512e25218a6ac8131794 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= <noltari@gmail.com>
|
||||
Date: Sat, 17 Aug 2024 22:07:23 +0200
|
||||
Subject: [PATCH] r8125_rss: silence rxnfc log
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
This log is noisy and useless, just ignore it.
|
||||
|
||||
Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
|
||||
---
|
||||
src/r8125_rss.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
--- a/src/r8125_rss.c
|
||||
+++ b/src/r8125_rss.c
|
||||
@@ -91,7 +91,7 @@ int rtl8125_get_rxnfc(struct net_device
|
||||
struct rtl8125_private *tp = netdev_priv(dev);
|
||||
int ret = -EOPNOTSUPP;
|
||||
|
||||
- netif_info(tp, drv, tp->dev, "rss get rxnfc\n");
|
||||
+ netif_dbg(tp, drv, tp->dev, "rss get rxnfc\n");
|
||||
|
||||
if (!(dev->features & NETIF_F_RXHASH))
|
||||
return ret;
|
||||
@@ -18,11 +18,12 @@ Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
|
||||
|
||||
--- a/src/r8125.h
|
||||
+++ b/src/r8125.h
|
||||
@@ -1563,6 +1563,8 @@ enum RTL8125_register_content {
|
||||
@@ -1726,6 +1726,9 @@ enum RTL8125_register_content {
|
||||
LinkStatus = 0x02,
|
||||
FullDup = 0x01,
|
||||
|
||||
+#define RTL8125_FULL_DUPLEX_MASK (_2500bpsF | _1000bpsF | FullDup)
|
||||
+#define RTL8125_SPEED_1000_MASK (_1000bpsF | _1000bpsL | _2500bpsL)
|
||||
+
|
||||
/* DBG_reg */
|
||||
Fix_Nak_1 = (1 << 4),
|
||||
@@ -37,11 +38,11 @@ Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
|
||||
#include <linux/netdevice.h>
|
||||
#include <linux/etherdevice.h>
|
||||
#include <linux/delay.h>
|
||||
@@ -5112,6 +5113,38 @@ rtl8125_link_down_patch(struct net_devic
|
||||
@@ -5045,6 +5046,38 @@ rtl8125_link_down_patch(struct net_devic
|
||||
#endif
|
||||
}
|
||||
|
||||
+static unsigned int rtl8125_phy_duplex(u16 status)
|
||||
+static unsigned int rtl8125_phy_duplex(u32 status)
|
||||
+{
|
||||
+ unsigned int duplex = DUPLEX_UNKNOWN;
|
||||
+
|
||||
@@ -55,14 +56,14 @@ Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
|
||||
+ return duplex;
|
||||
+}
|
||||
+
|
||||
+static int rtl8125_phy_speed(u16 status)
|
||||
+static int rtl8125_phy_speed(u32 status)
|
||||
+{
|
||||
+ int speed = SPEED_UNKNOWN;
|
||||
+
|
||||
+ if (status & LinkStatus) {
|
||||
+ if (status & _2500bpsF)
|
||||
+ speed = SPEED_2500;
|
||||
+ else if (status & _1000bpsF)
|
||||
+ else if (status & RTL8125_SPEED_1000_MASK)
|
||||
+ speed = SPEED_1000;
|
||||
+ else if (status & _100bps)
|
||||
+ speed = SPEED_100;
|
||||
@@ -74,16 +75,16 @@ Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
|
||||
+}
|
||||
+
|
||||
static void
|
||||
_rtl8125_check_link_status(struct net_device *dev)
|
||||
_rtl8125_check_link_status(struct net_device *dev, unsigned int link_state)
|
||||
{
|
||||
@@ -5120,11 +5153,18 @@ _rtl8125_check_link_status(struct net_de
|
||||
if (tp->link_ok(dev)) {
|
||||
@@ -5057,11 +5090,18 @@ _rtl8125_check_link_status(struct net_de
|
||||
if (link_state == R8125_LINK_STATE_ON) {
|
||||
rtl8125_link_on_patch(dev);
|
||||
|
||||
- if (netif_msg_ifup(tp))
|
||||
- printk(KERN_INFO PFX "%s: link up\n", dev->name);
|
||||
+ if (netif_msg_ifup(tp)) {
|
||||
+ const u16 phy_status = RTL_R16(tp, PHYstatus);
|
||||
+ const u32 phy_status = RTL_R32(tp, PHYstatus);
|
||||
+ const unsigned int phy_duplex = rtl8125_phy_duplex(phy_status);
|
||||
+ const int phy_speed = rtl8125_phy_speed(phy_status);
|
||||
+ printk(KERN_INFO PFX "%s: Link is Up - %s/%s\n",
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=r8126
|
||||
PKG_VERSION:=10.013.00
|
||||
PKG_RELEASE:=4
|
||||
PKG_VERSION:=10.015.00
|
||||
PKG_RELEASE:=3
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
|
||||
PKG_SOURCE_URL:=https://github.com/openwrt/rtl8126/releases/download/$(PKG_VERSION)
|
||||
PKG_HASH:=b41bda6ff3bbb7d9bc5b81c5c21355f031587d3a3a5862abcd4d766e942272e7
|
||||
PKG_HASH:=fac513aa925264a95b053e7532fcda56022d29db288f6625fafee2759a8a6124
|
||||
|
||||
PKG_BUILD_PARALLEL:=1
|
||||
PKG_LICENSE:=GPLv2
|
||||
@@ -20,19 +20,22 @@ define KernelPackage/r8126
|
||||
TITLE:=Realtek RTL8126 PCI 5 Gigabit Ethernet driver
|
||||
DEPENDS:=@PCI_SUPPORT +kmod-libphy
|
||||
FILES:=$(PKG_BUILD_DIR)/src/r8126.ko
|
||||
AUTOLOAD:=$(call AutoProbe,r8126)
|
||||
AUTOLOAD:=$(call AutoProbe,r8126,1)
|
||||
PROVIDES:=kmod-r8169
|
||||
VARIANT:=regular
|
||||
endef
|
||||
|
||||
define KernelPackage/r8126-rss
|
||||
$(call KernelPackage/r8126)
|
||||
CONFLICTS:=kmod-r8126
|
||||
TITLE+= (RSS)
|
||||
VARIANT:=rss
|
||||
endef
|
||||
|
||||
ifeq ($(BUILD_VARIANT),rss)
|
||||
PKG_MAKE_FLAGS += ENABLE_RSS_SUPPORT=y
|
||||
PKG_MAKE_FLAGS += \
|
||||
ENABLE_MULTIPLE_TX_QUEUE=y \
|
||||
ENABLE_RSS_SUPPORT=y
|
||||
endif
|
||||
|
||||
define Build/Compile
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
From 9649df50a239d1379cc8d9febd4854a0c7ca0731 Mon Sep 17 00:00:00 2001
|
||||
From: Mieczyslaw Nalewaj <namiltd@poczta.onet.pl>
|
||||
Date: Sat, 10 Aug 2024 17:42:44 +0200
|
||||
Subject: [PATCH] r8126.h: use BIT_ULL
|
||||
|
||||
Fixes compilation on 32 bit systems.
|
||||
---
|
||||
src/r8126.h | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
--- a/src/r8126.h
|
||||
+++ b/src/r8126.h
|
||||
@@ -678,7 +678,7 @@ This is free software, and you are welco
|
||||
#ifndef ADVERTISED_2500baseX_Full
|
||||
#define ADVERTISED_2500baseX_Full 0x8000
|
||||
#endif
|
||||
-#define RTK_ADVERTISED_5000baseX_Full BIT(48)
|
||||
+#define RTK_ADVERTISED_5000baseX_Full BIT_ULL(48)
|
||||
|
||||
#define RTK_ADVERTISE_2500FULL 0x80
|
||||
#define RTK_ADVERTISE_5000FULL 0x100
|
||||
@@ -1,27 +0,0 @@
|
||||
From cd20cf48c0ec2a01fd9f512e25218a6ac8131794 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= <noltari@gmail.com>
|
||||
Date: Sat, 17 Aug 2024 22:07:23 +0200
|
||||
Subject: [PATCH] r8126_rss: silence rxnfc log
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
This log is noisy and useless, just ignore it.
|
||||
|
||||
Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
|
||||
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
|
||||
---
|
||||
src/r8126_rss.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
--- a/src/r8126_rss.c
|
||||
+++ b/src/r8126_rss.c
|
||||
@@ -91,7 +91,7 @@ int rtl8126_get_rxnfc(struct net_device
|
||||
struct rtl8126_private *tp = netdev_priv(dev);
|
||||
int ret = -EOPNOTSUPP;
|
||||
|
||||
- netif_info(tp, drv, tp->dev, "rss get rxnfc\n");
|
||||
+ netif_dbg(tp, drv, tp->dev, "rss get rxnfc\n");
|
||||
|
||||
if (!(dev->features & NETIF_F_RXHASH))
|
||||
return ret;
|
||||
@@ -18,11 +18,13 @@ Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
|
||||
|
||||
--- a/src/r8126.h
|
||||
+++ b/src/r8126.h
|
||||
@@ -1561,6 +1561,8 @@ enum RTL8126_register_content {
|
||||
@@ -1756,6 +1756,10 @@ enum RTL8126_register_content {
|
||||
LinkStatus = 0x02,
|
||||
FullDup = 0x01,
|
||||
|
||||
+#define RTL8126_FULL_DUPLEX_MASK (_5000bpsF | _2500bpsF | _1000bpsF | FullDup)
|
||||
+#define RTL8126_SPEED_1000_MASK (_1000bpsF | _1000bpsL | _2500bpsL)
|
||||
+#define RTL8126_SPEED_2500_MASK (_2500bpsF | _5000bpsL)
|
||||
+
|
||||
/* DBG_reg */
|
||||
Fix_Nak_1 = (1 << 4),
|
||||
@@ -37,11 +39,11 @@ Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
|
||||
#include <linux/netdevice.h>
|
||||
#include <linux/etherdevice.h>
|
||||
#include <linux/delay.h>
|
||||
@@ -4740,6 +4741,40 @@ rtl8126_link_down_patch(struct net_devic
|
||||
@@ -4661,6 +4662,40 @@ rtl8126_link_down_patch(struct net_devic
|
||||
#endif
|
||||
}
|
||||
|
||||
+static unsigned int rtl8126_phy_duplex(u16 status)
|
||||
+static unsigned int rtl8126_phy_duplex(u32 status)
|
||||
+{
|
||||
+ unsigned int duplex = DUPLEX_UNKNOWN;
|
||||
+
|
||||
@@ -55,16 +57,16 @@ Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
|
||||
+ return duplex;
|
||||
+}
|
||||
+
|
||||
+static int rtl8126_phy_speed(u16 status)
|
||||
+static int rtl8126_phy_speed(u32 status)
|
||||
+{
|
||||
+ int speed = SPEED_UNKNOWN;
|
||||
+
|
||||
+ if (status & LinkStatus) {
|
||||
+ if (status & _5000bpsF)
|
||||
+ speed = SPEED_5000;
|
||||
+ else if (status & _2500bpsF)
|
||||
+ else if (status & RTL8126_SPEED_2500_MASK)
|
||||
+ speed = SPEED_2500;
|
||||
+ else if (status & _1000bpsF)
|
||||
+ else if (status & RTL8126_SPEED_1000_MASK)
|
||||
+ speed = SPEED_1000;
|
||||
+ else if (status & _100bps)
|
||||
+ speed = SPEED_100;
|
||||
@@ -76,16 +78,16 @@ Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
|
||||
+}
|
||||
+
|
||||
static void
|
||||
_rtl8126_check_link_status(struct net_device *dev)
|
||||
_rtl8126_check_link_status(struct net_device *dev, unsigned int link_state)
|
||||
{
|
||||
@@ -4748,11 +4783,18 @@ _rtl8126_check_link_status(struct net_de
|
||||
if (tp->link_ok(dev)) {
|
||||
@@ -4673,11 +4708,18 @@ _rtl8126_check_link_status(struct net_de
|
||||
if (link_state == R8126_LINK_STATE_ON) {
|
||||
rtl8126_link_on_patch(dev);
|
||||
|
||||
- if (netif_msg_ifup(tp))
|
||||
- printk(KERN_INFO PFX "%s: link up\n", dev->name);
|
||||
+ if (netif_msg_ifup(tp)) {
|
||||
+ const u16 phy_status = RTL_R16(tp, PHYstatus);
|
||||
+ const u32 phy_status = RTL_R32(tp, PHYstatus);
|
||||
+ const unsigned int phy_duplex = rtl8126_phy_duplex(phy_status);
|
||||
+ const int phy_speed = rtl8126_phy_speed(phy_status);
|
||||
+ printk(KERN_INFO PFX "%s: Link is Up - %s/%s\n",
|
||||
|
||||
49
package/kernel/r8127/Makefile
Normal file
49
package/kernel/r8127/Makefile
Normal file
@@ -0,0 +1,49 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=r8127
|
||||
PKG_VERSION:=11.014.00
|
||||
PKG_RELEASE:=3
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
|
||||
PKG_SOURCE_URL:=https://github.com/openwrt/rtl8127/releases/download/$(PKG_VERSION)
|
||||
PKG_HASH:=f496bc16c32d2e8f9482c57d006604c70d9e8d55b4f1f999b88c602de9104094
|
||||
|
||||
PKG_BUILD_PARALLEL:=1
|
||||
PKG_LICENSE:=GPLv2
|
||||
PKG_MAINTAINER:=Alvaro Fernandez Rojas <noltari@gmail.com>
|
||||
|
||||
include $(INCLUDE_DIR)/kernel.mk
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
define KernelPackage/r8127
|
||||
SUBMENU:=Network Devices
|
||||
TITLE:=Realtek RTL8127 PCI 10 Gigabit Ethernet driver
|
||||
DEPENDS:=@PCI_SUPPORT +kmod-libphy
|
||||
FILES:=$(PKG_BUILD_DIR)/src/r8127.ko
|
||||
AUTOLOAD:=$(call AutoProbe,r8127,1)
|
||||
PROVIDES:=kmod-r8169
|
||||
VARIANT:=regular
|
||||
endef
|
||||
|
||||
define KernelPackage/r8127-rss
|
||||
$(call KernelPackage/r8127)
|
||||
CONFLICTS:=kmod-r8127
|
||||
TITLE+= (RSS)
|
||||
VARIANT:=rss
|
||||
endef
|
||||
|
||||
ifeq ($(BUILD_VARIANT),rss)
|
||||
PKG_MAKE_FLAGS += \
|
||||
ENABLE_MULTIPLE_TX_QUEUE=y \
|
||||
ENABLE_RSS_SUPPORT=y
|
||||
endif
|
||||
|
||||
define Build/Compile
|
||||
+$(KERNEL_MAKE) $(PKG_JOBS) \
|
||||
$(PKG_MAKE_FLAGS) \
|
||||
M="$(PKG_BUILD_DIR)/src" \
|
||||
modules
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,r8127))
|
||||
$(eval $(call KernelPackage,r8127-rss))
|
||||
@@ -0,0 +1,107 @@
|
||||
From 5ca1d47e065c0318774a946ffdf76010c78cc164 Mon Sep 17 00:00:00 2001
|
||||
From: Chukun Pan <amadeus@jmu.edu.cn>
|
||||
Date: Sat, 10 Aug 2024 20:16:32 +0800
|
||||
Subject: [PATCH] r8127: print link speed and duplex mode
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Like other Ethernet drivers, print link speed and duplex mode
|
||||
when the interface is up. Formatting output at the same time.
|
||||
|
||||
Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
|
||||
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
|
||||
---
|
||||
src/r8127.h | 2 ++
|
||||
src/r8127_n.c | 48 +++++++++++++++++++++++++++++++++++++++++++++---
|
||||
2 files changed, 47 insertions(+), 3 deletions(-)
|
||||
|
||||
--- a/src/r8127.h
|
||||
+++ b/src/r8127.h
|
||||
@@ -1753,6 +1753,11 @@ enum RTL8127_register_content {
|
||||
LinkStatus = 0x02,
|
||||
FullDup = 0x01,
|
||||
|
||||
+#define RTL8127_FULL_DUPLEX_MASK (_10000bpsF | _5000bpsF | _2500bpsF | _1000bpsF | FullDup)
|
||||
+#define RTL8127_SPEED_1000_MASK (_1000bpsF | _1000bpsL | _2500bpsL)
|
||||
+#define RTL8127_SPEED_2500_MASK (_2500bpsF | _5000bpsL)
|
||||
+#define RTL8127_SPEED_5000_MASK (_5000bpsF | _10000bpsL)
|
||||
+
|
||||
/* DBG_reg */
|
||||
Fix_Nak_1 = (1 << 4),
|
||||
Fix_Nak_2 = (1 << 3),
|
||||
--- a/src/r8127_n.c
|
||||
+++ b/src/r8127_n.c
|
||||
@@ -39,6 +39,7 @@
|
||||
#include <linux/module.h>
|
||||
#include <linux/version.h>
|
||||
#include <linux/pci.h>
|
||||
+#include <linux/phy.h>
|
||||
#include <linux/netdevice.h>
|
||||
#include <linux/etherdevice.h>
|
||||
#include <linux/delay.h>
|
||||
@@ -4746,6 +4747,42 @@ rtl8127_link_down_patch(struct net_devic
|
||||
#endif
|
||||
}
|
||||
|
||||
+static unsigned int rtl8127_phy_duplex(u32 status)
|
||||
+{
|
||||
+ unsigned int duplex = DUPLEX_UNKNOWN;
|
||||
+
|
||||
+ if (status & LinkStatus) {
|
||||
+ if (status & RTL8127_FULL_DUPLEX_MASK)
|
||||
+ duplex = DUPLEX_FULL;
|
||||
+ else
|
||||
+ duplex = DUPLEX_HALF;
|
||||
+ }
|
||||
+
|
||||
+ return duplex;
|
||||
+}
|
||||
+
|
||||
+static int rtl8127_phy_speed(u32 status)
|
||||
+{
|
||||
+ int speed = SPEED_UNKNOWN;
|
||||
+
|
||||
+ if (status & LinkStatus) {
|
||||
+ if (status & _10000bpsF)
|
||||
+ speed = SPEED_10000;
|
||||
+ else if (status & RTL8127_SPEED_5000_MASK)
|
||||
+ speed = SPEED_5000;
|
||||
+ else if (status & RTL8127_SPEED_2500_MASK)
|
||||
+ speed = SPEED_2500;
|
||||
+ else if (status & RTL8127_SPEED_1000_MASK)
|
||||
+ speed = SPEED_1000;
|
||||
+ else if (status & _100bps)
|
||||
+ speed = SPEED_100;
|
||||
+ else if (status & _10bps)
|
||||
+ speed = SPEED_10;
|
||||
+ }
|
||||
+
|
||||
+ return speed;
|
||||
+}
|
||||
+
|
||||
static void
|
||||
_rtl8127_check_link_status(struct net_device *dev, unsigned int link_state)
|
||||
{
|
||||
@@ -4758,11 +4795,18 @@ _rtl8127_check_link_status(struct net_de
|
||||
if (link_state == R8127_LINK_STATE_ON) {
|
||||
rtl8127_link_on_patch(dev);
|
||||
|
||||
- if (netif_msg_ifup(tp))
|
||||
- printk(KERN_INFO PFX "%s: link up\n", dev->name);
|
||||
+ if (netif_msg_ifup(tp)) {
|
||||
+ const u32 phy_status = RTL_R32(tp, PHYstatus);
|
||||
+ const unsigned int phy_duplex = rtl8127_phy_duplex(phy_status);
|
||||
+ const int phy_speed = rtl8127_phy_speed(phy_status);
|
||||
+ printk(KERN_INFO PFX "%s: Link is Up - %s/%s\n",
|
||||
+ dev->name,
|
||||
+ phy_speed_to_str(phy_speed),
|
||||
+ phy_duplex_to_str(phy_duplex));
|
||||
+ }
|
||||
} else {
|
||||
if (netif_msg_ifdown(tp))
|
||||
- printk(KERN_INFO PFX "%s: link down\n", dev->name);
|
||||
+ printk(KERN_INFO PFX "%s: Link is Down\n", dev->name);
|
||||
|
||||
rtl8127_link_down_patch(dev);
|
||||
}
|
||||
@@ -1,12 +1,12 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=r8168
|
||||
PKG_VERSION:=8.053.00
|
||||
PKG_RELEASE:=2
|
||||
PKG_VERSION:=8.055.00
|
||||
PKG_RELEASE:=3
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
|
||||
PKG_SOURCE_URL:=https://github.com/openwrt/rtl8168/releases/download/$(PKG_VERSION)
|
||||
PKG_HASH:=52f1e6200672b598a04d4ac21ac92a8a9e128b38208c7b03a464bfa93bbfcc8f
|
||||
PKG_HASH:=61deb2a9cb7d6b08748ad51734b108da95d629712b64b204e2e6bd3f16d0a48f
|
||||
|
||||
PKG_BUILD_PARALLEL:=1
|
||||
PKG_LICENSE:=GPLv2
|
||||
@@ -20,10 +20,24 @@ define KernelPackage/r8168
|
||||
TITLE:=Realtek RTL8168 PCI Gigabit Ethernet driver
|
||||
DEPENDS:=@PCI_SUPPORT +kmod-libphy
|
||||
FILES:=$(PKG_BUILD_DIR)/src/r8168.ko
|
||||
AUTOLOAD:=$(call AutoProbe,r8168)
|
||||
AUTOLOAD:=$(call AutoProbe,r8168,1)
|
||||
PROVIDES:=kmod-r8169
|
||||
VARIANT:=regular
|
||||
endef
|
||||
|
||||
define KernelPackage/r8168-rss
|
||||
$(call KernelPackage/r8168)
|
||||
CONFLICTS:=kmod-r8168
|
||||
TITLE+= (RSS)
|
||||
VARIANT:=rss
|
||||
endef
|
||||
|
||||
ifeq ($(BUILD_VARIANT),rss)
|
||||
PKG_MAKE_FLAGS += \
|
||||
ENABLE_MULTIPLE_TX_QUEUE=y \
|
||||
ENABLE_RSS_SUPPORT=y
|
||||
endif
|
||||
|
||||
define Build/Compile
|
||||
+$(KERNEL_MAKE) $(PKG_JOBS) \
|
||||
M="$(PKG_BUILD_DIR)/src" \
|
||||
@@ -31,3 +45,4 @@ define Build/Compile
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,r8168))
|
||||
$(eval $(call KernelPackage,r8168-rss))
|
||||
|
||||
@@ -13,7 +13,7 @@ Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
|
||||
|
||||
--- a/src/r8168_n.c
|
||||
+++ b/src/r8168_n.c
|
||||
@@ -1655,9 +1655,9 @@ static int proc_dump_rx_desc_2(struct se
|
||||
@@ -1668,9 +1668,9 @@ static int proc_dump_rx_desc_2(struct se
|
||||
j, k);
|
||||
for (i=0; i<(tp->RxDescLength/4); i++) {
|
||||
if (!(i % 4))
|
||||
|
||||
@@ -18,7 +18,7 @@ Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
|
||||
|
||||
--- a/src/r8168.h
|
||||
+++ b/src/r8168.h
|
||||
@@ -1385,6 +1385,8 @@ enum RTL8168_register_content {
|
||||
@@ -1480,6 +1480,8 @@ enum RTL8168_register_content {
|
||||
LinkStatus = 0x02,
|
||||
FullDup = 0x01,
|
||||
|
||||
@@ -37,7 +37,7 @@ Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
|
||||
#include <linux/netdevice.h>
|
||||
#include <linux/etherdevice.h>
|
||||
#include <linux/delay.h>
|
||||
@@ -5373,6 +5374,36 @@ rtl8168_link_down_patch(struct net_devic
|
||||
@@ -5396,6 +5397,38 @@ rtl8168_link_down_patch(struct net_devic
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -66,6 +66,8 @@ Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
|
||||
+ speed = SPEED_100;
|
||||
+ else if (status & _10bps)
|
||||
+ speed = SPEED_10;
|
||||
+ else if (eee_giga_lite)
|
||||
+ speed = SPEED_1000;
|
||||
+ }
|
||||
+
|
||||
+ return speed;
|
||||
@@ -74,7 +76,7 @@ Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
|
||||
static void
|
||||
rtl8168_check_link_status(struct net_device *dev)
|
||||
{
|
||||
@@ -5392,11 +5423,18 @@ rtl8168_check_link_status(struct net_dev
|
||||
@@ -5415,11 +5448,18 @@ rtl8168_check_link_status(struct net_dev
|
||||
if (link_status_on) {
|
||||
rtl8168_link_on_patch(dev);
|
||||
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=libxml2
|
||||
PKG_VERSION:=2.12.5
|
||||
PKG_VERSION:=2.14.5
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
||||
PKG_SOURCE_URL:=@GNOME/libxml2/$(basename $(PKG_VERSION))
|
||||
PKG_HASH:=a972796696afd38073e0f59c283c3a2f5a560b5268b4babc391b286166526b21
|
||||
PKG_HASH:=03d006f3537616833c16c53addcdc32a0eb20e55443cba4038307e3fa7d8d44b
|
||||
|
||||
PKG_LICENSE:=MIT
|
||||
PKG_LICENSE_FILES:=COPYING
|
||||
@@ -61,7 +61,7 @@ endef
|
||||
CMAKE_HOST_OPTIONS += \
|
||||
-DBUILD_SHARED_LIBS=OFF \
|
||||
-DLIBXML2_WITH_C14N=ON \
|
||||
-DLIBXML2_WITH_CATALOG=OFF \
|
||||
-DLIBXML2_WITH_CATALOG=ON \
|
||||
-DLIBXML2_WITH_DEBUG=ON \
|
||||
-DLIBXML2_WITH_FTP=OFF \
|
||||
-DLIBXML2_WITH_HTML=ON \
|
||||
@@ -99,7 +99,7 @@ CMAKE_HOST_OPTIONS += \
|
||||
CMAKE_OPTIONS += \
|
||||
-DBUILD_SHARED_LIBS=ON \
|
||||
-DLIBXML2_WITH_C14N=ON \
|
||||
-DLIBXML2_WITH_CATALOG=OFF \
|
||||
-DLIBXML2_WITH_CATALOG=ON \
|
||||
-DLIBXML2_WITH_DEBUG=ON \
|
||||
-DLIBXML2_WITH_FTP=OFF \
|
||||
-DLIBXML2_WITH_HTML=ON \
|
||||
@@ -160,9 +160,6 @@ define Build/InstallDev
|
||||
|
||||
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig
|
||||
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libxml-2.0.pc $(1)/usr/lib/pkgconfig/
|
||||
|
||||
$(INSTALL_DIR) $(2)/share/aclocal/
|
||||
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/aclocal/* $(2)/share/aclocal
|
||||
endef
|
||||
|
||||
define Host/Install
|
||||
@@ -190,9 +187,6 @@ define Package/libxml2-dev/install
|
||||
$(INSTALL_DIR) $(1)/usr/lib/{cmake,pkgconfig}
|
||||
$(CP) $(PKG_INSTALL_DIR)/usr/lib/{cmake,pkgconfig} $(1)/usr/lib/
|
||||
$(SED) "s,$(STAGING_DIR),,g" $(1)/usr/lib/pkgconfig/*.pc
|
||||
|
||||
$(INSTALL_DIR) $(1)/usr/share/aclocal
|
||||
$(CP) $(PKG_INSTALL_DIR)/usr/share/aclocal/* $(1)/usr/share/aclocal
|
||||
endef
|
||||
|
||||
define Package/libxml2-utils/install
|
||||
|
||||
@@ -8,13 +8,13 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=mbedtls
|
||||
PKG_VERSION:=2.28.9
|
||||
PKG_VERSION:=2.28.10
|
||||
PKG_RELEASE:=1
|
||||
PKG_BUILD_FLAGS:=no-mips16 gc-sections no-lto
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://codeload.github.com/ARMmbed/mbedtls/tar.gz/v$(PKG_VERSION)?
|
||||
PKG_HASH:=e4dbcf86a4fb31506482888560f02b161e0ecfb82fee0643abcfc86abee5817e
|
||||
PKG_HASH:=0f2e0525903a89ae1d39ce439d858be66933bda54c5b6102b72a29ed8fe7c088
|
||||
|
||||
PKG_LICENSE:=GPL-2.0-or-later
|
||||
PKG_LICENSE_FILES:=gpl-2.0.txt
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=openssl
|
||||
PKG_VERSION:=3.0.15
|
||||
PKG_VERSION:=3.0.16
|
||||
PKG_RELEASE:=1
|
||||
PKG_BUILD_FLAGS:=no-mips16 gc-sections no-lto
|
||||
|
||||
@@ -25,7 +25,7 @@ PKG_SOURCE_URL:= \
|
||||
ftp://ftp.pca.dfn.de/pub/tools/net/openssl/source/ \
|
||||
ftp://ftp.pca.dfn.de/pub/tools/net/openssl/source/old/$(PKG_BASE)/
|
||||
|
||||
PKG_HASH:=23c666d0edf20f14249b3d8f0368acaee9ab585b09e1de82107c66e1f3ec9533
|
||||
PKG_HASH:=57e03c50feab5d31b152af2b764f10379aecd8ee92f16c985983ce4a99f7ef86
|
||||
|
||||
PKG_LICENSE:=Apache-2.0
|
||||
PKG_LICENSE_FILES:=LICENSE
|
||||
|
||||
@@ -8,12 +8,12 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=wolfssl
|
||||
PKG_VERSION:=5.7.2-stable
|
||||
PKG_VERSION:=5.7.6-stable
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://github.com/wolfSSL/wolfssl/archive/v$(PKG_VERSION)
|
||||
PKG_HASH:=0f2ed82e345b833242705bbc4b08a2a2037a33f7bf9c610efae6464f6b10e305
|
||||
PKG_HASH:=52b1e439e30d1ed8162a16308a8525a862183b67aa30373b11166ecbab000d63
|
||||
|
||||
PKG_FIXUP:=libtool libtool-abiver
|
||||
PKG_INSTALL:=1
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/wolfssl/wolfcrypt/settings.h
|
||||
+++ b/wolfssl/wolfcrypt/settings.h
|
||||
@@ -3046,7 +3046,7 @@ extern void uITRON4_free(void *p) ;
|
||||
@@ -3722,7 +3722,7 @@ extern void uITRON4_free(void *p) ;
|
||||
|
||||
/* warning for not using harden build options (default with ./configure) */
|
||||
/* do not warn if big integer support is disabled */
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user