Merge Mainline
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
This commit is contained in:
commit
8b50d0960d
@ -279,9 +279,11 @@ endef
|
||||
define Build/fit
|
||||
$(TOPDIR)/scripts/mkits.sh \
|
||||
-D $(DEVICE_NAME) -o $@.its -k $@ \
|
||||
-C $(word 1,$(1)) $(if $(word 2,$(1)),\
|
||||
$(if $(DEVICE_DTS_OVERLAY),-d $(KERNEL_BUILD_DIR)/image-$$(basename $(word 2,$(1))),\
|
||||
-d $(word 2,$(1)))) \
|
||||
-C $(word 1,$(1)) \
|
||||
$(if $(word 2,$(1)),\
|
||||
$(if $(findstring 11,$(if $(DEVICE_DTS_OVERLAY),1)$(if $(findstring $(KERNEL_BUILD_DIR)/image-,$(word 2,$(1))),,1)), \
|
||||
-d $(KERNEL_BUILD_DIR)/image-$$(basename $(word 2,$(1))), \
|
||||
-d $(word 2,$(1)))) \
|
||||
$(if $(findstring with-rootfs,$(word 3,$(1))),-r $(IMAGE_ROOTFS)) \
|
||||
$(if $(findstring with-initrd,$(word 3,$(1))), \
|
||||
$(if $(CONFIG_TARGET_ROOTFS_INITRAMFS_SEPARATE), \
|
||||
|
||||
@ -1,2 +1,2 @@
|
||||
LINUX_VERSION-5.10 = .131
|
||||
LINUX_KERNEL_HASH-5.10.131 = 8bc441442c16c330a7148fe3cca9edcd98bc0fc9f68304633c7eb641770d21ce
|
||||
LINUX_VERSION-5.10 = .134
|
||||
LINUX_KERNEL_HASH-5.10.134 = ec3513acdf033dd8f8ac2545cd1bb826b0669e151185e5f70408a5c9fe273269
|
||||
|
||||
@ -1,2 +1,2 @@
|
||||
LINUX_VERSION-5.15 = .53
|
||||
LINUX_KERNEL_HASH-5.15.53 = f3aa717243051f3fcca90ebfe26fe5c3a596c2f6047846e8d1724ea90df77b07
|
||||
LINUX_VERSION-5.15 = .58
|
||||
LINUX_KERNEL_HASH-5.15.58 = d75bd9579c4b318e6162e21c591878fd37efda0f79c5cdd0dc4eb9ea9dfc4fa8
|
||||
|
||||
@ -7,9 +7,9 @@
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_VERSION:=2.5
|
||||
PKG_VERSION:=2.7
|
||||
PKG_RELEASE:=$(AUTORELEASE)
|
||||
PKG_HASH:=ad8a2ffcbcd12d919723da07630fc0840c3c2fba7656d1462e45488e42995d7c
|
||||
PKG_HASH:=53422dc649153838e03820330ba17cb10afe3e330ecde0db11e4d5f1361a33e6
|
||||
|
||||
PKG_MAINTAINER:=Vladimir Vid <vladimir.vid@sartura.hr>
|
||||
|
||||
@ -124,15 +124,15 @@ TFA_MAKE_FLAGS += \
|
||||
mrvl_uart
|
||||
|
||||
A3700_UTILS_NAME:=a3700-utils
|
||||
A3700_UTILS_RELEASE:=97f01f5f
|
||||
A3700_UTILS_RELEASE:=1d977157
|
||||
A3700_UTILS_SOURCE=$(A3700_UTILS_NAME)-$(A3700_UTILS_RELEASE).tar.bz2
|
||||
|
||||
define Download/a3700-utils
|
||||
FILE:=$(A3700_UTILS_SOURCE)
|
||||
PROTO:=git
|
||||
URL:=https://github.com/MarvellEmbeddedProcessors/A3700-utils-marvell.git
|
||||
VERSION:=97f01f5feaf9ef6168e2a2096abaf56371939e58
|
||||
MIRROR_HASH:=1e391c4dafb7b3363a17282e229d056a95575c0f4fb2f71e21db8044668aea78
|
||||
VERSION:=1d977157e37151b272f88f2406a245c833fb2d8c
|
||||
MIRROR_HASH:=322821ec8c04afea260254e927c59cd1ec0bd84e7ec6507cc1f155f18afb8eb9
|
||||
SUBDIR:=$(A3700_UTILS_NAME)
|
||||
endef
|
||||
|
||||
@ -150,40 +150,40 @@ define Download/cryptopp
|
||||
endef
|
||||
|
||||
MV_DDR_NAME:=mv-ddr-marvell
|
||||
MV_DDR_RELEASE:=efcad0e2
|
||||
MV_DDR_RELEASE:=d5acc10c
|
||||
MV_DDR_SOURCE:=$(MV_DDR_NAME)-$(MV_DDR_RELEASE).tar.bz2
|
||||
|
||||
define Download/mv-ddr-marvell
|
||||
FILE:=$(MV_DDR_SOURCE)
|
||||
PROTO:=git
|
||||
URL:=https://github.com/MarvellEmbeddedProcessors/mv-ddr-marvell.git
|
||||
VERSION:=efcad0e2fae66a8b6f84a4dd2326f5add67569d5
|
||||
MIRROR_HASH:=99363f928ee1239fd42d651b495d163a60cdab00c24770a3c5e192efa7169d62
|
||||
VERSION:=d5acc10c287e40cc2feeb28710b92e45c93c702c
|
||||
MIRROR_HASH:=c149ab737935b5fb822f48da8e2d7fba4388f48e645f9f6da857bee20f0333ea
|
||||
SUBDIR:=$(MV_DDR_NAME)
|
||||
endef
|
||||
|
||||
MOX_BB_NAME:=mox-boot-builder
|
||||
MOX_BB_RELEASE:=v2021.09.07
|
||||
MOX_BB_RELEASE:=v2022.06.11
|
||||
MOX_BB_SOURCE:=$(MOX_BB_NAME)-$(MOX_BB_RELEASE).tar.bz2
|
||||
|
||||
define Download/mox-boot-builder
|
||||
FILE:=$(MOX_BB_SOURCE)
|
||||
URL:=https://gitlab.nic.cz/turris/mox-boot-builder/-/archive/$(MOX_BB_RELEASE)
|
||||
HASH:=fd5fe276a3b0dee3177d61c017907a8eb23cd2169478fa78e9a3a836cfe3a4a8
|
||||
HASH:=75e7661c38f4f5e6d8910dd789d6d9ffd8652455548b68c98e5bf45eaab5b6eb
|
||||
endef
|
||||
|
||||
CM3_GCC_NAME:=gcc-arm
|
||||
CM3_GCC_RELEASE:=10.2-2020.11
|
||||
CM3_GCC_RELEASE:=11.2-2022.02
|
||||
CM3_GCC_VERSION:=$(HOST_ARCH)-arm-none-eabi
|
||||
CM3_GCC_SOURCE=$(CM3_GCC_NAME)-$(CM3_GCC_RELEASE)-$(CM3_GCC_VERSION).tar.xz
|
||||
|
||||
define Download/cm3-gcc
|
||||
FILE:=$(CM3_GCC_SOURCE)
|
||||
URL:=https://developer.arm.com/-/media/Files/downloads/gnu-a/$(CM3_GCC_RELEASE)/binrel
|
||||
URL:=https://developer.arm.com/-/media/Files/downloads/gnu/$(CM3_GCC_RELEASE)/binrel
|
||||
ifeq ($(HOST_ARCH),aarch64)
|
||||
HASH:=1a42eecafa03dc6f32b8ae49ffcd15114dc818efbd72292fa6bab58233940bb9
|
||||
HASH:=ef1d82e5894e3908cb7ed49c5485b5b95deefa32872f79c2b5f6f5447cabf55f
|
||||
else
|
||||
HASH:=bf7ee185936d22d787b80c8da573f72ead5675695331fb8b590f0133ef1f6bb9
|
||||
HASH:=8c5acd5ae567c0100245b0556941c237369f210bceb196edfe5a2e7532c60326
|
||||
endif
|
||||
endef
|
||||
|
||||
@ -209,10 +209,8 @@ define Build/Prepare
|
||||
mkdir -p $(STAGING_DIR_IMAGE)
|
||||
$(TAR) -C $(STAGING_DIR_IMAGE) -xf $(DL_DIR)/$(CRYPTOPP_SOURCE)
|
||||
$(TAR) -C $(STAGING_DIR_IMAGE) -xf $(DL_DIR)/$(A3700_UTILS_SOURCE)
|
||||
echo "master" > $(STAGING_DIR_IMAGE)/$(A3700_UTILS_NAME)/branch.txt
|
||||
$(call PatchDir/Default,$(STAGING_DIR_IMAGE)/$(A3700_UTILS_NAME),./patches-a3700-utils)
|
||||
$(TAR) -C $(STAGING_DIR_IMAGE) -xf $(DL_DIR)/$(MV_DDR_SOURCE)
|
||||
echo "master" > $(STAGING_DIR_IMAGE)/$(MV_DDR_NAME)/branch.txt
|
||||
$(call PatchDir/Default,$(STAGING_DIR_IMAGE)/$(MV_DDR_NAME),./patches-mv-ddr-marvell)
|
||||
$(TAR) -C $(STAGING_DIR_IMAGE) -xf $(DL_DIR)/$(MOX_BB_SOURCE)
|
||||
$(call PatchDir/Default,$(STAGING_DIR_IMAGE)/$(MOX_BB_NAME)-$(MOX_BB_RELEASE),./patches-mox-boot-builder)
|
||||
|
||||
@ -1,13 +0,0 @@
|
||||
diff --git a/wtmi/Makefile b/wtmi/Makefile
|
||||
index 75754dc..0c6238f 100644
|
||||
--- a/wtmi/Makefile
|
||||
+++ b/wtmi/Makefile
|
||||
@@ -36,7 +36,7 @@ LDSCRIPT = wtmi.ld
|
||||
INCLUDE = -I.
|
||||
|
||||
ifeq ($(LTO), 1)
|
||||
- LTO_FLAGS = -flto -flto-partition=none -Wl,-fuse-ld=gold
|
||||
+ LTO_FLAGS = -flto -flto-partition=none
|
||||
else
|
||||
LTO_FLAGS =
|
||||
endif
|
||||
@ -0,0 +1,21 @@
|
||||
We're not building with full fledged git checkouts here, get rid of the
|
||||
overzealous checks.
|
||||
|
||||
--- a/plat/marvell/armada/a3k/common/a3700_common.mk
|
||||
+++ b/plat/marvell/armada/a3k/common/a3700_common.mk
|
||||
@@ -78,7 +78,6 @@ ifdef WTP
|
||||
|
||||
# Do not remove! Following checks are required to ensure correct TF-A builds, removing these checks leads to broken TF-A builds
|
||||
$(if $(wildcard $(value WTP)/*),,$(error "'WTP=$(value WTP)' was specified, but '$(value WTP)' directory does not exist"))
|
||||
-$(if $(shell git -C $(value WTP) rev-parse --show-cdup 2>&1),$(error "'WTP=$(value WTP)' was specified, but '$(value WTP)' does not contain valid A3700-utils-marvell git repository"))
|
||||
|
||||
TBB := $(WTP)/wtptp/src/TBB_Linux/release/TBB_linux
|
||||
|
||||
@@ -164,7 +163,6 @@ $(TIMDDRTOOL): FORCE
|
||||
# Do not remove! Following checks are required to ensure correct TF-A builds, removing these checks leads to broken TF-A builds
|
||||
$(if $(value MV_DDR_PATH),,$(error "Platform '${PLAT}' for ddr tool requires MV_DDR_PATH. Please set MV_DDR_PATH to point to the right directory"))
|
||||
$(if $(wildcard $(value MV_DDR_PATH)/*),,$(error "'MV_DDR_PATH=$(value MV_DDR_PATH)' was specified, but '$(value MV_DDR_PATH)' directory does not exist"))
|
||||
- $(if $(shell git -C $(value MV_DDR_PATH) rev-parse --show-cdup 2>&1),$(error "'MV_DDR_PATH=$(value MV_DDR_PATH)' was specified, but '$(value MV_DDR_PATH)' does not contain valid mv-ddr-marvell git repository"))
|
||||
$(Q)$(MAKE) --no-print-directory -C $(WTP) MV_DDR_PATH=$(MV_DDR_PATH) DDR_TOPOLOGY=$(DDR_TOPOLOGY) mv_ddr
|
||||
|
||||
$(BUILD_PLAT)/$(UART_IMAGE): $(BUILD_PLAT)/$(BOOT_IMAGE) $(BUILD_PLAT)/wtmi.bin $(TBB) $(TIMBUILD) $(TIMDDRTOOL)
|
||||
@ -1,60 +0,0 @@
|
||||
From 66a7752834382595d26214783ae4698fd1f00bd6 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Pali=20Roh=C3=A1r?= <pali@kernel.org>
|
||||
Date: Thu, 13 May 2021 14:53:44 +0200
|
||||
Subject: [PATCH] fix(plat/marvell/a3720/uart): fix UART clock rate value and
|
||||
divisor calculation
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
UART parent clock is by default the platform's xtal clock, which is
|
||||
25 MHz.
|
||||
|
||||
The value defined in the driver, though, is 25.8048 MHz. This is a hack
|
||||
for the suboptimal divisor calculation
|
||||
Divisor = UART clock / (16 * baudrate)
|
||||
which does not use rounding division, resulting in a suboptimal value
|
||||
for divisor if the correct parent clock rate was used.
|
||||
|
||||
Change the code for divisor calculation to
|
||||
Divisor = Round(UART clock / (16 * baudrate))
|
||||
and change the parent clock rate value to 25 MHz.
|
||||
|
||||
The final UART divisor for default baudrate 115200 is not affected by
|
||||
this change.
|
||||
|
||||
(Note that the parent clock rate should not be defined via a macro,
|
||||
since the xtal clock can also be 40 MHz. This is outside of the scope of
|
||||
this fix, though.)
|
||||
|
||||
Signed-off-by: Pali Rohár <pali@kernel.org>
|
||||
Change-Id: Iaa401173df87aec94f2dd1b38a90fb6ed0bf0ec6
|
||||
---
|
||||
drivers/marvell/uart/a3700_console.S | 3 ++-
|
||||
plat/marvell/armada/a3k/common/include/platform_def.h | 2 +-
|
||||
2 files changed, 3 insertions(+), 2 deletions(-)
|
||||
|
||||
--- a/drivers/marvell/uart/a3700_console.S
|
||||
+++ b/drivers/marvell/uart/a3700_console.S
|
||||
@@ -45,8 +45,9 @@ func console_a3700_core_init
|
||||
cbz w2, init_fail
|
||||
|
||||
/* Program the baudrate */
|
||||
- /* Divisor = Uart clock / (16 * baudrate) */
|
||||
+ /* Divisor = Round(Uartclock / (16 * baudrate)) */
|
||||
lsl w2, w2, #4
|
||||
+ add w1, w1, w2, lsr #1
|
||||
udiv w2, w1, w2
|
||||
and w2, w2, #0x3ff
|
||||
|
||||
--- a/plat/marvell/armada/a3k/common/include/platform_def.h
|
||||
+++ b/plat/marvell/armada/a3k/common/include/platform_def.h
|
||||
@@ -164,7 +164,7 @@
|
||||
* PL011 related constants
|
||||
*/
|
||||
#define PLAT_MARVELL_BOOT_UART_BASE (MVEBU_REGS_BASE + 0x12000)
|
||||
-#define PLAT_MARVELL_BOOT_UART_CLK_IN_HZ 25804800
|
||||
+#define PLAT_MARVELL_BOOT_UART_CLK_IN_HZ 25000000
|
||||
|
||||
#define PLAT_MARVELL_CRASH_UART_BASE PLAT_MARVELL_BOOT_UART_BASE
|
||||
#define PLAT_MARVELL_CRASH_UART_CLK_IN_HZ PLAT_MARVELL_BOOT_UART_CLK_IN_HZ
|
||||
@ -1,53 +0,0 @@
|
||||
From b9185c75f7ec2b600ebe0d49281e216a2456b764 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Pali=20Roh=C3=A1r?= <pali@kernel.org>
|
||||
Date: Thu, 13 May 2021 15:11:06 +0200
|
||||
Subject: [PATCH] fix(plat/marvell/a3720/uart): fix configuring UART clock
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
When configuring the UART_BAUD_REG register, the function
|
||||
console_a3700_core_init() currently only changes the baud divisor field,
|
||||
leaving other fields to their previous value.
|
||||
|
||||
This is incorrect, because the baud divisor is computed with the
|
||||
assumption that the parent clock rate is 25 MHz, and since the other
|
||||
fields in this register configure the parent clock, which could have
|
||||
been changed by U-Boot or Linux.
|
||||
|
||||
Fix this function to also configure the other fields so that the UART
|
||||
parent clock is selected to be the xtal clock.
|
||||
|
||||
For example without this change TF-A prints only
|
||||
|
||||
ERROR: a3700_system_off needs to be implemented
|
||||
|
||||
followed by garbage after plat_crash_console_init() is called.
|
||||
|
||||
After applying this change instead of garbage it also print crash info:
|
||||
|
||||
PANIC at PC : 0x0000000004023800
|
||||
|
||||
Signed-off-by: Pali Rohár <pali@kernel.org>
|
||||
Change-Id: I72f338355cc60d939b8bb978d9c7fdd576416b81
|
||||
---
|
||||
drivers/marvell/uart/a3700_console.S | 7 ++-----
|
||||
1 file changed, 2 insertions(+), 5 deletions(-)
|
||||
|
||||
--- a/drivers/marvell/uart/a3700_console.S
|
||||
+++ b/drivers/marvell/uart/a3700_console.S
|
||||
@@ -49,12 +49,9 @@ func console_a3700_core_init
|
||||
lsl w2, w2, #4
|
||||
add w1, w1, w2, lsr #1
|
||||
udiv w2, w1, w2
|
||||
- and w2, w2, #0x3ff
|
||||
+ and w2, w2, #0x3ff /* clear all other bits to use default clock */
|
||||
|
||||
- ldr w3, [x0, #UART_BAUD_REG]
|
||||
- bic w3, w3, 0x3ff
|
||||
- orr w3, w3, w2
|
||||
- str w3, [x0, #UART_BAUD_REG]/* set baud rate divisor */
|
||||
+ str w2, [x0, #UART_BAUD_REG]/* set baud rate divisor */
|
||||
|
||||
/* Set UART to default 16X scheme */
|
||||
mov w3, #0
|
||||
@ -1,122 +0,0 @@
|
||||
From 3133625859b74df42deddd80b705578af6fc2fea Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Pali=20Roh=C3=A1r?= <pali@kernel.org>
|
||||
Date: Fri, 14 May 2021 13:21:56 +0200
|
||||
Subject: [PATCH] refactor(plat/marvell/uart): de-duplicate PLAT_MARVELL_UART
|
||||
macros
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Macros PLAT_MARVELL_BOOT_UART* and PLAT_MARVELL_CRASH_UART* are defined
|
||||
to same values. De-duplicate them into PLAT_MARVELL_UART* macros.
|
||||
|
||||
Signed-off-by: Pali Rohár <pali@kernel.org>
|
||||
Change-Id: Iae5daf7cad6a971e6f3dbe561df3d0174106ca7f
|
||||
---
|
||||
plat/marvell/armada/a3k/common/include/platform_def.h | 7 ++-----
|
||||
plat/marvell/armada/a8k/a80x0_puzzle/board/system_power.c | 4 ++--
|
||||
plat/marvell/armada/a8k/common/include/platform_def.h | 7 ++-----
|
||||
plat/marvell/armada/common/aarch64/marvell_helpers.S | 8 ++++----
|
||||
plat/marvell/armada/common/marvell_console.c | 8 ++++----
|
||||
5 files changed, 14 insertions(+), 20 deletions(-)
|
||||
|
||||
--- a/plat/marvell/armada/a3k/common/include/platform_def.h
|
||||
+++ b/plat/marvell/armada/a3k/common/include/platform_def.h
|
||||
@@ -163,11 +163,8 @@
|
||||
/*
|
||||
* PL011 related constants
|
||||
*/
|
||||
-#define PLAT_MARVELL_BOOT_UART_BASE (MVEBU_REGS_BASE + 0x12000)
|
||||
-#define PLAT_MARVELL_BOOT_UART_CLK_IN_HZ 25000000
|
||||
-
|
||||
-#define PLAT_MARVELL_CRASH_UART_BASE PLAT_MARVELL_BOOT_UART_BASE
|
||||
-#define PLAT_MARVELL_CRASH_UART_CLK_IN_HZ PLAT_MARVELL_BOOT_UART_CLK_IN_HZ
|
||||
+#define PLAT_MARVELL_UART_BASE (MVEBU_REGS_BASE + 0x12000)
|
||||
+#define PLAT_MARVELL_UART_CLK_IN_HZ 25000000
|
||||
|
||||
#define PLAT_MARVELL_BL31_RUN_UART_BASE PLAT_MARVELL_BOOT_UART_BASE
|
||||
#define PLAT_MARVELL_BL31_RUN_UART_CLK_IN_HZ PLAT_MARVELL_BOOT_UART_CLK_IN_HZ
|
||||
--- a/plat/marvell/armada/a8k/a80x0_puzzle/board/system_power.c
|
||||
+++ b/plat/marvell/armada/a8k/a80x0_puzzle/board/system_power.c
|
||||
@@ -41,8 +41,8 @@ int system_power_off(void)
|
||||
len = sizeof(system_off_now);
|
||||
system_off_now[len - 1] = add_xor_checksum(system_off_now, len);
|
||||
|
||||
- console_16550_register(PLAT_MARVELL_BOOT_UART_BASE + 0x100,
|
||||
- PLAT_MARVELL_BOOT_UART_CLK_IN_HZ, 115200, &console);
|
||||
+ console_16550_register(PLAT_MARVELL_UART_BASE + 0x100,
|
||||
+ PLAT_MARVELL_UART_CLK_IN_HZ, 115200, &console);
|
||||
|
||||
/* Send system_off_now to console */
|
||||
for (i = 0; i < len; i++) {
|
||||
--- a/plat/marvell/armada/a8k/common/include/platform_def.h
|
||||
+++ b/plat/marvell/armada/a8k/common/include/platform_def.h
|
||||
@@ -168,11 +168,8 @@
|
||||
/*
|
||||
* PL011 related constants
|
||||
*/
|
||||
-#define PLAT_MARVELL_BOOT_UART_BASE (MVEBU_REGS_BASE + 0x512000)
|
||||
-#define PLAT_MARVELL_BOOT_UART_CLK_IN_HZ 200000000
|
||||
-
|
||||
-#define PLAT_MARVELL_CRASH_UART_BASE PLAT_MARVELL_BOOT_UART_BASE
|
||||
-#define PLAT_MARVELL_CRASH_UART_CLK_IN_HZ PLAT_MARVELL_BOOT_UART_CLK_IN_HZ
|
||||
+#define PLAT_MARVELL_UART_BASE (MVEBU_REGS_BASE + 0x512000)
|
||||
+#define PLAT_MARVELL_UART_CLK_IN_HZ 200000000
|
||||
|
||||
#define PLAT_MARVELL_BL31_RUN_UART_BASE PLAT_MARVELL_BOOT_UART_BASE
|
||||
#define PLAT_MARVELL_BL31_RUN_UART_CLK_IN_HZ PLAT_MARVELL_BOOT_UART_CLK_IN_HZ
|
||||
--- a/plat/marvell/armada/common/aarch64/marvell_helpers.S
|
||||
+++ b/plat/marvell/armada/common/aarch64/marvell_helpers.S
|
||||
@@ -63,8 +63,8 @@ endfunc plat_marvell_calc_core_pos
|
||||
* ---------------------------------------------
|
||||
*/
|
||||
func plat_crash_console_init
|
||||
- mov_imm x0, PLAT_MARVELL_CRASH_UART_BASE
|
||||
- mov_imm x1, PLAT_MARVELL_CRASH_UART_CLK_IN_HZ
|
||||
+ mov_imm x0, PLAT_MARVELL_UART_BASE
|
||||
+ mov_imm x1, PLAT_MARVELL_UART_CLK_IN_HZ
|
||||
mov_imm x2, MARVELL_CONSOLE_BAUDRATE
|
||||
#ifdef PLAT_a3700
|
||||
b console_a3700_core_init
|
||||
@@ -81,7 +81,7 @@ endfunc plat_crash_console_init
|
||||
* ---------------------------------------------
|
||||
*/
|
||||
func plat_crash_console_putc
|
||||
- mov_imm x1, PLAT_MARVELL_CRASH_UART_BASE
|
||||
+ mov_imm x1, PLAT_MARVELL_UART_BASE
|
||||
#ifdef PLAT_a3700
|
||||
|
||||
b console_a3700_core_putc
|
||||
@@ -99,7 +99,7 @@ endfunc plat_crash_console_putc
|
||||
* ---------------------------------------------
|
||||
*/
|
||||
func plat_crash_console_flush
|
||||
- mov_imm x0, PLAT_MARVELL_CRASH_UART_BASE
|
||||
+ mov_imm x0, PLAT_MARVELL_UART_BASE
|
||||
#ifdef PLAT_a3700
|
||||
b console_a3700_core_flush
|
||||
#else
|
||||
--- a/plat/marvell/armada/common/marvell_console.c
|
||||
+++ b/plat/marvell/armada/common/marvell_console.c
|
||||
@@ -31,8 +31,8 @@ static console_t marvell_runtime_console
|
||||
void marvell_console_boot_init(void)
|
||||
{
|
||||
int rc =
|
||||
- console_marvell_register(PLAT_MARVELL_BOOT_UART_BASE,
|
||||
- PLAT_MARVELL_BOOT_UART_CLK_IN_HZ,
|
||||
+ console_marvell_register(PLAT_MARVELL_UART_BASE,
|
||||
+ PLAT_MARVELL_UART_CLK_IN_HZ,
|
||||
MARVELL_CONSOLE_BAUDRATE,
|
||||
&marvell_boot_console);
|
||||
if (rc == 0) {
|
||||
@@ -58,8 +58,8 @@ void marvell_console_boot_end(void)
|
||||
void marvell_console_runtime_init(void)
|
||||
{
|
||||
int rc =
|
||||
- console_marvell_register(PLAT_MARVELL_BOOT_UART_BASE,
|
||||
- PLAT_MARVELL_BOOT_UART_CLK_IN_HZ,
|
||||
+ console_marvell_register(PLAT_MARVELL_UART_BASE,
|
||||
+ PLAT_MARVELL_UART_CLK_IN_HZ,
|
||||
MARVELL_CONSOLE_BAUDRATE,
|
||||
&marvell_runtime_console);
|
||||
if (rc == 0)
|
||||
@ -1,177 +0,0 @@
|
||||
From 5a91c439cbeb1f64b8b9830de91efad5113d3c89 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Pali=20Roh=C3=A1r?= <pali@kernel.org>
|
||||
Date: Fri, 14 May 2021 15:52:11 +0200
|
||||
Subject: [PATCH] fix(plat/marvell/a3720/uart): fix UART parent clock rate
|
||||
determination
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
The UART code for the A3K platform assumes that UART parent clock rate
|
||||
is always 25 MHz. This is incorrect, because the xtal clock can also run
|
||||
at 40 MHz (this is board specific).
|
||||
|
||||
The frequency of the xtal clock is determined by a value on a strapping
|
||||
pin during SOC reset. The code to determine this frequency is already in
|
||||
A3K's comphy driver.
|
||||
|
||||
Move the get_ref_clk() function from the comphy driver to a separate
|
||||
file and use it for UART parent clock rate determination.
|
||||
|
||||
Signed-off-by: Pali Rohár <pali@kernel.org>
|
||||
Change-Id: I8bb18a2d020ef18fe65aa06ffa4ab205c71be92e
|
||||
---
|
||||
drivers/marvell/comphy/phy-comphy-3700.c | 24 +------------
|
||||
.../marvell/armada/a3k/common/plat_marvell.h | 2 ++
|
||||
.../marvell/armada/a3k/common/a3700_common.mk | 1 +
|
||||
.../armada/a3k/common/aarch64/a3700_clock.S | 35 +++++++++++++++++++
|
||||
.../armada/a3k/common/include/platform_def.h | 1 -
|
||||
.../armada/common/aarch64/marvell_helpers.S | 10 +++++-
|
||||
plat/marvell/armada/common/marvell_console.c | 1 +
|
||||
7 files changed, 49 insertions(+), 25 deletions(-)
|
||||
create mode 100644 plat/marvell/armada/a3k/common/aarch64/a3700_clock.S
|
||||
|
||||
--- a/drivers/marvell/comphy/phy-comphy-3700.c
|
||||
+++ b/drivers/marvell/comphy/phy-comphy-3700.c
|
||||
@@ -14,6 +14,7 @@
|
||||
|
||||
#include <mvebu.h>
|
||||
#include <mvebu_def.h>
|
||||
+#include <plat_marvell.h>
|
||||
|
||||
#include "phy-comphy-3700.h"
|
||||
#include "phy-comphy-common.h"
|
||||
@@ -29,15 +30,6 @@
|
||||
#define USB3_GBE1_PHY (MVEBU_REGS_BASE + 0x5C000)
|
||||
#define COMPHY_SD_ADDR (MVEBU_REGS_BASE + 0x1F000)
|
||||
|
||||
-/*
|
||||
- * Below address in used only for reading, therefore no problem with concurrent
|
||||
- * Linux access.
|
||||
- */
|
||||
-#define MVEBU_TEST_PIN_LATCH_N (MVEBU_NB_GPIO_REG_BASE + 0x8)
|
||||
- #define MVEBU_XTAL_MODE_MASK BIT(9)
|
||||
- #define MVEBU_XTAL_MODE_OFFS 9
|
||||
- #define MVEBU_XTAL_CLOCK_25MHZ 0x0
|
||||
-
|
||||
struct sgmii_phy_init_data_fix {
|
||||
uint16_t addr;
|
||||
uint16_t value;
|
||||
@@ -125,20 +117,6 @@ static uint16_t sgmii_phy_init[512] = {
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 /*1F8 */
|
||||
};
|
||||
|
||||
-/* returns reference clock in MHz (25 or 40) */
|
||||
-static uint32_t get_ref_clk(void)
|
||||
-{
|
||||
- uint32_t val;
|
||||
-
|
||||
- val = (mmio_read_32(MVEBU_TEST_PIN_LATCH_N) & MVEBU_XTAL_MODE_MASK) >>
|
||||
- MVEBU_XTAL_MODE_OFFS;
|
||||
-
|
||||
- if (val == MVEBU_XTAL_CLOCK_25MHZ)
|
||||
- return 25;
|
||||
- else
|
||||
- return 40;
|
||||
-}
|
||||
-
|
||||
/* PHY selector configures with corresponding modes */
|
||||
static void mvebu_a3700_comphy_set_phy_selector(uint8_t comphy_index,
|
||||
uint32_t comphy_mode)
|
||||
--- a/include/plat/marvell/armada/a3k/common/plat_marvell.h
|
||||
+++ b/include/plat/marvell/armada/a3k/common/plat_marvell.h
|
||||
@@ -100,4 +100,6 @@ void plat_marvell_interconnect_enter_coh
|
||||
|
||||
const mmap_region_t *plat_marvell_get_mmap(void);
|
||||
|
||||
+uint32_t get_ref_clk(void);
|
||||
+
|
||||
#endif /* PLAT_MARVELL_H */
|
||||
--- a/plat/marvell/armada/a3k/common/a3700_common.mk
|
||||
+++ b/plat/marvell/armada/a3k/common/a3700_common.mk
|
||||
@@ -38,6 +38,7 @@ PLAT_INCLUDES := -I$(PLAT_FAMILY_BASE)/
|
||||
-I$/drivers/arm/gic/common/
|
||||
|
||||
PLAT_BL_COMMON_SOURCES := $(PLAT_COMMON_BASE)/aarch64/a3700_common.c \
|
||||
+ $(PLAT_COMMON_BASE)/aarch64/a3700_clock.S \
|
||||
$(MARVELL_DRV_BASE)/uart/a3700_console.S
|
||||
|
||||
BL1_SOURCES += $(PLAT_COMMON_BASE)/aarch64/plat_helpers.S \
|
||||
--- /dev/null
|
||||
+++ b/plat/marvell/armada/a3k/common/aarch64/a3700_clock.S
|
||||
@@ -0,0 +1,35 @@
|
||||
+/*
|
||||
+ * Copyright (C) 2018 Marvell International Ltd.
|
||||
+ *
|
||||
+ * SPDX-License-Identifier: BSD-3-Clause
|
||||
+ * https://spdx.org/licenses
|
||||
+ */
|
||||
+
|
||||
+#include <asm_macros.S>
|
||||
+#include <platform_def.h>
|
||||
+
|
||||
+/*
|
||||
+ * Below address in used only for reading, therefore no problem with concurrent
|
||||
+ * Linux access.
|
||||
+ */
|
||||
+#define MVEBU_TEST_PIN_LATCH_N (MVEBU_NB_GPIO_REG_BASE + 0x8)
|
||||
+ #define MVEBU_XTAL_MODE_MASK BIT(9)
|
||||
+
|
||||
+ /* -----------------------------------------------------
|
||||
+ * uint32_t get_ref_clk (void);
|
||||
+ *
|
||||
+ * returns reference clock in MHz (25 or 40)
|
||||
+ * -----------------------------------------------------
|
||||
+ */
|
||||
+.globl get_ref_clk
|
||||
+func get_ref_clk
|
||||
+ mov_imm x0, MVEBU_TEST_PIN_LATCH_N
|
||||
+ ldr w0, [x0]
|
||||
+ tst w0, #MVEBU_XTAL_MODE_MASK
|
||||
+ bne 40
|
||||
+ mov w0, #25
|
||||
+ ret
|
||||
+40:
|
||||
+ mov w0, #40
|
||||
+ ret
|
||||
+endfunc get_ref_clk
|
||||
--- a/plat/marvell/armada/a3k/common/include/platform_def.h
|
||||
+++ b/plat/marvell/armada/a3k/common/include/platform_def.h
|
||||
@@ -164,7 +164,6 @@
|
||||
* PL011 related constants
|
||||
*/
|
||||
#define PLAT_MARVELL_UART_BASE (MVEBU_REGS_BASE + 0x12000)
|
||||
-#define PLAT_MARVELL_UART_CLK_IN_HZ 25000000
|
||||
|
||||
#define PLAT_MARVELL_BL31_RUN_UART_BASE PLAT_MARVELL_BOOT_UART_BASE
|
||||
#define PLAT_MARVELL_BL31_RUN_UART_CLK_IN_HZ PLAT_MARVELL_BOOT_UART_CLK_IN_HZ
|
||||
--- a/plat/marvell/armada/common/aarch64/marvell_helpers.S
|
||||
+++ b/plat/marvell/armada/common/aarch64/marvell_helpers.S
|
||||
@@ -63,8 +63,16 @@ endfunc plat_marvell_calc_core_pos
|
||||
* ---------------------------------------------
|
||||
*/
|
||||
func plat_crash_console_init
|
||||
- mov_imm x0, PLAT_MARVELL_UART_BASE
|
||||
+#ifdef PLAT_a3700
|
||||
+ mov x1, x30
|
||||
+ bl get_ref_clk
|
||||
+ mov x30, x1
|
||||
+ mov_imm x1, 1000000
|
||||
+ mul x1, x0, x1
|
||||
+#else
|
||||
mov_imm x1, PLAT_MARVELL_UART_CLK_IN_HZ
|
||||
+#endif
|
||||
+ mov_imm x0, PLAT_MARVELL_UART_BASE
|
||||
mov_imm x2, MARVELL_CONSOLE_BAUDRATE
|
||||
#ifdef PLAT_a3700
|
||||
b console_a3700_core_init
|
||||
--- a/plat/marvell/armada/common/marvell_console.c
|
||||
+++ b/plat/marvell/armada/common/marvell_console.c
|
||||
@@ -14,6 +14,7 @@
|
||||
|
||||
#ifdef PLAT_a3700
|
||||
#include <drivers/marvell/uart/a3700_console.h>
|
||||
+#define PLAT_MARVELL_UART_CLK_IN_HZ (get_ref_clk() * 1000000)
|
||||
#define console_marvell_register console_a3700_register
|
||||
#else
|
||||
#include <drivers/ti/uart/uart_16550.h>
|
||||
@ -1,20 +0,0 @@
|
||||
--- a/tools/fiptool/Makefile
|
||||
+++ b/tools/fiptool/Makefile
|
||||
@@ -20,7 +20,7 @@ ifeq (${DEBUG},1)
|
||||
else
|
||||
HOSTCCFLAGS += -O2
|
||||
endif
|
||||
-LDLIBS := -lcrypto
|
||||
+LDLIBS := -L${OPENSSL_DIR}/lib -lcrypto
|
||||
|
||||
ifeq (${V},0)
|
||||
Q := @
|
||||
@@ -28,7 +28,7 @@ else
|
||||
Q :=
|
||||
endif
|
||||
|
||||
-INCLUDE_PATHS := -I../../include/tools_share
|
||||
+INCLUDE_PATHS := -I../../include/tools_share -I${OPENSSL_DIR}/include
|
||||
|
||||
HOSTCC ?= gcc
|
||||
|
||||
@ -44,15 +44,18 @@ zbtlink,zbt-wg2626|\
|
||||
zte,mf283plus)
|
||||
ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x1000" "0x10000"
|
||||
;;
|
||||
h3c,tx1800-plus|\
|
||||
h3c,tx1801-plus|\
|
||||
h3c,tx1806|\
|
||||
jcg,q20)
|
||||
ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x20000" "0x20000"
|
||||
;;
|
||||
hootoo,ht-tm05|\
|
||||
ravpower,rp-wd03)
|
||||
idx="$(find_mtd_index u-boot-env)"
|
||||
[ -n "$idx" ] && \
|
||||
ubootenv_add_uci_config "/dev/mtd$idx" "0x4000" "0x1000" "0x1000"
|
||||
;;
|
||||
jcg,q20)
|
||||
ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x20000" "0x20000"
|
||||
;;
|
||||
beeline,smartbox-flash|\
|
||||
linksys,ea6350-v4|\
|
||||
linksys,ea7300-v1|\
|
||||
|
||||
@ -8,10 +8,10 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
include $(INCLUDE_DIR)/kernel.mk
|
||||
|
||||
PKG_VERSION:=2022.04
|
||||
PKG_VERSION:=2022.07
|
||||
PKG_RELEASE:=$(AUTORELEASE)
|
||||
|
||||
PKG_HASH:=68e065413926778e276ec3abd28bb32fa82abaa4a6898d570c1f48fbdb08bcd0
|
||||
PKG_HASH:=92b08eb49c24da14c1adbf70a71ae8f37cc53eeb4230e859ad8b6733d13dcf5e
|
||||
|
||||
include $(INCLUDE_DIR)/u-boot.mk
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
@ -1,31 +0,0 @@
|
||||
From 40a67a9403deafdac05564b7350af49a71e12373 Mon Sep 17 00:00:00 2001
|
||||
From: Josef Schlehofer <pepe.schlehofer@gmail.com>
|
||||
Date: Fri, 29 Apr 2022 17:34:53 +0200
|
||||
Subject: [PATCH] arm: mvebu: clearfog_defconfig: enable setexpr command
|
||||
|
||||
This command is useful in U-boot scripts and it is being used by
|
||||
OpenWrt bootscript for this board [1]. Otherwise shell scripting
|
||||
commands are enabled by default in cmd/Kconfig.
|
||||
|
||||
[1] https://github.com/openwrt/openwrt/blob/852126680e21edc71c0c66561ae5a6d7479dcc67/target/linux/mvebu/image/clearfog.bootscript#L7
|
||||
|
||||
[2] https://source.denx.de/u-boot/u-boot/-/blob/e95afa56753cebcd20a5114b6d121f281b789006/cmd/Kconfig#L1504
|
||||
|
||||
Fixes: 0299c90f396c5b2971a4bac596339f4b03661c27 ("arm: mvebu: Add
|
||||
SolidRun ClearFog Armada 38x initial support")
|
||||
|
||||
Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
|
||||
---
|
||||
configs/clearfog_defconfig | 1 -
|
||||
1 file changed, 1 deletion(-)
|
||||
|
||||
--- a/configs/clearfog_defconfig
|
||||
+++ b/configs/clearfog_defconfig
|
||||
@@ -35,7 +35,6 @@ CONFIG_CMD_MMC=y
|
||||
CONFIG_CMD_PCI=y
|
||||
CONFIG_CMD_SPI=y
|
||||
CONFIG_CMD_USB=y
|
||||
-# CONFIG_CMD_SETEXPR is not set
|
||||
CONFIG_CMD_TFTPPUT=y
|
||||
CONFIG_CMD_CACHE=y
|
||||
CONFIG_CMD_TIME=y
|
||||
@ -508,6 +508,29 @@ endef
|
||||
$(eval $(call KernelPackage,nbd))
|
||||
|
||||
|
||||
define KernelPackage/nvme
|
||||
SUBMENU:=$(BLOCK_MENU)
|
||||
TITLE:=NVM Express block device
|
||||
DEPENDS:=@PCI_SUPPORT
|
||||
KCONFIG:= \
|
||||
CONFIG_NVME_CORE \
|
||||
CONFIG_BLK_DEV_NVME \
|
||||
CONFIG_NVME_MULTIPATH=n \
|
||||
CONFIG_NVME_HWMON=n
|
||||
FILES:= \
|
||||
$(LINUX_DIR)/drivers/nvme/host/nvme-core.ko \
|
||||
$(LINUX_DIR)/drivers/nvme/host/nvme.ko
|
||||
AUTOLOAD:=$(call AutoLoad,30,nvme-core nvme)
|
||||
endef
|
||||
|
||||
define KernelPackage/nvme/description
|
||||
Kernel module for NVM Express solid state drives directly
|
||||
connected to the PCI or PCI Express bus.
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,nvme))
|
||||
|
||||
|
||||
define KernelPackage/scsi-core
|
||||
SUBMENU:=$(BLOCK_MENU)
|
||||
TITLE:=SCSI device support
|
||||
|
||||
@ -10,10 +10,10 @@ include $(INCLUDE_DIR)/kernel.mk
|
||||
|
||||
PKG_NAME:=mac80211
|
||||
|
||||
PKG_VERSION:=5.15.33-1
|
||||
PKG_VERSION:=5.15.58-1
|
||||
PKG_RELEASE:=1
|
||||
PKG_SOURCE_URL:=@KERNEL/linux/kernel/projects/backports/stable/v5.15.33/
|
||||
PKG_HASH:=1b6b3bded4c81814ebebe2d194c2f8966d2399005b85ebb0557285b6e73f5422
|
||||
PKG_SOURCE_URL:=@KERNEL/linux/kernel/projects/backports/stable/v5.15.58/
|
||||
PKG_HASH:=a3c2a2b7bbaf8943c65fd72f4e7d7ad5e205aeae28b26c835f9d8afa0f9810bf
|
||||
|
||||
PKG_SOURCE:=backports-$(PKG_VERSION).tar.xz
|
||||
PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/backports-$(PKG_VERSION)
|
||||
|
||||
@ -82,7 +82,7 @@
|
||||
help
|
||||
--- a/local-symbols
|
||||
+++ b/local-symbols
|
||||
@@ -83,6 +83,7 @@ ADM8211=
|
||||
@@ -106,6 +106,7 @@ ADM8211=
|
||||
ATH_COMMON=
|
||||
WLAN_VENDOR_ATH=
|
||||
ATH_DEBUG=
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
--- a/net/wireless/reg.c
|
||||
+++ b/net/wireless/reg.c
|
||||
@@ -3304,6 +3304,8 @@ void regulatory_hint_country_ie(struct w
|
||||
@@ -3309,6 +3309,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;
|
||||
@@ -3555,6 +3557,7 @@ static bool is_wiphy_all_set_reg_flag(en
|
||||
@@ -3560,6 +3562,7 @@ static bool is_wiphy_all_set_reg_flag(en
|
||||
|
||||
void regulatory_hint_disconnect(void)
|
||||
{
|
||||
|
||||
@ -37,7 +37,7 @@
|
||||
void ath10k_thermal_event_temperature(struct ath10k *ar, int temperature);
|
||||
--- a/local-symbols
|
||||
+++ b/local-symbols
|
||||
@@ -142,6 +142,7 @@ ATH10K_SNOC=
|
||||
@@ -165,6 +165,7 @@ ATH10K_SNOC=
|
||||
ATH10K_DEBUG=
|
||||
ATH10K_DEBUGFS=
|
||||
ATH10K_SPECTRAL=
|
||||
|
||||
@ -123,7 +123,7 @@ Link: https://lore.kernel.org/r/20220516032519.29831-5-ryazanov.s.a@gmail.com
|
||||
|
||||
ret = ath10k_htt_tx_inc_pending(htt);
|
||||
if (ret) {
|
||||
@@ -5447,6 +5465,30 @@ static int ath10k_mac_set_txbf_conf(stru
|
||||
@@ -5463,6 +5481,30 @@ static int ath10k_mac_set_txbf_conf(stru
|
||||
ar->wmi.vdev_param->txbf, value);
|
||||
}
|
||||
|
||||
@ -154,7 +154,7 @@ Link: https://lore.kernel.org/r/20220516032519.29831-5-ryazanov.s.a@gmail.com
|
||||
/*
|
||||
* TODO:
|
||||
* Figure out how to handle WMI_VDEV_SUBTYPE_P2P_DEVICE,
|
||||
@@ -5656,15 +5698,7 @@ static int ath10k_add_interface(struct i
|
||||
@@ -5672,15 +5714,7 @@ static int ath10k_add_interface(struct i
|
||||
|
||||
arvif->def_wep_key_idx = -1;
|
||||
|
||||
@ -171,7 +171,7 @@ Link: https://lore.kernel.org/r/20220516032519.29831-5-ryazanov.s.a@gmail.com
|
||||
|
||||
/* Configuring number of spatial stream for monitor interface is causing
|
||||
* target assert in qca9888 and qca6174.
|
||||
@@ -9352,6 +9386,7 @@ static const struct ieee80211_ops ath10k
|
||||
@@ -9368,6 +9402,7 @@ static const struct ieee80211_ops ath10k
|
||||
.stop = ath10k_stop,
|
||||
.config = ath10k_config,
|
||||
.add_interface = ath10k_add_interface,
|
||||
@ -179,7 +179,7 @@ Link: https://lore.kernel.org/r/20220516032519.29831-5-ryazanov.s.a@gmail.com
|
||||
.remove_interface = ath10k_remove_interface,
|
||||
.configure_filter = ath10k_configure_filter,
|
||||
.bss_info_changed = ath10k_bss_info_changed,
|
||||
@@ -10021,6 +10056,12 @@ int ath10k_mac_register(struct ath10k *a
|
||||
@@ -10037,6 +10072,12 @@ int ath10k_mac_register(struct ath10k *a
|
||||
if (test_bit(WMI_SERVICE_TDLS_UAPSD_BUFFER_STA, ar->wmi.svc_map))
|
||||
ieee80211_hw_set(ar->hw, SUPPORTS_TDLS_BUFFER_STA);
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
--- a/drivers/net/wireless/ath/ath10k/mac.c
|
||||
+++ b/drivers/net/wireless/ath/ath10k/mac.c
|
||||
@@ -9878,6 +9878,21 @@ static int ath10k_mac_init_rd(struct ath
|
||||
@@ -9894,6 +9894,21 @@ static int ath10k_mac_init_rd(struct ath
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
int ath10k_mac_register(struct ath10k *ar)
|
||||
{
|
||||
static const u32 cipher_suites[] = {
|
||||
@@ -10236,6 +10251,12 @@ int ath10k_mac_register(struct ath10k *a
|
||||
@@ -10252,6 +10267,12 @@ int ath10k_mac_register(struct ath10k *a
|
||||
|
||||
ar->hw->weight_multiplier = ATH10K_AIRTIME_WEIGHT_MULTIPLIER;
|
||||
|
||||
|
||||
@ -114,7 +114,7 @@ v13:
|
||||
ath10k_core-$(CONFIG_DEV_COREDUMP) += coredump.o
|
||||
--- a/local-symbols
|
||||
+++ b/local-symbols
|
||||
@@ -143,6 +143,7 @@ ATH10K_DEBUG=
|
||||
@@ -166,6 +166,7 @@ ATH10K_DEBUG=
|
||||
ATH10K_DEBUGFS=
|
||||
ATH10K_SPECTRAL=
|
||||
ATH10K_THERMAL=
|
||||
|
||||
@ -42,7 +42,7 @@ Signed-off-by: Mathias Kresin <dev@kresin.me>
|
||||
if (ret)
|
||||
--- a/drivers/net/wireless/ath/ath10k/mac.c
|
||||
+++ b/drivers/net/wireless/ath/ath10k/mac.c
|
||||
@@ -10253,7 +10253,7 @@ int ath10k_mac_register(struct ath10k *a
|
||||
@@ -10269,7 +10269,7 @@ int ath10k_mac_register(struct ath10k *a
|
||||
ar->hw->weight_multiplier = ATH10K_AIRTIME_WEIGHT_MULTIPLIER;
|
||||
|
||||
#ifdef CPTCFG_MAC80211_LEDS
|
||||
|
||||
@ -371,7 +371,7 @@
|
||||
|
||||
--- a/local-symbols
|
||||
+++ b/local-symbols
|
||||
@@ -110,6 +110,7 @@ ATH9K_WOW=
|
||||
@@ -133,6 +133,7 @@ ATH9K_WOW=
|
||||
ATH9K_RFKILL=
|
||||
ATH9K_CHANNEL_CONTEXT=
|
||||
ATH9K_PCOEM=
|
||||
|
||||
@ -1,42 +0,0 @@
|
||||
From 4509e523dba46f789377cfec6f20579adf743416 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Thibaut=20VAR=C3=88NE?= <hacks+kernel@slashdirt.org>
|
||||
Date: Sun, 17 Apr 2022 11:31:35 +0200
|
||||
Subject: [PATCH v2] ath9k: fix QCA9561 PA bias level
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
This patch fixes an invalid TX PA DC bias level on QCA9561, which
|
||||
results in a very low output power and very low throughput as devices
|
||||
are further away from the AP (compared to other 2.4GHz APs).
|
||||
|
||||
This patch was suggested by Felix Fietkau, who noted[1]:
|
||||
"The value written to that register is wrong, because while the mask
|
||||
definition AR_CH0_TOP2_XPABIASLVL uses a different value for 9561, the
|
||||
shift definition AR_CH0_TOP2_XPABIASLVL_S is hardcoded to 12, which is
|
||||
wrong for 9561."
|
||||
|
||||
In real life testing, without this patch the 2.4GHz throughput on
|
||||
Yuncore XD3200 is around 10Mbps sitting next to the AP, and closer to
|
||||
practical maximum with the patch applied.
|
||||
|
||||
[1] https://lore.kernel.org/all/91c58969-c60e-2f41-00ac-737786d435ae@nbd.name
|
||||
|
||||
Signed-off-by: Thibaut VARÈNE <hacks+kernel@slashdirt.org>
|
||||
---
|
||||
v2: Adjust #define per Felix's suggestion
|
||||
---
|
||||
drivers/net/wireless/ath/ath9k/ar9003_phy.h | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
--- a/drivers/net/wireless/ath/ath9k/ar9003_phy.h
|
||||
+++ b/drivers/net/wireless/ath/ath9k/ar9003_phy.h
|
||||
@@ -720,7 +720,7 @@
|
||||
#define AR_CH0_TOP2 (AR_SREV_9300(ah) ? 0x1628c : \
|
||||
(AR_SREV_9462(ah) ? 0x16290 : 0x16284))
|
||||
#define AR_CH0_TOP2_XPABIASLVL (AR_SREV_9561(ah) ? 0x1e00 : 0xf000)
|
||||
-#define AR_CH0_TOP2_XPABIASLVL_S 12
|
||||
+#define AR_CH0_TOP2_XPABIASLVL_S (AR_SREV_9561(ah) ? 9 : 12)
|
||||
|
||||
#define AR_CH0_XTAL (AR_SREV_9300(ah) ? 0x16294 : \
|
||||
((AR_SREV_9462(ah) || AR_SREV_9565(ah)) ? 0x16298 : \
|
||||
@ -14,11 +14,9 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
.../broadcom/brcm80211/brcmfmac/sdio.c | 47 +++++++++++++++++--
|
||||
3 files changed, 87 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.c
|
||||
index 2f7bc3a70c65..c2d6b8a22858 100644
|
||||
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.c
|
||||
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.c
|
||||
@@ -10,6 +10,7 @@
|
||||
@@ -11,6 +11,7 @@
|
||||
#include "debug.h"
|
||||
#include "core.h"
|
||||
#include "common.h"
|
||||
@ -26,7 +24,7 @@ index 2f7bc3a70c65..c2d6b8a22858 100644
|
||||
#include "of.h"
|
||||
|
||||
static int brcmf_of_get_country_codes(struct device *dev,
|
||||
@@ -118,3 +119,38 @@ void brcmf_of_probe(struct device *dev, enum brcmf_bus_type bus_type,
|
||||
@@ -153,3 +154,38 @@ void brcmf_of_probe(struct device *dev,
|
||||
sdio->oob_irq_nr = irq;
|
||||
sdio->oob_irq_flags = irqf;
|
||||
}
|
||||
@ -65,8 +63,6 @@ index 2f7bc3a70c65..c2d6b8a22858 100644
|
||||
+
|
||||
+ return count ? fwnames : NULL;
|
||||
+}
|
||||
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.h b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.h
|
||||
index 10bf52253337..5b39a39812d0 100644
|
||||
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.h
|
||||
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.h
|
||||
@@ -5,9 +5,16 @@
|
||||
@ -86,8 +82,6 @@ index 10bf52253337..5b39a39812d0 100644
|
||||
+ return NULL;
|
||||
+}
|
||||
#endif /* CONFIG_OF */
|
||||
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
|
||||
index 89de65d32ed5..88c08fee58f6 100644
|
||||
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
|
||||
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
|
||||
@@ -35,6 +35,7 @@
|
||||
@ -98,7 +92,7 @@ index 89de65d32ed5..88c08fee58f6 100644
|
||||
|
||||
#define DCMD_RESP_TIMEOUT msecs_to_jiffies(2500)
|
||||
#define CTL_DONE_TIMEOUT msecs_to_jiffies(2500)
|
||||
@@ -634,7 +635,7 @@ MODULE_FIRMWARE(BRCMF_FW_DEFAULT_PATH "brcmfmac*-sdio.*.txt");
|
||||
@@ -633,7 +634,7 @@ MODULE_FIRMWARE(BRCMF_FW_DEFAULT_PATH "b
|
||||
/* per-board firmware binaries */
|
||||
MODULE_FIRMWARE(BRCMF_FW_DEFAULT_PATH "brcmfmac*-sdio.*.bin");
|
||||
|
||||
@ -107,7 +101,7 @@ index 89de65d32ed5..88c08fee58f6 100644
|
||||
BRCMF_FW_ENTRY(BRCM_CC_43143_CHIP_ID, 0xFFFFFFFF, 43143),
|
||||
BRCMF_FW_ENTRY(BRCM_CC_43241_CHIP_ID, 0x0000001F, 43241B0),
|
||||
BRCMF_FW_ENTRY(BRCM_CC_43241_CHIP_ID, 0x00000020, 43241B4),
|
||||
@@ -660,6 +661,9 @@ static const struct brcmf_firmware_mapping brcmf_sdio_fwnames[] = {
|
||||
@@ -659,6 +660,9 @@ static const struct brcmf_firmware_mappi
|
||||
BRCMF_FW_ENTRY(CY_CC_43752_CHIP_ID, 0xFFFFFFFF, 43752)
|
||||
};
|
||||
|
||||
@ -117,8 +111,8 @@ index 89de65d32ed5..88c08fee58f6 100644
|
||||
#define TXCTL_CREDITS 2
|
||||
|
||||
static void pkt_align(struct sk_buff *p, int len, int align)
|
||||
@@ -4151,7 +4155,7 @@ int brcmf_sdio_get_fwname(struct device *dev, const char *ext, u8 *fw_name,
|
||||
}
|
||||
@@ -4140,7 +4144,7 @@ int brcmf_sdio_get_fwname(struct device
|
||||
|
||||
fwreq = brcmf_fw_alloc_request(bus_if->chip, bus_if->chiprev,
|
||||
brcmf_sdio_fwnames,
|
||||
- ARRAY_SIZE(brcmf_sdio_fwnames),
|
||||
@ -126,7 +120,7 @@ index 89de65d32ed5..88c08fee58f6 100644
|
||||
fwnames, ARRAY_SIZE(fwnames));
|
||||
if (!fwreq)
|
||||
return -ENOMEM;
|
||||
@@ -4207,6 +4211,9 @@ static const struct brcmf_bus_ops brcmf_sdio_bus_ops = {
|
||||
@@ -4196,6 +4200,9 @@ static const struct brcmf_bus_ops brcmf_
|
||||
#define BRCMF_SDIO_FW_CODE 0
|
||||
#define BRCMF_SDIO_FW_NVRAM 1
|
||||
|
||||
@ -136,7 +130,7 @@ index 89de65d32ed5..88c08fee58f6 100644
|
||||
static void brcmf_sdio_firmware_callback(struct device *dev, int err,
|
||||
struct brcmf_fw_request *fwreq)
|
||||
{
|
||||
@@ -4222,6 +4229,22 @@ static void brcmf_sdio_firmware_callback(struct device *dev, int err,
|
||||
@@ -4211,6 +4218,22 @@ static void brcmf_sdio_firmware_callback
|
||||
|
||||
brcmf_dbg(TRACE, "Enter: dev=%s, err=%d\n", dev_name(dev), err);
|
||||
|
||||
@ -159,7 +153,7 @@ index 89de65d32ed5..88c08fee58f6 100644
|
||||
if (err)
|
||||
goto fail;
|
||||
|
||||
@@ -4430,7 +4453,7 @@ brcmf_sdio_prepare_fw_request(struct brcmf_sdio *bus)
|
||||
@@ -4419,7 +4442,7 @@ brcmf_sdio_prepare_fw_request(struct brc
|
||||
|
||||
fwreq = brcmf_fw_alloc_request(bus->ci->chip, bus->ci->chiprev,
|
||||
brcmf_sdio_fwnames,
|
||||
@ -168,7 +162,7 @@ index 89de65d32ed5..88c08fee58f6 100644
|
||||
fwnames, ARRAY_SIZE(fwnames));
|
||||
if (!fwreq)
|
||||
return NULL;
|
||||
@@ -4448,6 +4471,9 @@ struct brcmf_sdio *brcmf_sdio_probe(struct brcmf_sdio_dev *sdiodev)
|
||||
@@ -4437,6 +4460,9 @@ struct brcmf_sdio *brcmf_sdio_probe(stru
|
||||
struct brcmf_sdio *bus;
|
||||
struct workqueue_struct *wq;
|
||||
struct brcmf_fw_request *fwreq;
|
||||
@ -178,7 +172,7 @@ index 89de65d32ed5..88c08fee58f6 100644
|
||||
|
||||
brcmf_dbg(TRACE, "Enter\n");
|
||||
|
||||
@@ -4530,6 +4556,21 @@ struct brcmf_sdio *brcmf_sdio_probe(struct brcmf_sdio_dev *sdiodev)
|
||||
@@ -4519,6 +4545,21 @@ struct brcmf_sdio *brcmf_sdio_probe(stru
|
||||
|
||||
brcmf_dbg(INFO, "completed!!\n");
|
||||
|
||||
@ -200,6 +194,3 @@ index 89de65d32ed5..88c08fee58f6 100644
|
||||
fwreq = brcmf_sdio_prepare_fw_request(bus);
|
||||
if (!fwreq) {
|
||||
ret = -ENOMEM;
|
||||
--
|
||||
2.30.2
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
--- a/local-symbols
|
||||
+++ b/local-symbols
|
||||
@@ -428,43 +428,6 @@ USB_VL600=
|
||||
@@ -451,43 +451,6 @@ USB_VL600=
|
||||
USB_NET_CH9200=
|
||||
USB_NET_AQC111=
|
||||
USB_RTL8153_ECM=
|
||||
@ -192,7 +192,7 @@
|
||||
select BRCMUTIL
|
||||
--- a/Kconfig.local
|
||||
+++ b/Kconfig.local
|
||||
@@ -1288,117 +1288,6 @@ config BACKPORTED_USB_NET_AQC111
|
||||
@@ -1357,117 +1357,6 @@ config BACKPORTED_USB_NET_AQC111
|
||||
config BACKPORTED_USB_RTL8153_ECM
|
||||
tristate
|
||||
default USB_RTL8153_ECM
|
||||
@ -312,7 +312,7 @@
|
||||
default USB_ACM
|
||||
--- a/Kconfig.sources
|
||||
+++ b/Kconfig.sources
|
||||
@@ -9,9 +9,6 @@ source "$BACKPORT_DIR/drivers/bus/mhi/Kc
|
||||
@@ -10,9 +10,6 @@ source "$BACKPORT_DIR/drivers/soc/qcom/K
|
||||
source "$BACKPORT_DIR/drivers/net/wireless/Kconfig"
|
||||
source "$BACKPORT_DIR/drivers/net/usb/Kconfig"
|
||||
|
||||
@ -324,8 +324,8 @@
|
||||
source "$BACKPORT_DIR/drivers/staging/Kconfig"
|
||||
--- a/Makefile.kernel
|
||||
+++ b/Makefile.kernel
|
||||
@@ -42,8 +42,6 @@ obj-$(CPTCFG_MAC80211) += net/mac80211/
|
||||
obj-$(CPTCFG_QRTR) += net/qrtr/
|
||||
@@ -43,8 +43,6 @@ obj-$(CPTCFG_QRTR) += net/qrtr/
|
||||
obj-$(CPTCFG_QCOM_QMI_HELPERS) += drivers/soc/qcom/
|
||||
obj-$(CPTCFG_MHI_BUS) += drivers/bus/mhi/
|
||||
obj-$(CPTCFG_WLAN) += drivers/net/wireless/
|
||||
-obj-$(CPTCFG_SSB) += drivers/ssb/
|
||||
|
||||
@ -19,28 +19,23 @@ the card-specific structure.
|
||||
drivers/net/wireless/marvell/mwifiex/decl.h | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/wireless/marvell/mwifiex/decl.h b/drivers/net/wireless/marvell/mwifiex/decl.h
|
||||
index cdc9972..f9bcbf5 100644
|
||||
--- a/drivers/net/wireless/marvell/mwifiex/decl.h
|
||||
+++ b/drivers/net/wireless/marvell/mwifiex/decl.h
|
||||
@@ -30,7 +30,7 @@
|
||||
#include <net/cfg80211.h>
|
||||
|
||||
|
||||
#define MWIFIEX_BSS_COEX_COUNT 2
|
||||
-#define MWIFIEX_MAX_BSS_NUM (3)
|
||||
+#define MWIFIEX_MAX_BSS_NUM (4)
|
||||
|
||||
|
||||
#define MWIFIEX_DMA_ALIGN_SZ 64
|
||||
#define MWIFIEX_RX_HEADROOM 64
|
||||
@@ -112,7 +112,7 @@
|
||||
#define MWIFIEX_RATE_INDEX_OFDM0 4
|
||||
|
||||
|
||||
#define MWIFIEX_MAX_STA_NUM 3
|
||||
-#define MWIFIEX_MAX_UAP_NUM 3
|
||||
+#define MWIFIEX_MAX_UAP_NUM 4
|
||||
#define MWIFIEX_MAX_P2P_NUM 3
|
||||
|
||||
|
||||
#define MWIFIEX_A_BAND_START_FREQ 5000
|
||||
--
|
||||
2.30.2
|
||||
|
||||
|
||||
@ -17,8 +17,6 @@ Signed-off-by: Pali Rohár <pali@kernel.org>
|
||||
.../net/wireless/marvell/mwifiex/uap_cmd.c | 3 +-
|
||||
4 files changed, 95 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/wireless/marvell/mwifiex/cmdevt.c b/drivers/net/wireless/marvell/mwifiex/cmdevt.c
|
||||
index 5a2788955f1c..1b05002330ff 100644
|
||||
--- a/drivers/net/wireless/marvell/mwifiex/cmdevt.c
|
||||
+++ b/drivers/net/wireless/marvell/mwifiex/cmdevt.c
|
||||
@@ -28,6 +28,85 @@
|
||||
@ -107,7 +105,7 @@ index 5a2788955f1c..1b05002330ff 100644
|
||||
/*
|
||||
* This function initializes a command node.
|
||||
*
|
||||
@@ -205,8 +284,8 @@ static int mwifiex_dnld_cmd_to_fw(struct mwifiex_private *priv,
|
||||
@@ -205,8 +284,8 @@ static int mwifiex_dnld_cmd_to_fw(struct
|
||||
cmd_code != HostCmd_CMD_FUNC_SHUTDOWN &&
|
||||
cmd_code != HostCmd_CMD_FUNC_INIT) {
|
||||
mwifiex_dbg(adapter, ERROR,
|
||||
@ -118,7 +116,7 @@ index 5a2788955f1c..1b05002330ff 100644
|
||||
mwifiex_recycle_cmd_node(adapter, cmd_node);
|
||||
queue_work(adapter->workqueue, &adapter->main_work);
|
||||
return -1;
|
||||
@@ -660,8 +739,8 @@ int mwifiex_send_cmd(struct mwifiex_private *priv, u16 cmd_no,
|
||||
@@ -660,8 +739,8 @@ int mwifiex_send_cmd(struct mwifiex_priv
|
||||
/* Return error, since the command preparation failed */
|
||||
if (ret) {
|
||||
mwifiex_dbg(adapter, ERROR,
|
||||
@ -129,7 +127,7 @@ index 5a2788955f1c..1b05002330ff 100644
|
||||
mwifiex_insert_cmd_to_free_q(adapter, cmd_node);
|
||||
return -1;
|
||||
}
|
||||
@@ -900,8 +979,9 @@ int mwifiex_process_cmdresp(struct mwifiex_adapter *adapter)
|
||||
@@ -900,8 +979,9 @@ int mwifiex_process_cmdresp(struct mwifi
|
||||
if (adapter->hw_status == MWIFIEX_HW_STATUS_INITIALIZING) {
|
||||
if (ret) {
|
||||
mwifiex_dbg(adapter, ERROR,
|
||||
@ -139,9 +137,9 @@ index 5a2788955f1c..1b05002330ff 100644
|
||||
+ "initialization\n", __func__,
|
||||
+ mwifiex_cmd_to_str(cmdresp_no), cmdresp_no);
|
||||
mwifiex_init_fw_complete(adapter);
|
||||
//if (adapter->if_ops.card_reset)
|
||||
// adapter->if_ops.card_reset(adapter);
|
||||
@@ -1266,8 +1346,8 @@ mwifiex_process_sleep_confirm_resp(struct mwifiex_adapter *adapter,
|
||||
return -1;
|
||||
} else if (adapter->last_init_cmd == cmdresp_no)
|
||||
@@ -1264,8 +1344,8 @@ mwifiex_process_sleep_confirm_resp(struc
|
||||
|
||||
if (command != HostCmd_CMD_802_11_PS_MODE_ENH) {
|
||||
mwifiex_dbg(adapter, ERROR,
|
||||
@ -152,11 +150,9 @@ index 5a2788955f1c..1b05002330ff 100644
|
||||
return;
|
||||
}
|
||||
|
||||
diff --git a/drivers/net/wireless/marvell/mwifiex/main.h b/drivers/net/wireless/marvell/mwifiex/main.h
|
||||
index 5923c5c14c8d..0d30f61a9d3c 100644
|
||||
--- a/drivers/net/wireless/marvell/mwifiex/main.h
|
||||
+++ b/drivers/net/wireless/marvell/mwifiex/main.h
|
||||
@@ -1106,6 +1106,8 @@ void mwifiex_cancel_all_pending_cmd(struct mwifiex_adapter *adapter);
|
||||
@@ -1106,6 +1106,8 @@ void mwifiex_cancel_all_pending_cmd(stru
|
||||
void mwifiex_cancel_pending_scan_cmd(struct mwifiex_adapter *adapter);
|
||||
void mwifiex_cancel_scan(struct mwifiex_adapter *adapter);
|
||||
|
||||
@ -165,11 +161,9 @@ index 5923c5c14c8d..0d30f61a9d3c 100644
|
||||
void mwifiex_recycle_cmd_node(struct mwifiex_adapter *adapter,
|
||||
struct cmd_ctrl_node *cmd_node);
|
||||
|
||||
diff --git a/drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c b/drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c
|
||||
index 6b5d35d9e69f..ae6554f7b583 100644
|
||||
--- a/drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c
|
||||
+++ b/drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c
|
||||
@@ -48,8 +48,9 @@ mwifiex_process_cmdresp_error(struct mwifiex_private *priv,
|
||||
@@ -48,8 +48,9 @@ mwifiex_process_cmdresp_error(struct mwi
|
||||
struct host_cmd_ds_802_11_ps_mode_enh *pm;
|
||||
|
||||
mwifiex_dbg(adapter, ERROR,
|
||||
@ -181,11 +175,9 @@ index 6b5d35d9e69f..ae6554f7b583 100644
|
||||
|
||||
if (adapter->curr_cmd->wait_q_enabled)
|
||||
adapter->cmd_wait_q.status = -1;
|
||||
diff --git a/drivers/net/wireless/marvell/mwifiex/uap_cmd.c b/drivers/net/wireless/marvell/mwifiex/uap_cmd.c
|
||||
index 18e89777b784..29b8af55f522 100644
|
||||
--- a/drivers/net/wireless/marvell/mwifiex/uap_cmd.c
|
||||
+++ b/drivers/net/wireless/marvell/mwifiex/uap_cmd.c
|
||||
@@ -806,7 +806,8 @@ int mwifiex_uap_prepare_cmd(struct mwifiex_private *priv, u16 cmd_no,
|
||||
@@ -806,7 +806,8 @@ int mwifiex_uap_prepare_cmd(struct mwifi
|
||||
break;
|
||||
default:
|
||||
mwifiex_dbg(priv->adapter, ERROR,
|
||||
@ -195,6 +187,3 @@ index 18e89777b784..29b8af55f522 100644
|
||||
return -1;
|
||||
}
|
||||
|
||||
--
|
||||
2.20.1
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
--- a/local-symbols
|
||||
+++ b/local-symbols
|
||||
@@ -322,6 +322,7 @@ RT2X00_LIB_FIRMWARE=
|
||||
@@ -345,6 +345,7 @@ RT2X00_LIB_FIRMWARE=
|
||||
RT2X00_LIB_CRYPTO=
|
||||
RT2X00_LIB_LEDS=
|
||||
RT2X00_LIB_DEBUGFS=
|
||||
|
||||
@ -52,7 +52,7 @@ Signed-off-by: Xing Song <xing.song@mediatek.com>
|
||||
|
||||
--- a/net/mac80211/rx.c
|
||||
+++ b/net/mac80211/rx.c
|
||||
@@ -2949,6 +2949,7 @@ ieee80211_rx_h_mesh_fwding(struct ieee80
|
||||
@@ -2948,6 +2948,7 @@ ieee80211_rx_h_mesh_fwding(struct ieee80
|
||||
if (!fwd_skb)
|
||||
goto out;
|
||||
|
||||
|
||||
@ -11,7 +11,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
--- a/drivers/net/wireless/mac80211_hwsim.c
|
||||
+++ b/drivers/net/wireless/mac80211_hwsim.c
|
||||
@@ -3001,15 +3001,19 @@ static void mac80211_hwsim_he_capab(stru
|
||||
@@ -3004,15 +3004,19 @@ static void mac80211_hwsim_he_capab(stru
|
||||
{
|
||||
u16 n_iftype_data;
|
||||
|
||||
@ -34,7 +34,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -3299,6 +3303,12 @@ static int mac80211_hwsim_new_radio(stru
|
||||
@@ -3302,6 +3306,12 @@ static int mac80211_hwsim_new_radio(stru
|
||||
sband->vht_cap.vht_mcs.tx_mcs_map =
|
||||
sband->vht_cap.vht_mcs.rx_mcs_map;
|
||||
break;
|
||||
@ -47,7 +47,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
case NL80211_BAND_S1GHZ:
|
||||
memcpy(&sband->s1g_cap, &hwsim_s1g_cap,
|
||||
sizeof(sband->s1g_cap));
|
||||
@@ -3309,6 +3319,13 @@ static int mac80211_hwsim_new_radio(stru
|
||||
@@ -3312,6 +3322,13 @@ static int mac80211_hwsim_new_radio(stru
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -61,7 +61,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
sband->ht_cap.ht_supported = true;
|
||||
sband->ht_cap.cap = IEEE80211_HT_CAP_SUP_WIDTH_20_40 |
|
||||
IEEE80211_HT_CAP_GRN_FLD |
|
||||
@@ -3322,10 +3339,6 @@ static int mac80211_hwsim_new_radio(stru
|
||||
@@ -3325,10 +3342,6 @@ static int mac80211_hwsim_new_radio(stru
|
||||
sband->ht_cap.mcs.rx_mask[0] = 0xff;
|
||||
sband->ht_cap.mcs.rx_mask[1] = 0xff;
|
||||
sband->ht_cap.mcs.tx_params = IEEE80211_HT_MCS_TX_DEFINED;
|
||||
|
||||
@ -69,7 +69,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
#endif /* __MAC80211_DRIVER_OPS */
|
||||
--- a/net/mac80211/ieee80211_i.h
|
||||
+++ b/net/mac80211/ieee80211_i.h
|
||||
@@ -1485,7 +1485,7 @@ struct ieee80211_local {
|
||||
@@ -1490,7 +1490,7 @@ struct ieee80211_local {
|
||||
};
|
||||
|
||||
static inline struct ieee80211_sub_if_data *
|
||||
|
||||
@ -18,7 +18,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
--- a/net/mac80211/rc80211_minstrel_ht.c
|
||||
+++ b/net/mac80211/rc80211_minstrel_ht.c
|
||||
@@ -700,7 +700,8 @@ minstrel_ht_calc_rate_stats(struct minst
|
||||
@@ -703,7 +703,8 @@ minstrel_ht_calc_rate_stats(struct minst
|
||||
unsigned int cur_prob;
|
||||
|
||||
if (unlikely(mrs->attempts > 0)) {
|
||||
|
||||
@ -18,7 +18,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
--- a/net/mac80211/rc80211_minstrel_ht.c
|
||||
+++ b/net/mac80211/rc80211_minstrel_ht.c
|
||||
@@ -511,6 +511,14 @@ minstrel_ht_set_best_prob_rate(struct mi
|
||||
@@ -514,6 +514,14 @@ minstrel_ht_set_best_prob_rate(struct mi
|
||||
int cur_tp_avg, cur_group, cur_idx;
|
||||
int max_gpr_group, max_gpr_idx;
|
||||
int max_gpr_tp_avg, max_gpr_prob;
|
||||
@ -33,7 +33,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
cur_group = MI_RATE_GROUP(index);
|
||||
cur_idx = MI_RATE_IDX(index);
|
||||
@@ -532,11 +540,6 @@ minstrel_ht_set_best_prob_rate(struct mi
|
||||
@@ -535,11 +543,6 @@ minstrel_ht_set_best_prob_rate(struct mi
|
||||
!minstrel_ht_is_legacy_group(max_tp_group))
|
||||
return;
|
||||
|
||||
@ -45,7 +45,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
max_gpr_group = MI_RATE_GROUP(mg->max_group_prob_rate);
|
||||
max_gpr_idx = MI_RATE_IDX(mg->max_group_prob_rate);
|
||||
max_gpr_prob = mi->groups[max_gpr_group].rates[max_gpr_idx].prob_avg;
|
||||
@@ -594,40 +597,6 @@ minstrel_ht_assign_best_tp_rates(struct
|
||||
@@ -597,40 +600,6 @@ minstrel_ht_assign_best_tp_rates(struct
|
||||
|
||||
}
|
||||
|
||||
@ -86,7 +86,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
static u16
|
||||
__minstrel_ht_get_sample_rate(struct minstrel_ht_sta *mi,
|
||||
enum minstrel_sample_type type)
|
||||
@@ -1107,8 +1076,6 @@ minstrel_ht_update_stats(struct minstrel
|
||||
@@ -1110,8 +1079,6 @@ minstrel_ht_update_stats(struct minstrel
|
||||
|
||||
mi->max_prob_rate = tmp_max_prob_rate;
|
||||
|
||||
@ -95,7 +95,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
minstrel_ht_refill_sample_rates(mi);
|
||||
|
||||
#ifdef CPTCFG_MAC80211_DEBUGFS
|
||||
@@ -1153,7 +1120,7 @@ minstrel_ht_txstat_valid(struct minstrel
|
||||
@@ -1156,7 +1123,7 @@ minstrel_ht_txstat_valid(struct minstrel
|
||||
}
|
||||
|
||||
static void
|
||||
@ -104,7 +104,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
{
|
||||
int group, orig_group;
|
||||
|
||||
@@ -1168,11 +1135,7 @@ minstrel_downgrade_rate(struct minstrel_
|
||||
@@ -1171,11 +1138,7 @@ minstrel_downgrade_rate(struct minstrel_
|
||||
minstrel_mcs_groups[orig_group].streams)
|
||||
continue;
|
||||
|
||||
@ -117,7 +117,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1183,7 +1146,7 @@ minstrel_ht_tx_status(void *priv, struct
|
||||
@@ -1186,7 +1149,7 @@ minstrel_ht_tx_status(void *priv, struct
|
||||
struct ieee80211_tx_info *info = st->info;
|
||||
struct minstrel_ht_sta *mi = priv_sta;
|
||||
struct ieee80211_tx_rate *ar = info->status.rates;
|
||||
@ -126,7 +126,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
struct minstrel_priv *mp = priv;
|
||||
u32 update_interval = mp->update_interval;
|
||||
bool last, update = false;
|
||||
@@ -1233,18 +1196,13 @@ minstrel_ht_tx_status(void *priv, struct
|
||||
@@ -1236,18 +1199,13 @@ minstrel_ht_tx_status(void *priv, struct
|
||||
/*
|
||||
* check for sudden death of spatial multiplexing,
|
||||
* downgrade to a lower number of streams if necessary.
|
||||
|
||||
@ -238,7 +238,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
static const struct nla_policy nl80211_policy[NUM_NL80211_ATTR] = {
|
||||
[0] = { .strict_start_type = NL80211_ATTR_HE_OBSS_PD },
|
||||
[NL80211_ATTR_WIPHY] = { .type = NLA_U32 },
|
||||
@@ -783,6 +793,9 @@ static const struct nla_policy nl80211_p
|
||||
@@ -788,6 +798,9 @@ static const struct nla_policy nl80211_p
|
||||
[NL80211_ATTR_COLOR_CHANGE_COUNT] = { .type = NLA_U8 },
|
||||
[NL80211_ATTR_COLOR_CHANGE_COLOR] = { .type = NLA_U8 },
|
||||
[NL80211_ATTR_COLOR_CHANGE_ELEMS] = NLA_POLICY_NESTED(nl80211_policy),
|
||||
@ -248,7 +248,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
};
|
||||
|
||||
/* policy for the key attributes */
|
||||
@@ -2231,6 +2244,35 @@ fail:
|
||||
@@ -2236,6 +2249,35 @@ fail:
|
||||
return -ENOBUFS;
|
||||
}
|
||||
|
||||
@ -284,7 +284,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
struct nl80211_dump_wiphy_state {
|
||||
s64 filter_wiphy;
|
||||
long start;
|
||||
@@ -2816,6 +2858,9 @@ static int nl80211_send_wiphy(struct cfg
|
||||
@@ -2821,6 +2863,9 @@ static int nl80211_send_wiphy(struct cfg
|
||||
if (nl80211_put_sar_specs(rdev, msg))
|
||||
goto nla_put_failure;
|
||||
|
||||
@ -294,7 +294,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
/* done */
|
||||
state->split_start = 0;
|
||||
break;
|
||||
@@ -5005,6 +5050,96 @@ static int validate_beacon_tx_rate(struc
|
||||
@@ -5020,6 +5065,96 @@ static int validate_beacon_tx_rate(struc
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -391,7 +391,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
static int nl80211_parse_beacon(struct cfg80211_registered_device *rdev,
|
||||
struct nlattr *attrs[],
|
||||
struct cfg80211_beacon_data *bcn)
|
||||
@@ -5085,6 +5220,17 @@ static int nl80211_parse_beacon(struct c
|
||||
@@ -5100,6 +5235,17 @@ static int nl80211_parse_beacon(struct c
|
||||
bcn->ftm_responder = -1;
|
||||
}
|
||||
|
||||
@ -409,7 +409,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -5541,6 +5687,17 @@ static int nl80211_start_ap(struct sk_bu
|
||||
@@ -5556,6 +5702,17 @@ static int nl80211_start_ap(struct sk_bu
|
||||
goto out;
|
||||
}
|
||||
|
||||
@ -427,7 +427,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
nl80211_calculate_ap_params(¶ms);
|
||||
|
||||
if (info->attrs[NL80211_ATTR_EXTERNAL_AUTH_SUPPORT])
|
||||
@@ -5562,6 +5719,11 @@ static int nl80211_start_ap(struct sk_bu
|
||||
@@ -5577,6 +5734,11 @@ static int nl80211_start_ap(struct sk_bu
|
||||
|
||||
out:
|
||||
kfree(params.acl);
|
||||
@ -439,7 +439,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
|
||||
return err;
|
||||
}
|
||||
@@ -5586,12 +5748,14 @@ static int nl80211_set_beacon(struct sk_
|
||||
@@ -5601,12 +5763,14 @@ static int nl80211_set_beacon(struct sk_
|
||||
|
||||
err = nl80211_parse_beacon(rdev, info->attrs, ¶ms);
|
||||
if (err)
|
||||
@ -455,7 +455,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
return err;
|
||||
}
|
||||
|
||||
@@ -9268,12 +9432,14 @@ static int nl80211_channel_switch(struct
|
||||
@@ -9283,12 +9447,14 @@ static int nl80211_channel_switch(struct
|
||||
|
||||
err = nl80211_parse_beacon(rdev, info->attrs, ¶ms.beacon_after);
|
||||
if (err)
|
||||
@ -473,7 +473,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
|
||||
err = nla_parse_nested_deprecated(csa_attrs, NL80211_ATTR_MAX,
|
||||
info->attrs[NL80211_ATTR_CSA_IES],
|
||||
@@ -9392,6 +9558,8 @@ skip_beacons:
|
||||
@@ -9407,6 +9573,8 @@ skip_beacons:
|
||||
wdev_unlock(wdev);
|
||||
|
||||
free:
|
||||
@ -482,7 +482,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
kfree(csa_attrs);
|
||||
return err;
|
||||
}
|
||||
@@ -14939,6 +15107,8 @@ static int nl80211_color_change(struct s
|
||||
@@ -14959,6 +15127,8 @@ static int nl80211_color_change(struct s
|
||||
wdev_unlock(wdev);
|
||||
|
||||
out:
|
||||
|
||||
@ -286,7 +286,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
+}
|
||||
--- a/net/wireless/nl80211.c
|
||||
+++ b/net/wireless/nl80211.c
|
||||
@@ -796,6 +796,7 @@ static const struct nla_policy nl80211_p
|
||||
@@ -801,6 +801,7 @@ static const struct nla_policy nl80211_p
|
||||
[NL80211_ATTR_MBSSID_CONFIG] =
|
||||
NLA_POLICY_NESTED(nl80211_mbssid_config_policy),
|
||||
[NL80211_ATTR_MBSSID_ELEMS] = { .type = NLA_NESTED },
|
||||
@ -294,7 +294,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
};
|
||||
|
||||
/* policy for the key attributes */
|
||||
@@ -9272,12 +9273,6 @@ static int nl80211_start_radar_detection
|
||||
@@ -9287,12 +9288,6 @@ static int nl80211_start_radar_detection
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
@ -307,7 +307,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
err = cfg80211_chandef_dfs_required(wiphy, &chandef, wdev->iftype);
|
||||
if (err < 0)
|
||||
return err;
|
||||
@@ -9288,6 +9283,16 @@ static int nl80211_start_radar_detection
|
||||
@@ -9303,6 +9298,16 @@ static int nl80211_start_radar_detection
|
||||
if (!cfg80211_chandef_dfs_usable(wiphy, &chandef))
|
||||
return -EINVAL;
|
||||
|
||||
|
||||
@ -118,7 +118,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
NL80211_RADAR_CAC_ABORTED);
|
||||
--- a/net/wireless/nl80211.c
|
||||
+++ b/net/wireless/nl80211.c
|
||||
@@ -9263,42 +9263,60 @@ static int nl80211_start_radar_detection
|
||||
@@ -9278,42 +9278,60 @@ static int nl80211_start_radar_detection
|
||||
struct cfg80211_chan_def chandef;
|
||||
enum nl80211_dfs_regions dfs_region;
|
||||
unsigned int cac_time_ms;
|
||||
@ -198,7 +198,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
|
||||
cac_time_ms = cfg80211_chandef_dfs_cac_time(&rdev->wiphy, &chandef);
|
||||
if (WARN_ON(!cac_time_ms))
|
||||
@@ -9311,6 +9329,9 @@ static int nl80211_start_radar_detection
|
||||
@@ -9326,6 +9344,9 @@ static int nl80211_start_radar_detection
|
||||
wdev->cac_start_time = jiffies;
|
||||
wdev->cac_time_ms = cac_time_ms;
|
||||
}
|
||||
@ -208,7 +208,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
return err;
|
||||
}
|
||||
|
||||
@@ -15941,7 +15962,8 @@ static const struct genl_small_ops nl802
|
||||
@@ -15961,7 +15982,8 @@ static const struct genl_small_ops nl802
|
||||
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
.doit = nl80211_start_radar_detection,
|
||||
.flags = GENL_UNS_ADMIN_PERM,
|
||||
|
||||
@ -472,7 +472,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
}
|
||||
--- a/net/wireless/nl80211.c
|
||||
+++ b/net/wireless/nl80211.c
|
||||
@@ -796,7 +796,7 @@ static const struct nla_policy nl80211_p
|
||||
@@ -801,7 +801,7 @@ static const struct nla_policy nl80211_p
|
||||
[NL80211_ATTR_MBSSID_CONFIG] =
|
||||
NLA_POLICY_NESTED(nl80211_mbssid_config_policy),
|
||||
[NL80211_ATTR_MBSSID_ELEMS] = { .type = NLA_NESTED },
|
||||
@ -481,7 +481,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
};
|
||||
|
||||
/* policy for the key attributes */
|
||||
@@ -9291,9 +9291,9 @@ static int nl80211_start_radar_detection
|
||||
@@ -9306,9 +9306,9 @@ static int nl80211_start_radar_detection
|
||||
goto unlock;
|
||||
}
|
||||
|
||||
|
||||
@ -1,61 +0,0 @@
|
||||
From: Peter Seiderer <ps.report@gmx.net>
|
||||
Date: Mon, 4 Apr 2022 18:54:14 +0200
|
||||
Subject: [PATCH] mac80211: minstrel_ht: fix where rate stats are stored (fixes
|
||||
debugfs output)
|
||||
|
||||
Using an ath9k card the debugfs output of minstrel_ht looks like the following
|
||||
(note the zero values for the first four rates sum-of success/attempts):
|
||||
|
||||
best ____________rate__________ ____statistics___ _____last____ ______sum-of________
|
||||
mode guard # rate [name idx airtime max_tp] [avg(tp) avg(prob)] [retry|suc|att] [#success | #attempts]
|
||||
OFDM 1 DP 6.0M 272 1640 5.2 3.1 53.8 3 0 0 0 0
|
||||
OFDM 1 C 9.0M 273 1104 7.7 4.6 53.8 4 0 0 0 0
|
||||
OFDM 1 B 12.0M 274 836 10.0 6.0 53.8 4 0 0 0 0
|
||||
OFDM 1 A S 18.0M 275 568 14.3 8.5 53.8 5 0 0 0 0
|
||||
OFDM 1 S 24.0M 276 436 18.1 0.0 0.0 5 0 1 80 1778
|
||||
OFDM 1 36.0M 277 300 24.9 0.0 0.0 0 0 1 0 107
|
||||
OFDM 1 S 48.0M 278 236 30.4 0.0 0.0 0 0 0 0 75
|
||||
OFDM 1 54.0M 279 212 33.0 0.0 0.0 0 0 0 0 72
|
||||
|
||||
Total packet count:: ideal 16582 lookaround 885
|
||||
Average # of aggregated frames per A-MPDU: 1.0
|
||||
|
||||
Debugging showed that the rate statistics for the first four rates where
|
||||
stored in the MINSTREL_CCK_GROUP instead of the MINSTREL_OFDM_GROUP because
|
||||
in minstrel_ht_get_stats() the supported check was not honoured as done in
|
||||
various other places, e.g net/mac80211/rc80211_minstrel_ht_debugfs.c:
|
||||
|
||||
74 if (!(mi->supported[i] & BIT(j)))
|
||||
75 continue;
|
||||
|
||||
With the patch applied the output looks good:
|
||||
|
||||
best ____________rate__________ ____statistics___ _____last____ ______sum-of________
|
||||
mode guard # rate [name idx airtime max_tp] [avg(tp) avg(prob)] [retry|suc|att] [#success | #attempts]
|
||||
OFDM 1 D 6.0M 272 1640 5.2 5.2 100.0 3 0 0 1 1
|
||||
OFDM 1 C 9.0M 273 1104 7.7 7.7 100.0 4 0 0 38 38
|
||||
OFDM 1 B 12.0M 274 836 10.0 9.9 89.5 4 2 2 372 395
|
||||
OFDM 1 A P 18.0M 275 568 14.3 14.3 97.2 5 52 53 6956 7181
|
||||
OFDM 1 S 24.0M 276 436 18.1 0.0 0.0 0 0 1 6 163
|
||||
OFDM 1 36.0M 277 300 24.9 0.0 0.0 0 0 1 0 35
|
||||
OFDM 1 S 48.0M 278 236 30.4 0.0 0.0 0 0 0 0 38
|
||||
OFDM 1 S 54.0M 279 212 33.0 0.0 0.0 0 0 0 0 38
|
||||
|
||||
Total packet count:: ideal 7097 lookaround 287
|
||||
Average # of aggregated frames per A-MPDU: 1.0
|
||||
|
||||
Signed-off-by: Peter Seiderer <ps.report@gmx.net>
|
||||
---
|
||||
|
||||
--- a/net/mac80211/rc80211_minstrel_ht.c
|
||||
+++ b/net/mac80211/rc80211_minstrel_ht.c
|
||||
@@ -364,6 +364,9 @@ minstrel_ht_get_stats(struct minstrel_pr
|
||||
|
||||
group = MINSTREL_CCK_GROUP;
|
||||
for (idx = 0; idx < ARRAY_SIZE(mp->cck_rates); idx++) {
|
||||
+ if (!(mi->supported[group] & BIT(idx)))
|
||||
+ continue;
|
||||
+
|
||||
if (rate->idx != mp->cck_rates[idx])
|
||||
continue;
|
||||
|
||||
@ -359,7 +359,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
struct work_struct csa_finalize_work;
|
||||
bool csa_block_tx; /* write-protected by sdata_lock and local->mtx */
|
||||
struct cfg80211_chan_def csa_chandef;
|
||||
@@ -1180,44 +1182,6 @@ enum mac80211_scan_state {
|
||||
@@ -1185,44 +1187,6 @@ enum mac80211_scan_state {
|
||||
SCAN_ABORT,
|
||||
};
|
||||
|
||||
@ -404,7 +404,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
DECLARE_STATIC_KEY_FALSE(aql_disable);
|
||||
|
||||
struct ieee80211_local {
|
||||
@@ -1231,8 +1195,13 @@ struct ieee80211_local {
|
||||
@@ -1236,8 +1200,13 @@ struct ieee80211_local {
|
||||
struct codel_params cparams;
|
||||
|
||||
/* protects active_txqs and txqi->schedule_order */
|
||||
@ -419,7 +419,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
u32 aql_threshold;
|
||||
atomic_t aql_total_pending_airtime;
|
||||
|
||||
@@ -1649,125 +1618,6 @@ static inline bool txq_has_queue(struct
|
||||
@@ -1654,125 +1623,6 @@ static inline bool txq_has_queue(struct
|
||||
return !(skb_queue_empty(&txqi->frags) && !txqi->tin.backlog_packets);
|
||||
}
|
||||
|
||||
@ -545,7 +545,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
static inline int ieee80211_bssid_match(const u8 *raddr, const u8 *addr)
|
||||
{
|
||||
return ether_addr_equal(raddr, addr) ||
|
||||
@@ -2013,14 +1863,6 @@ int ieee80211_tx_control_port(struct wip
|
||||
@@ -2018,14 +1868,6 @@ int ieee80211_tx_control_port(struct wip
|
||||
u64 *cookie);
|
||||
int ieee80211_probe_mesh_link(struct wiphy *wiphy, struct net_device *dev,
|
||||
const u8 *buf, size_t len);
|
||||
@ -594,7 +594,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
--- a/net/mac80211/rx.c
|
||||
+++ b/net/mac80211/rx.c
|
||||
@@ -1584,8 +1584,12 @@ static void sta_ps_start(struct sta_info
|
||||
@@ -1583,8 +1583,12 @@ static void sta_ps_start(struct sta_info
|
||||
|
||||
for (tid = 0; tid < IEEE80211_NUM_TIDS; tid++) {
|
||||
struct ieee80211_txq *txq = sta->sta.txq[tid];
|
||||
|
||||
@ -15,7 +15,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
--- a/net/mac80211/ieee80211_i.h
|
||||
+++ b/net/mac80211/ieee80211_i.h
|
||||
@@ -1211,6 +1211,7 @@ struct ieee80211_local {
|
||||
@@ -1216,6 +1216,7 @@ struct ieee80211_local {
|
||||
u32 aql_txq_limit_high[IEEE80211_NUM_ACS];
|
||||
u32 aql_threshold;
|
||||
atomic_t aql_total_pending_airtime;
|
||||
|
||||
@ -1,28 +0,0 @@
|
||||
From: Felix Fietkau <nbd@nbd.name>
|
||||
Date: Sat, 2 Jul 2022 16:41:32 +0200
|
||||
Subject: [PATCH] mac80211: fix queue selection for mesh/OCB interfaces
|
||||
|
||||
When using iTXQ, the code assumes that there is only one vif queue for
|
||||
broadcast packets, using the BE queue. Allowing non-BE queue marking
|
||||
violates that assumption and txq->ac == skb_queue_mapping is no longer
|
||||
guaranteed. This can cause issues with queue handling in the driver and
|
||||
also causes issues with the recent ATF change, resulting in an AQL
|
||||
underflow warning.
|
||||
|
||||
Cc: stable@vger.kernel.org
|
||||
Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
---
|
||||
|
||||
--- a/net/mac80211/wme.c
|
||||
+++ b/net/mac80211/wme.c
|
||||
@@ -147,8 +147,8 @@ u16 __ieee80211_select_queue(struct ieee
|
||||
bool qos;
|
||||
|
||||
/* all mesh/ocb stations are required to support WME */
|
||||
- if (sdata->vif.type == NL80211_IFTYPE_MESH_POINT ||
|
||||
- sdata->vif.type == NL80211_IFTYPE_OCB)
|
||||
+ if (sta && (sdata->vif.type == NL80211_IFTYPE_MESH_POINT ||
|
||||
+ sdata->vif.type == NL80211_IFTYPE_OCB))
|
||||
qos = true;
|
||||
else if (sta)
|
||||
qos = sta->sta.wme;
|
||||
@ -56,7 +56,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
|
||||
--- a/net/mac80211/rx.c
|
||||
+++ b/net/mac80211/rx.c
|
||||
@@ -3181,6 +3181,49 @@ static void ieee80211_process_sa_query_r
|
||||
@@ -3180,6 +3180,49 @@ static void ieee80211_process_sa_query_r
|
||||
ieee80211_tx_skb(sdata, skb);
|
||||
}
|
||||
|
||||
@ -106,7 +106,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
static ieee80211_rx_result debug_noinline
|
||||
ieee80211_rx_h_mgmt_check(struct ieee80211_rx_data *rx)
|
||||
{
|
||||
@@ -3206,6 +3249,9 @@ ieee80211_rx_h_mgmt_check(struct ieee802
|
||||
@@ -3205,6 +3248,9 @@ ieee80211_rx_h_mgmt_check(struct ieee802
|
||||
!(rx->flags & IEEE80211_RX_BEACON_REPORTED)) {
|
||||
int sig = 0;
|
||||
|
||||
|
||||
@ -87,7 +87,7 @@
|
||||
CFG80211_TESTMODE_DUMP(ieee80211_testmode_dump)
|
||||
--- a/net/mac80211/ieee80211_i.h
|
||||
+++ b/net/mac80211/ieee80211_i.h
|
||||
@@ -1441,6 +1441,7 @@ struct ieee80211_local {
|
||||
@@ -1448,6 +1448,7 @@ struct ieee80211_local {
|
||||
int dynamic_ps_forced_timeout;
|
||||
|
||||
int user_power_level; /* in dBm, for all interfaces */
|
||||
@ -129,7 +129,7 @@
|
||||
local->hw.max_mtu = IEEE80211_MAX_DATA_LEN;
|
||||
--- a/net/wireless/nl80211.c
|
||||
+++ b/net/wireless/nl80211.c
|
||||
@@ -797,6 +797,7 @@ static const struct nla_policy nl80211_p
|
||||
@@ -802,6 +802,7 @@ static const struct nla_policy nl80211_p
|
||||
NLA_POLICY_NESTED(nl80211_mbssid_config_policy),
|
||||
[NL80211_ATTR_MBSSID_ELEMS] = { .type = NLA_NESTED },
|
||||
[NL80211_ATTR_RADAR_BACKGROUND] = { .type = NLA_FLAG },
|
||||
@ -137,7 +137,7 @@
|
||||
};
|
||||
|
||||
/* policy for the key attributes */
|
||||
@@ -3377,6 +3378,22 @@ static int nl80211_set_wiphy(struct sk_b
|
||||
@@ -3391,6 +3392,22 @@ static int nl80211_set_wiphy(struct sk_b
|
||||
if (result)
|
||||
goto out;
|
||||
}
|
||||
|
||||
@ -6,12 +6,12 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=libcap
|
||||
PKG_VERSION:=2.63
|
||||
PKG_VERSION:=2.65
|
||||
PKG_RELEASE:=$(AUTORELEASE)
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
||||
PKG_SOURCE_URL:=@KERNEL/linux/libs/security/linux-privs/libcap2
|
||||
PKG_HASH:=0c637b8f44fc7d8627787e9cf57f15ac06c1ddccb53e41feec5496be3466f77f
|
||||
PKG_HASH:=73e350020cc31fe15360879d19384ffa3395a825f065fcf6bda3a5cdf965bebd
|
||||
|
||||
PKG_MAINTAINER:=Paul Wassi <p.wassi@gmx.at>
|
||||
PKG_LICENSE:=GPL-2.0-only
|
||||
|
||||
11
package/libs/libmnl/patches/001-fix_build.patch
Normal file
11
package/libs/libmnl/patches/001-fix_build.patch
Normal file
@ -0,0 +1,11 @@
|
||||
--- a/doxygen/Makefile.am
|
||||
+++ b/doxygen/Makefile.am
|
||||
@@ -21,7 +21,7 @@ doxyfile.stamp: $(doc_srcs) Makefile.am
|
||||
# The command has to be a single line so the functions work
|
||||
# and so `make` gives all lines to `bash -c`
|
||||
# (hence ";\" at the end of every line but the last).
|
||||
- /bin/bash -p -c 'declare -A renamed_page;\
|
||||
+ bash -p -c 'declare -A renamed_page;\
|
||||
main(){ set -e; cd man/man3; rm -f _*;\
|
||||
count_real_pages;\
|
||||
rename_real_pages;\
|
||||
@ -44,7 +44,7 @@ endef
|
||||
define Package/libustream-mbedtls
|
||||
$(Package/libustream/default)
|
||||
TITLE += (mbedtls)
|
||||
DEPENDS += +libmbedtls
|
||||
DEPENDS += +PACKAGE_libustream-mbedtls:libmbedtls
|
||||
CONFLICTS := libustream-openssl libustream-wolfssl
|
||||
VARIANT:=mbedtls
|
||||
DEFAULT_VARIANT:=1
|
||||
|
||||
@ -72,7 +72,6 @@ config WOLFSSL_ASM_CAPABLE
|
||||
|
||||
choice
|
||||
prompt "Hardware Acceleration"
|
||||
default WOLFSSL_HAS_CPU_CRYPTO if WOLFSSL_ASM_CAPABLE && !TARGET_armvirt
|
||||
default WOLFSSL_HAS_NO_HW
|
||||
|
||||
config WOLFSSL_HAS_NO_HW
|
||||
|
||||
@ -61,7 +61,6 @@ endef
|
||||
define Package/libwolfssl
|
||||
$(call Package/libwolfssl/Default)
|
||||
TITLE:=wolfSSL library
|
||||
PKGFLAGS:=nonshared
|
||||
MENU:=1
|
||||
PROVIDES:=libcyassl
|
||||
DEPENDS:=+WOLFSSL_HAS_DEVCRYPTO:kmod-cryptodev +WOLFSSL_HAS_AFALG:kmod-crypto-user
|
||||
|
||||
@ -0,0 +1,23 @@
|
||||
From dc92ec2aa9cb76b782bdba3fc5203267ebf39994 Mon Sep 17 00:00:00 2001
|
||||
From: Kareem <kareem@wolfssl.com>
|
||||
Date: Fri, 22 Jul 2022 11:07:46 -0700
|
||||
Subject: [PATCH] Update sp_rand_prime's preprocessor gating to match
|
||||
wolfSSL_BN_generate_prime_ex's.
|
||||
|
||||
---
|
||||
wolfcrypt/src/sp_int.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
--- a/wolfcrypt/src/sp_int.c
|
||||
+++ b/wolfcrypt/src/sp_int.c
|
||||
@@ -15647,8 +15647,8 @@ int sp_radix_size(sp_int* a, int radix,
|
||||
* Prime number generation and checking.
|
||||
***************************************/
|
||||
|
||||
-#if defined(WOLFSSL_KEY_GEN) && (!defined(NO_DH) || !defined(NO_DSA)) && \
|
||||
- !defined(WC_NO_RNG)
|
||||
+#if defined(WOLFSSL_KEY_GEN) && (!defined(NO_RSA) || !defined(NO_DH) || \
|
||||
+ !defined(NO_DSA)) && !defined(WC_NO_RNG)
|
||||
/* Generate a random prime for RSA only.
|
||||
*
|
||||
* @param [out] r SP integer to hold result.
|
||||
@ -12,9 +12,9 @@ PKG_RELEASE:=18
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL=$(PROJECT_GIT)/project/odhcp6c.git
|
||||
PKG_SOURCE_DATE:=2021-12-05
|
||||
PKG_SOURCE_VERSION:=39b584bcac8770619b545d6ae344758f87028612
|
||||
PKG_MIRROR_HASH:=f2092bd3ff3481f842da6735f8e36e237e163e8b7cdec80a17385c31e064c8f0
|
||||
PKG_SOURCE_DATE:=2022-07-13
|
||||
PKG_SOURCE_VERSION:=9212bfcbab7681cd30186ac7f1ef4c47bf38c89a
|
||||
PKG_MIRROR_HASH:=85118a9ae084701a00b4dc6a9b2e3279e4fd70eb5b31b539a121ce0a894f9e45
|
||||
PKG_MAINTAINER:=Hans Dedecker <dedeckeh@gmail.com>
|
||||
PKG_LICENSE:=GPL-2.0
|
||||
|
||||
|
||||
@ -166,7 +166,7 @@ define Package/hostapd-openssl
|
||||
$(call Package/hostapd/Default,$(1))
|
||||
TITLE+= (OpenSSL full)
|
||||
VARIANT:=full-openssl
|
||||
DEPENDS+=+libopenssl
|
||||
DEPENDS+=+PACKAGE_hostapd-openssl:libopenssl
|
||||
endef
|
||||
|
||||
Package/hostapd-openssl/description = $(Package/hostapd/description)
|
||||
@ -175,7 +175,7 @@ define Package/hostapd-wolfssl
|
||||
$(call Package/hostapd/Default,$(1))
|
||||
TITLE+= (wolfSSL full)
|
||||
VARIANT:=full-wolfssl
|
||||
DEPENDS+=+libwolfssl
|
||||
DEPENDS+=+PACKAGE_hostapd-wolfssl:libwolfssl
|
||||
endef
|
||||
|
||||
Package/hostapd-wolfssl/description = $(Package/hostapd/description)
|
||||
@ -194,7 +194,7 @@ define Package/hostapd-basic-openssl
|
||||
$(call Package/hostapd/Default,$(1))
|
||||
TITLE+= (WPA-PSK, 11r and 11w)
|
||||
VARIANT:=basic-openssl
|
||||
DEPENDS+=+libopenssl
|
||||
DEPENDS+=+PACKAGE_hostapd-basic-openssl:libopenssl
|
||||
endef
|
||||
|
||||
define Package/hostapd-basic-openssl/description
|
||||
@ -205,7 +205,7 @@ define Package/hostapd-basic-wolfssl
|
||||
$(call Package/hostapd/Default,$(1))
|
||||
TITLE+= (WPA-PSK, 11r and 11w)
|
||||
VARIANT:=basic-wolfssl
|
||||
DEPENDS+=+libwolfssl
|
||||
DEPENDS+=+PACKAGE_hostapd-basic-wolfssl:libwolfssl
|
||||
endef
|
||||
|
||||
define Package/hostapd-basic-wolfssl/description
|
||||
@ -253,7 +253,7 @@ define Package/wpad-openssl
|
||||
$(call Package/wpad/Default,$(1))
|
||||
TITLE+= (OpenSSL full)
|
||||
VARIANT:=wpad-full-openssl
|
||||
DEPENDS+=+libopenssl
|
||||
DEPENDS+=+PACKAGE_wpad-openssl:libopenssl
|
||||
endef
|
||||
|
||||
Package/wpad-openssl/description = $(Package/wpad/description)
|
||||
@ -262,7 +262,7 @@ define Package/wpad-wolfssl
|
||||
$(call Package/wpad/Default,$(1))
|
||||
TITLE+= (wolfSSL full)
|
||||
VARIANT:=wpad-full-wolfssl
|
||||
DEPENDS+=+libwolfssl
|
||||
DEPENDS+=+PACKAGE_wpad-wolfssl:libwolfssl
|
||||
endef
|
||||
|
||||
Package/wpad-wolfssl/description = $(Package/wpad/description)
|
||||
@ -281,7 +281,7 @@ define Package/wpad-basic-openssl
|
||||
$(call Package/wpad/Default,$(1))
|
||||
TITLE+= (OpenSSL, 11r, 11w)
|
||||
VARIANT:=wpad-basic-openssl
|
||||
DEPENDS+=+libopenssl
|
||||
DEPENDS+=+PACKAGE_wpad-basic-openssl:libopenssl
|
||||
endef
|
||||
|
||||
define Package/wpad-basic-openssl/description
|
||||
@ -292,7 +292,7 @@ define Package/wpad-basic-wolfssl
|
||||
$(call Package/wpad/Default,$(1))
|
||||
TITLE+= (wolfSSL, 11r, 11w)
|
||||
VARIANT:=wpad-basic-wolfssl
|
||||
DEPENDS+=+libwolfssl
|
||||
DEPENDS+=+PACKAGE_wpad-basic-wolfssl:libwolfssl
|
||||
endef
|
||||
|
||||
define Package/wpad-basic-wolfssl/description
|
||||
@ -322,7 +322,7 @@ endef
|
||||
define Package/wpad-mesh-openssl
|
||||
$(call Package/wpad-mesh,$(1))
|
||||
TITLE+= (OpenSSL, 11s, SAE)
|
||||
DEPENDS+=+libopenssl
|
||||
DEPENDS+=+PACKAGE_wpad-mesh-openssl:libopenssl
|
||||
VARIANT:=wpad-mesh-openssl
|
||||
endef
|
||||
|
||||
@ -331,7 +331,7 @@ Package/wpad-mesh-openssl/description = $(Package/wpad-mesh/description)
|
||||
define Package/wpad-mesh-wolfssl
|
||||
$(call Package/wpad-mesh,$(1))
|
||||
TITLE+= (wolfSSL, 11s, SAE)
|
||||
DEPENDS+=+libwolfssl
|
||||
DEPENDS+=+PACKAGE_wpad-mesh-wolfssl:libwolfssl
|
||||
VARIANT:=wpad-mesh-wolfssl
|
||||
endef
|
||||
|
||||
@ -362,14 +362,14 @@ define Package/wpa-supplicant-openssl
|
||||
$(call Package/wpa-supplicant/Default,$(1))
|
||||
TITLE+= (OpenSSL full)
|
||||
VARIANT:=supplicant-full-openssl
|
||||
DEPENDS+=+libopenssl
|
||||
DEPENDS+=+PACKAGE_wpa-supplicant-openssl:libopenssl
|
||||
endef
|
||||
|
||||
define Package/wpa-supplicant-wolfssl
|
||||
$(call Package/wpa-supplicant/Default,$(1))
|
||||
TITLE+= (wolfSSL full)
|
||||
VARIANT:=supplicant-full-wolfssl
|
||||
DEPENDS+=+libwolfssl
|
||||
DEPENDS+=+PACKAGE_wpa-supplicant-wolfssl:libwolfssl
|
||||
endef
|
||||
|
||||
define Package/wpa-supplicant/config
|
||||
@ -393,14 +393,14 @@ define Package/wpa-supplicant-mesh-openssl
|
||||
$(call Package/wpa-supplicant-mesh/Default,$(1))
|
||||
TITLE+= (OpenSSL, 11s, SAE)
|
||||
VARIANT:=supplicant-mesh-openssl
|
||||
DEPENDS+=+libopenssl
|
||||
DEPENDS+=+PACKAGE_wpa-supplicant-mesh-openssl:libopenssl
|
||||
endef
|
||||
|
||||
define Package/wpa-supplicant-mesh-wolfssl
|
||||
$(call Package/wpa-supplicant-mesh/Default,$(1))
|
||||
TITLE+= (wolfSSL, 11s, SAE)
|
||||
VARIANT:=supplicant-mesh-wolfssl
|
||||
DEPENDS+=+libwolfssl
|
||||
DEPENDS+=+PACKAGE_wpa-supplicant-mesh-wolfssl:libwolfssl
|
||||
endef
|
||||
|
||||
define Package/wpa-supplicant-basic
|
||||
@ -466,7 +466,7 @@ define Package/eapol-test-openssl
|
||||
TITLE+= (OpenSSL full)
|
||||
VARIANT:=supplicant-full-openssl
|
||||
CONFLICTS:=$(filter-out eapol-test-openssl ,$(EAPOL_TEST_PROVIDERS))
|
||||
DEPENDS+=+libopenssl
|
||||
DEPENDS+=+PACKAGE_eapol-test-openssl:libopenssl
|
||||
PROVIDES:=eapol-test
|
||||
endef
|
||||
|
||||
@ -475,7 +475,7 @@ define Package/eapol-test-wolfssl
|
||||
TITLE+= (wolfSSL full)
|
||||
VARIANT:=supplicant-full-wolfssl
|
||||
CONFLICTS:=$(filter-out eapol-test-openssl ,$(filter-out eapol-test-wolfssl ,$(EAPOL_TEST_PROVIDERS)))
|
||||
DEPENDS+=+libwolfssl
|
||||
DEPENDS+=+PACKAGE_eapol-test-wolfssl:libwolfssl
|
||||
PROVIDES:=eapol-test
|
||||
endef
|
||||
|
||||
|
||||
@ -13,9 +13,9 @@ Signed-off-by: John Crispin <john@phrozen.org>
|
||||
|
||||
--- a/drivers/leds/Kconfig
|
||||
+++ b/drivers/leds/Kconfig
|
||||
@@ -929,6 +929,17 @@ config LEDS_ACER_A500
|
||||
This option enables support for the Power Button LED of
|
||||
Acer Iconia Tab A500.
|
||||
@@ -931,6 +931,17 @@ config LEDS_ACER_A500
|
||||
|
||||
source "drivers/leds/blink/Kconfig"
|
||||
|
||||
+config LEDS_RESET
|
||||
+ tristate "LED support for reset-controller API"
|
||||
|
||||
@ -706,7 +706,7 @@
|
||||
EXPORT_SYMBOL(xfrm_parse_spi);
|
||||
--- a/net/ipv4/tcp_input.c
|
||||
+++ b/net/ipv4/tcp_input.c
|
||||
@@ -4087,14 +4087,16 @@ static bool tcp_parse_aligned_timestamp(
|
||||
@@ -4092,14 +4092,16 @@ static bool tcp_parse_aligned_timestamp(
|
||||
{
|
||||
const __be32 *ptr = (const __be32 *)(th + 1);
|
||||
|
||||
|
||||
@ -706,7 +706,7 @@
|
||||
EXPORT_SYMBOL(xfrm_parse_spi);
|
||||
--- a/net/ipv4/tcp_input.c
|
||||
+++ b/net/ipv4/tcp_input.c
|
||||
@@ -4133,14 +4133,16 @@ static bool tcp_parse_aligned_timestamp(
|
||||
@@ -4138,14 +4138,16 @@ static bool tcp_parse_aligned_timestamp(
|
||||
{
|
||||
const __be32 *ptr = (const __be32 *)(th + 1);
|
||||
|
||||
|
||||
@ -17,7 +17,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
|
||||
--- a/kernel/cgroup/cgroup.c
|
||||
+++ b/kernel/cgroup/cgroup.c
|
||||
@@ -5824,6 +5824,9 @@ int __init cgroup_init_early(void)
|
||||
@@ -5833,6 +5833,9 @@ int __init cgroup_init_early(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -27,7 +27,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
/**
|
||||
* cgroup_init - cgroup initialization
|
||||
*
|
||||
@@ -5862,6 +5865,12 @@ int __init cgroup_init(void)
|
||||
@@ -5871,6 +5874,12 @@ int __init cgroup_init(void)
|
||||
|
||||
mutex_unlock(&cgroup_mutex);
|
||||
|
||||
@ -40,7 +40,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
for_each_subsys(ss, ssid) {
|
||||
if (ss->early_init) {
|
||||
struct cgroup_subsys_state *css =
|
||||
@@ -6446,6 +6455,10 @@ static int __init cgroup_disable(char *s
|
||||
@@ -6455,6 +6464,10 @@ static int __init cgroup_disable(char *s
|
||||
strcmp(token, ss->legacy_name))
|
||||
continue;
|
||||
|
||||
@ -51,7 +51,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
static_branch_disable(cgroup_subsys_enabled_key[i]);
|
||||
pr_info("Disabling %s control group subsystem\n",
|
||||
ss->name);
|
||||
@@ -6464,6 +6477,31 @@ static int __init cgroup_disable(char *s
|
||||
@@ -6473,6 +6486,31 @@ static int __init cgroup_disable(char *s
|
||||
}
|
||||
__setup("cgroup_disable=", cgroup_disable);
|
||||
|
||||
|
||||
@ -14,7 +14,7 @@ use the same logic.
|
||||
|
||||
--- a/drivers/tty/serial/amba-pl011.c
|
||||
+++ b/drivers/tty/serial/amba-pl011.c
|
||||
@@ -2725,7 +2725,12 @@ static int pl011_setup_port(struct devic
|
||||
@@ -2744,7 +2744,12 @@ static int pl011_setup_port(struct devic
|
||||
if (IS_ERR(base))
|
||||
return PTR_ERR(base);
|
||||
|
||||
|
||||
@ -26,7 +26,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
|
||||
--- a/drivers/tty/serial/amba-pl011.c
|
||||
+++ b/drivers/tty/serial/amba-pl011.c
|
||||
@@ -1718,6 +1718,23 @@ static void pl011_put_poll_char(struct u
|
||||
@@ -1727,6 +1727,23 @@ static void pl011_put_poll_char(struct u
|
||||
|
||||
#endif /* CONFIG_CONSOLE_POLL */
|
||||
|
||||
@ -50,7 +50,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
static int pl011_hwinit(struct uart_port *port)
|
||||
{
|
||||
struct uart_amba_port *uap =
|
||||
@@ -1734,7 +1751,7 @@ static int pl011_hwinit(struct uart_port
|
||||
@@ -1743,7 +1760,7 @@ static int pl011_hwinit(struct uart_port
|
||||
if (retval)
|
||||
return retval;
|
||||
|
||||
@ -59,7 +59,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
|
||||
/* Clear pending error and receive interrupts */
|
||||
pl011_write(UART011_OEIS | UART011_BEIS | UART011_PEIS |
|
||||
@@ -2421,7 +2438,7 @@ static int pl011_console_setup(struct co
|
||||
@@ -2440,7 +2457,7 @@ static int pl011_console_setup(struct co
|
||||
plat->init();
|
||||
}
|
||||
|
||||
@ -68,7 +68,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
|
||||
if (uap->vendor->fixed_options) {
|
||||
baud = uap->fixed_baud;
|
||||
@@ -2638,6 +2655,7 @@ static struct uart_driver amba_reg = {
|
||||
@@ -2657,6 +2674,7 @@ static struct uart_driver amba_reg = {
|
||||
.cons = AMBA_CONSOLE,
|
||||
};
|
||||
|
||||
@ -76,7 +76,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
static int pl011_probe_dt_alias(int index, struct device *dev)
|
||||
{
|
||||
struct device_node *np;
|
||||
@@ -2669,6 +2687,7 @@ static int pl011_probe_dt_alias(int inde
|
||||
@@ -2688,6 +2706,7 @@ static int pl011_probe_dt_alias(int inde
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -17,7 +17,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
|
||||
--- a/drivers/tty/serial/amba-pl011.c
|
||||
+++ b/drivers/tty/serial/amba-pl011.c
|
||||
@@ -1423,6 +1423,7 @@ static bool pl011_tx_char(struct uart_am
|
||||
@@ -1432,6 +1432,7 @@ static bool pl011_tx_char(struct uart_am
|
||||
return false; /* unable to transmit character */
|
||||
|
||||
pl011_write(c, uap, REG_DR);
|
||||
|
||||
@ -36,7 +36,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
- reg
|
||||
--- a/drivers/tty/serial/amba-pl011.c
|
||||
+++ b/drivers/tty/serial/amba-pl011.c
|
||||
@@ -2816,6 +2816,11 @@ static int pl011_probe(struct amba_devic
|
||||
@@ -2835,6 +2835,11 @@ static int pl011_probe(struct amba_devic
|
||||
if (IS_ERR(uap->clk))
|
||||
return PTR_ERR(uap->clk);
|
||||
|
||||
|
||||
@ -1,61 +0,0 @@
|
||||
From 48cb6ac7067b412c56a0a6aca43f5c964dfb7dec Mon Sep 17 00:00:00 2001
|
||||
From: Phil Elwell <phil@raspberrypi.org>
|
||||
Date: Fri, 24 Jan 2020 11:38:28 +0000
|
||||
Subject: [PATCH] tty: amba-pl011: Add un/throttle support
|
||||
|
||||
The PL011 driver lacks throttle and unthrottle methods. As a result,
|
||||
sending more data to the Pi than it can immediately sink while CRTSCTS
|
||||
is enabled causes a NULL pointer to be followed.
|
||||
|
||||
Add a throttle handler that disables the RX interrupts, and an
|
||||
unthrottle handler that reenables them.
|
||||
|
||||
Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
---
|
||||
drivers/tty/serial/amba-pl011.c | 28 ++++++++++++++++++++++++++++
|
||||
1 file changed, 28 insertions(+)
|
||||
|
||||
--- a/drivers/tty/serial/amba-pl011.c
|
||||
+++ b/drivers/tty/serial/amba-pl011.c
|
||||
@@ -1360,6 +1360,32 @@ static void pl011_start_tx(struct uart_p
|
||||
pl011_start_tx_pio(uap);
|
||||
}
|
||||
|
||||
+static void pl011_throttle(struct uart_port *port)
|
||||
+{
|
||||
+ struct uart_amba_port *uap =
|
||||
+ container_of(port, struct uart_amba_port, port);
|
||||
+ unsigned long flags;
|
||||
+
|
||||
+ spin_lock_irqsave(&uap->port.lock, flags);
|
||||
+ uap->im &= ~(UART011_RTIM | UART011_RXIM);
|
||||
+ pl011_write(uap->im, uap, REG_IMSC);
|
||||
+ spin_unlock_irqrestore(&uap->port.lock, flags);
|
||||
+}
|
||||
+
|
||||
+static void pl011_unthrottle(struct uart_port *port)
|
||||
+{
|
||||
+ struct uart_amba_port *uap =
|
||||
+ container_of(port, struct uart_amba_port, port);
|
||||
+ unsigned long flags;
|
||||
+
|
||||
+ spin_lock_irqsave(&uap->port.lock, flags);
|
||||
+ uap->im |= UART011_RTIM;
|
||||
+ if (!pl011_dma_rx_running(uap))
|
||||
+ uap->im |= UART011_RXIM;
|
||||
+ pl011_write(uap->im, uap, REG_IMSC);
|
||||
+ spin_unlock_irqrestore(&uap->port.lock, flags);
|
||||
+}
|
||||
+
|
||||
static void pl011_stop_rx(struct uart_port *port)
|
||||
{
|
||||
struct uart_amba_port *uap =
|
||||
@@ -2263,6 +2289,8 @@ static const struct uart_ops amba_pl011_
|
||||
.stop_tx = pl011_stop_tx,
|
||||
.start_tx = pl011_start_tx,
|
||||
.stop_rx = pl011_stop_rx,
|
||||
+ .throttle = pl011_throttle,
|
||||
+ .unthrottle = pl011_unthrottle,
|
||||
.enable_ms = pl011_enable_ms,
|
||||
.break_ctl = pl011_break_ctl,
|
||||
.startup = pl011_startup,
|
||||
@ -29,7 +29,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
|
||||
--- a/drivers/tty/serial/amba-pl011.c
|
||||
+++ b/drivers/tty/serial/amba-pl011.c
|
||||
@@ -1510,6 +1510,10 @@ static bool pl011_tx_chars(struct uart_a
|
||||
@@ -1493,6 +1493,10 @@ static bool pl011_tx_chars(struct uart_a
|
||||
if (likely(from_irq) && count-- == 0)
|
||||
break;
|
||||
|
||||
|
||||
@ -244,7 +244,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
|
||||
static int bcm2708_fb_register(struct bcm2708_fb *fb)
|
||||
--- a/drivers/video/fbdev/core/fbmem.c
|
||||
+++ b/drivers/video/fbdev/core/fbmem.c
|
||||
@@ -1086,6 +1086,30 @@ fb_blank(struct fb_info *info, int blank
|
||||
@@ -1097,6 +1097,30 @@ fb_blank(struct fb_info *info, int blank
|
||||
}
|
||||
EXPORT_SYMBOL(fb_blank);
|
||||
|
||||
@ -275,7 +275,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
|
||||
static long do_fb_ioctl(struct fb_info *info, unsigned int cmd,
|
||||
unsigned long arg)
|
||||
{
|
||||
@@ -1094,6 +1118,7 @@ static long do_fb_ioctl(struct fb_info *
|
||||
@@ -1105,6 +1129,7 @@ static long do_fb_ioctl(struct fb_info *
|
||||
struct fb_fix_screeninfo fix;
|
||||
struct fb_cmap cmap_from;
|
||||
struct fb_cmap_user cmap;
|
||||
@ -283,7 +283,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
|
||||
void __user *argp = (void __user *)arg;
|
||||
long ret = 0;
|
||||
|
||||
@@ -1169,6 +1194,15 @@ static long do_fb_ioctl(struct fb_info *
|
||||
@@ -1182,6 +1207,15 @@ static long do_fb_ioctl(struct fb_info *
|
||||
unlock_fb_info(info);
|
||||
console_unlock();
|
||||
break;
|
||||
@ -299,7 +299,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
|
||||
default:
|
||||
lock_fb_info(info);
|
||||
fb = info->fbops;
|
||||
@@ -1308,6 +1342,7 @@ static long fb_compat_ioctl(struct file
|
||||
@@ -1321,6 +1355,7 @@ static long fb_compat_ioctl(struct file
|
||||
case FBIOPAN_DISPLAY:
|
||||
case FBIOGET_CON2FBMAP:
|
||||
case FBIOPUT_CON2FBMAP:
|
||||
|
||||
@ -23,7 +23,7 @@ Signed-off-by: Martin Sperl <kernel@martin.sperl.org>
|
||||
/* Read as many bytes as possible from FIFO */
|
||||
bcm2835_rd_fifo(bs);
|
||||
/* Write as many bytes as possible to FIFO */
|
||||
@@ -1365,7 +1369,8 @@ static int bcm2835_spi_probe(struct plat
|
||||
@@ -1369,7 +1373,8 @@ static int bcm2835_spi_probe(struct plat
|
||||
bcm2835_wr(bs, BCM2835_SPI_CS,
|
||||
BCM2835_SPI_CS_CLEAR_RX | BCM2835_SPI_CS_CLEAR_TX);
|
||||
|
||||
|
||||
@ -15,7 +15,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
||||
|
||||
--- a/drivers/usb/host/xhci.c
|
||||
+++ b/drivers/usb/host/xhci.c
|
||||
@@ -1618,6 +1618,109 @@ command_cleanup:
|
||||
@@ -1620,6 +1620,109 @@ command_cleanup:
|
||||
}
|
||||
|
||||
/*
|
||||
@ -125,7 +125,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
||||
* non-error returns are a promise to giveback() the urb later
|
||||
* we drop ownership so next owner (or urb unlink) can get it
|
||||
*/
|
||||
@@ -5443,6 +5546,7 @@ static const struct hc_driver xhci_hc_dr
|
||||
@@ -5445,6 +5548,7 @@ static const struct hc_driver xhci_hc_dr
|
||||
.endpoint_reset = xhci_endpoint_reset,
|
||||
.check_bandwidth = xhci_check_bandwidth,
|
||||
.reset_bandwidth = xhci_reset_bandwidth,
|
||||
|
||||
@ -25,7 +25,7 @@ Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
|
||||
|
||||
--- a/MAINTAINERS
|
||||
+++ b/MAINTAINERS
|
||||
@@ -17525,6 +17525,14 @@ T: git git://linuxtv.org/media_tree.git
|
||||
@@ -17526,6 +17526,14 @@ T: git git://linuxtv.org/media_tree.git
|
||||
F: Documentation/devicetree/bindings/media/i2c/sony,imx412.yaml
|
||||
F: drivers/media/i2c/imx412.c
|
||||
|
||||
|
||||
@ -132,7 +132,7 @@ Signed-off-by: David Plowman <david.plowman@raspberrypi.com>
|
||||
+...
|
||||
--- a/MAINTAINERS
|
||||
+++ b/MAINTAINERS
|
||||
@@ -17539,6 +17539,7 @@ M: Raspberry Pi Kernel Maintenance <kern
|
||||
@@ -17540,6 +17540,7 @@ M: Raspberry Pi Kernel Maintenance <kern
|
||||
L: linux-media@vger.kernel.org
|
||||
S: Maintained
|
||||
T: git git://linuxtv.org/media_tree.git
|
||||
|
||||
@ -16,10 +16,10 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
|
||||
--- a/sound/usb/quirks.c
|
||||
+++ b/sound/usb/quirks.c
|
||||
@@ -1908,6 +1908,8 @@ static const struct usb_audio_quirk_flag
|
||||
QUIRK_FLAG_ALIGN_TRANSFER),
|
||||
DEVICE_FLG(0x1224, 0x2a25, /* Jieli Technology USB PHY 2.0 */
|
||||
QUIRK_FLAG_GET_SAMPLE_RATE),
|
||||
@@ -1921,6 +1921,8 @@ static const struct usb_audio_quirk_flag
|
||||
QUIRK_FLAG_GENERIC_IMPLICIT_FB),
|
||||
DEVICE_FLG(0x2b53, 0x0031, /* Fiero SC-01 (firmware v1.1.0) */
|
||||
QUIRK_FLAG_GENERIC_IMPLICIT_FB),
|
||||
+ DEVICE_FLG(0x09da, 0x2695, /* A4Tech FHD 1080p webcam */
|
||||
+ QUIRK_FLAG_DISABLE_AUTOSUSPEND | QUIRK_FLAG_GET_SAMPLE_RATE),
|
||||
|
||||
|
||||
@ -132,7 +132,7 @@ Signed-off-by: Lee Jackson <info@arducam.com>
|
||||
+...
|
||||
--- a/MAINTAINERS
|
||||
+++ b/MAINTAINERS
|
||||
@@ -17543,6 +17543,14 @@ F: Documentation/devicetree/bindings/med
|
||||
@@ -17544,6 +17544,14 @@ F: Documentation/devicetree/bindings/med
|
||||
F: Documentation/devicetree/bindings/media/i2c/imx477.yaml
|
||||
F: drivers/media/i2c/imx477.c
|
||||
|
||||
|
||||
@ -226,7 +226,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
}
|
||||
--- a/drivers/usb/host/xhci.c
|
||||
+++ b/drivers/usb/host/xhci.c
|
||||
@@ -877,8 +877,8 @@ static void xhci_clear_command_ring(stru
|
||||
@@ -879,8 +879,8 @@ static void xhci_clear_command_ring(stru
|
||||
seg = ring->deq_seg;
|
||||
do {
|
||||
memset(seg->trbs, 0,
|
||||
@ -237,7 +237,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
cpu_to_le32(~TRB_CYCLE);
|
||||
seg = seg->next;
|
||||
} while (seg != ring->deq_seg);
|
||||
@@ -889,7 +889,7 @@ static void xhci_clear_command_ring(stru
|
||||
@@ -891,7 +891,7 @@ static void xhci_clear_command_ring(stru
|
||||
ring->enq_seg = ring->deq_seg;
|
||||
ring->enqueue = ring->dequeue;
|
||||
|
||||
|
||||
@ -11,7 +11,7 @@ This reverts commit 2388f826cdc9af2651991adc0feb79de9bdf2232.
|
||||
|
||||
--- a/drivers/video/fbdev/core/fbmem.c
|
||||
+++ b/drivers/video/fbdev/core/fbmem.c
|
||||
@@ -1616,14 +1616,7 @@ static void do_remove_conflicting_frameb
|
||||
@@ -1629,14 +1629,7 @@ static void do_remove_conflicting_frameb
|
||||
* If it's not a platform device, at least print a warning. A
|
||||
* fix would add code to remove the device from the system.
|
||||
*/
|
||||
|
||||
@ -12,7 +12,7 @@ This reverts commit c894ac44786cfed383a6c6b20c1bfb12eb96018a.
|
||||
|
||||
--- a/drivers/video/fbdev/core/fbmem.c
|
||||
+++ b/drivers/video/fbdev/core/fbmem.c
|
||||
@@ -25,7 +25,6 @@
|
||||
@@ -26,7 +26,6 @@
|
||||
#include <linux/init.h>
|
||||
#include <linux/linux_logo.h>
|
||||
#include <linux/proc_fs.h>
|
||||
@ -20,7 +20,7 @@ This reverts commit c894ac44786cfed383a6c6b20c1bfb12eb96018a.
|
||||
#include <linux/seq_file.h>
|
||||
#include <linux/console.h>
|
||||
#include <linux/kmod.h>
|
||||
@@ -1593,36 +1592,18 @@ static void do_remove_conflicting_frameb
|
||||
@@ -1606,36 +1605,18 @@ static void do_remove_conflicting_frameb
|
||||
/* check all firmware fbs and kick off if the base addr overlaps */
|
||||
for_each_registered_fb(i) {
|
||||
struct apertures_struct *gen_aper;
|
||||
@ -58,7 +58,7 @@ This reverts commit c894ac44786cfed383a6c6b20c1bfb12eb96018a.
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1949,13 +1930,9 @@ EXPORT_SYMBOL(register_framebuffer);
|
||||
@@ -1973,13 +1954,9 @@ EXPORT_SYMBOL(register_framebuffer);
|
||||
void
|
||||
unregister_framebuffer(struct fb_info *fb_info)
|
||||
{
|
||||
|
||||
@ -21,8 +21,8 @@ Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org>
|
||||
|
||||
--- a/drivers/watchdog/Kconfig
|
||||
+++ b/drivers/watchdog/Kconfig
|
||||
@@ -1779,7 +1779,7 @@ config BCM7038_WDT
|
||||
tristate "BCM63xx/BCM7038 Watchdog"
|
||||
@@ -1800,7 +1800,7 @@ config BCM7038_WDT
|
||||
tristate "BCM7038 Watchdog"
|
||||
select WATCHDOG_CORE
|
||||
depends on HAS_IOMEM
|
||||
- depends on ARCH_BRCMSTB || BMIPS_GENERIC || COMPILE_TEST
|
||||
|
||||
@ -24,7 +24,7 @@ Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org>
|
||||
|
||||
--- a/drivers/watchdog/bcm7038_wdt.c
|
||||
+++ b/drivers/watchdog/bcm7038_wdt.c
|
||||
@@ -218,6 +218,7 @@ static SIMPLE_DEV_PM_OPS(bcm7038_wdt_pm_ops, bcm7038_wdt_suspend,
|
||||
@@ -193,6 +193,7 @@ static SIMPLE_DEV_PM_OPS(bcm7038_wdt_pm_
|
||||
bcm7038_wdt_resume);
|
||||
|
||||
static const struct of_device_id bcm7038_wdt_match[] = {
|
||||
|
||||
@ -232,7 +232,7 @@ Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||
+};
|
||||
--- a/arch/arm/boot/dts/Makefile
|
||||
+++ b/arch/arm/boot/dts/Makefile
|
||||
@@ -129,6 +129,7 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \
|
||||
@@ -128,6 +128,7 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \
|
||||
bcm47094-luxul-xwr-3150-v1.dtb \
|
||||
bcm47094-netgear-r8500.dtb \
|
||||
bcm47094-phicomm-k3.dtb \
|
||||
|
||||
@ -1162,7 +1162,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
|
||||
--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-dwc-qos-eth.c
|
||||
+++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-dwc-qos-eth.c
|
||||
@@ -444,7 +444,7 @@ static int dwc_eth_dwmac_probe(struct pl
|
||||
@@ -445,7 +445,7 @@ static int dwc_eth_dwmac_probe(struct pl
|
||||
if (IS_ERR(stmmac_res.addr))
|
||||
return PTR_ERR(stmmac_res.addr);
|
||||
|
||||
@ -1360,7 +1360,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
int irq;
|
||||
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
|
||||
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
|
||||
@@ -4988,7 +4988,7 @@ int stmmac_dvr_probe(struct device *devi
|
||||
@@ -4987,7 +4987,7 @@ int stmmac_dvr_probe(struct device *devi
|
||||
priv->wol_irq = res->wol_irq;
|
||||
priv->lpi_irq = res->lpi_irq;
|
||||
|
||||
|
||||
@ -42,7 +42,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
if (ret)
|
||||
return ret;
|
||||
}
|
||||
@@ -2105,7 +2112,12 @@ static int qca8k_resume(struct device *d
|
||||
@@ -2124,7 +2131,12 @@ static int qca8k_resume(struct device *d
|
||||
static SIMPLE_DEV_PM_OPS(qca8k_pm_ops,
|
||||
qca8k_suspend, qca8k_resume);
|
||||
|
||||
@ -56,7 +56,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
.id = QCA8K_ID_QCA8327,
|
||||
};
|
||||
|
||||
@@ -2114,7 +2126,8 @@ static const struct qca8k_match_data qca
|
||||
@@ -2133,7 +2145,8 @@ static const struct qca8k_match_data qca
|
||||
};
|
||||
|
||||
static const struct of_device_id qca8k_of_match[] = {
|
||||
|
||||
@ -218,7 +218,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
mask);
|
||||
}
|
||||
|
||||
@@ -1916,11 +1911,11 @@ qca8k_port_vlan_filtering(struct dsa_swi
|
||||
@@ -1935,11 +1930,11 @@ qca8k_port_vlan_filtering(struct dsa_swi
|
||||
|
||||
if (vlan_filtering) {
|
||||
ret = qca8k_rmw(priv, QCA8K_PORT_LOOKUP_CTRL(port),
|
||||
@ -232,7 +232,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
QCA8K_PORT_LOOKUP_VLAN_MODE_NONE);
|
||||
}
|
||||
|
||||
@@ -1944,10 +1939,9 @@ qca8k_port_vlan_add(struct dsa_switch *d
|
||||
@@ -1963,10 +1958,9 @@ qca8k_port_vlan_add(struct dsa_switch *d
|
||||
}
|
||||
|
||||
if (pvid) {
|
||||
@ -245,7 +245,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
@@ -2041,7 +2035,7 @@ static int qca8k_read_switch_id(struct q
|
||||
@@ -2060,7 +2054,7 @@ static int qca8k_read_switch_id(struct q
|
||||
if (ret < 0)
|
||||
return -ENODEV;
|
||||
|
||||
@ -254,7 +254,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
if (id != data->id) {
|
||||
dev_err(priv->dev, "Switch id detected %x but expected %x", id, data->id);
|
||||
return -ENODEV;
|
||||
@@ -2050,7 +2044,7 @@ static int qca8k_read_switch_id(struct q
|
||||
@@ -2069,7 +2063,7 @@ static int qca8k_read_switch_id(struct q
|
||||
priv->switch_id = id;
|
||||
|
||||
/* Save revision to communicate to the internal PHY driver */
|
||||
|
||||
@ -29,7 +29,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
ret = qca8k_setup_mdio_bus(priv);
|
||||
if (ret)
|
||||
return ret;
|
||||
@@ -2077,6 +2071,14 @@ qca8k_sw_probe(struct mdio_device *mdiod
|
||||
@@ -2096,6 +2090,14 @@ qca8k_sw_probe(struct mdio_device *mdiod
|
||||
gpiod_set_value_cansleep(priv->reset_gpio, 0);
|
||||
}
|
||||
|
||||
|
||||
@ -80,7 +80,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
}
|
||||
|
||||
static int
|
||||
@@ -2154,14 +2168,17 @@ static SIMPLE_DEV_PM_OPS(qca8k_pm_ops,
|
||||
@@ -2173,14 +2187,17 @@ static SIMPLE_DEV_PM_OPS(qca8k_pm_ops,
|
||||
static const struct qca8k_match_data qca8327 = {
|
||||
.id = QCA8K_ID_QCA8327,
|
||||
.reduced_package = true,
|
||||
|
||||
@ -33,7 +33,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
static int
|
||||
qca8k_port_enable(struct dsa_switch *ds, int port,
|
||||
struct phy_device *phy)
|
||||
@@ -1998,6 +2008,7 @@ static const struct dsa_switch_ops qca8k
|
||||
@@ -2017,6 +2027,7 @@ static const struct dsa_switch_ops qca8k
|
||||
.port_stp_state_set = qca8k_port_stp_state_set,
|
||||
.port_bridge_join = qca8k_port_bridge_join,
|
||||
.port_bridge_leave = qca8k_port_bridge_leave,
|
||||
|
||||
@ -56,7 +56,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
qca8k_port_enable(struct dsa_switch *ds, int port,
|
||||
struct phy_device *phy)
|
||||
{
|
||||
@@ -1999,6 +2023,7 @@ static const struct dsa_switch_ops qca8k
|
||||
@@ -2018,6 +2042,7 @@ static const struct dsa_switch_ops qca8k
|
||||
.get_strings = qca8k_get_strings,
|
||||
.get_ethtool_stats = qca8k_get_ethtool_stats,
|
||||
.get_sset_count = qca8k_get_sset_count,
|
||||
|
||||
@ -102,7 +102,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
qca8k_vlan_access(struct qca8k_priv *priv, enum qca8k_vlan_cmd cmd, u16 vid)
|
||||
{
|
||||
u32 reg;
|
||||
@@ -1930,6 +2005,28 @@ qca8k_port_fdb_dump(struct dsa_switch *d
|
||||
@@ -1949,6 +2024,28 @@ qca8k_port_fdb_dump(struct dsa_switch *d
|
||||
}
|
||||
|
||||
static int
|
||||
@ -131,7 +131,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
qca8k_port_vlan_filtering(struct dsa_switch *ds, int port, bool vlan_filtering,
|
||||
struct netlink_ext_ack *extack)
|
||||
{
|
||||
@@ -2037,6 +2134,8 @@ static const struct dsa_switch_ops qca8k
|
||||
@@ -2056,6 +2153,8 @@ static const struct dsa_switch_ops qca8k
|
||||
.port_fdb_add = qca8k_port_fdb_add,
|
||||
.port_fdb_del = qca8k_port_fdb_del,
|
||||
.port_fdb_dump = qca8k_port_fdb_dump,
|
||||
|
||||
@ -17,7 +17,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
|
||||
--- a/drivers/net/dsa/qca8k.c
|
||||
+++ b/drivers/net/dsa/qca8k.c
|
||||
@@ -2027,6 +2027,99 @@ qca8k_port_mdb_del(struct dsa_switch *ds
|
||||
@@ -2046,6 +2046,99 @@ qca8k_port_mdb_del(struct dsa_switch *ds
|
||||
}
|
||||
|
||||
static int
|
||||
@ -117,7 +117,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
qca8k_port_vlan_filtering(struct dsa_switch *ds, int port, bool vlan_filtering,
|
||||
struct netlink_ext_ack *extack)
|
||||
{
|
||||
@@ -2136,6 +2229,8 @@ static const struct dsa_switch_ops qca8k
|
||||
@@ -2155,6 +2248,8 @@ static const struct dsa_switch_ops qca8k
|
||||
.port_fdb_dump = qca8k_port_fdb_dump,
|
||||
.port_mdb_add = qca8k_port_mdb_add,
|
||||
.port_mdb_del = qca8k_port_mdb_del,
|
||||
|
||||
@ -35,7 +35,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -2207,6 +2210,178 @@ qca8k_get_tag_protocol(struct dsa_switch
|
||||
@@ -2226,6 +2229,178 @@ qca8k_get_tag_protocol(struct dsa_switch
|
||||
return DSA_TAG_PROTO_QCA;
|
||||
}
|
||||
|
||||
@ -214,7 +214,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
static const struct dsa_switch_ops qca8k_switch_ops = {
|
||||
.get_tag_protocol = qca8k_get_tag_protocol,
|
||||
.setup = qca8k_setup,
|
||||
@@ -2240,6 +2415,8 @@ static const struct dsa_switch_ops qca8k
|
||||
@@ -2259,6 +2434,8 @@ static const struct dsa_switch_ops qca8k
|
||||
.phylink_mac_link_down = qca8k_phylink_mac_link_down,
|
||||
.phylink_mac_link_up = qca8k_phylink_mac_link_up,
|
||||
.get_phy_flags = qca8k_get_phy_flags,
|
||||
|
||||
@ -19,7 +19,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
|
||||
--- a/drivers/net/dsa/qca8k.c
|
||||
+++ b/drivers/net/dsa/qca8k.c
|
||||
@@ -2232,7 +2232,7 @@ qca8k_lag_can_offload(struct dsa_switch
|
||||
@@ -2251,7 +2251,7 @@ qca8k_lag_can_offload(struct dsa_switch
|
||||
if (info->tx_type != NETDEV_LAG_TX_TYPE_HASH)
|
||||
return false;
|
||||
|
||||
@ -28,7 +28,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
info->hash_type != NETDEV_LAG_HASH_L23)
|
||||
return false;
|
||||
|
||||
@@ -2246,8 +2246,8 @@ qca8k_lag_setup_hash(struct dsa_switch *
|
||||
@@ -2265,8 +2265,8 @@ qca8k_lag_setup_hash(struct dsa_switch *
|
||||
{
|
||||
struct qca8k_priv *priv = ds->priv;
|
||||
bool unique_lag = true;
|
||||
|
||||
@ -26,7 +26,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
|
||||
--- a/drivers/net/dsa/qca8k.c
|
||||
+++ b/drivers/net/dsa/qca8k.c
|
||||
@@ -2382,6 +2382,20 @@ qca8k_port_lag_leave(struct dsa_switch *
|
||||
@@ -2401,6 +2401,20 @@ qca8k_port_lag_leave(struct dsa_switch *
|
||||
return qca8k_lag_refresh_portmap(ds, port, lag, true);
|
||||
}
|
||||
|
||||
@ -47,7 +47,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
static const struct dsa_switch_ops qca8k_switch_ops = {
|
||||
.get_tag_protocol = qca8k_get_tag_protocol,
|
||||
.setup = qca8k_setup,
|
||||
@@ -2417,6 +2431,7 @@ static const struct dsa_switch_ops qca8k
|
||||
@@ -2436,6 +2450,7 @@ static const struct dsa_switch_ops qca8k
|
||||
.get_phy_flags = qca8k_get_phy_flags,
|
||||
.port_lag_join = qca8k_port_lag_join,
|
||||
.port_lag_leave = qca8k_port_lag_leave,
|
||||
|
||||
@ -276,7 +276,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
qca8k_split_addr(reg, &r1, &r2, &page);
|
||||
|
||||
mutex_lock_nested(&bus->mdio_lock, MDIO_MUTEX_NESTED);
|
||||
@@ -2393,7 +2591,30 @@ qca8k_master_change(struct dsa_switch *d
|
||||
@@ -2412,7 +2610,30 @@ qca8k_master_change(struct dsa_switch *d
|
||||
if (dp->index != 0)
|
||||
return;
|
||||
|
||||
@ -307,7 +307,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
}
|
||||
|
||||
static const struct dsa_switch_ops qca8k_switch_ops = {
|
||||
@@ -2432,6 +2653,7 @@ static const struct dsa_switch_ops qca8k
|
||||
@@ -2451,6 +2672,7 @@ static const struct dsa_switch_ops qca8k
|
||||
.port_lag_join = qca8k_port_lag_join,
|
||||
.port_lag_leave = qca8k_port_lag_leave,
|
||||
.master_state_change = qca8k_master_change,
|
||||
@ -315,7 +315,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
};
|
||||
|
||||
static int qca8k_read_switch_id(struct qca8k_priv *priv)
|
||||
@@ -2511,6 +2733,9 @@ qca8k_sw_probe(struct mdio_device *mdiod
|
||||
@@ -2530,6 +2752,9 @@ qca8k_sw_probe(struct mdio_device *mdiod
|
||||
if (!priv->ds)
|
||||
return -ENOMEM;
|
||||
|
||||
|
||||
@ -147,7 +147,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
match_data = of_device_get_match_data(priv->dev);
|
||||
|
||||
for (i = 0; i < match_data->mib_count; i++) {
|
||||
@@ -2592,9 +2690,11 @@ qca8k_master_change(struct dsa_switch *d
|
||||
@@ -2611,9 +2709,11 @@ qca8k_master_change(struct dsa_switch *d
|
||||
return;
|
||||
|
||||
mutex_lock(&priv->mgmt_eth_data.mutex);
|
||||
@ -159,7 +159,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
mutex_unlock(&priv->mgmt_eth_data.mutex);
|
||||
}
|
||||
|
||||
@@ -2608,6 +2708,7 @@ static int qca8k_connect_tag_protocol(st
|
||||
@@ -2627,6 +2727,7 @@ static int qca8k_connect_tag_protocol(st
|
||||
tagger_data = ds->tagger_data;
|
||||
|
||||
tagger_data->rw_reg_ack_handler = qca8k_rw_reg_ack_handler;
|
||||
@ -167,7 +167,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
|
||||
break;
|
||||
default:
|
||||
@@ -2736,6 +2837,9 @@ qca8k_sw_probe(struct mdio_device *mdiod
|
||||
@@ -2755,6 +2856,9 @@ qca8k_sw_probe(struct mdio_device *mdiod
|
||||
mutex_init(&priv->mgmt_eth_data.mutex);
|
||||
init_completion(&priv->mgmt_eth_data.rw_done);
|
||||
|
||||
|
||||
@ -172,7 +172,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
|
||||
if (ret < 0)
|
||||
return 0xffff;
|
||||
@@ -3041,6 +3037,8 @@ qca8k_sw_probe(struct mdio_device *mdiod
|
||||
@@ -3060,6 +3056,8 @@ qca8k_sw_probe(struct mdio_device *mdiod
|
||||
return PTR_ERR(priv->regmap);
|
||||
}
|
||||
|
||||
|
||||
@ -139,7 +139,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
|
||||
mutex_unlock(&bus->mdio_lock);
|
||||
|
||||
@@ -3038,6 +3073,8 @@ qca8k_sw_probe(struct mdio_device *mdiod
|
||||
@@ -3057,6 +3092,8 @@ qca8k_sw_probe(struct mdio_device *mdiod
|
||||
}
|
||||
|
||||
priv->mdio_cache.page = 0xffff;
|
||||
|
||||
@ -115,7 +115,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
.previous
|
||||
--- a/scripts/Makefile.build
|
||||
+++ b/scripts/Makefile.build
|
||||
@@ -367,7 +367,7 @@ targets += $(lib-y) $(always-y) $(MAKECM
|
||||
@@ -373,7 +373,7 @@ targets += $(lib-y) $(always-y) $(MAKECM
|
||||
# Linker scripts preprocessor (.lds.S -> .lds)
|
||||
# ---------------------------------------------------------------------------
|
||||
quiet_cmd_cpp_lds_S = LDS $@
|
||||
|
||||
@ -120,7 +120,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
#ifdef CONFIG_MODVERSIONS
|
||||
|
||||
@@ -3227,9 +3229,11 @@ static int setup_load_info(struct load_i
|
||||
@@ -3266,9 +3268,11 @@ static int setup_load_info(struct load_i
|
||||
|
||||
static int check_modinfo(struct module *mod, struct load_info *info, int flags)
|
||||
{
|
||||
@ -133,7 +133,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
if (flags & MODULE_INIT_IGNORE_VERMAGIC)
|
||||
modmagic = NULL;
|
||||
|
||||
@@ -3250,6 +3254,7 @@ static int check_modinfo(struct module *
|
||||
@@ -3289,6 +3293,7 @@ static int check_modinfo(struct module *
|
||||
mod->name);
|
||||
add_taint_module(mod, TAINT_OOT_MODULE, LOCKDEP_STILL_OK);
|
||||
}
|
||||
|
||||
@ -7,8 +7,6 @@ Subject: [PATCH] scripts/Kconfig: Kconfig exit
|
||||
scripts/kconfig/conf.c | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/scripts/kconfig/conf.c b/scripts/kconfig/conf.c
|
||||
index 5d84b44a2a2a..d279d95aac92 100644
|
||||
--- a/scripts/kconfig/conf.c
|
||||
+++ b/scripts/kconfig/conf.c
|
||||
@@ -435,6 +435,8 @@ static int conf_sym(struct menu *menu)
|
||||
@ -20,5 +18,3 @@ index 5d84b44a2a2a..d279d95aac92 100644
|
||||
newval = oldval;
|
||||
break;
|
||||
case '?':
|
||||
--
|
||||
|
||||
|
||||
@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
"__kstrtabns_" #sym ": \n" \
|
||||
--- a/include/asm-generic/export.h
|
||||
+++ b/include/asm-generic/export.h
|
||||
@@ -26,6 +26,12 @@ struct kernel_symbol {
|
||||
@@ -26,6 +26,12 @@
|
||||
#endif
|
||||
.endm
|
||||
|
||||
@ -104,7 +104,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
/*
|
||||
* note on .section use: we specify progbits since usage of the "M" (SHF_MERGE)
|
||||
* section flag requires it. Use '%progbits' instead of '@progbits' since the
|
||||
@@ -42,7 +42,7 @@ struct kernel_symbol {
|
||||
@@ -39,7 +45,7 @@
|
||||
__ksymtab_\name:
|
||||
__put \val, __kstrtab_\name
|
||||
.previous
|
||||
@ -115,7 +115,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
.previous
|
||||
--- a/scripts/Makefile.build
|
||||
+++ b/scripts/Makefile.build
|
||||
@@ -396,7 +396,7 @@ targets += $(real-dtb-y) $(lib-y) $(alwa
|
||||
@@ -397,7 +397,7 @@ targets += $(real-dtb-y) $(lib-y) $(alwa
|
||||
# Linker scripts preprocessor (.lds.S -> .lds)
|
||||
# ---------------------------------------------------------------------------
|
||||
quiet_cmd_cpp_lds_S = LDS $@
|
||||
|
||||
@ -7,8 +7,6 @@ Subject: [PATCH] net/ipv4: add udp tunnel tristate string
|
||||
net/ipv4/Kconfig | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/net/ipv4/Kconfig b/net/ipv4/Kconfig
|
||||
index 87983e70f03f..426b44d39277 100644
|
||||
--- a/net/ipv4/Kconfig
|
||||
+++ b/net/ipv4/Kconfig
|
||||
@@ -315,7 +315,7 @@ config NET_IPVTI
|
||||
@ -20,5 +18,3 @@ index 87983e70f03f..426b44d39277 100644
|
||||
select NET_IP_TUNNEL
|
||||
default n
|
||||
|
||||
--
|
||||
|
||||
|
||||
@ -8,8 +8,6 @@ Subject: [PATCH] Kconfig: add tristate for OID and ASNI string
|
||||
lib/Kconfig | 2 +-
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/init/Kconfig b/init/Kconfig
|
||||
index 5a2514bbb11d..32ba9490a6e4 100644
|
||||
--- a/init/Kconfig
|
||||
+++ b/init/Kconfig
|
||||
@@ -2384,7 +2384,7 @@ config PADATA
|
||||
@ -21,8 +19,6 @@ index 5a2514bbb11d..32ba9490a6e4 100644
|
||||
help
|
||||
Build a simple ASN.1 grammar compiler that produces a bytecode output
|
||||
that can be interpreted by the ASN.1 stream decoder and used to
|
||||
diff --git a/lib/Kconfig b/lib/Kconfig
|
||||
index d6c6cfd1fac9..6595c53abd3c 100644
|
||||
--- a/lib/Kconfig
|
||||
+++ b/lib/Kconfig
|
||||
@@ -614,7 +614,7 @@ config LIBFDT
|
||||
@ -34,5 +30,3 @@ index d6c6cfd1fac9..6595c53abd3c 100644
|
||||
help
|
||||
Enable fast lookup object identifier registry.
|
||||
|
||||
--
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user