Merge branch 'openwrt:master' into master
This commit is contained in:
commit
6f9f730d5e
254 changed files with 4820 additions and 6996 deletions
|
@ -469,7 +469,8 @@ config KERNEL_AIO
|
||||||
|
|
||||||
config KERNEL_IO_URING
|
config KERNEL_IO_URING
|
||||||
bool "Compile the kernel with io_uring support"
|
bool "Compile the kernel with io_uring support"
|
||||||
default y if !SMALL_FLASH
|
depends on !SMALL_FLASH
|
||||||
|
default y if (x86_64 || aarch64)
|
||||||
|
|
||||||
config KERNEL_FHANDLE
|
config KERNEL_FHANDLE
|
||||||
bool "Compile the kernel with support for fhandle syscalls"
|
bool "Compile the kernel with support for fhandle syscalls"
|
||||||
|
|
|
@ -26,6 +26,8 @@ AM_TOOL_PATHS:= \
|
||||||
AUTOPOINT=true \
|
AUTOPOINT=true \
|
||||||
GTKDOCIZE=true
|
GTKDOCIZE=true
|
||||||
|
|
||||||
|
AM_TOOL_PATHS_FAKE:=$(subst = ,=,$(patsubst "%,"$(TRUE)",$(subst =,= ",$(AM_TOOL_PATHS))))
|
||||||
|
|
||||||
# 1: build dir
|
# 1: build dir
|
||||||
# 2: remove files
|
# 2: remove files
|
||||||
# 3: automake paths
|
# 3: automake paths
|
||||||
|
|
|
@ -126,6 +126,13 @@ define Build/append-string
|
||||||
echo -n $(1) >> $@
|
echo -n $(1) >> $@
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
define Build/append-md5sum-ascii-salted
|
||||||
|
cp $@ $@.salted
|
||||||
|
echo -ne $(1) >> $@.salted
|
||||||
|
$(STAGING_DIR_HOST)/bin/mkhash md5 $@.salted | head -c32 >> $@
|
||||||
|
rm $@.salted
|
||||||
|
endef
|
||||||
|
|
||||||
define Build/append-ubi
|
define Build/append-ubi
|
||||||
sh $(TOPDIR)/scripts/ubinize-image.sh \
|
sh $(TOPDIR)/scripts/ubinize-image.sh \
|
||||||
$(if $(UBOOTENV_IN_UBI),--uboot-env) \
|
$(if $(UBOOTENV_IN_UBI),--uboot-env) \
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
LINUX_VERSION-5.10 = .178
|
LINUX_VERSION-5.10 = .179
|
||||||
LINUX_KERNEL_HASH-5.10.178 = 1acfade3715e560f00fb30615d5471e24b3940b549381558787aee9734e7a8af
|
LINUX_KERNEL_HASH-5.10.179 = 1bbd445c154b053eea46acc883be548a98179988a9ed3a0b81bddfbf30a37e29
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
LINUX_VERSION-5.15 = .108
|
LINUX_VERSION-5.15 = .110
|
||||||
LINUX_KERNEL_HASH-5.15.108 = 8beb69ada46f1cbca2f4cf901ec078846035c1cd925d9471422f65aff74243ba
|
LINUX_KERNEL_HASH-5.15.110 = 9829fcc77b9978dce97a26980dec445caf2410024696625dbb2314ead4830b5b
|
||||||
|
|
|
@ -8,6 +8,13 @@ include $(INCLUDE_DIR)/prereq.mk
|
||||||
SHELL:=sh
|
SHELL:=sh
|
||||||
PKG_NAME:=Build dependency
|
PKG_NAME:=Build dependency
|
||||||
|
|
||||||
|
$(eval $(call TestHostCommand,true, \
|
||||||
|
Please install GNU 'coreutils', \
|
||||||
|
$(TRUE)))
|
||||||
|
|
||||||
|
$(eval $(call TestHostCommand,false, \
|
||||||
|
Please install GNU 'coreutils', \
|
||||||
|
$(FALSE); [ $$$$$$$$? = 1 ] && $(TRUE)))
|
||||||
|
|
||||||
# Required for the toolchain
|
# Required for the toolchain
|
||||||
$(eval $(call TestHostCommand,working-make, \
|
$(eval $(call TestHostCommand,working-make, \
|
||||||
|
|
|
@ -63,6 +63,18 @@ define Trusted-Firmware-A/ls1012a-frwy-sdboot
|
||||||
BOOT_MODE:=qspi
|
BOOT_MODE:=qspi
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
define Trusted-Firmware-A/ls1028a-rdb
|
||||||
|
TITLE:=NXP LS1028ARDB
|
||||||
|
PLAT:=ls1028ardb
|
||||||
|
BOOT_MODE:=flexspi_nor
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Trusted-Firmware-A/ls1028a-rdb-sdboot
|
||||||
|
TITLE:=NXP LS1028ARDB SD Boot
|
||||||
|
PLAT:=ls1028ardb
|
||||||
|
BOOT_MODE:=sd
|
||||||
|
endef
|
||||||
|
|
||||||
define Trusted-Firmware-A/ls1043a-rdb
|
define Trusted-Firmware-A/ls1043a-rdb
|
||||||
NAME:=NXP LS1043ARDB
|
NAME:=NXP LS1043ARDB
|
||||||
PLAT:=ls1043ardb
|
PLAT:=ls1043ardb
|
||||||
|
@ -133,6 +145,8 @@ TFA_TARGETS := \
|
||||||
ls1012a-frdm \
|
ls1012a-frdm \
|
||||||
ls1012a-rdb \
|
ls1012a-rdb \
|
||||||
ls1012a-frwy-sdboot \
|
ls1012a-frwy-sdboot \
|
||||||
|
ls1028a-rdb \
|
||||||
|
ls1028a-rdb-sdboot \
|
||||||
ls1043a-rdb \
|
ls1043a-rdb \
|
||||||
ls1043a-rdb-sdboot \
|
ls1043a-rdb-sdboot \
|
||||||
ls1046a-frwy \
|
ls1046a-frwy \
|
||||||
|
|
|
@ -62,7 +62,8 @@ h3c,tx1801-plus|\
|
||||||
h3c,tx1806|\
|
h3c,tx1806|\
|
||||||
jcg,q20|\
|
jcg,q20|\
|
||||||
linksys,e7350|\
|
linksys,e7350|\
|
||||||
netgear,wax202)
|
netgear,wax202|\
|
||||||
|
zyxel,wsm20)
|
||||||
ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x20000" "0x20000"
|
ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x20000" "0x20000"
|
||||||
;;
|
;;
|
||||||
haier,har-20s2u1|\
|
haier,har-20s2u1|\
|
||||||
|
@ -86,6 +87,7 @@ linksys,ea8100-v2|\
|
||||||
mts,wg430223)
|
mts,wg430223)
|
||||||
ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x1000" "0x20000"
|
ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x1000" "0x20000"
|
||||||
;;
|
;;
|
||||||
|
snr,snr-cpe-me1|\
|
||||||
snr,snr-cpe-me2-sfp|\
|
snr,snr-cpe-me2-sfp|\
|
||||||
snr,cpe-w4n-mt)
|
snr,cpe-w4n-mt)
|
||||||
idx="$(find_mtd_index uboot-env)"
|
idx="$(find_mtd_index uboot-env)"
|
||||||
|
|
|
@ -45,6 +45,16 @@ define U-Boot/fsl_ls1012a-frwy-sdboot
|
||||||
ENV_SIZE:=0x10000
|
ENV_SIZE:=0x10000
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
define U-Boot/fsl_ls1028a-rdb
|
||||||
|
NAME:=NXP LS1028ARDB
|
||||||
|
UBOOT_CONFIG:=ls1028ardb_tfa
|
||||||
|
endef
|
||||||
|
|
||||||
|
define U-Boot/fsl_ls1028a-rdb-sdboot
|
||||||
|
NAME:=NXP LS1028ARDB SD Card Boot
|
||||||
|
UBOOT_CONFIG:=ls1028ardb_tfa
|
||||||
|
endef
|
||||||
|
|
||||||
define U-Boot/fsl_ls1043a-rdb
|
define U-Boot/fsl_ls1043a-rdb
|
||||||
NAME:=NXP LS1043ARDB
|
NAME:=NXP LS1043ARDB
|
||||||
UBOOT_CONFIG:=ls1043ardb_tfa
|
UBOOT_CONFIG:=ls1043ardb_tfa
|
||||||
|
@ -127,6 +137,8 @@ UBOOT_TARGETS := \
|
||||||
fsl_ls1012a-frdm \
|
fsl_ls1012a-frdm \
|
||||||
fsl_ls1012a-rdb \
|
fsl_ls1012a-rdb \
|
||||||
fsl_ls1012a-frwy-sdboot \
|
fsl_ls1012a-frwy-sdboot \
|
||||||
|
fsl_ls1028a-rdb \
|
||||||
|
fsl_ls1028a-rdb-sdboot \
|
||||||
fsl_ls1043a-rdb \
|
fsl_ls1043a-rdb \
|
||||||
fsl_ls1043a-rdb-sdboot \
|
fsl_ls1043a-rdb-sdboot \
|
||||||
fsl_ls1046a-frwy \
|
fsl_ls1046a-frwy \
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
fdtaddr=0x8f000000
|
||||||
|
loadaddr=0x81000000
|
||||||
|
fdt_high=0x8fffffff
|
||||||
|
initrd_high=0xffffffffffffffff
|
||||||
|
hwconfig=fsl_ddr:bank_intlv=auto
|
||||||
|
sd_boot=ext4load mmc 0:1 $loadaddr fitImage;bootm $loadaddr
|
||||||
|
bootargs=root=/dev/mmcblk0p2 rw rootwait rootfstype=squashfs,f2fs noinitrd earlycon=uart8250,mmio,0x21c0500 console=ttyS0,115200
|
||||||
|
bootcmd=echo starting openwrt ...;run sd_boot
|
||||||
|
bootdelay=3
|
||||||
|
fsl_bootcmd_mcinitcmd_set=y
|
|
@ -0,0 +1,9 @@
|
||||||
|
fdtaddr=0x8f000000
|
||||||
|
loadaddr=0x81000000
|
||||||
|
bootm_size=0x10000000
|
||||||
|
hwconfig=fsl_ddr:bank_intlv=auto
|
||||||
|
qspi_boot=sf probe 0:0;sf read $loadaddr 1000000 1000000;bootm $loadaddr
|
||||||
|
bootargs=rootfstype=squashfs,jffs2 noinitrd earlycon=uart8250,mmio,0x21c0500 console=ttyS0,115200 mtdparts=20c0000.spi:1m(bl2),4m(fip),1m(u-boot-env),128k(secure-boot-headers),48m@0x1000000(firmware)
|
||||||
|
bootcmd=echo starting openwrt ...;run qspi_boot
|
||||||
|
bootdelay=3
|
||||||
|
fsl_bootcmd_mcinitcmd_set=y
|
|
@ -0,0 +1,33 @@
|
||||||
|
Index: uboot-layerscape-lf-6.1.1-1.0.0/arch/arm/cpu/armv8/sec_firmware.c
|
||||||
|
===================================================================
|
||||||
|
--- uboot-layerscape-lf-6.1.1-1.0.0.orig/arch/arm/cpu/armv8/sec_firmware.c
|
||||||
|
+++ uboot-layerscape-lf-6.1.1-1.0.0/arch/arm/cpu/armv8/sec_firmware.c
|
||||||
|
@@ -473,12 +473,6 @@ int fdt_fixup_kaslr(void *fdt)
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
- ret = sec_firmware_get_random(rand, 8);
|
||||||
|
- if (ret < 0) {
|
||||||
|
- printf("WARNING: No random number to set kaslr-seed\n");
|
||||||
|
- return 0;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
err = fdt_check_header(fdt);
|
||||||
|
if (err < 0) {
|
||||||
|
printf("fdt_chosen: %s\n", fdt_strerror(err));
|
||||||
|
@@ -490,6 +484,15 @@ int fdt_fixup_kaslr(void *fdt)
|
||||||
|
if (nodeoffset < 0)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
+ if (fdt_find_or_add_subnode(fdt, nodeoffset, "kaslr-seed"))
|
||||||
|
+ return 0;
|
||||||
|
+
|
||||||
|
+ ret = sec_firmware_get_random(rand, 8);
|
||||||
|
+ if (ret < 0) {
|
||||||
|
+ printf("WARNING: No random number to set kaslr-seed\n");
|
||||||
|
+ return 0;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
err = fdt_setprop(fdt, nodeoffset, "kaslr-seed", rand,
|
||||||
|
sizeof(rand));
|
||||||
|
if (err < 0) {
|
|
@ -0,0 +1,8 @@
|
||||||
|
--- a/configs/ls1028ardb_tfa_defconfig
|
||||||
|
+++ b/configs/ls1028ardb_tfa_defconfig
|
||||||
|
@@ -1,5 +1,4 @@
|
||||||
|
CONFIG_ARM=y
|
||||||
|
-CONFIG_GIC_V3_ITS=y
|
||||||
|
CONFIG_TARGET_LS1028ARDB=y
|
||||||
|
CONFIG_TFABOOT=y
|
||||||
|
CONFIG_SYS_MALLOC_F_LEN=0x6000
|
|
@ -205,9 +205,9 @@ Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>
|
||||||
+#endif
|
+#endif
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ ret = mtd_read(mtd, off, sizeof(image_header_t), &retlen,
|
+ ret = mtd_read(mtd, off, sizeof(struct legacy_img_hdr), &retlen,
|
||||||
+ (void *)loadaddr);
|
+ (void *)loadaddr);
|
||||||
+ if (ret || retlen != sizeof(image_header_t)) {
|
+ if (ret || retlen != sizeof(struct legacy_img_hdr)) {
|
||||||
+ printf("Failed to read NMBM at offset 0x%08llx\n", off);
|
+ printf("Failed to read NMBM at offset 0x%08llx\n", off);
|
||||||
+ return CMD_RET_FAILURE;
|
+ return CMD_RET_FAILURE;
|
||||||
+ }
|
+ }
|
||||||
|
@ -215,7 +215,7 @@ Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>
|
||||||
+ switch (genimg_get_format((void *)loadaddr)) {
|
+ switch (genimg_get_format((void *)loadaddr)) {
|
||||||
+#if defined(CONFIG_LEGACY_IMAGE_FORMAT)
|
+#if defined(CONFIG_LEGACY_IMAGE_FORMAT)
|
||||||
+ case IMAGE_FORMAT_LEGACY:
|
+ case IMAGE_FORMAT_LEGACY:
|
||||||
+ size = image_get_image_size((image_header_t *)loadaddr);
|
+ size = image_get_image_size((struct legacy_img_hdr *)loadaddr);
|
||||||
+ image_name = "legacy";
|
+ image_name = "legacy";
|
||||||
+ break;
|
+ break;
|
||||||
+#endif
|
+#endif
|
||||||
|
|
|
@ -163,7 +163,7 @@ Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>
|
||||||
+CONFIG_SYS_ARCH_TIMER=y
|
+CONFIG_SYS_ARCH_TIMER=y
|
||||||
+CONFIG_SYS_THUMB_BUILD=y
|
+CONFIG_SYS_THUMB_BUILD=y
|
||||||
+CONFIG_ARCH_MEDIATEK=y
|
+CONFIG_ARCH_MEDIATEK=y
|
||||||
+CONFIG_SYS_TEXT_BASE=0x41e00000
|
+CONFIG_TEXT_BASE=0x41e00000
|
||||||
+CONFIG_SYS_MALLOC_F_LEN=0x4000
|
+CONFIG_SYS_MALLOC_F_LEN=0x4000
|
||||||
+CONFIG_NR_DRAM_BANKS=1
|
+CONFIG_NR_DRAM_BANKS=1
|
||||||
+CONFIG_ENV_SIZE=0x20000
|
+CONFIG_ENV_SIZE=0x20000
|
||||||
|
|
|
@ -167,7 +167,7 @@ Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>
|
||||||
+CONFIG_ARM=y
|
+CONFIG_ARM=y
|
||||||
+CONFIG_POSITION_INDEPENDENT=y
|
+CONFIG_POSITION_INDEPENDENT=y
|
||||||
+CONFIG_ARCH_MEDIATEK=y
|
+CONFIG_ARCH_MEDIATEK=y
|
||||||
+CONFIG_SYS_TEXT_BASE=0x41e00000
|
+CONFIG_TEXT_BASE=0x41e00000
|
||||||
+CONFIG_SYS_MALLOC_F_LEN=0x4000
|
+CONFIG_SYS_MALLOC_F_LEN=0x4000
|
||||||
+CONFIG_NR_DRAM_BANKS=1
|
+CONFIG_NR_DRAM_BANKS=1
|
||||||
+CONFIG_ENV_SIZE=0x20000
|
+CONFIG_ENV_SIZE=0x20000
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
+CONFIG_POSITION_INDEPENDENT=y
|
+CONFIG_POSITION_INDEPENDENT=y
|
||||||
+CONFIG_ARCH_MEDIATEK=y
|
+CONFIG_ARCH_MEDIATEK=y
|
||||||
+CONFIG_TARGET_MT7622=y
|
+CONFIG_TARGET_MT7622=y
|
||||||
+CONFIG_SYS_TEXT_BASE=0x41e00000
|
+CONFIG_TEXT_BASE=0x41e00000
|
||||||
+CONFIG_SYS_MALLOC_F_LEN=0x4000
|
+CONFIG_SYS_MALLOC_F_LEN=0x4000
|
||||||
+CONFIG_SYS_LOAD_ADDR=0x40080000
|
+CONFIG_SYS_LOAD_ADDR=0x40080000
|
||||||
+CONFIG_SYS_HAS_NONCACHED_MEMORY=y
|
+CONFIG_SYS_HAS_NONCACHED_MEMORY=y
|
||||||
|
@ -257,7 +257,7 @@
|
||||||
+CONFIG_POSITION_INDEPENDENT=y
|
+CONFIG_POSITION_INDEPENDENT=y
|
||||||
+CONFIG_ARCH_MEDIATEK=y
|
+CONFIG_ARCH_MEDIATEK=y
|
||||||
+CONFIG_TARGET_MT7622=y
|
+CONFIG_TARGET_MT7622=y
|
||||||
+CONFIG_SYS_TEXT_BASE=0x41e00000
|
+CONFIG_TEXT_BASE=0x41e00000
|
||||||
+CONFIG_SYS_MALLOC_F_LEN=0x4000
|
+CONFIG_SYS_MALLOC_F_LEN=0x4000
|
||||||
+CONFIG_SYS_LOAD_ADDR=0x40080000
|
+CONFIG_SYS_LOAD_ADDR=0x40080000
|
||||||
+CONFIG_SYS_HAS_NONCACHED_MEMORY=y
|
+CONFIG_SYS_HAS_NONCACHED_MEMORY=y
|
||||||
|
@ -469,7 +469,7 @@
|
||||||
+CONFIG_ARM=y
|
+CONFIG_ARM=y
|
||||||
+CONFIG_POSITION_INDEPENDENT=y
|
+CONFIG_POSITION_INDEPENDENT=y
|
||||||
+CONFIG_ARCH_MEDIATEK=y
|
+CONFIG_ARCH_MEDIATEK=y
|
||||||
+CONFIG_SYS_TEXT_BASE=0x41e00000
|
+CONFIG_TEXT_BASE=0x41e00000
|
||||||
+CONFIG_SYS_MALLOC_F_LEN=0x4000
|
+CONFIG_SYS_MALLOC_F_LEN=0x4000
|
||||||
+CONFIG_SYS_LOAD_ADDR=0x40080000
|
+CONFIG_SYS_LOAD_ADDR=0x40080000
|
||||||
+CONFIG_SYS_HAS_NONCACHED_MEMORY=y
|
+CONFIG_SYS_HAS_NONCACHED_MEMORY=y
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
+CONFIG_POSITION_INDEPENDENT=y
|
+CONFIG_POSITION_INDEPENDENT=y
|
||||||
+CONFIG_ARCH_MEDIATEK=y
|
+CONFIG_ARCH_MEDIATEK=y
|
||||||
+CONFIG_TARGET_MT7622=y
|
+CONFIG_TARGET_MT7622=y
|
||||||
+CONFIG_SYS_TEXT_BASE=0x41e00000
|
+CONFIG_TEXT_BASE=0x41e00000
|
||||||
+CONFIG_SYS_MALLOC_F_LEN=0x4000
|
+CONFIG_SYS_MALLOC_F_LEN=0x4000
|
||||||
+CONFIG_SYS_LOAD_ADDR=0x40080000
|
+CONFIG_SYS_LOAD_ADDR=0x40080000
|
||||||
+CONFIG_USE_DEFAULT_ENV_FILE=y
|
+CONFIG_USE_DEFAULT_ENV_FILE=y
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
+CONFIG_POSITION_INDEPENDENT=y
|
+CONFIG_POSITION_INDEPENDENT=y
|
||||||
+CONFIG_ARCH_MEDIATEK=y
|
+CONFIG_ARCH_MEDIATEK=y
|
||||||
+CONFIG_TARGET_MT7622=y
|
+CONFIG_TARGET_MT7622=y
|
||||||
+CONFIG_SYS_TEXT_BASE=0x41e00000
|
+CONFIG_TEXT_BASE=0x41e00000
|
||||||
+CONFIG_SYS_MALLOC_F_LEN=0x4000
|
+CONFIG_SYS_MALLOC_F_LEN=0x4000
|
||||||
+CONFIG_SYS_LOAD_ADDR=0x40080000
|
+CONFIG_SYS_LOAD_ADDR=0x40080000
|
||||||
+CONFIG_USE_DEFAULT_ENV_FILE=y
|
+CONFIG_USE_DEFAULT_ENV_FILE=y
|
||||||
|
|
|
@ -11,12 +11,12 @@
|
||||||
mt7986a-sd-rfb.dtb \
|
mt7986a-sd-rfb.dtb \
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/configs/mt7986a_bpi-r3-emmc_defconfig
|
+++ b/configs/mt7986a_bpi-r3-emmc_defconfig
|
||||||
@@ -0,0 +1,198 @@
|
@@ -0,0 +1,196 @@
|
||||||
+CONFIG_ARM=y
|
+CONFIG_ARM=y
|
||||||
+CONFIG_POSITION_INDEPENDENT=y
|
+CONFIG_POSITION_INDEPENDENT=y
|
||||||
+CONFIG_ARCH_MEDIATEK=y
|
+CONFIG_ARCH_MEDIATEK=y
|
||||||
+CONFIG_TARGET_MT7986=y
|
+CONFIG_TARGET_MT7986=y
|
||||||
+CONFIG_SYS_TEXT_BASE=0x41e00000
|
+CONFIG_TEXT_BASE=0x41e00000
|
||||||
+CONFIG_SYS_MALLOC_F_LEN=0x4000
|
+CONFIG_SYS_MALLOC_F_LEN=0x4000
|
||||||
+CONFIG_SYS_HAS_NONCACHED_MEMORY=y
|
+CONFIG_SYS_HAS_NONCACHED_MEMORY=y
|
||||||
+CONFIG_NR_DRAM_BANKS=1
|
+CONFIG_NR_DRAM_BANKS=1
|
||||||
|
@ -28,7 +28,6 @@
|
||||||
+CONFIG_DEBUG_UART_CLOCK=40000000
|
+CONFIG_DEBUG_UART_CLOCK=40000000
|
||||||
+CONFIG_DEBUG_UART=y
|
+CONFIG_DEBUG_UART=y
|
||||||
+CONFIG_SYS_LOAD_ADDR=0x46000000
|
+CONFIG_SYS_LOAD_ADDR=0x46000000
|
||||||
+CONFIG_NET_RANDOM_ETHADDR=y
|
|
||||||
+CONFIG_SMBIOS_PRODUCT_NAME=""
|
+CONFIG_SMBIOS_PRODUCT_NAME=""
|
||||||
+CONFIG_AUTOBOOT_KEYED=y
|
+CONFIG_AUTOBOOT_KEYED=y
|
||||||
+CONFIG_BOOTDELAY=30
|
+CONFIG_BOOTDELAY=30
|
||||||
|
@ -201,7 +200,6 @@
|
||||||
+CONFIG_SPI_FLASH_MTD=y
|
+CONFIG_SPI_FLASH_MTD=y
|
||||||
+CONFIG_SPI_FLASH_WINBOND=y
|
+CONFIG_SPI_FLASH_WINBOND=y
|
||||||
+# CONFIG_SPI_FLASH_USE_4K_SECTORS is not set
|
+# CONFIG_SPI_FLASH_USE_4K_SECTORS is not set
|
||||||
+CONFIG_CMD_MTD=y
|
|
||||||
+CONFIG_CMD_SF=y
|
+CONFIG_CMD_SF=y
|
||||||
+CONFIG_CMD_NAND=y
|
+CONFIG_CMD_NAND=y
|
||||||
+CONFIG_CMD_NAND_TRIMFFS=y
|
+CONFIG_CMD_NAND_TRIMFFS=y
|
||||||
|
@ -212,12 +210,12 @@
|
||||||
+CONFIG_SERVERIP="192.168.1.254"
|
+CONFIG_SERVERIP="192.168.1.254"
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/configs/mt7986a_bpi-r3-nor_defconfig
|
+++ b/configs/mt7986a_bpi-r3-nor_defconfig
|
||||||
@@ -0,0 +1,197 @@
|
@@ -0,0 +1,195 @@
|
||||||
+CONFIG_ARM=y
|
+CONFIG_ARM=y
|
||||||
+CONFIG_POSITION_INDEPENDENT=y
|
+CONFIG_POSITION_INDEPENDENT=y
|
||||||
+CONFIG_ARCH_MEDIATEK=y
|
+CONFIG_ARCH_MEDIATEK=y
|
||||||
+CONFIG_TARGET_MT7986=y
|
+CONFIG_TARGET_MT7986=y
|
||||||
+CONFIG_SYS_TEXT_BASE=0x41e00000
|
+CONFIG_TEXT_BASE=0x41e00000
|
||||||
+CONFIG_SYS_MALLOC_F_LEN=0x4000
|
+CONFIG_SYS_MALLOC_F_LEN=0x4000
|
||||||
+CONFIG_SYS_HAS_NONCACHED_MEMORY=y
|
+CONFIG_SYS_HAS_NONCACHED_MEMORY=y
|
||||||
+CONFIG_NR_DRAM_BANKS=1
|
+CONFIG_NR_DRAM_BANKS=1
|
||||||
|
@ -229,7 +227,6 @@
|
||||||
+CONFIG_DEBUG_UART_CLOCK=40000000
|
+CONFIG_DEBUG_UART_CLOCK=40000000
|
||||||
+CONFIG_DEBUG_UART=y
|
+CONFIG_DEBUG_UART=y
|
||||||
+CONFIG_SYS_LOAD_ADDR=0x46000000
|
+CONFIG_SYS_LOAD_ADDR=0x46000000
|
||||||
+CONFIG_NET_RANDOM_ETHADDR=y
|
|
||||||
+CONFIG_SMBIOS_PRODUCT_NAME=""
|
+CONFIG_SMBIOS_PRODUCT_NAME=""
|
||||||
+CONFIG_AUTOBOOT_KEYED=y
|
+CONFIG_AUTOBOOT_KEYED=y
|
||||||
+CONFIG_BOOTDELAY=30
|
+CONFIG_BOOTDELAY=30
|
||||||
|
@ -403,7 +400,6 @@
|
||||||
+CONFIG_SPI_FLASH_MTD=y
|
+CONFIG_SPI_FLASH_MTD=y
|
||||||
+CONFIG_SPI_FLASH_WINBOND=y
|
+CONFIG_SPI_FLASH_WINBOND=y
|
||||||
+# CONFIG_SPI_FLASH_USE_4K_SECTORS is not set
|
+# CONFIG_SPI_FLASH_USE_4K_SECTORS is not set
|
||||||
+CONFIG_CMD_MTD=y
|
|
||||||
+CONFIG_CMD_SF=y
|
+CONFIG_CMD_SF=y
|
||||||
+CONFIG_LMB_MAX_REGIONS=64
|
+CONFIG_LMB_MAX_REGIONS=64
|
||||||
+CONFIG_USE_IPADDR=y
|
+CONFIG_USE_IPADDR=y
|
||||||
|
@ -412,12 +408,12 @@
|
||||||
+CONFIG_SERVERIP="192.168.1.254"
|
+CONFIG_SERVERIP="192.168.1.254"
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/configs/mt7986a_bpi-r3-sd_defconfig
|
+++ b/configs/mt7986a_bpi-r3-sd_defconfig
|
||||||
@@ -0,0 +1,198 @@
|
@@ -0,0 +1,196 @@
|
||||||
+CONFIG_ARM=y
|
+CONFIG_ARM=y
|
||||||
+CONFIG_POSITION_INDEPENDENT=y
|
+CONFIG_POSITION_INDEPENDENT=y
|
||||||
+CONFIG_ARCH_MEDIATEK=y
|
+CONFIG_ARCH_MEDIATEK=y
|
||||||
+CONFIG_TARGET_MT7986=y
|
+CONFIG_TARGET_MT7986=y
|
||||||
+CONFIG_SYS_TEXT_BASE=0x41e00000
|
+CONFIG_TEXT_BASE=0x41e00000
|
||||||
+CONFIG_SYS_MALLOC_F_LEN=0x4000
|
+CONFIG_SYS_MALLOC_F_LEN=0x4000
|
||||||
+CONFIG_SYS_HAS_NONCACHED_MEMORY=y
|
+CONFIG_SYS_HAS_NONCACHED_MEMORY=y
|
||||||
+CONFIG_NR_DRAM_BANKS=1
|
+CONFIG_NR_DRAM_BANKS=1
|
||||||
|
@ -429,7 +425,6 @@
|
||||||
+CONFIG_DEBUG_UART_CLOCK=40000000
|
+CONFIG_DEBUG_UART_CLOCK=40000000
|
||||||
+CONFIG_DEBUG_UART=y
|
+CONFIG_DEBUG_UART=y
|
||||||
+CONFIG_SYS_LOAD_ADDR=0x46000000
|
+CONFIG_SYS_LOAD_ADDR=0x46000000
|
||||||
+CONFIG_NET_RANDOM_ETHADDR=y
|
|
||||||
+CONFIG_SMBIOS_PRODUCT_NAME=""
|
+CONFIG_SMBIOS_PRODUCT_NAME=""
|
||||||
+CONFIG_AUTOBOOT_KEYED=y
|
+CONFIG_AUTOBOOT_KEYED=y
|
||||||
+CONFIG_BOOTDELAY=30
|
+CONFIG_BOOTDELAY=30
|
||||||
|
@ -602,7 +597,6 @@
|
||||||
+CONFIG_SPI_FLASH_MTD=y
|
+CONFIG_SPI_FLASH_MTD=y
|
||||||
+CONFIG_SPI_FLASH_WINBOND=y
|
+CONFIG_SPI_FLASH_WINBOND=y
|
||||||
+# CONFIG_SPI_FLASH_USE_4K_SECTORS is not set
|
+# CONFIG_SPI_FLASH_USE_4K_SECTORS is not set
|
||||||
+CONFIG_CMD_MTD=y
|
|
||||||
+CONFIG_CMD_SF=y
|
+CONFIG_CMD_SF=y
|
||||||
+CONFIG_CMD_NAND=y
|
+CONFIG_CMD_NAND=y
|
||||||
+CONFIG_CMD_NAND_TRIMFFS=y
|
+CONFIG_CMD_NAND_TRIMFFS=y
|
||||||
|
@ -613,12 +607,12 @@
|
||||||
+CONFIG_SERVERIP="192.168.1.254"
|
+CONFIG_SERVERIP="192.168.1.254"
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/configs/mt7986a_bpi-r3-snand_defconfig
|
+++ b/configs/mt7986a_bpi-r3-snand_defconfig
|
||||||
@@ -0,0 +1,199 @@
|
@@ -0,0 +1,197 @@
|
||||||
+CONFIG_ARM=y
|
+CONFIG_ARM=y
|
||||||
+CONFIG_POSITION_INDEPENDENT=y
|
+CONFIG_POSITION_INDEPENDENT=y
|
||||||
+CONFIG_ARCH_MEDIATEK=y
|
+CONFIG_ARCH_MEDIATEK=y
|
||||||
+CONFIG_TARGET_MT7986=y
|
+CONFIG_TARGET_MT7986=y
|
||||||
+CONFIG_SYS_TEXT_BASE=0x41e00000
|
+CONFIG_TEXT_BASE=0x41e00000
|
||||||
+CONFIG_SYS_MALLOC_F_LEN=0x4000
|
+CONFIG_SYS_MALLOC_F_LEN=0x4000
|
||||||
+CONFIG_SYS_HAS_NONCACHED_MEMORY=y
|
+CONFIG_SYS_HAS_NONCACHED_MEMORY=y
|
||||||
+CONFIG_NR_DRAM_BANKS=1
|
+CONFIG_NR_DRAM_BANKS=1
|
||||||
|
@ -630,7 +624,6 @@
|
||||||
+CONFIG_DEBUG_UART_CLOCK=40000000
|
+CONFIG_DEBUG_UART_CLOCK=40000000
|
||||||
+CONFIG_DEBUG_UART=y
|
+CONFIG_DEBUG_UART=y
|
||||||
+CONFIG_SYS_LOAD_ADDR=0x46000000
|
+CONFIG_SYS_LOAD_ADDR=0x46000000
|
||||||
+CONFIG_NET_RANDOM_ETHADDR=y
|
|
||||||
+CONFIG_SMBIOS_PRODUCT_NAME=""
|
+CONFIG_SMBIOS_PRODUCT_NAME=""
|
||||||
+CONFIG_AUTOBOOT_KEYED=y
|
+CONFIG_AUTOBOOT_KEYED=y
|
||||||
+CONFIG_BOOTDELAY=30
|
+CONFIG_BOOTDELAY=30
|
||||||
|
@ -804,7 +797,6 @@
|
||||||
+#CONFIG_SPI_FLASH_MTD=y
|
+#CONFIG_SPI_FLASH_MTD=y
|
||||||
+#CONFIG_SPI_FLASH_WINBOND=y
|
+#CONFIG_SPI_FLASH_WINBOND=y
|
||||||
+# CONFIG_SPI_FLASH_USE_4K_SECTORS is not set
|
+# CONFIG_SPI_FLASH_USE_4K_SECTORS is not set
|
||||||
+CONFIG_CMD_MTD=y
|
|
||||||
+#CONFIG_CMD_SF=y
|
+#CONFIG_CMD_SF=y
|
||||||
+CONFIG_CMD_NAND=y
|
+CONFIG_CMD_NAND=y
|
||||||
+CONFIG_CMD_NAND_TRIMFFS=y
|
+CONFIG_CMD_NAND_TRIMFFS=y
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/configs/mt7986_xiaomi_redmi-ax6000_defconfig
|
+++ b/configs/mt7986_xiaomi_redmi-ax6000_defconfig
|
||||||
@@ -0,0 +1,180 @@
|
@@ -0,0 +1,179 @@
|
||||||
+CONFIG_ARM=y
|
+CONFIG_ARM=y
|
||||||
+CONFIG_POSITION_INDEPENDENT=y
|
+CONFIG_POSITION_INDEPENDENT=y
|
||||||
+CONFIG_ARCH_MEDIATEK=y
|
+CONFIG_ARCH_MEDIATEK=y
|
||||||
+CONFIG_TARGET_MT7986=y
|
+CONFIG_TARGET_MT7986=y
|
||||||
+CONFIG_SYS_TEXT_BASE=0x41e00000
|
+CONFIG_TEXT_BASE=0x41e00000
|
||||||
+CONFIG_SYS_MALLOC_F_LEN=0x4000
|
+CONFIG_SYS_MALLOC_F_LEN=0x4000
|
||||||
+CONFIG_SYS_HAS_NONCACHED_MEMORY=y
|
+CONFIG_SYS_HAS_NONCACHED_MEMORY=y
|
||||||
+CONFIG_NR_DRAM_BANKS=1
|
+CONFIG_NR_DRAM_BANKS=1
|
||||||
|
@ -173,7 +173,6 @@
|
||||||
+CONFIG_USE_DEFAULT_ENV_FILE=y
|
+CONFIG_USE_DEFAULT_ENV_FILE=y
|
||||||
+CONFIG_MTD_SPI_NAND=y
|
+CONFIG_MTD_SPI_NAND=y
|
||||||
+CONFIG_MTK_SPIM=y
|
+CONFIG_MTK_SPIM=y
|
||||||
+CONFIG_CMD_MTD=y
|
|
||||||
+CONFIG_CMD_NAND=y
|
+CONFIG_CMD_NAND=y
|
||||||
+CONFIG_CMD_NAND_TRIMFFS=y
|
+CONFIG_CMD_NAND_TRIMFFS=y
|
||||||
+CONFIG_LMB_MAX_REGIONS=64
|
+CONFIG_LMB_MAX_REGIONS=64
|
||||||
|
|
36
package/devel/gperf/Makefile
Normal file
36
package/devel/gperf/Makefile
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
|
PKG_NAME:=gperf
|
||||||
|
PKG_VERSION:=3.1
|
||||||
|
PKG_RELEASE:=1
|
||||||
|
|
||||||
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||||
|
PKG_SOURCE_URL:=@GNU/gperf
|
||||||
|
PKG_HASH:=588546b945bba4b70b6a3a616e80b4ab466e3f33024a352fc2198112cdbb3ae2
|
||||||
|
|
||||||
|
PKG_LICENSE:=GPL-3.0
|
||||||
|
PKG_LICENSE_FILES:=COPYING
|
||||||
|
|
||||||
|
include $(INCLUDE_DIR)/host-build.mk
|
||||||
|
include $(INCLUDE_DIR)/package.mk
|
||||||
|
|
||||||
|
HOST_CPPFLAGS:=-I$(HOST_BUILD_DIR)/lib -I$(HOST_BUILD_DIR)/src $(HOST_CPPFLAGS)
|
||||||
|
TARGET_CPPFLAGS:=-I$(PKG_BUILD_DIR)/lib -I$(PKG_BUILD_DIR)/src $(TARGET_CPPFLAGS)
|
||||||
|
|
||||||
|
define Package/gperf
|
||||||
|
SECTION:=devel
|
||||||
|
CATEGORY:=Development
|
||||||
|
TITLE:=GNU gperf
|
||||||
|
URL:=http://www.gnu.org/software/gperf
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/gperf/description
|
||||||
|
GNU gperf is a perfect hash function generator. For a given list of strings,
|
||||||
|
it produces a hash function and hash table, in form of C or C++ code,
|
||||||
|
for looking up a value depending on the input string.
|
||||||
|
The hash function is perfect, which means that the hash table has no collisions,
|
||||||
|
and the hash table lookup needs a single string comparison only.
|
||||||
|
endef
|
||||||
|
|
||||||
|
$(eval $(call HostBuild))
|
||||||
|
$(eval $(call BuildPackage,gperf))
|
|
@ -3,9 +3,9 @@
|
||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=broadcom-sprom
|
PKG_NAME:=broadcom-sprom
|
||||||
PKG_SOURCE_DATE:=2023-04-19
|
PKG_SOURCE_DATE:=2023-04-27
|
||||||
PKG_SOURCE_VERSION:=d1d94f2407d9090ce72363614bbb87230a92ba44
|
PKG_SOURCE_VERSION:=d36f7fcb37711106a3a2652b576436cb09aa5b6f
|
||||||
PKG_MIRROR_HASH:=76cc5590a577713a65a512db12014d4fef61d9c67750e9f69753b358f442db8e
|
PKG_MIRROR_HASH:=fde251ab4ed26d61c95269316119710d6ccb8fe30ef13305d08b3e7d7d8a4c60
|
||||||
PKG_RELEASE:=1
|
PKG_RELEASE:=1
|
||||||
|
|
||||||
PKG_SOURCE_PROTO:=git
|
PKG_SOURCE_PROTO:=git
|
||||||
|
|
|
@ -31,6 +31,8 @@ BOARDS := \
|
||||||
ls1012a-rdb \
|
ls1012a-rdb \
|
||||||
ls1012a-frdm \
|
ls1012a-frdm \
|
||||||
ls1012a-frwy-sdboot \
|
ls1012a-frwy-sdboot \
|
||||||
|
ls1028a-rdb \
|
||||||
|
ls1028a-rdb-sdboot \
|
||||||
ls1043a-rdb \
|
ls1043a-rdb \
|
||||||
ls1043a-rdb-sdboot \
|
ls1043a-rdb-sdboot \
|
||||||
ls1046a-frwy \
|
ls1046a-frwy \
|
||||||
|
@ -47,6 +49,8 @@ BOARDS := \
|
||||||
RCW_ls1012a-rdb :=ls1012ardb/R_SPNH_3508/rcw_1000_default.bin
|
RCW_ls1012a-rdb :=ls1012ardb/R_SPNH_3508/rcw_1000_default.bin
|
||||||
RCW_ls1012a-frdm :=ls1012afrdm/N_SSNP_3305/rcw_800.bin
|
RCW_ls1012a-frdm :=ls1012afrdm/N_SSNP_3305/rcw_800.bin
|
||||||
RCW_ls1012a-frwy-sdboot :=ls1012afrwy/N_SSNP_3305/rcw_1000_default.bin
|
RCW_ls1012a-frwy-sdboot :=ls1012afrwy/N_SSNP_3305/rcw_1000_default.bin
|
||||||
|
RCW_ls1028a-rdb :=ls1028ardb/R_SQPP_0x85bb/rcw_1300.bin
|
||||||
|
RCW_ls1028a-rdb-sdboot :=ls1028ardb/R_SQPP_0x85bb/rcw_1500_sdboot.bin
|
||||||
RCW_ls1043a-rdb :=ls1043ardb/RR_FQPP_1455/rcw_1600.bin
|
RCW_ls1043a-rdb :=ls1043ardb/RR_FQPP_1455/rcw_1600.bin
|
||||||
RCW_ls1043a-rdb-sdboot :=ls1043ardb/RR_FQPP_1455/rcw_1600_sdboot.bin
|
RCW_ls1043a-rdb-sdboot :=ls1043ardb/RR_FQPP_1455/rcw_1600_sdboot.bin
|
||||||
RCW_ls1046a-frwy :=ls1046afrwy/NN_NNQNNPNP_3040_0506/rcw_1600_qspiboot.bin
|
RCW_ls1046a-frwy :=ls1046afrwy/NN_NNQNNPNP_3040_0506/rcw_1600_qspiboot.bin
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=wireless-regdb
|
PKG_NAME:=wireless-regdb
|
||||||
PKG_VERSION:=2023.02.13
|
PKG_VERSION:=2023.05.03
|
||||||
PKG_RELEASE:=1
|
PKG_RELEASE:=1
|
||||||
|
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
||||||
PKG_SOURCE_URL:=@KERNEL/software/network/wireless-regdb/
|
PKG_SOURCE_URL:=@KERNEL/software/network/wireless-regdb/
|
||||||
PKG_HASH:=fe81e8a8694dc4753a45087a1c4c7e1b48dee5a59f5f796ce374ea550f0b2e73
|
PKG_HASH:=f254d08ab3765aeae2b856222e11a95d44aef519a6663877c71ef68fae4c8c12
|
||||||
|
|
||||||
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
|
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
|
||||||
|
|
||||||
|
|
|
@ -827,7 +827,9 @@ $(eval $(call KernelPackage,crypto-rmd160))
|
||||||
|
|
||||||
define KernelPackage/crypto-rng
|
define KernelPackage/crypto-rng
|
||||||
TITLE:=CryptoAPI random number generation
|
TITLE:=CryptoAPI random number generation
|
||||||
DEPENDS:=+kmod-crypto-hash +kmod-crypto-hmac +kmod-crypto-sha256
|
DEPENDS:=+kmod-crypto-hash +kmod-crypto-hmac \
|
||||||
|
+LINUX_5_10:kmod-crypto-sha256 \
|
||||||
|
+LINUX_5_15:kmod-crypto-sha512
|
||||||
KCONFIG:= \
|
KCONFIG:= \
|
||||||
CONFIG_CRYPTO_DRBG \
|
CONFIG_CRYPTO_DRBG \
|
||||||
CONFIG_CRYPTO_DRBG_HMAC=y \
|
CONFIG_CRYPTO_DRBG_HMAC=y \
|
||||||
|
|
|
@ -0,0 +1,58 @@
|
||||||
|
From f812e2a9f85d6bea78957ccb5197e4491316848b Mon Sep 17 00:00:00 2001
|
||||||
|
From: Cai Huoqing <cai.huoqing@linux.dev>
|
||||||
|
Date: Thu, 23 Mar 2023 19:26:09 +0800
|
||||||
|
Subject: [PATCH] wifi: ath11k: Remove redundant pci_clear_master
|
||||||
|
|
||||||
|
Remove pci_clear_master to simplify the code,
|
||||||
|
the bus-mastering is also cleared in do_pci_disable_device,
|
||||||
|
like this:
|
||||||
|
./drivers/pci/pci.c:2197
|
||||||
|
static void do_pci_disable_device(struct pci_dev *dev)
|
||||||
|
{
|
||||||
|
u16 pci_command;
|
||||||
|
|
||||||
|
pci_read_config_word(dev, PCI_COMMAND, &pci_command);
|
||||||
|
if (pci_command & PCI_COMMAND_MASTER) {
|
||||||
|
pci_command &= ~PCI_COMMAND_MASTER;
|
||||||
|
pci_write_config_word(dev, PCI_COMMAND, pci_command);
|
||||||
|
}
|
||||||
|
|
||||||
|
pcibios_disable_device(dev);
|
||||||
|
}.
|
||||||
|
And dev->is_busmaster is set to 0 in pci_disable_device.
|
||||||
|
|
||||||
|
Signed-off-by: Cai Huoqing <cai.huoqing@linux.dev>
|
||||||
|
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
|
||||||
|
Link: https://lore.kernel.org/r/20230323112613.7550-1-cai.huoqing@linux.dev
|
||||||
|
---
|
||||||
|
drivers/net/wireless/ath/ath11k/pci.c | 5 +----
|
||||||
|
1 file changed, 1 insertion(+), 4 deletions(-)
|
||||||
|
|
||||||
|
--- a/drivers/net/wireless/ath/ath11k/pci.c
|
||||||
|
+++ b/drivers/net/wireless/ath/ath11k/pci.c
|
||||||
|
@@ -540,7 +540,7 @@ static int ath11k_pci_claim(struct ath11
|
||||||
|
if (!ab->mem) {
|
||||||
|
ath11k_err(ab, "failed to map pci bar %d\n", ATH11K_PCI_BAR_NUM);
|
||||||
|
ret = -EIO;
|
||||||
|
- goto clear_master;
|
||||||
|
+ goto release_region;
|
||||||
|
}
|
||||||
|
|
||||||
|
ab->mem_ce = ab->mem;
|
||||||
|
@@ -548,8 +548,6 @@ static int ath11k_pci_claim(struct ath11
|
||||||
|
ath11k_dbg(ab, ATH11K_DBG_BOOT, "boot pci_mem 0x%pK\n", ab->mem);
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
-clear_master:
|
||||||
|
- pci_clear_master(pdev);
|
||||||
|
release_region:
|
||||||
|
pci_release_region(pdev, ATH11K_PCI_BAR_NUM);
|
||||||
|
disable_device:
|
||||||
|
@@ -565,7 +563,6 @@ static void ath11k_pci_free_region(struc
|
||||||
|
|
||||||
|
pci_iounmap(pci_dev, ab->mem);
|
||||||
|
ab->mem = NULL;
|
||||||
|
- pci_clear_master(pci_dev);
|
||||||
|
pci_release_region(pci_dev, ATH11K_PCI_BAR_NUM);
|
||||||
|
if (pci_is_enabled(pci_dev))
|
||||||
|
pci_disable_device(pci_dev);
|
|
@ -0,0 +1,36 @@
|
||||||
|
From 5c690db63b45c6c4c4932b13173af71df369dba5 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
|
||||||
|
Date: Tue, 28 Mar 2023 12:41:50 +0530
|
||||||
|
Subject: [PATCH] wifi: ath11k: Disable Spectral scan upon removing interface
|
||||||
|
|
||||||
|
Host might receive spectral events during interface
|
||||||
|
down sequence and this might create below errors.
|
||||||
|
|
||||||
|
failed to handle dma buf release event -22
|
||||||
|
failed to handle dma buf release event -22
|
||||||
|
|
||||||
|
Fix this by disabling spectral config during remove interface.
|
||||||
|
|
||||||
|
Tested-on: IPQ5018 hw1.0 AHB WLAN.HK.2.6.0.1-00861-QCAHKSWPL_SILICONZ-1
|
||||||
|
|
||||||
|
Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
|
||||||
|
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
|
||||||
|
Link: https://lore.kernel.org/r/20230328071150.29645-1-quic_tamizhr@quicinc.com
|
||||||
|
---
|
||||||
|
drivers/net/wireless/ath/ath11k/mac.c | 5 +++++
|
||||||
|
1 file changed, 5 insertions(+)
|
||||||
|
|
||||||
|
--- a/drivers/net/wireless/ath/ath11k/mac.c
|
||||||
|
+++ b/drivers/net/wireless/ath/ath11k/mac.c
|
||||||
|
@@ -6685,6 +6685,11 @@ static void ath11k_mac_op_remove_interfa
|
||||||
|
ath11k_dbg(ab, ATH11K_DBG_MAC, "mac remove interface (vdev %d)\n",
|
||||||
|
arvif->vdev_id);
|
||||||
|
|
||||||
|
+ ret = ath11k_spectral_vif_stop(arvif);
|
||||||
|
+ if (ret)
|
||||||
|
+ ath11k_warn(ab, "failed to stop spectral for vdev %i: %d\n",
|
||||||
|
+ arvif->vdev_id, ret);
|
||||||
|
+
|
||||||
|
if (arvif->vdev_type == WMI_VDEV_TYPE_STA)
|
||||||
|
ath11k_mac_11d_scan_stop(ar);
|
||||||
|
|
|
@ -0,0 +1,29 @@
|
||||||
|
From abf57d84973ce1abcb67504ac0df8aea1fe09a76 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Youghandhar Chintala <quic_youghand@quicinc.com>
|
||||||
|
Date: Tue, 28 Mar 2023 17:04:55 +0530
|
||||||
|
Subject: [PATCH] wifi: ath11k: enable SAR support on WCN6750
|
||||||
|
|
||||||
|
Currently, SAR is enabled only on WCN6855, enable this for WCN6750 too. This
|
||||||
|
functionality gets triggered, when the user space application calls
|
||||||
|
NL80211_CMD_SET_SAR_SPECS.
|
||||||
|
|
||||||
|
Tested-on: WCN6750 hw1.0 AHB WLAN.MSL.1.0.1-00887-QCAMSLSWPLZ-1
|
||||||
|
|
||||||
|
Signed-off-by: Youghandhar Chintala <quic_youghand@quicinc.com>
|
||||||
|
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
|
||||||
|
Link: https://lore.kernel.org/r/20230328113455.11252-1-quic_youghand@quicinc.com
|
||||||
|
---
|
||||||
|
drivers/net/wireless/ath/ath11k/core.c | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
--- a/drivers/net/wireless/ath/ath11k/core.c
|
||||||
|
+++ b/drivers/net/wireless/ath/ath11k/core.c
|
||||||
|
@@ -593,7 +593,7 @@ static const struct ath11k_hw_params ath
|
||||||
|
.current_cc_support = true,
|
||||||
|
.dbr_debug_support = false,
|
||||||
|
.global_reset = false,
|
||||||
|
- .bios_sar_capa = NULL,
|
||||||
|
+ .bios_sar_capa = &ath11k_hw_sar_capa_wcn6855,
|
||||||
|
.m3_fw_support = false,
|
||||||
|
.fixed_bdf_addr = false,
|
||||||
|
.fixed_mem_region = false,
|
|
@ -0,0 +1,36 @@
|
||||||
|
From 06c58473969239e00d76b683edd511952060ca56 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Takashi Iwai <tiwai@suse.de>
|
||||||
|
Date: Thu, 30 Mar 2023 16:37:18 +0200
|
||||||
|
Subject: [PATCH] wifi: ath11k: pci: Add more MODULE_FIRMWARE() entries
|
||||||
|
|
||||||
|
As there are a few more models supported by the driver, let's add the
|
||||||
|
missing MODULE_FIRMWARE() entries for them. The lack of them resulted
|
||||||
|
in the missing device enablement on some systems, such as the
|
||||||
|
installation image of openSUSE.
|
||||||
|
|
||||||
|
While we are at it, use the wildcard instead of listing each firmware
|
||||||
|
files individually for each.
|
||||||
|
|
||||||
|
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
||||||
|
Reviewed-by: Simon Horman <simon.horman@corigine.com>
|
||||||
|
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
|
||||||
|
Link: https://lore.kernel.org/r/20230330143718.19511-1-tiwai@suse.de
|
||||||
|
---
|
||||||
|
drivers/net/wireless/ath/ath11k/pci.c | 9 +++++----
|
||||||
|
1 file changed, 5 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
--- a/drivers/net/wireless/ath/ath11k/pci.c
|
||||||
|
+++ b/drivers/net/wireless/ath/ath11k/pci.c
|
||||||
|
@@ -1036,7 +1036,8 @@ module_exit(ath11k_pci_exit);
|
||||||
|
MODULE_DESCRIPTION("Driver support for Qualcomm Technologies 802.11ax WLAN PCIe devices");
|
||||||
|
MODULE_LICENSE("Dual BSD/GPL");
|
||||||
|
|
||||||
|
-/* QCA639x 2.0 firmware files */
|
||||||
|
-MODULE_FIRMWARE(ATH11K_FW_DIR "/QCA6390/hw2.0/" ATH11K_BOARD_API2_FILE);
|
||||||
|
-MODULE_FIRMWARE(ATH11K_FW_DIR "/QCA6390/hw2.0/" ATH11K_AMSS_FILE);
|
||||||
|
-MODULE_FIRMWARE(ATH11K_FW_DIR "/QCA6390/hw2.0/" ATH11K_M3_FILE);
|
||||||
|
+/* firmware files */
|
||||||
|
+MODULE_FIRMWARE(ATH11K_FW_DIR "/QCA6390/hw2.0/*");
|
||||||
|
+MODULE_FIRMWARE(ATH11K_FW_DIR "/QCN9074/hw1.0/*");
|
||||||
|
+MODULE_FIRMWARE(ATH11K_FW_DIR "/WCN6855/hw2.0/*");
|
||||||
|
+MODULE_FIRMWARE(ATH11K_FW_DIR "/WCN6855/hw2.1/*");
|
|
@ -0,0 +1,34 @@
|
||||||
|
From a87a9110ac0dcbfd9458b6665c141fa1c16a669d Mon Sep 17 00:00:00 2001
|
||||||
|
From: Kalle Valo <quic_kvalo@quicinc.com>
|
||||||
|
Date: Wed, 5 Apr 2023 12:04:25 +0300
|
||||||
|
Subject: [PATCH] wifi: ath11k: print a warning when crypto_alloc_shash() fails
|
||||||
|
|
||||||
|
Christoph reported that ath11k failed to initialise when michael_mic.ko
|
||||||
|
module was not installed. To make it easier to notice that case print a
|
||||||
|
warning when crypto_alloc_shash() fails.
|
||||||
|
|
||||||
|
Compile tested only.
|
||||||
|
|
||||||
|
Reported-by: Christoph Hellwig <hch@lst.de>
|
||||||
|
Link: https://lore.kernel.org/all/20221130133016.GC3055@lst.de/
|
||||||
|
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
|
||||||
|
Link: https://lore.kernel.org/r/20230405090425.1351-1-kvalo@kernel.org
|
||||||
|
---
|
||||||
|
drivers/net/wireless/ath/ath11k/dp_rx.c | 5 ++++-
|
||||||
|
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
--- a/drivers/net/wireless/ath/ath11k/dp_rx.c
|
||||||
|
+++ b/drivers/net/wireless/ath/ath11k/dp_rx.c
|
||||||
|
@@ -3106,8 +3106,11 @@ int ath11k_peer_rx_frag_setup(struct ath
|
||||||
|
int i;
|
||||||
|
|
||||||
|
tfm = crypto_alloc_shash("michael_mic", 0, 0);
|
||||||
|
- if (IS_ERR(tfm))
|
||||||
|
+ if (IS_ERR(tfm)) {
|
||||||
|
+ ath11k_warn(ab, "failed to allocate michael_mic shash: %ld\n",
|
||||||
|
+ PTR_ERR(tfm));
|
||||||
|
return PTR_ERR(tfm);
|
||||||
|
+ }
|
||||||
|
|
||||||
|
spin_lock_bh(&ab->base_lock);
|
||||||
|
|
|
@ -0,0 +1,104 @@
|
||||||
|
From a06bfb3c9f69f303692cdae87bc0899d2ae8b2a6 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Harshitha Prem <quic_hprem@quicinc.com>
|
||||||
|
Date: Tue, 4 Apr 2023 00:11:54 +0530
|
||||||
|
Subject: [PATCH] wifi: ath11k: Ignore frags from uninitialized peer in dp.
|
||||||
|
|
||||||
|
When max virtual ap interfaces are configured in all the bands with
|
||||||
|
ACS and hostapd restart is done every 60s, a crash is observed at
|
||||||
|
random times.
|
||||||
|
In this certain scenario, a fragmented packet is received for
|
||||||
|
self peer, for which rx_tid and rx_frags are not initialized in
|
||||||
|
datapath. While handling this fragment, crash is observed as the
|
||||||
|
rx_frag list is uninitialised and when we walk in
|
||||||
|
ath11k_dp_rx_h_sort_frags, skb null leads to exception.
|
||||||
|
|
||||||
|
To address this, before processing received fragments we check
|
||||||
|
dp_setup_done flag is set to ensure that peer has completed its
|
||||||
|
dp peer setup for fragment queue, else ignore processing the
|
||||||
|
fragments.
|
||||||
|
|
||||||
|
Call trace:
|
||||||
|
ath11k_dp_process_rx_err+0x550/0x1084 [ath11k]
|
||||||
|
ath11k_dp_service_srng+0x70/0x370 [ath11k]
|
||||||
|
0xffffffc009693a04
|
||||||
|
__napi_poll+0x30/0xa4
|
||||||
|
net_rx_action+0x118/0x270
|
||||||
|
__do_softirq+0x10c/0x244
|
||||||
|
irq_exit+0x64/0xb4
|
||||||
|
__handle_domain_irq+0x88/0xac
|
||||||
|
gic_handle_irq+0x74/0xbc
|
||||||
|
el1_irq+0xf0/0x1c0
|
||||||
|
arch_cpu_idle+0x10/0x18
|
||||||
|
do_idle+0x104/0x248
|
||||||
|
cpu_startup_entry+0x20/0x64
|
||||||
|
rest_init+0xd0/0xdc
|
||||||
|
arch_call_rest_init+0xc/0x14
|
||||||
|
start_kernel+0x480/0x4b8
|
||||||
|
Code: f9400281 f94066a2 91405021 b94a0023 (f9406401)
|
||||||
|
|
||||||
|
Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1
|
||||||
|
|
||||||
|
Signed-off-by: Harshitha Prem <quic_hprem@quicinc.com>
|
||||||
|
Signed-off-by: Nagarajan Maran <quic_nmaran@quicinc.com>
|
||||||
|
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
|
||||||
|
Link: https://lore.kernel.org/r/20230403184155.8670-2-quic_nmaran@quicinc.com
|
||||||
|
---
|
||||||
|
drivers/net/wireless/ath/ath11k/dp.c | 4 +++-
|
||||||
|
drivers/net/wireless/ath/ath11k/dp_rx.c | 8 ++++++++
|
||||||
|
drivers/net/wireless/ath/ath11k/peer.h | 1 +
|
||||||
|
3 files changed, 12 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
--- a/drivers/net/wireless/ath/ath11k/dp.c
|
||||||
|
+++ b/drivers/net/wireless/ath/ath11k/dp.c
|
||||||
|
@@ -36,6 +36,7 @@ void ath11k_dp_peer_cleanup(struct ath11
|
||||||
|
}
|
||||||
|
|
||||||
|
ath11k_peer_rx_tid_cleanup(ar, peer);
|
||||||
|
+ peer->dp_setup_done = false;
|
||||||
|
crypto_free_shash(peer->tfm_mmic);
|
||||||
|
spin_unlock_bh(&ab->base_lock);
|
||||||
|
}
|
||||||
|
@@ -72,7 +73,8 @@ int ath11k_dp_peer_setup(struct ath11k *
|
||||||
|
ret = ath11k_peer_rx_frag_setup(ar, addr, vdev_id);
|
||||||
|
if (ret) {
|
||||||
|
ath11k_warn(ab, "failed to setup rx defrag context\n");
|
||||||
|
- return ret;
|
||||||
|
+ tid--;
|
||||||
|
+ goto peer_clean;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* TODO: Setup other peer specific resource used in data path */
|
||||||
|
--- a/drivers/net/wireless/ath/ath11k/dp_rx.c
|
||||||
|
+++ b/drivers/net/wireless/ath/ath11k/dp_rx.c
|
||||||
|
@@ -3130,6 +3130,7 @@ int ath11k_peer_rx_frag_setup(struct ath
|
||||||
|
}
|
||||||
|
|
||||||
|
peer->tfm_mmic = tfm;
|
||||||
|
+ peer->dp_setup_done = true;
|
||||||
|
spin_unlock_bh(&ab->base_lock);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
@@ -3575,6 +3576,13 @@ static int ath11k_dp_rx_frag_h_mpdu(stru
|
||||||
|
ret = -ENOENT;
|
||||||
|
goto out_unlock;
|
||||||
|
}
|
||||||
|
+ if (!peer->dp_setup_done) {
|
||||||
|
+ ath11k_warn(ab, "The peer %pM [%d] has uninitialized datapath\n",
|
||||||
|
+ peer->addr, peer_id);
|
||||||
|
+ ret = -ENOENT;
|
||||||
|
+ goto out_unlock;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
rx_tid = &peer->rx_tid[tid];
|
||||||
|
|
||||||
|
if ((!skb_queue_empty(&rx_tid->rx_frags) && seqno != rx_tid->cur_sn) ||
|
||||||
|
--- a/drivers/net/wireless/ath/ath11k/peer.h
|
||||||
|
+++ b/drivers/net/wireless/ath/ath11k/peer.h
|
||||||
|
@@ -35,6 +35,7 @@ struct ath11k_peer {
|
||||||
|
u16 sec_type;
|
||||||
|
u16 sec_type_grp;
|
||||||
|
bool is_authorized;
|
||||||
|
+ bool dp_setup_done;
|
||||||
|
};
|
||||||
|
|
||||||
|
void ath11k_peer_unmap_event(struct ath11k_base *ab, u16 peer_id);
|
|
@ -0,0 +1,29 @@
|
||||||
|
From 41e02bf4ae32cf2ac47b08b4caaa9c1a032e4ce7 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Harshitha Prem <quic_hprem@quicinc.com>
|
||||||
|
Date: Tue, 4 Apr 2023 00:11:55 +0530
|
||||||
|
Subject: [PATCH] wifi: ath11k: fix undefined behavior with __fls in dp
|
||||||
|
|
||||||
|
"__fls" would have an undefined behavior if the argument is passed
|
||||||
|
as "0". Hence, added changes to handle the same.
|
||||||
|
|
||||||
|
Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1
|
||||||
|
|
||||||
|
Signed-off-by: Harshitha Prem <quic_hprem@quicinc.com>
|
||||||
|
Signed-off-by: Nagarajan Maran <quic_nmaran@quicinc.com>
|
||||||
|
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
|
||||||
|
Link: https://lore.kernel.org/r/20230403184155.8670-3-quic_nmaran@quicinc.com
|
||||||
|
---
|
||||||
|
drivers/net/wireless/ath/ath11k/dp_rx.c | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
--- a/drivers/net/wireless/ath/ath11k/dp_rx.c
|
||||||
|
+++ b/drivers/net/wireless/ath/ath11k/dp_rx.c
|
||||||
|
@@ -3598,7 +3598,7 @@ static int ath11k_dp_rx_frag_h_mpdu(stru
|
||||||
|
goto out_unlock;
|
||||||
|
}
|
||||||
|
|
||||||
|
- if (frag_no > __fls(rx_tid->rx_frag_bitmap))
|
||||||
|
+ if (!rx_tid->rx_frag_bitmap || (frag_no > __fls(rx_tid->rx_frag_bitmap)))
|
||||||
|
__skb_queue_tail(&rx_tid->rx_frags, msdu);
|
||||||
|
else
|
||||||
|
ath11k_dp_rx_h_sort_frags(ar, &rx_tid->rx_frags, msdu);
|
|
@ -0,0 +1,144 @@
|
||||||
|
From 93a91f40c25c3d0e61f8540a7accf105090f9995 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Harshitha Prem <quic_hprem@quicinc.com>
|
||||||
|
Date: Mon, 17 Apr 2023 13:35:00 +0300
|
||||||
|
Subject: [PATCH] wifi: ath11k: fix double free of peer rx_tid during reo cmd
|
||||||
|
failure
|
||||||
|
|
||||||
|
Peer rx_tid is locally copied thrice during peer_rx_tid_cleanup to
|
||||||
|
send REO_CMD_UPDATE_RX_QUEUE followed by REO_CMD_FLUSH_CACHE to flush
|
||||||
|
all aged REO descriptors from HW cache.
|
||||||
|
|
||||||
|
When sending REO_CMD_FLUSH_CACHE fails, we do dma unmap of already
|
||||||
|
mapped rx_tid->vaddr and free it. This is not checked during
|
||||||
|
reo_cmd_list_cleanup() and dp_reo_cmd_free() before trying to free and
|
||||||
|
unmap again.
|
||||||
|
|
||||||
|
Fix this by setting rx_tid->vaddr NULL in rx tid delete and also
|
||||||
|
wherever freeing it to check in reo_cmd_list_cleanup() and
|
||||||
|
reo_cmd_free() before trying to free again.
|
||||||
|
|
||||||
|
Tested-on: QCN9074 hw1.0 PCI WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1
|
||||||
|
Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1
|
||||||
|
|
||||||
|
Signed-off-by: Sathishkumar Muruganandam <quic_murugana@quicinc.com>
|
||||||
|
Signed-off-by: Harshitha Prem <quic_hprem@quicinc.com>
|
||||||
|
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
|
||||||
|
Link: https://lore.kernel.org/r/20230403182420.23375-2-quic_hprem@quicinc.com
|
||||||
|
---
|
||||||
|
drivers/net/wireless/ath/ath11k/dp_rx.c | 43 ++++++++++++++++++-------
|
||||||
|
1 file changed, 31 insertions(+), 12 deletions(-)
|
||||||
|
|
||||||
|
--- a/drivers/net/wireless/ath/ath11k/dp_rx.c
|
||||||
|
+++ b/drivers/net/wireless/ath/ath11k/dp_rx.c
|
||||||
|
@@ -668,13 +668,18 @@ void ath11k_dp_reo_cmd_list_cleanup(stru
|
||||||
|
struct ath11k_dp *dp = &ab->dp;
|
||||||
|
struct dp_reo_cmd *cmd, *tmp;
|
||||||
|
struct dp_reo_cache_flush_elem *cmd_cache, *tmp_cache;
|
||||||
|
+ struct dp_rx_tid *rx_tid;
|
||||||
|
|
||||||
|
spin_lock_bh(&dp->reo_cmd_lock);
|
||||||
|
list_for_each_entry_safe(cmd, tmp, &dp->reo_cmd_list, list) {
|
||||||
|
list_del(&cmd->list);
|
||||||
|
- dma_unmap_single(ab->dev, cmd->data.paddr,
|
||||||
|
- cmd->data.size, DMA_BIDIRECTIONAL);
|
||||||
|
- kfree(cmd->data.vaddr);
|
||||||
|
+ rx_tid = &cmd->data;
|
||||||
|
+ if (rx_tid->vaddr) {
|
||||||
|
+ dma_unmap_single(ab->dev, rx_tid->paddr,
|
||||||
|
+ rx_tid->size, DMA_BIDIRECTIONAL);
|
||||||
|
+ kfree(rx_tid->vaddr);
|
||||||
|
+ rx_tid->vaddr = NULL;
|
||||||
|
+ }
|
||||||
|
kfree(cmd);
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -682,9 +687,13 @@ void ath11k_dp_reo_cmd_list_cleanup(stru
|
||||||
|
&dp->reo_cmd_cache_flush_list, list) {
|
||||||
|
list_del(&cmd_cache->list);
|
||||||
|
dp->reo_cmd_cache_flush_count--;
|
||||||
|
- dma_unmap_single(ab->dev, cmd_cache->data.paddr,
|
||||||
|
- cmd_cache->data.size, DMA_BIDIRECTIONAL);
|
||||||
|
- kfree(cmd_cache->data.vaddr);
|
||||||
|
+ rx_tid = &cmd_cache->data;
|
||||||
|
+ if (rx_tid->vaddr) {
|
||||||
|
+ dma_unmap_single(ab->dev, rx_tid->paddr,
|
||||||
|
+ rx_tid->size, DMA_BIDIRECTIONAL);
|
||||||
|
+ kfree(rx_tid->vaddr);
|
||||||
|
+ rx_tid->vaddr = NULL;
|
||||||
|
+ }
|
||||||
|
kfree(cmd_cache);
|
||||||
|
}
|
||||||
|
spin_unlock_bh(&dp->reo_cmd_lock);
|
||||||
|
@@ -698,10 +707,12 @@ static void ath11k_dp_reo_cmd_free(struc
|
||||||
|
if (status != HAL_REO_CMD_SUCCESS)
|
||||||
|
ath11k_warn(dp->ab, "failed to flush rx tid hw desc, tid %d status %d\n",
|
||||||
|
rx_tid->tid, status);
|
||||||
|
-
|
||||||
|
- dma_unmap_single(dp->ab->dev, rx_tid->paddr, rx_tid->size,
|
||||||
|
- DMA_BIDIRECTIONAL);
|
||||||
|
- kfree(rx_tid->vaddr);
|
||||||
|
+ if (rx_tid->vaddr) {
|
||||||
|
+ dma_unmap_single(dp->ab->dev, rx_tid->paddr, rx_tid->size,
|
||||||
|
+ DMA_BIDIRECTIONAL);
|
||||||
|
+ kfree(rx_tid->vaddr);
|
||||||
|
+ rx_tid->vaddr = NULL;
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
|
||||||
|
static void ath11k_dp_reo_cache_flush(struct ath11k_base *ab,
|
||||||
|
@@ -740,6 +751,7 @@ static void ath11k_dp_reo_cache_flush(st
|
||||||
|
dma_unmap_single(ab->dev, rx_tid->paddr, rx_tid->size,
|
||||||
|
DMA_BIDIRECTIONAL);
|
||||||
|
kfree(rx_tid->vaddr);
|
||||||
|
+ rx_tid->vaddr = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -792,6 +804,7 @@ free_desc:
|
||||||
|
dma_unmap_single(ab->dev, rx_tid->paddr, rx_tid->size,
|
||||||
|
DMA_BIDIRECTIONAL);
|
||||||
|
kfree(rx_tid->vaddr);
|
||||||
|
+ rx_tid->vaddr = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ath11k_peer_rx_tid_delete(struct ath11k *ar,
|
||||||
|
@@ -804,6 +817,8 @@ void ath11k_peer_rx_tid_delete(struct at
|
||||||
|
if (!rx_tid->active)
|
||||||
|
return;
|
||||||
|
|
||||||
|
+ rx_tid->active = false;
|
||||||
|
+
|
||||||
|
cmd.flag = HAL_REO_CMD_FLG_NEED_STATUS;
|
||||||
|
cmd.addr_lo = lower_32_bits(rx_tid->paddr);
|
||||||
|
cmd.addr_hi = upper_32_bits(rx_tid->paddr);
|
||||||
|
@@ -818,9 +833,11 @@ void ath11k_peer_rx_tid_delete(struct at
|
||||||
|
dma_unmap_single(ar->ab->dev, rx_tid->paddr, rx_tid->size,
|
||||||
|
DMA_BIDIRECTIONAL);
|
||||||
|
kfree(rx_tid->vaddr);
|
||||||
|
+ rx_tid->vaddr = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
- rx_tid->active = false;
|
||||||
|
+ rx_tid->paddr = 0;
|
||||||
|
+ rx_tid->size = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int ath11k_dp_rx_link_desc_return(struct ath11k_base *ab,
|
||||||
|
@@ -967,6 +984,7 @@ static void ath11k_dp_rx_tid_mem_free(st
|
||||||
|
dma_unmap_single(ab->dev, rx_tid->paddr, rx_tid->size,
|
||||||
|
DMA_BIDIRECTIONAL);
|
||||||
|
kfree(rx_tid->vaddr);
|
||||||
|
+ rx_tid->vaddr = NULL;
|
||||||
|
|
||||||
|
rx_tid->active = false;
|
||||||
|
|
||||||
|
@@ -1067,7 +1085,8 @@ int ath11k_peer_rx_tid_setup(struct ath1
|
||||||
|
return ret;
|
||||||
|
|
||||||
|
err_mem_free:
|
||||||
|
- kfree(vaddr);
|
||||||
|
+ kfree(rx_tid->vaddr);
|
||||||
|
+ rx_tid->vaddr = NULL;
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
|
@ -0,0 +1,43 @@
|
||||||
|
From a8ae833657a45746debde85c38bb7f070d344026 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Harshitha Prem <quic_hprem@quicinc.com>
|
||||||
|
Date: Mon, 17 Apr 2023 13:35:01 +0300
|
||||||
|
Subject: [PATCH] wifi: ath11k: Prevent REO cmd failures
|
||||||
|
|
||||||
|
Prevent REO cmd failures causing double free by increasing REO cmd
|
||||||
|
ring size and moving REO status ring mask to IRQ group 3 from group
|
||||||
|
0 to separate from tx completion ring on IRQ group 0 which may delay
|
||||||
|
reo status processing.
|
||||||
|
|
||||||
|
Tested-on: QCN9074 hw1.0 PCI WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1
|
||||||
|
Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1
|
||||||
|
|
||||||
|
Signed-off-by: Sathishkumar Muruganandam <quic_murugana@quicinc.com>
|
||||||
|
Signed-off-by: Harshitha Prem <quic_hprem@quicinc.com>
|
||||||
|
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
|
||||||
|
Link: https://lore.kernel.org/r/20230403182420.23375-3-quic_hprem@quicinc.com
|
||||||
|
---
|
||||||
|
drivers/net/wireless/ath/ath11k/dp.h | 2 +-
|
||||||
|
drivers/net/wireless/ath/ath11k/hw.c | 1 +
|
||||||
|
2 files changed, 2 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
--- a/drivers/net/wireless/ath/ath11k/dp.h
|
||||||
|
+++ b/drivers/net/wireless/ath/ath11k/dp.h
|
||||||
|
@@ -214,7 +214,7 @@ struct ath11k_pdev_dp {
|
||||||
|
#define DP_REO_REINJECT_RING_SIZE 32
|
||||||
|
#define DP_RX_RELEASE_RING_SIZE 1024
|
||||||
|
#define DP_REO_EXCEPTION_RING_SIZE 128
|
||||||
|
-#define DP_REO_CMD_RING_SIZE 128
|
||||||
|
+#define DP_REO_CMD_RING_SIZE 256
|
||||||
|
#define DP_REO_STATUS_RING_SIZE 2048
|
||||||
|
#define DP_RXDMA_BUF_RING_SIZE 4096
|
||||||
|
#define DP_RXDMA_REFILL_RING_SIZE 2048
|
||||||
|
--- a/drivers/net/wireless/ath/ath11k/hw.c
|
||||||
|
+++ b/drivers/net/wireless/ath/ath11k/hw.c
|
||||||
|
@@ -1233,6 +1233,7 @@ const struct ath11k_hw_ring_mask ath11k_
|
||||||
|
ATH11K_RX_WBM_REL_RING_MASK_0,
|
||||||
|
},
|
||||||
|
.reo_status = {
|
||||||
|
+ 0, 0, 0,
|
||||||
|
ATH11K_REO_STATUS_RING_MASK_0,
|
||||||
|
},
|
||||||
|
.rxdma2host = {
|
|
@ -0,0 +1,74 @@
|
||||||
|
From 20487cc3ff36bbfa9505f0a078ba98f09abfc717 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Harshitha Prem <quic_hprem@quicinc.com>
|
||||||
|
Date: Mon, 17 Apr 2023 13:35:01 +0300
|
||||||
|
Subject: [PATCH] wifi: ath11k: add peer mac information in failure cases
|
||||||
|
|
||||||
|
During reo command failure, the peer mac detail for which the reo
|
||||||
|
command was not successful is unknown. Hence, to improve the
|
||||||
|
debuggability, add the peer mac information in the failure cases
|
||||||
|
which would be useful during multi client cases.
|
||||||
|
|
||||||
|
Tested-on: QCN9074 hw1.0 PCI WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1
|
||||||
|
Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1
|
||||||
|
|
||||||
|
Signed-off-by: Sathishkumar Muruganandam <quic_murugana@quicinc.com>
|
||||||
|
Signed-off-by: Harshitha Prem <quic_hprem@quicinc.com>
|
||||||
|
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
|
||||||
|
Link: https://lore.kernel.org/r/20230403182420.23375-4-quic_hprem@quicinc.com
|
||||||
|
---
|
||||||
|
drivers/net/wireless/ath/ath11k/dp_rx.c | 16 ++++++++++------
|
||||||
|
1 file changed, 10 insertions(+), 6 deletions(-)
|
||||||
|
|
||||||
|
--- a/drivers/net/wireless/ath/ath11k/dp_rx.c
|
||||||
|
+++ b/drivers/net/wireless/ath/ath11k/dp_rx.c
|
||||||
|
@@ -1009,7 +1009,8 @@ int ath11k_peer_rx_tid_setup(struct ath1
|
||||||
|
|
||||||
|
peer = ath11k_peer_find(ab, vdev_id, peer_mac);
|
||||||
|
if (!peer) {
|
||||||
|
- ath11k_warn(ab, "failed to find the peer to set up rx tid\n");
|
||||||
|
+ ath11k_warn(ab, "failed to find the peer %pM to set up rx tid\n",
|
||||||
|
+ peer_mac);
|
||||||
|
spin_unlock_bh(&ab->base_lock);
|
||||||
|
return -ENOENT;
|
||||||
|
}
|
||||||
|
@@ -1022,7 +1023,8 @@ int ath11k_peer_rx_tid_setup(struct ath1
|
||||||
|
ba_win_sz, ssn, true);
|
||||||
|
spin_unlock_bh(&ab->base_lock);
|
||||||
|
if (ret) {
|
||||||
|
- ath11k_warn(ab, "failed to update reo for rx tid %d\n", tid);
|
||||||
|
+ ath11k_warn(ab, "failed to update reo for peer %pM rx tid %d\n: %d",
|
||||||
|
+ peer_mac, tid, ret);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -1030,8 +1032,8 @@ int ath11k_peer_rx_tid_setup(struct ath1
|
||||||
|
peer_mac, paddr,
|
||||||
|
tid, 1, ba_win_sz);
|
||||||
|
if (ret)
|
||||||
|
- ath11k_warn(ab, "failed to send wmi command to update rx reorder queue, tid :%d (%d)\n",
|
||||||
|
- tid, ret);
|
||||||
|
+ ath11k_warn(ab, "failed to send wmi rx reorder queue for peer %pM tid %d: %d\n",
|
||||||
|
+ peer_mac, tid, ret);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -1064,6 +1066,8 @@ int ath11k_peer_rx_tid_setup(struct ath1
|
||||||
|
ret = dma_mapping_error(ab->dev, paddr);
|
||||||
|
if (ret) {
|
||||||
|
spin_unlock_bh(&ab->base_lock);
|
||||||
|
+ ath11k_warn(ab, "failed to setup dma map for peer %pM rx tid %d: %d\n",
|
||||||
|
+ peer_mac, tid, ret);
|
||||||
|
goto err_mem_free;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -1077,8 +1081,8 @@ int ath11k_peer_rx_tid_setup(struct ath1
|
||||||
|
ret = ath11k_wmi_peer_rx_reorder_queue_setup(ar, vdev_id, peer_mac,
|
||||||
|
paddr, tid, 1, ba_win_sz);
|
||||||
|
if (ret) {
|
||||||
|
- ath11k_warn(ar->ab, "failed to setup rx reorder queue, tid :%d (%d)\n",
|
||||||
|
- tid, ret);
|
||||||
|
+ ath11k_warn(ar->ab, "failed to setup rx reorder queue for peer %pM tid %d: %d\n",
|
||||||
|
+ peer_mac, tid, ret);
|
||||||
|
ath11k_dp_rx_tid_mem_free(ab, peer_mac, vdev_id, tid);
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,119 @@
|
||||||
|
From 6257c702264c44d74c6b71f0c62a7665da2dc356 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Pradeep Kumar Chitrapu <quic_pradeepc@quicinc.com>
|
||||||
|
Date: Mon, 17 Apr 2023 13:35:02 +0300
|
||||||
|
Subject: [PATCH] wifi: ath11k: fix tx status reporting in encap offload mode
|
||||||
|
|
||||||
|
ieee80211_tx_status() treats packets in 802.11 frame format and
|
||||||
|
tries to extract sta address from packet header. When tx encap
|
||||||
|
offload is enabled, this becomes invalid operation. Hence, switch
|
||||||
|
to using ieee80211_tx_status_ext() after filling in station
|
||||||
|
address for handling both 802.11 and 802.3 frames.
|
||||||
|
|
||||||
|
Tested-on: QCN9074 hw1.0 PCI WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1
|
||||||
|
|
||||||
|
Signed-off-by: Pradeep Kumar Chitrapu <quic_pradeepc@quicinc.com>
|
||||||
|
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
|
||||||
|
Link: https://lore.kernel.org/r/20230403195738.25367-2-quic_pradeepc@quicinc.com
|
||||||
|
---
|
||||||
|
drivers/net/wireless/ath/ath11k/dp.h | 4 +++
|
||||||
|
drivers/net/wireless/ath/ath11k/dp_tx.c | 33 ++++++++++++++++++++++++-
|
||||||
|
drivers/net/wireless/ath/ath11k/dp_tx.h | 1 +
|
||||||
|
3 files changed, 37 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
--- a/drivers/net/wireless/ath/ath11k/dp.h
|
||||||
|
+++ b/drivers/net/wireless/ath/ath11k/dp.h
|
||||||
|
@@ -303,12 +303,16 @@ struct ath11k_dp {
|
||||||
|
|
||||||
|
#define HTT_TX_WBM_COMP_STATUS_OFFSET 8
|
||||||
|
|
||||||
|
+#define HTT_INVALID_PEER_ID 0xffff
|
||||||
|
+
|
||||||
|
/* HTT tx completion is overlaid in wbm_release_ring */
|
||||||
|
#define HTT_TX_WBM_COMP_INFO0_STATUS GENMASK(12, 9)
|
||||||
|
#define HTT_TX_WBM_COMP_INFO0_REINJECT_REASON GENMASK(16, 13)
|
||||||
|
#define HTT_TX_WBM_COMP_INFO0_REINJECT_REASON GENMASK(16, 13)
|
||||||
|
|
||||||
|
#define HTT_TX_WBM_COMP_INFO1_ACK_RSSI GENMASK(31, 24)
|
||||||
|
+#define HTT_TX_WBM_COMP_INFO2_SW_PEER_ID GENMASK(15, 0)
|
||||||
|
+#define HTT_TX_WBM_COMP_INFO2_VALID BIT(21)
|
||||||
|
|
||||||
|
struct htt_tx_wbm_completion {
|
||||||
|
u32 info0;
|
||||||
|
--- a/drivers/net/wireless/ath/ath11k/dp_tx.c
|
||||||
|
+++ b/drivers/net/wireless/ath/ath11k/dp_tx.c
|
||||||
|
@@ -316,10 +316,12 @@ ath11k_dp_tx_htt_tx_complete_buf(struct
|
||||||
|
struct dp_tx_ring *tx_ring,
|
||||||
|
struct ath11k_dp_htt_wbm_tx_status *ts)
|
||||||
|
{
|
||||||
|
+ struct ieee80211_tx_status status = { 0 };
|
||||||
|
struct sk_buff *msdu;
|
||||||
|
struct ieee80211_tx_info *info;
|
||||||
|
struct ath11k_skb_cb *skb_cb;
|
||||||
|
struct ath11k *ar;
|
||||||
|
+ struct ath11k_peer *peer;
|
||||||
|
|
||||||
|
spin_lock(&tx_ring->tx_idr_lock);
|
||||||
|
msdu = idr_remove(&tx_ring->txbuf_idr, ts->msdu_id);
|
||||||
|
@@ -341,6 +343,11 @@ ath11k_dp_tx_htt_tx_complete_buf(struct
|
||||||
|
|
||||||
|
dma_unmap_single(ab->dev, skb_cb->paddr, msdu->len, DMA_TO_DEVICE);
|
||||||
|
|
||||||
|
+ if (!skb_cb->vif) {
|
||||||
|
+ dev_kfree_skb_any(msdu);
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
memset(&info->status, 0, sizeof(info->status));
|
||||||
|
|
||||||
|
if (ts->acked) {
|
||||||
|
@@ -355,7 +362,23 @@ ath11k_dp_tx_htt_tx_complete_buf(struct
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- ieee80211_tx_status(ar->hw, msdu);
|
||||||
|
+ spin_lock_bh(&ab->base_lock);
|
||||||
|
+ peer = ath11k_peer_find_by_id(ab, ts->peer_id);
|
||||||
|
+ if (!peer || !peer->sta) {
|
||||||
|
+ ath11k_dbg(ab, ATH11K_DBG_DATA,
|
||||||
|
+ "dp_tx: failed to find the peer with peer_id %d\n",
|
||||||
|
+ ts->peer_id);
|
||||||
|
+ spin_unlock_bh(&ab->base_lock);
|
||||||
|
+ dev_kfree_skb_any(msdu);
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+ spin_unlock_bh(&ab->base_lock);
|
||||||
|
+
|
||||||
|
+ status.sta = peer->sta;
|
||||||
|
+ status.info = info;
|
||||||
|
+ status.skb = msdu;
|
||||||
|
+
|
||||||
|
+ ieee80211_tx_status_ext(ar->hw, &status);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
@@ -379,7 +402,15 @@ ath11k_dp_tx_process_htt_tx_complete(str
|
||||||
|
ts.msdu_id = msdu_id;
|
||||||
|
ts.ack_rssi = FIELD_GET(HTT_TX_WBM_COMP_INFO1_ACK_RSSI,
|
||||||
|
status_desc->info1);
|
||||||
|
+
|
||||||
|
+ if (FIELD_GET(HTT_TX_WBM_COMP_INFO2_VALID, status_desc->info2))
|
||||||
|
+ ts.peer_id = FIELD_GET(HTT_TX_WBM_COMP_INFO2_SW_PEER_ID,
|
||||||
|
+ status_desc->info2);
|
||||||
|
+ else
|
||||||
|
+ ts.peer_id = HTT_INVALID_PEER_ID;
|
||||||
|
+
|
||||||
|
ath11k_dp_tx_htt_tx_complete_buf(ab, tx_ring, &ts);
|
||||||
|
+
|
||||||
|
break;
|
||||||
|
case HAL_WBM_REL_HTT_TX_COMP_STATUS_REINJ:
|
||||||
|
case HAL_WBM_REL_HTT_TX_COMP_STATUS_INSPECT:
|
||||||
|
--- a/drivers/net/wireless/ath/ath11k/dp_tx.h
|
||||||
|
+++ b/drivers/net/wireless/ath/ath11k/dp_tx.h
|
||||||
|
@@ -13,6 +13,7 @@ struct ath11k_dp_htt_wbm_tx_status {
|
||||||
|
u32 msdu_id;
|
||||||
|
bool acked;
|
||||||
|
int ack_rssi;
|
||||||
|
+ u16 peer_id;
|
||||||
|
};
|
||||||
|
|
||||||
|
void ath11k_dp_tx_update_txcompl(struct ath11k *ar, struct hal_tx_status *ts);
|
|
@ -0,0 +1,49 @@
|
||||||
|
From 2f0c9ac8362da09c80f1cd422ef7fd6fa9b252b9 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Pradeep Kumar Chitrapu <quic_pradeepc@quicinc.com>
|
||||||
|
Date: Mon, 17 Apr 2023 13:35:02 +0300
|
||||||
|
Subject: [PATCH] wifi: ath11k: Fix incorrect update of radiotap fields
|
||||||
|
|
||||||
|
Fix incorrect update of ppdu stats causing incorrect radiotap
|
||||||
|
fields.
|
||||||
|
|
||||||
|
Tested-on: QCN9074 hw1.0 PCI WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1
|
||||||
|
|
||||||
|
Signed-off-by: Pradeep Kumar Chitrapu <quic_pradeepc@quicinc.com>
|
||||||
|
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
|
||||||
|
Link: https://lore.kernel.org/r/20230403195738.25367-3-quic_pradeepc@quicinc.com
|
||||||
|
---
|
||||||
|
drivers/net/wireless/ath/ath11k/hal_rx.c | 4 ++--
|
||||||
|
drivers/net/wireless/ath/ath11k/hal_rx.h | 2 +-
|
||||||
|
2 files changed, 3 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
--- a/drivers/net/wireless/ath/ath11k/hal_rx.c
|
||||||
|
+++ b/drivers/net/wireless/ath/ath11k/hal_rx.c
|
||||||
|
@@ -1029,7 +1029,7 @@ ath11k_hal_rx_parse_mon_status_tlv(struc
|
||||||
|
info1 = __le32_to_cpu(vht_sig->info1);
|
||||||
|
|
||||||
|
ppdu_info->ldpc = FIELD_GET(HAL_RX_VHT_SIG_A_INFO_INFO1_SU_MU_CODING,
|
||||||
|
- info0);
|
||||||
|
+ info1);
|
||||||
|
ppdu_info->mcs = FIELD_GET(HAL_RX_VHT_SIG_A_INFO_INFO1_MCS,
|
||||||
|
info1);
|
||||||
|
gi_setting = FIELD_GET(HAL_RX_VHT_SIG_A_INFO_INFO1_GI_SETTING,
|
||||||
|
@@ -1452,7 +1452,7 @@ ath11k_hal_rx_parse_mon_status_tlv(struc
|
||||||
|
* PHYRX_OTHER_RECEIVE_INFO TLV.
|
||||||
|
*/
|
||||||
|
ppdu_info->rssi_comb =
|
||||||
|
- FIELD_GET(HAL_RX_PHYRX_RSSI_LEGACY_INFO_INFO1_RSSI_COMB,
|
||||||
|
+ FIELD_GET(HAL_RX_PHYRX_RSSI_LEGACY_INFO_INFO0_RSSI_COMB,
|
||||||
|
__le32_to_cpu(rssi->info0));
|
||||||
|
|
||||||
|
if (db2dbm) {
|
||||||
|
--- a/drivers/net/wireless/ath/ath11k/hal_rx.h
|
||||||
|
+++ b/drivers/net/wireless/ath/ath11k/hal_rx.h
|
||||||
|
@@ -385,7 +385,7 @@ struct hal_rx_he_sig_b2_ofdma_info {
|
||||||
|
__le32 info0;
|
||||||
|
} __packed;
|
||||||
|
|
||||||
|
-#define HAL_RX_PHYRX_RSSI_LEGACY_INFO_INFO1_RSSI_COMB GENMASK(15, 8)
|
||||||
|
+#define HAL_RX_PHYRX_RSSI_LEGACY_INFO_INFO0_RSSI_COMB GENMASK(15, 8)
|
||||||
|
|
||||||
|
#define HAL_RX_PHYRX_RSSI_PREAMBLE_PRI20 GENMASK(7, 0)
|
||||||
|
|
|
@ -0,0 +1,70 @@
|
||||||
|
From f9fff67d2d7ca6fa8066132003a3deef654c55b1 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Nagarajan Maran <quic_nmaran@quicinc.com>
|
||||||
|
Date: Mon, 17 Apr 2023 13:35:02 +0300
|
||||||
|
Subject: [PATCH] wifi: ath11k: Fix SKB corruption in REO destination ring
|
||||||
|
|
||||||
|
While running traffics for a long time, randomly an RX descriptor
|
||||||
|
filled with value "0" from REO destination ring is received.
|
||||||
|
This descriptor which is invalid causes the wrong SKB (SKB stored in
|
||||||
|
the IDR lookup with buffer id "0") to be fetched which in turn
|
||||||
|
causes SKB memory corruption issue and the same leads to crash
|
||||||
|
after some time.
|
||||||
|
|
||||||
|
Changed the start id for idr allocation to "1" and the buffer id "0"
|
||||||
|
is reserved for error validation. Introduced Sanity check to validate
|
||||||
|
the descriptor, before processing the SKB.
|
||||||
|
|
||||||
|
Crash Signature :
|
||||||
|
|
||||||
|
Unable to handle kernel paging request at virtual address 3f004900
|
||||||
|
PC points to "b15_dma_inv_range+0x30/0x50"
|
||||||
|
LR points to "dma_cache_maint_page+0x8c/0x128".
|
||||||
|
The Backtrace obtained is as follows:
|
||||||
|
[<8031716c>] (b15_dma_inv_range) from [<80313a4c>] (dma_cache_maint_page+0x8c/0x128)
|
||||||
|
[<80313a4c>] (dma_cache_maint_page) from [<80313b90>] (__dma_page_dev_to_cpu+0x28/0xcc)
|
||||||
|
[<80313b90>] (__dma_page_dev_to_cpu) from [<7fb5dd68>] (ath11k_dp_process_rx+0x1e8/0x4a4 [ath11k])
|
||||||
|
[<7fb5dd68>] (ath11k_dp_process_rx [ath11k]) from [<7fb53c20>] (ath11k_dp_service_srng+0xb0/0x2ac [ath11k])
|
||||||
|
[<7fb53c20>] (ath11k_dp_service_srng [ath11k]) from [<7f67bba4>] (ath11k_pci_ext_grp_napi_poll+0x1c/0x78 [ath11k_pci])
|
||||||
|
[<7f67bba4>] (ath11k_pci_ext_grp_napi_poll [ath11k_pci]) from [<807d5cf4>] (__napi_poll+0x28/0xb8)
|
||||||
|
[<807d5cf4>] (__napi_poll) from [<807d5f28>] (net_rx_action+0xf0/0x280)
|
||||||
|
[<807d5f28>] (net_rx_action) from [<80302148>] (__do_softirq+0xd0/0x280)
|
||||||
|
[<80302148>] (__do_softirq) from [<80320408>] (irq_exit+0x74/0xd4)
|
||||||
|
[<80320408>] (irq_exit) from [<803638a4>] (__handle_domain_irq+0x90/0xb4)
|
||||||
|
[<803638a4>] (__handle_domain_irq) from [<805bedec>] (gic_handle_irq+0x58/0x90)
|
||||||
|
[<805bedec>] (gic_handle_irq) from [<80301a78>] (__irq_svc+0x58/0x8c)
|
||||||
|
|
||||||
|
Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1
|
||||||
|
|
||||||
|
Signed-off-by: Nagarajan Maran <quic_nmaran@quicinc.com>
|
||||||
|
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
|
||||||
|
Link: https://lore.kernel.org/r/20230403191533.28114-1-quic_nmaran@quicinc.com
|
||||||
|
---
|
||||||
|
drivers/net/wireless/ath/ath11k/dp_rx.c | 9 ++++++---
|
||||||
|
1 file changed, 6 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
--- a/drivers/net/wireless/ath/ath11k/dp_rx.c
|
||||||
|
+++ b/drivers/net/wireless/ath/ath11k/dp_rx.c
|
||||||
|
@@ -389,10 +389,10 @@ int ath11k_dp_rxbufs_replenish(struct at
|
||||||
|
goto fail_free_skb;
|
||||||
|
|
||||||
|
spin_lock_bh(&rx_ring->idr_lock);
|
||||||
|
- buf_id = idr_alloc(&rx_ring->bufs_idr, skb, 0,
|
||||||
|
- rx_ring->bufs_max * 3, GFP_ATOMIC);
|
||||||
|
+ buf_id = idr_alloc(&rx_ring->bufs_idr, skb, 1,
|
||||||
|
+ (rx_ring->bufs_max * 3) + 1, GFP_ATOMIC);
|
||||||
|
spin_unlock_bh(&rx_ring->idr_lock);
|
||||||
|
- if (buf_id < 0)
|
||||||
|
+ if (buf_id <= 0)
|
||||||
|
goto fail_dma_unmap;
|
||||||
|
|
||||||
|
desc = ath11k_hal_srng_src_get_next_entry(ab, srng);
|
||||||
|
@@ -2665,6 +2665,9 @@ try_again:
|
||||||
|
cookie);
|
||||||
|
mac_id = FIELD_GET(DP_RXDMA_BUF_COOKIE_PDEV_ID, cookie);
|
||||||
|
|
||||||
|
+ if (unlikely(buf_id == 0))
|
||||||
|
+ continue;
|
||||||
|
+
|
||||||
|
ar = ab->pdevs[mac_id].ar;
|
||||||
|
rx_ring = &ar->dp.rx_refill_buf_ring;
|
||||||
|
spin_lock_bh(&rx_ring->idr_lock);
|
|
@ -0,0 +1,49 @@
|
||||||
|
From b100722a777f6455d913666a376f81342b2cb995 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Muna Sinada <quic_msinada@quicinc.com>
|
||||||
|
Date: Mon, 17 Apr 2023 13:22:27 -0700
|
||||||
|
Subject: [PATCH] wifi: ath11k: Remove disabling of 80+80 and 160 MHz
|
||||||
|
|
||||||
|
This is a regression fix for 80+80 and 160 MHz support bits being
|
||||||
|
cleared, therefore not adverised. Remove disable of 80+80 and 160 MHz
|
||||||
|
capability flags and assign valid center frequency 2 similar to
|
||||||
|
VHT80_80.
|
||||||
|
|
||||||
|
Fixes: 38dfe775d0ab ("wifi: ath11k: push MU-MIMO params from hostapd to hardware")
|
||||||
|
Reported-by: Robert Marko <robert.marko@sartura.hr>
|
||||||
|
Tested-by: Robert Marko <robert.marko@sartura.hr> # IPQ8074 WLAN.HK.2.9.0.1-01385-QCAHKSWPL_SILICONZ-1
|
||||||
|
Link: https://bugzilla.kernel.org/show_bug.cgi?id=217299
|
||||||
|
Co-developed-by: P Praneesh <quic_ppranees@quicinc.com>
|
||||||
|
Signed-off-by: P Praneesh <quic_ppranees@quicinc.com>
|
||||||
|
Signed-off-by: Muna Sinada <quic_msinada@quicinc.com>
|
||||||
|
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
|
||||||
|
Link: https://lore.kernel.org/r/1681762947-13882-1-git-send-email-quic_msinada@quicinc.com
|
||||||
|
---
|
||||||
|
drivers/net/wireless/ath/ath11k/mac.c | 4 ----
|
||||||
|
drivers/net/wireless/ath/ath11k/wmi.c | 3 ++-
|
||||||
|
2 files changed, 2 insertions(+), 5 deletions(-)
|
||||||
|
|
||||||
|
--- a/drivers/net/wireless/ath/ath11k/mac.c
|
||||||
|
+++ b/drivers/net/wireless/ath/ath11k/mac.c
|
||||||
|
@@ -5585,10 +5585,6 @@ static int ath11k_mac_copy_he_cap(struct
|
||||||
|
|
||||||
|
he_cap_elem->mac_cap_info[1] &=
|
||||||
|
IEEE80211_HE_MAC_CAP1_TF_MAC_PAD_DUR_MASK;
|
||||||
|
- he_cap_elem->phy_cap_info[0] &=
|
||||||
|
- ~IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_160MHZ_IN_5G;
|
||||||
|
- he_cap_elem->phy_cap_info[0] &=
|
||||||
|
- ~IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_80PLUS80_MHZ_IN_5G;
|
||||||
|
|
||||||
|
he_cap_elem->phy_cap_info[5] &=
|
||||||
|
~IEEE80211_HE_PHY_CAP5_BEAMFORMEE_NUM_SND_DIM_UNDER_80MHZ_MASK;
|
||||||
|
--- a/drivers/net/wireless/ath/ath11k/wmi.c
|
||||||
|
+++ b/drivers/net/wireless/ath/ath11k/wmi.c
|
||||||
|
@@ -871,7 +871,8 @@ static void ath11k_wmi_put_wmi_channel(s
|
||||||
|
|
||||||
|
chan->band_center_freq2 = arg->channel.band_center_freq1;
|
||||||
|
|
||||||
|
- } else if (arg->channel.mode == MODE_11AC_VHT80_80) {
|
||||||
|
+ } else if ((arg->channel.mode == MODE_11AC_VHT80_80) ||
|
||||||
|
+ (arg->channel.mode == MODE_11AX_HE80_80)) {
|
||||||
|
chan->band_center_freq2 = arg->channel.band_center_freq2;
|
||||||
|
} else {
|
||||||
|
chan->band_center_freq2 = 0;
|
|
@ -0,0 +1,61 @@
|
||||||
|
From e2ceb1de2f83aafd8003f0b72dfd4b7441e97d14 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Maxime Bizon <mbizon@freebox.fr>
|
||||||
|
Date: Fri, 21 Apr 2023 16:54:45 +0200
|
||||||
|
Subject: [PATCH] wifi: ath11k: fix registration of 6Ghz-only phy without the
|
||||||
|
full channel range
|
||||||
|
|
||||||
|
Because of what seems to be a typo, a 6Ghz-only phy for which the BDF
|
||||||
|
does not allow the 7115Mhz channel will fail to register:
|
||||||
|
|
||||||
|
WARNING: CPU: 2 PID: 106 at net/wireless/core.c:907 wiphy_register+0x914/0x954
|
||||||
|
Modules linked in: ath11k_pci sbsa_gwdt
|
||||||
|
CPU: 2 PID: 106 Comm: kworker/u8:5 Not tainted 6.3.0-rc7-next-20230418-00549-g1e096a17625a-dirty #9
|
||||||
|
Hardware name: Freebox V7R Board (DT)
|
||||||
|
Workqueue: ath11k_qmi_driver_event ath11k_qmi_driver_event_work
|
||||||
|
pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
|
||||||
|
pc : wiphy_register+0x914/0x954
|
||||||
|
lr : ieee80211_register_hw+0x67c/0xc10
|
||||||
|
sp : ffffff800b123aa0
|
||||||
|
x29: ffffff800b123aa0 x28: 0000000000000000 x27: 0000000000000000
|
||||||
|
x26: 0000000000000000 x25: 0000000000000006 x24: ffffffc008d51418
|
||||||
|
x23: ffffffc008cb0838 x22: ffffff80176c2460 x21: 0000000000000168
|
||||||
|
x20: ffffff80176c0000 x19: ffffff80176c03e0 x18: 0000000000000014
|
||||||
|
x17: 00000000cbef338c x16: 00000000d2a26f21 x15: 00000000ad6bb85f
|
||||||
|
x14: 0000000000000020 x13: 0000000000000020 x12: 00000000ffffffbd
|
||||||
|
x11: 0000000000000208 x10: 00000000fffffdf7 x9 : ffffffc009394718
|
||||||
|
x8 : ffffff80176c0528 x7 : 000000007fffffff x6 : 0000000000000006
|
||||||
|
x5 : 0000000000000005 x4 : ffffff800b304284 x3 : ffffff800b304284
|
||||||
|
x2 : ffffff800b304d98 x1 : 0000000000000000 x0 : 0000000000000000
|
||||||
|
Call trace:
|
||||||
|
wiphy_register+0x914/0x954
|
||||||
|
ieee80211_register_hw+0x67c/0xc10
|
||||||
|
ath11k_mac_register+0x7c4/0xe10
|
||||||
|
ath11k_core_qmi_firmware_ready+0x1f4/0x570
|
||||||
|
ath11k_qmi_driver_event_work+0x198/0x590
|
||||||
|
process_one_work+0x1b8/0x328
|
||||||
|
worker_thread+0x6c/0x414
|
||||||
|
kthread+0x100/0x104
|
||||||
|
ret_from_fork+0x10/0x20
|
||||||
|
---[ end trace 0000000000000000 ]---
|
||||||
|
ath11k_pci 0002:01:00.0: ieee80211 registration failed: -22
|
||||||
|
ath11k_pci 0002:01:00.0: failed register the radio with mac80211: -22
|
||||||
|
ath11k_pci 0002:01:00.0: failed to create pdev core: -22
|
||||||
|
|
||||||
|
Signed-off-by: Maxime Bizon <mbizon@freebox.fr>
|
||||||
|
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
|
||||||
|
Link: https://lore.kernel.org/r/20230421145445.2612280-1-mbizon@freebox.fr
|
||||||
|
---
|
||||||
|
drivers/net/wireless/ath/ath11k/mac.c | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
--- a/drivers/net/wireless/ath/ath11k/mac.c
|
||||||
|
+++ b/drivers/net/wireless/ath/ath11k/mac.c
|
||||||
|
@@ -8892,7 +8892,7 @@ static int ath11k_mac_setup_channels_rat
|
||||||
|
}
|
||||||
|
|
||||||
|
if (supported_bands & WMI_HOST_WLAN_5G_CAP) {
|
||||||
|
- if (reg_cap->high_5ghz_chan >= ATH11K_MAX_6G_FREQ) {
|
||||||
|
+ if (reg_cap->high_5ghz_chan >= ATH11K_MIN_6G_FREQ) {
|
||||||
|
channels = kmemdup(ath11k_6ghz_channels,
|
||||||
|
sizeof(ath11k_6ghz_channels), GFP_KERNEL);
|
||||||
|
if (!channels) {
|
|
@ -1,130 +0,0 @@
|
||||||
From patchwork Mon Apr 17 20:22:27 2023
|
|
||||||
Content-Type: text/plain; charset="utf-8"
|
|
||||||
MIME-Version: 1.0
|
|
||||||
Content-Transfer-Encoding: 7bit
|
|
||||||
X-Patchwork-Submitter: Muna Sinada <quic_msinada@quicinc.com>
|
|
||||||
X-Patchwork-Id: 13214540
|
|
||||||
X-Patchwork-Delegate: kvalo@adurom.com
|
|
||||||
Return-Path: <linux-wireless-owner@vger.kernel.org>
|
|
||||||
X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on
|
|
||||||
aws-us-west-2-korg-lkml-1.web.codeaurora.org
|
|
||||||
Received: from vger.kernel.org (vger.kernel.org [23.128.96.18])
|
|
||||||
by smtp.lore.kernel.org (Postfix) with ESMTP id 8C359C77B76
|
|
||||||
for <linux-wireless@archiver.kernel.org>;
|
|
||||||
Mon, 17 Apr 2023 20:26:40 +0000 (UTC)
|
|
||||||
Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
|
|
||||||
id S230070AbjDQU0j (ORCPT
|
|
||||||
<rfc822;linux-wireless@archiver.kernel.org>);
|
|
||||||
Mon, 17 Apr 2023 16:26:39 -0400
|
|
||||||
Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53306 "EHLO
|
|
||||||
lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
|
|
||||||
with ESMTP id S229914AbjDQU0h (ORCPT
|
|
||||||
<rfc822;linux-wireless@vger.kernel.org>);
|
|
||||||
Mon, 17 Apr 2023 16:26:37 -0400
|
|
||||||
Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com
|
|
||||||
[205.220.180.131])
|
|
||||||
by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 67CE24C33
|
|
||||||
for <linux-wireless@vger.kernel.org>;
|
|
||||||
Mon, 17 Apr 2023 13:26:24 -0700 (PDT)
|
|
||||||
Received: from pps.filterd (m0279873.ppops.net [127.0.0.1])
|
|
||||||
by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id
|
|
||||||
33HIsf5q010173;
|
|
||||||
Mon, 17 Apr 2023 20:22:47 GMT
|
|
||||||
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com;
|
|
||||||
h=from : to : cc :
|
|
||||||
subject : date : message-id : mime-version : content-type; s=qcppdkim1;
|
|
||||||
bh=FGtbeAR6pG0KxyEKVLIRzkq1RXlKfaVfRT1iixzMcII=;
|
|
||||||
b=jSdZBeFj4RAdCiUPrL/F9n+ufnpxT1pJNfZuA0tfEnUf54SCGUuHT5LtRdojYVh31YSS
|
|
||||||
aAGDRFvl7tIKqq/c6h4tm7SDdlhWF+MU3sH1YJNrwDeMAUZD+RnviJjo+GfgnEtp9+z7
|
|
||||||
PA75vGkpKiuMh6M8QFYB+/XxrJmx/XJBNESfMdAjBuMXnQf4S2yJ/IMwSxPkYKMU3lC6
|
|
||||||
DNnUAcgC/8wawYt8T1d8gKWq5CgWls4i1quveZghsbGUuL01i7SRXdKVianDJJsHEa0G
|
|
||||||
/brUp6LMMeJUgEI8wBfFAtcknzN0ADMVEqsJr+AHvQXnb1iHZyafl6BAeupXNS+Yi+fJ sw==
|
|
||||||
Received: from nalasppmta05.qualcomm.com (Global_NAT1.qualcomm.com
|
|
||||||
[129.46.96.20])
|
|
||||||
by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3q171gh1hb-1
|
|
||||||
(version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256
|
|
||||||
verify=NOT);
|
|
||||||
Mon, 17 Apr 2023 20:22:47 +0000
|
|
||||||
Received: from nalasex01a.na.qualcomm.com (nalasex01a.na.qualcomm.com
|
|
||||||
[10.47.209.196])
|
|
||||||
by NALASPPMTA05.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id
|
|
||||||
33HKMjHs007640
|
|
||||||
(version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256
|
|
||||||
verify=NOT);
|
|
||||||
Mon, 17 Apr 2023 20:22:46 GMT
|
|
||||||
Received: from msinada-linux.qualcomm.com (10.80.80.8) by
|
|
||||||
nalasex01a.na.qualcomm.com (10.47.209.196) with Microsoft SMTP Server
|
|
||||||
(version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
|
|
||||||
15.2.986.42; Mon, 17 Apr 2023 13:22:44 -0700
|
|
||||||
From: Muna Sinada <quic_msinada@quicinc.com>
|
|
||||||
To: <ath11k@lists.infradead.org>
|
|
||||||
CC: <linux-wireless@vger.kernel.org>,
|
|
||||||
Muna Sinada <quic_msinada@quicinc.com>,
|
|
||||||
P Praneesh <quic_ppranees@quicinc.com>
|
|
||||||
Subject: [PATCH] wifi: ath11k: Remove disabling of 80+80 and 160 MHz
|
|
||||||
Date: Mon, 17 Apr 2023 13:22:27 -0700
|
|
||||||
Message-ID: <1681762947-13882-1-git-send-email-quic_msinada@quicinc.com>
|
|
||||||
X-Mailer: git-send-email 2.7.4
|
|
||||||
MIME-Version: 1.0
|
|
||||||
X-Originating-IP: [10.80.80.8]
|
|
||||||
X-ClientProxiedBy: nasanex01a.na.qualcomm.com (10.52.223.231) To
|
|
||||||
nalasex01a.na.qualcomm.com (10.47.209.196)
|
|
||||||
X-QCInternal: smtphost
|
|
||||||
X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800
|
|
||||||
signatures=585085
|
|
||||||
X-Proofpoint-GUID: wqGG1zw0KpXNYk_yFYb16HwLWt9V-6o4
|
|
||||||
X-Proofpoint-ORIG-GUID: wqGG1zw0KpXNYk_yFYb16HwLWt9V-6o4
|
|
||||||
X-Proofpoint-Virus-Version: vendor=baseguard
|
|
||||||
engine=ICAP:2.0.254,Aquarius:18.0.942,Hydra:6.0.573,FMLib:17.11.170.22
|
|
||||||
definitions=2023-04-17_13,2023-04-17_01,2023-02-09_01
|
|
||||||
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
|
|
||||||
priorityscore=1501 mlxscore=0
|
|
||||||
mlxlogscore=796 suspectscore=0 impostorscore=0 bulkscore=0 spamscore=0
|
|
||||||
clxscore=1015 phishscore=0 lowpriorityscore=0 malwarescore=0 adultscore=0
|
|
||||||
classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2303200000
|
|
||||||
definitions=main-2304170181
|
|
||||||
Precedence: bulk
|
|
||||||
List-ID: <linux-wireless.vger.kernel.org>
|
|
||||||
X-Mailing-List: linux-wireless@vger.kernel.org
|
|
||||||
|
|
||||||
This is a regression fix for 80+80 and 160 MHz support bits being
|
|
||||||
cleared, therefore not adverised. Remove disable of 80+80 and 160 MHz
|
|
||||||
capability flags and assign valid center frequency 2 similar to
|
|
||||||
VHT80_80.
|
|
||||||
|
|
||||||
Fixes: 38dfe775d0ab ("wifi: ath11k: push MU-MIMO params from hostapd to hardware")
|
|
||||||
Reported-by: Robert Marko <robert.marko@sartura.hr>
|
|
||||||
Link: https://bugzilla.kernel.org/show_bug.cgi?id=217299
|
|
||||||
Co-developed-by: P Praneesh <quic_ppranees@quicinc.com>
|
|
||||||
Signed-off-by: P Praneesh <quic_ppranees@quicinc.com>
|
|
||||||
Signed-off-by: Muna Sinada <quic_msinada@quicinc.com>
|
|
||||||
---
|
|
||||||
drivers/net/wireless/ath/ath11k/mac.c | 4 ----
|
|
||||||
drivers/net/wireless/ath/ath11k/wmi.c | 3 ++-
|
|
||||||
2 files changed, 2 insertions(+), 5 deletions(-)
|
|
||||||
|
|
||||||
--- a/drivers/net/wireless/ath/ath11k/mac.c
|
|
||||||
+++ b/drivers/net/wireless/ath/ath11k/mac.c
|
|
||||||
@@ -5585,10 +5585,6 @@ static int ath11k_mac_copy_he_cap(struct
|
|
||||||
|
|
||||||
he_cap_elem->mac_cap_info[1] &=
|
|
||||||
IEEE80211_HE_MAC_CAP1_TF_MAC_PAD_DUR_MASK;
|
|
||||||
- he_cap_elem->phy_cap_info[0] &=
|
|
||||||
- ~IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_160MHZ_IN_5G;
|
|
||||||
- he_cap_elem->phy_cap_info[0] &=
|
|
||||||
- ~IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_80PLUS80_MHZ_IN_5G;
|
|
||||||
|
|
||||||
he_cap_elem->phy_cap_info[5] &=
|
|
||||||
~IEEE80211_HE_PHY_CAP5_BEAMFORMEE_NUM_SND_DIM_UNDER_80MHZ_MASK;
|
|
||||||
--- a/drivers/net/wireless/ath/ath11k/wmi.c
|
|
||||||
+++ b/drivers/net/wireless/ath/ath11k/wmi.c
|
|
||||||
@@ -871,7 +871,8 @@ static void ath11k_wmi_put_wmi_channel(s
|
|
||||||
|
|
||||||
chan->band_center_freq2 = arg->channel.band_center_freq1;
|
|
||||||
|
|
||||||
- } else if (arg->channel.mode == MODE_11AC_VHT80_80) {
|
|
||||||
+ } else if ((arg->channel.mode == MODE_11AC_VHT80_80) ||
|
|
||||||
+ (arg->channel.mode == MODE_11AX_HE80_80)) {
|
|
||||||
chan->band_center_freq2 = arg->channel.band_center_freq2;
|
|
||||||
} else {
|
|
||||||
chan->band_center_freq2 = 0;
|
|
|
@ -15,9 +15,9 @@ PKG_LICENSE_FILES:=
|
||||||
|
|
||||||
PKG_SOURCE_URL:=https://github.com/kaloz/mwlwifi
|
PKG_SOURCE_URL:=https://github.com/kaloz/mwlwifi
|
||||||
PKG_SOURCE_PROTO:=git
|
PKG_SOURCE_PROTO:=git
|
||||||
PKG_SOURCE_DATE:=2023-03-11
|
PKG_SOURCE_DATE:=2023-04-29
|
||||||
PKG_SOURCE_VERSION:=c916ac13376d1b0801f3f787277fa47ce6b694eb
|
PKG_SOURCE_VERSION:=6a436714d2ea0d0adf39fc4d7d45e6a17fcc9371
|
||||||
PKG_MIRROR_HASH:=b95001b60fe5c28f08be5a52b65276d99877be57e567ad7afab95860f6aff57d
|
PKG_MIRROR_HASH:=dcc320a8f859b732ff65c7ded0b5199a625bfba05a775a6bed15ed3c10cb2748
|
||||||
|
|
||||||
PKG_MAINTAINER:=Imre Kaloz <kaloz@openwrt.org>
|
PKG_MAINTAINER:=Imre Kaloz <kaloz@openwrt.org>
|
||||||
PKG_BUILD_PARALLEL:=1
|
PKG_BUILD_PARALLEL:=1
|
||||||
|
|
|
@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=gettext-full
|
PKG_NAME:=gettext-full
|
||||||
PKG_VERSION:=0.21.1
|
PKG_VERSION:=0.21.1
|
||||||
PKG_RELEASE:=1
|
PKG_RELEASE:=2
|
||||||
|
|
||||||
PKG_SOURCE:=gettext-$(PKG_VERSION).tar.xz
|
PKG_SOURCE:=gettext-$(PKG_VERSION).tar.xz
|
||||||
PKG_SOURCE_URL:=@GNU/gettext
|
PKG_SOURCE_URL:=@GNU/gettext
|
||||||
|
@ -21,12 +21,42 @@ PKG_MAINTAINER:=Jo-Philipp Wich <jo@mein.io>
|
||||||
PKG_LICENSE:=GPL-3.0-or-later
|
PKG_LICENSE:=GPL-3.0-or-later
|
||||||
PKG_CPE_ID:=cpe:/a:gnu:gettext
|
PKG_CPE_ID:=cpe:/a:gnu:gettext
|
||||||
|
|
||||||
PKG_FIXUP:=autoreconf
|
|
||||||
PKG_INSTALL:=1
|
PKG_INSTALL:=1
|
||||||
PKG_BUILD_DEPENDS:=gettext-full/host
|
PKG_BUILD_DEPENDS:=gettext-full/host libxml2
|
||||||
PKG_BUILD_PARALLEL:=0
|
PKG_BUILD_PARALLEL:=0
|
||||||
|
|
||||||
|
HOST_BUILD_DEPENDS:=gperf/host libxml2/host
|
||||||
HOST_BUILD_PARALLEL:=0
|
HOST_BUILD_PARALLEL:=0
|
||||||
|
|
||||||
|
PKG_SUBDIRS:= \
|
||||||
|
$$$$(foreach dir, \
|
||||||
|
intl \
|
||||||
|
intl-csharp \
|
||||||
|
intl-java \
|
||||||
|
its \
|
||||||
|
gnulib-lib \
|
||||||
|
gnulib-local \
|
||||||
|
lib \
|
||||||
|
$$$$(SUBDIR_libasprintf) \
|
||||||
|
libgettextpo \
|
||||||
|
libgrep \
|
||||||
|
libtextstyle \
|
||||||
|
m4 \
|
||||||
|
misc \
|
||||||
|
po \
|
||||||
|
projects \
|
||||||
|
src \
|
||||||
|
styles \
|
||||||
|
gettext-runtime \
|
||||||
|
gettext-tools \
|
||||||
|
,$$$$(wildcard $$$$(dir)) )
|
||||||
|
|
||||||
|
PKG_MAKEFILES_FAKE:= \
|
||||||
|
gnulib-local/m4/Makefile \
|
||||||
|
libtextstyle/gnulib-local/Makefile \
|
||||||
|
libtextstyle/m4/Makefile \
|
||||||
|
m4/Makefile
|
||||||
|
|
||||||
include $(INCLUDE_DIR)/package.mk
|
include $(INCLUDE_DIR)/package.mk
|
||||||
include $(INCLUDE_DIR)/host-build.mk
|
include $(INCLUDE_DIR)/host-build.mk
|
||||||
|
|
||||||
|
@ -38,6 +68,8 @@ define Package/libintl-full
|
||||||
ABI_VERSION:=8
|
ABI_VERSION:=8
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
export GNULIB_SRCDIR:=$(HOST_GNULIB_SRCDIR)
|
||||||
|
|
||||||
TARGET_CFLAGS += $(FPIC)
|
TARGET_CFLAGS += $(FPIC)
|
||||||
ifneq ($(HOST_OS),Linux)
|
ifneq ($(HOST_OS),Linux)
|
||||||
TARGET_CFLAGS += -I$(STAGING_DIR_HOSTPKG)/include
|
TARGET_CFLAGS += -I$(STAGING_DIR_HOSTPKG)/include
|
||||||
|
@ -55,6 +87,7 @@ CONFIGURE_ARGS += \
|
||||||
--with-included-gettext \
|
--with-included-gettext \
|
||||||
--without-libintl-prefix \
|
--without-libintl-prefix \
|
||||||
--without-libexpat-prefix \
|
--without-libexpat-prefix \
|
||||||
|
--with-libxml2-prefix=$(STAGING_DIR) \
|
||||||
--without-emacs
|
--without-emacs
|
||||||
|
|
||||||
HOST_CONFIGURE_ARGS += \
|
HOST_CONFIGURE_ARGS += \
|
||||||
|
@ -65,7 +98,7 @@ HOST_CONFIGURE_ARGS += \
|
||||||
--disable-java \
|
--disable-java \
|
||||||
--disable-openmp \
|
--disable-openmp \
|
||||||
--without-emacs \
|
--without-emacs \
|
||||||
--without-libxml2-prefix
|
--with-libxml2-prefix=$(STAGING_DIR_HOSTPKG)
|
||||||
|
|
||||||
HOST_CONFIGURE_VARS += \
|
HOST_CONFIGURE_VARS += \
|
||||||
EMACS="no" \
|
EMACS="no" \
|
||||||
|
@ -75,6 +108,52 @@ HOST_CONFIGURE_VARS += \
|
||||||
|
|
||||||
HOST_CFLAGS += $(HOST_FPIC)
|
HOST_CFLAGS += $(HOST_FPIC)
|
||||||
|
|
||||||
|
define Host/Bootstrap
|
||||||
|
( \
|
||||||
|
cd $(HOST_BUILD_DIR); \
|
||||||
|
$(AM_TOOL_PATHS) \
|
||||||
|
./autogen.sh \
|
||||||
|
)
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Host/Prepare
|
||||||
|
$(call Host/Prepare/Default)
|
||||||
|
$(if $(QUILT),,$(call Host/Bootstrap))
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Host/Configure
|
||||||
|
$(if $(QUILT),$(call Host/Bootstrap))
|
||||||
|
$(call Host/Configure/Default)
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Host/Compile
|
||||||
|
$(foreach makefile,$(PKG_MAKEFILES_FAKE),printf '%s\n%s\n' 'all:' 'install:' > $(HOST_BUILD_DIR)/$(makefile); )
|
||||||
|
$(call Host/Compile/Default,SUBDIRS='$(PKG_SUBDIRS)')
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Build/Bootstrap
|
||||||
|
( \
|
||||||
|
cd $(PKG_BUILD_DIR); \
|
||||||
|
$(AM_TOOL_PATHS) \
|
||||||
|
./autogen.sh \
|
||||||
|
)
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Build/Prepare
|
||||||
|
$(call Build/Prepare/Default)
|
||||||
|
$(if $(QUILT),,$(call Build/Bootstrap))
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Build/Configure
|
||||||
|
$(if $(QUILT),$(call Build/Bootstrap))
|
||||||
|
$(call Build/Configure/Default)
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Build/Compile
|
||||||
|
$(foreach makefile,$(PKG_MAKEFILES_FAKE),printf '%s\n%s\n' 'all:' 'install:' > $(PKG_BUILD_DIR)/$(makefile); )
|
||||||
|
$(call Build/Compile/Default,SUBDIRS='$(PKG_SUBDIRS)')
|
||||||
|
endef
|
||||||
|
|
||||||
define Build/InstallDev
|
define Build/InstallDev
|
||||||
$(INSTALL_DIR) $(1)/usr/lib/libintl-full/include
|
$(INSTALL_DIR) $(1)/usr/lib/libintl-full/include
|
||||||
$(CP) $(PKG_INSTALL_DIR)/usr/include/libintl.h $(1)/usr/lib/libintl-full/include/
|
$(CP) $(PKG_INSTALL_DIR)/usr/include/libintl.h $(1)/usr/lib/libintl-full/include/
|
||||||
|
@ -89,10 +168,14 @@ define Build/InstallDev
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Host/Install
|
define Host/Install
|
||||||
$(call Host/Install/Default)
|
$(call Host/Compile/Default,install SUBDIRS='$(PKG_SUBDIRS)')
|
||||||
$(LN) msgfmt $(STAGING_DIR_HOSTPKG)/bin/gmsgfmt
|
$(LN) msgfmt $(STAGING_DIR_HOSTPKG)/bin/gmsgfmt
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
define Build/Install
|
||||||
|
$(call Build/Install/Default,install SUBDIRS='$(PKG_SUBDIRS)')
|
||||||
|
endef
|
||||||
|
|
||||||
define Package/libintl-full/install
|
define Package/libintl-full/install
|
||||||
$(INSTALL_DIR) $(1)/usr/lib
|
$(INSTALL_DIR) $(1)/usr/lib
|
||||||
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libintl.so.* $(1)/usr/lib/
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libintl.so.* $(1)/usr/lib/
|
||||||
|
|
|
@ -1,22 +0,0 @@
|
||||||
--- a/gettext-runtime/Makefile.am
|
|
||||||
+++ b/gettext-runtime/Makefile.am
|
|
||||||
@@ -27,7 +27,7 @@ SUBDIR_libasprintf = libasprintf
|
|
||||||
else
|
|
||||||
SUBDIR_libasprintf =
|
|
||||||
endif
|
|
||||||
-SUBDIRS = doc intl intl-java intl-csharp gnulib-lib $(SUBDIR_libasprintf) src po man m4 tests
|
|
||||||
+SUBDIRS = intl intl-java intl-csharp gnulib-lib $(SUBDIR_libasprintf) src po m4
|
|
||||||
|
|
||||||
EXTRA_DIST = BUGS
|
|
||||||
|
|
||||||
--- a/gettext-tools/Makefile.am
|
|
||||||
+++ b/gettext-tools/Makefile.am
|
|
||||||
@@ -19,7 +19,7 @@
|
|
||||||
AUTOMAKE_OPTIONS = 1.5 gnu no-dependencies
|
|
||||||
ACLOCAL_AMFLAGS = -I m4 -I ../gettext-runtime/m4 -I ../m4 -I gnulib-m4 -I libgrep/gnulib-m4 -I libgettextpo/gnulib-m4
|
|
||||||
|
|
||||||
-SUBDIRS = intl gnulib-lib libgrep src libgettextpo po its projects styles emacs misc man m4 tests system-tests gnulib-tests examples doc
|
|
||||||
+SUBDIRS = intl gnulib-lib libgrep src libgettextpo po its projects styles misc m4
|
|
||||||
|
|
||||||
EXTRA_DIST = misc/DISCLAIM
|
|
||||||
MOSTLYCLEANFILES = core *.stackdump
|
|
|
@ -1,342 +0,0 @@
|
||||||
--- a/gettext-runtime/gnulib-m4/stddef_h.m4
|
|
||||||
+++ b/gettext-runtime/gnulib-m4/stddef_h.m4
|
|
||||||
@@ -9,7 +9,7 @@ dnl A placeholder for <stddef.h>, for pl
|
|
||||||
AC_DEFUN_ONCE([gl_STDDEF_H],
|
|
||||||
[
|
|
||||||
AC_REQUIRE([gl_STDDEF_H_DEFAULTS])
|
|
||||||
- AC_REQUIRE([gt_TYPE_WCHAR_T])
|
|
||||||
+ AC_REQUIRE([gt_TYPE_WCHAR_T_GT])
|
|
||||||
|
|
||||||
dnl Persuade OpenBSD <stddef.h> to declare max_align_t.
|
|
||||||
AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
|
|
||||||
--- a/gettext-runtime/gnulib-m4/stdint.m4
|
|
||||||
+++ b/gettext-runtime/gnulib-m4/stdint.m4
|
|
||||||
@@ -15,7 +15,7 @@ AC_DEFUN_ONCE([gl_STDINT_H],
|
|
||||||
AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
|
|
||||||
|
|
||||||
AC_REQUIRE([gl_LIMITS_H])
|
|
||||||
- AC_REQUIRE([gt_TYPE_WINT_T])
|
|
||||||
+ AC_REQUIRE([gt_TYPE_WINT_T_GT])
|
|
||||||
|
|
||||||
dnl For backward compatibility. Some packages may still be testing these
|
|
||||||
dnl macros.
|
|
||||||
--- a/gettext-runtime/gnulib-m4/wchar_h.m4
|
|
||||||
+++ b/gettext-runtime/gnulib-m4/wchar_h.m4
|
|
||||||
@@ -27,7 +27,7 @@ AC_DEFUN_ONCE([gl_WCHAR_H],
|
|
||||||
|
|
||||||
AC_REQUIRE([gl_FEATURES_H])
|
|
||||||
|
|
||||||
- AC_REQUIRE([gt_TYPE_WINT_T])
|
|
||||||
+ AC_REQUIRE([gt_TYPE_WINT_T_GT])
|
|
||||||
if test $gt_cv_c_wint_t = yes; then
|
|
||||||
HAVE_WINT_T=1
|
|
||||||
else
|
|
||||||
--- a/gettext-runtime/gnulib-m4/wchar_t.m4
|
|
||||||
+++ b/gettext-runtime/gnulib-m4/wchar_t.m4
|
|
||||||
@@ -8,7 +8,7 @@ dnl From Bruno Haible.
|
|
||||||
dnl Test whether <stddef.h> has the 'wchar_t' type.
|
|
||||||
dnl Prerequisite: AC_PROG_CC
|
|
||||||
|
|
||||||
-AC_DEFUN([gt_TYPE_WCHAR_T],
|
|
||||||
+AC_DEFUN([gt_TYPE_WCHAR_T_GT],
|
|
||||||
[
|
|
||||||
AC_CACHE_CHECK([for wchar_t], [gt_cv_c_wchar_t],
|
|
||||||
[AC_COMPILE_IFELSE(
|
|
||||||
--- a/gettext-runtime/gnulib-m4/wctype_h.m4
|
|
||||||
+++ b/gettext-runtime/gnulib-m4/wctype_h.m4
|
|
||||||
@@ -22,7 +22,7 @@ AC_DEFUN_ONCE([gl_WCTYPE_H],
|
|
||||||
fi
|
|
||||||
AC_SUBST([HAVE_ISWCNTRL])
|
|
||||||
|
|
||||||
- AC_REQUIRE([gt_TYPE_WINT_T])
|
|
||||||
+ AC_REQUIRE([gt_TYPE_WINT_T_GT])
|
|
||||||
if test $gt_cv_c_wint_t = yes; then
|
|
||||||
HAVE_WINT_T=1
|
|
||||||
else
|
|
||||||
--- a/gettext-runtime/gnulib-m4/wcwidth.m4
|
|
||||||
+++ b/gettext-runtime/gnulib-m4/wcwidth.m4
|
|
||||||
@@ -12,8 +12,8 @@ AC_DEFUN([gl_FUNC_WCWIDTH],
|
|
||||||
dnl Persuade glibc <wchar.h> to declare wcwidth().
|
|
||||||
AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
|
|
||||||
|
|
||||||
- AC_REQUIRE([gt_TYPE_WCHAR_T])
|
|
||||||
- AC_REQUIRE([gt_TYPE_WINT_T])
|
|
||||||
+ AC_REQUIRE([gt_TYPE_WCHAR_T_GT])
|
|
||||||
+ AC_REQUIRE([gt_TYPE_WINT_T_GT])
|
|
||||||
|
|
||||||
AC_CHECK_HEADERS_ONCE([wchar.h])
|
|
||||||
AC_CHECK_FUNCS_ONCE([wcwidth])
|
|
||||||
--- a/gettext-runtime/gnulib-m4/wint_t.m4
|
|
||||||
+++ b/gettext-runtime/gnulib-m4/wint_t.m4
|
|
||||||
@@ -9,7 +9,7 @@ dnl Test whether <wchar.h> has the 'wint
|
|
||||||
dnl <wchar.h> or <wctype.h> would, if present, override 'wint_t'.
|
|
||||||
dnl Prerequisite: AC_PROG_CC
|
|
||||||
|
|
||||||
-AC_DEFUN([gt_TYPE_WINT_T],
|
|
||||||
+AC_DEFUN([gt_TYPE_WINT_T_GT],
|
|
||||||
[
|
|
||||||
AC_CACHE_CHECK([for wint_t], [gt_cv_c_wint_t],
|
|
||||||
[AC_COMPILE_IFELSE(
|
|
||||||
--- a/gettext-runtime/libasprintf/configure.ac
|
|
||||||
+++ b/gettext-runtime/libasprintf/configure.ac
|
|
||||||
@@ -76,8 +76,8 @@ dnl Checks for typedefs, structures, and
|
|
||||||
AC_C_INLINE
|
|
||||||
AC_TYPE_SIZE_T
|
|
||||||
AC_TYPE_LONG_LONG_INT
|
|
||||||
-gt_TYPE_WCHAR_T
|
|
||||||
-gt_TYPE_WINT_T
|
|
||||||
+gt_TYPE_WCHAR_T_GT
|
|
||||||
+gt_TYPE_WINT_T_GT
|
|
||||||
AC_TYPE_MBSTATE_T
|
|
||||||
AC_CHECK_TYPE([ptrdiff_t], ,
|
|
||||||
[AC_DEFINE([ptrdiff_t], [long],
|
|
||||||
--- a/gettext-runtime/libasprintf/gnulib-m4/wchar_t.m4
|
|
||||||
+++ b/gettext-runtime/libasprintf/gnulib-m4/wchar_t.m4
|
|
||||||
@@ -8,7 +8,7 @@ dnl From Bruno Haible.
|
|
||||||
dnl Test whether <stddef.h> has the 'wchar_t' type.
|
|
||||||
dnl Prerequisite: AC_PROG_CC
|
|
||||||
|
|
||||||
-AC_DEFUN([gt_TYPE_WCHAR_T],
|
|
||||||
+AC_DEFUN([gt_TYPE_WCHAR_T_GT],
|
|
||||||
[
|
|
||||||
AC_CACHE_CHECK([for wchar_t], [gt_cv_c_wchar_t],
|
|
||||||
[AC_COMPILE_IFELSE(
|
|
||||||
--- a/gettext-runtime/libasprintf/gnulib-m4/wint_t.m4
|
|
||||||
+++ b/gettext-runtime/libasprintf/gnulib-m4/wint_t.m4
|
|
||||||
@@ -9,7 +9,7 @@ dnl Test whether <wchar.h> has the 'wint
|
|
||||||
dnl <wchar.h> or <wctype.h> would, if present, override 'wint_t'.
|
|
||||||
dnl Prerequisite: AC_PROG_CC
|
|
||||||
|
|
||||||
-AC_DEFUN([gt_TYPE_WINT_T],
|
|
||||||
+AC_DEFUN([gt_TYPE_WINT_T_GT],
|
|
||||||
[
|
|
||||||
AC_CACHE_CHECK([for wint_t], [gt_cv_c_wint_t],
|
|
||||||
[AC_COMPILE_IFELSE(
|
|
||||||
--- a/gettext-runtime/m4/intl.m4
|
|
||||||
+++ b/gettext-runtime/m4/intl.m4
|
|
||||||
@@ -31,8 +31,8 @@ AC_DEFUN([AM_INTL_SUBDIR],
|
|
||||||
AC_REQUIRE([gl_VISIBILITY])dnl
|
|
||||||
AC_REQUIRE([gt_INTL_SUBDIR_CORE])dnl
|
|
||||||
AC_REQUIRE([AC_TYPE_LONG_LONG_INT])dnl
|
|
||||||
- AC_REQUIRE([gt_TYPE_WCHAR_T])dnl
|
|
||||||
- AC_REQUIRE([gt_TYPE_WINT_T])dnl
|
|
||||||
+ AC_REQUIRE([gt_TYPE_WCHAR_T_GT])dnl
|
|
||||||
+ AC_REQUIRE([gt_TYPE_WINT_T_GT])dnl
|
|
||||||
AC_REQUIRE([gl_AC_HEADER_INTTYPES_H])
|
|
||||||
AC_REQUIRE([gt_TYPE_INTMAX_T])
|
|
||||||
AC_REQUIRE([gt_PRINTF_POSIX])
|
|
||||||
--- a/gettext-tools/gnulib-m4/stdint.m4
|
|
||||||
+++ b/gettext-tools/gnulib-m4/stdint.m4
|
|
||||||
@@ -15,7 +15,7 @@ AC_DEFUN_ONCE([gl_STDINT_H],
|
|
||||||
AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
|
|
||||||
|
|
||||||
AC_REQUIRE([gl_LIMITS_H])
|
|
||||||
- AC_REQUIRE([gt_TYPE_WINT_T])
|
|
||||||
+ AC_REQUIRE([gt_TYPE_WINT_T_GT])
|
|
||||||
|
|
||||||
dnl For backward compatibility. Some packages may still be testing these
|
|
||||||
dnl macros.
|
|
||||||
--- a/gettext-tools/gnulib-m4/vasnprintf.m4
|
|
||||||
+++ b/gettext-tools/gnulib-m4/vasnprintf.m4
|
|
||||||
@@ -32,16 +32,16 @@ AC_DEFUN([gl_REPLACE_VASNPRINTF],
|
|
||||||
# Prerequisites of lib/printf-args.h, lib/printf-args.c.
|
|
||||||
AC_DEFUN([gl_PREREQ_PRINTF_ARGS],
|
|
||||||
[
|
|
||||||
- AC_REQUIRE([gt_TYPE_WCHAR_T])
|
|
||||||
- AC_REQUIRE([gt_TYPE_WINT_T])
|
|
||||||
+ AC_REQUIRE([gt_TYPE_WCHAR_T_GT])
|
|
||||||
+ AC_REQUIRE([gt_TYPE_WINT_T_GT])
|
|
||||||
])
|
|
||||||
|
|
||||||
# Prerequisites of lib/printf-parse.h, lib/printf-parse.c.
|
|
||||||
AC_DEFUN([gl_PREREQ_PRINTF_PARSE],
|
|
||||||
[
|
|
||||||
AC_REQUIRE([gl_FEATURES_H])
|
|
||||||
- AC_REQUIRE([gt_TYPE_WCHAR_T])
|
|
||||||
- AC_REQUIRE([gt_TYPE_WINT_T])
|
|
||||||
+ AC_REQUIRE([gt_TYPE_WCHAR_T_GT])
|
|
||||||
+ AC_REQUIRE([gt_TYPE_WINT_T_GT])
|
|
||||||
AC_REQUIRE([AC_TYPE_SIZE_T])
|
|
||||||
AC_CHECK_TYPE([ptrdiff_t], ,
|
|
||||||
[AC_DEFINE([ptrdiff_t], [long],
|
|
||||||
@@ -54,8 +54,8 @@ AC_DEFUN([gl_PREREQ_PRINTF_PARSE],
|
|
||||||
AC_DEFUN_ONCE([gl_PREREQ_VASNPRINTF],
|
|
||||||
[
|
|
||||||
AC_REQUIRE([AC_FUNC_ALLOCA])
|
|
||||||
- AC_REQUIRE([gt_TYPE_WCHAR_T])
|
|
||||||
- AC_REQUIRE([gt_TYPE_WINT_T])
|
|
||||||
+ AC_REQUIRE([gt_TYPE_WCHAR_T_GT])
|
|
||||||
+ AC_REQUIRE([gt_TYPE_WINT_T_GT])
|
|
||||||
AC_CHECK_FUNCS([snprintf strnlen wcslen wcsnlen mbrtowc wcrtomb])
|
|
||||||
dnl Use the _snprintf function only if it is declared (because on NetBSD it
|
|
||||||
dnl is defined as a weak alias of snprintf; we prefer to use the latter).
|
|
||||||
--- a/gettext-tools/gnulib-m4/wchar_h.m4
|
|
||||||
+++ b/gettext-tools/gnulib-m4/wchar_h.m4
|
|
||||||
@@ -27,7 +27,7 @@ AC_DEFUN_ONCE([gl_WCHAR_H],
|
|
||||||
|
|
||||||
AC_REQUIRE([gl_FEATURES_H])
|
|
||||||
|
|
||||||
- AC_REQUIRE([gt_TYPE_WINT_T])
|
|
||||||
+ AC_REQUIRE([gt_TYPE_WINT_T_GT])
|
|
||||||
if test $gt_cv_c_wint_t = yes; then
|
|
||||||
HAVE_WINT_T=1
|
|
||||||
else
|
|
||||||
--- a/gettext-tools/gnulib-m4/wchar_t.m4
|
|
||||||
+++ b/gettext-tools/gnulib-m4/wchar_t.m4
|
|
||||||
@@ -8,7 +8,7 @@ dnl From Bruno Haible.
|
|
||||||
dnl Test whether <stddef.h> has the 'wchar_t' type.
|
|
||||||
dnl Prerequisite: AC_PROG_CC
|
|
||||||
|
|
||||||
-AC_DEFUN([gt_TYPE_WCHAR_T],
|
|
||||||
+AC_DEFUN([gt_TYPE_WCHAR_T_GT],
|
|
||||||
[
|
|
||||||
AC_CACHE_CHECK([for wchar_t], [gt_cv_c_wchar_t],
|
|
||||||
[AC_COMPILE_IFELSE(
|
|
||||||
--- a/gettext-tools/gnulib-m4/wctype_h.m4
|
|
||||||
+++ b/gettext-tools/gnulib-m4/wctype_h.m4
|
|
||||||
@@ -22,7 +22,7 @@ AC_DEFUN_ONCE([gl_WCTYPE_H],
|
|
||||||
fi
|
|
||||||
AC_SUBST([HAVE_ISWCNTRL])
|
|
||||||
|
|
||||||
- AC_REQUIRE([gt_TYPE_WINT_T])
|
|
||||||
+ AC_REQUIRE([gt_TYPE_WINT_T_GT])
|
|
||||||
if test $gt_cv_c_wint_t = yes; then
|
|
||||||
HAVE_WINT_T=1
|
|
||||||
else
|
|
||||||
--- a/gettext-tools/gnulib-m4/wcwidth.m4
|
|
||||||
+++ b/gettext-tools/gnulib-m4/wcwidth.m4
|
|
||||||
@@ -12,8 +12,8 @@ AC_DEFUN([gl_FUNC_WCWIDTH],
|
|
||||||
dnl Persuade glibc <wchar.h> to declare wcwidth().
|
|
||||||
AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
|
|
||||||
|
|
||||||
- AC_REQUIRE([gt_TYPE_WCHAR_T])
|
|
||||||
- AC_REQUIRE([gt_TYPE_WINT_T])
|
|
||||||
+ AC_REQUIRE([gt_TYPE_WCHAR_T_GT])
|
|
||||||
+ AC_REQUIRE([gt_TYPE_WINT_T_GT])
|
|
||||||
|
|
||||||
AC_CHECK_HEADERS_ONCE([wchar.h])
|
|
||||||
AC_CHECK_FUNCS_ONCE([wcwidth])
|
|
||||||
--- a/gettext-tools/gnulib-m4/wint_t.m4
|
|
||||||
+++ b/gettext-tools/gnulib-m4/wint_t.m4
|
|
||||||
@@ -9,7 +9,7 @@ dnl Test whether <wchar.h> has the 'wint
|
|
||||||
dnl <wchar.h> or <wctype.h> would, if present, override 'wint_t'.
|
|
||||||
dnl Prerequisite: AC_PROG_CC
|
|
||||||
|
|
||||||
-AC_DEFUN([gt_TYPE_WINT_T],
|
|
||||||
+AC_DEFUN([gt_TYPE_WINT_T_GT],
|
|
||||||
[
|
|
||||||
AC_CACHE_CHECK([for wint_t], [gt_cv_c_wint_t],
|
|
||||||
[AC_COMPILE_IFELSE(
|
|
||||||
--- a/libtextstyle/gnulib-m4/stdint.m4
|
|
||||||
+++ b/libtextstyle/gnulib-m4/stdint.m4
|
|
||||||
@@ -15,7 +15,7 @@ AC_DEFUN_ONCE([gl_STDINT_H],
|
|
||||||
AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
|
|
||||||
|
|
||||||
AC_REQUIRE([gl_LIMITS_H])
|
|
||||||
- AC_REQUIRE([gt_TYPE_WINT_T])
|
|
||||||
+ AC_REQUIRE([gt_TYPE_WINT_T_GT])
|
|
||||||
|
|
||||||
dnl For backward compatibility. Some packages may still be testing these
|
|
||||||
dnl macros.
|
|
||||||
--- a/libtextstyle/gnulib-m4/vasnprintf.m4
|
|
||||||
+++ b/libtextstyle/gnulib-m4/vasnprintf.m4
|
|
||||||
@@ -32,16 +32,16 @@ AC_DEFUN([gl_REPLACE_VASNPRINTF],
|
|
||||||
# Prerequisites of lib/printf-args.h, lib/printf-args.c.
|
|
||||||
AC_DEFUN([gl_PREREQ_PRINTF_ARGS],
|
|
||||||
[
|
|
||||||
- AC_REQUIRE([gt_TYPE_WCHAR_T])
|
|
||||||
- AC_REQUIRE([gt_TYPE_WINT_T])
|
|
||||||
+ AC_REQUIRE([gt_TYPE_WCHAR_T_GT])
|
|
||||||
+ AC_REQUIRE([gt_TYPE_WINT_T_GT])
|
|
||||||
])
|
|
||||||
|
|
||||||
# Prerequisites of lib/printf-parse.h, lib/printf-parse.c.
|
|
||||||
AC_DEFUN([gl_PREREQ_PRINTF_PARSE],
|
|
||||||
[
|
|
||||||
AC_REQUIRE([gl_FEATURES_H])
|
|
||||||
- AC_REQUIRE([gt_TYPE_WCHAR_T])
|
|
||||||
- AC_REQUIRE([gt_TYPE_WINT_T])
|
|
||||||
+ AC_REQUIRE([gt_TYPE_WCHAR_T_GT])
|
|
||||||
+ AC_REQUIRE([gt_TYPE_WINT_T_GT])
|
|
||||||
AC_REQUIRE([AC_TYPE_SIZE_T])
|
|
||||||
AC_CHECK_TYPE([ptrdiff_t], ,
|
|
||||||
[AC_DEFINE([ptrdiff_t], [long],
|
|
||||||
@@ -54,8 +54,8 @@ AC_DEFUN([gl_PREREQ_PRINTF_PARSE],
|
|
||||||
AC_DEFUN_ONCE([gl_PREREQ_VASNPRINTF],
|
|
||||||
[
|
|
||||||
AC_REQUIRE([AC_FUNC_ALLOCA])
|
|
||||||
- AC_REQUIRE([gt_TYPE_WCHAR_T])
|
|
||||||
- AC_REQUIRE([gt_TYPE_WINT_T])
|
|
||||||
+ AC_REQUIRE([gt_TYPE_WCHAR_T_GT])
|
|
||||||
+ AC_REQUIRE([gt_TYPE_WINT_T_GT])
|
|
||||||
AC_CHECK_FUNCS([snprintf strnlen wcslen wcsnlen mbrtowc wcrtomb])
|
|
||||||
dnl Use the _snprintf function only if it is declared (because on NetBSD it
|
|
||||||
dnl is defined as a weak alias of snprintf; we prefer to use the latter).
|
|
||||||
--- a/libtextstyle/gnulib-m4/wchar_h.m4
|
|
||||||
+++ b/libtextstyle/gnulib-m4/wchar_h.m4
|
|
||||||
@@ -27,7 +27,7 @@ AC_DEFUN_ONCE([gl_WCHAR_H],
|
|
||||||
|
|
||||||
AC_REQUIRE([gl_FEATURES_H])
|
|
||||||
|
|
||||||
- AC_REQUIRE([gt_TYPE_WINT_T])
|
|
||||||
+ AC_REQUIRE([gt_TYPE_WINT_T_GT])
|
|
||||||
if test $gt_cv_c_wint_t = yes; then
|
|
||||||
HAVE_WINT_T=1
|
|
||||||
else
|
|
||||||
--- a/libtextstyle/gnulib-m4/wchar_t.m4
|
|
||||||
+++ b/libtextstyle/gnulib-m4/wchar_t.m4
|
|
||||||
@@ -8,7 +8,7 @@ dnl From Bruno Haible.
|
|
||||||
dnl Test whether <stddef.h> has the 'wchar_t' type.
|
|
||||||
dnl Prerequisite: AC_PROG_CC
|
|
||||||
|
|
||||||
-AC_DEFUN([gt_TYPE_WCHAR_T],
|
|
||||||
+AC_DEFUN([gt_TYPE_WCHAR_T_GT],
|
|
||||||
[
|
|
||||||
AC_CACHE_CHECK([for wchar_t], [gt_cv_c_wchar_t],
|
|
||||||
[AC_COMPILE_IFELSE(
|
|
||||||
--- a/libtextstyle/gnulib-m4/wint_t.m4
|
|
||||||
+++ b/libtextstyle/gnulib-m4/wint_t.m4
|
|
||||||
@@ -9,7 +9,7 @@ dnl Test whether <wchar.h> has the 'wint
|
|
||||||
dnl <wchar.h> or <wctype.h> would, if present, override 'wint_t'.
|
|
||||||
dnl Prerequisite: AC_PROG_CC
|
|
||||||
|
|
||||||
-AC_DEFUN([gt_TYPE_WINT_T],
|
|
||||||
+AC_DEFUN([gt_TYPE_WINT_T_GT],
|
|
||||||
[
|
|
||||||
AC_CACHE_CHECK([for wint_t], [gt_cv_c_wint_t],
|
|
||||||
[AC_COMPILE_IFELSE(
|
|
||||||
--- a/gettext-tools/gnulib-m4/gnulib-comp.m4
|
|
||||||
+++ b/gettext-tools/gnulib-m4/gnulib-comp.m4
|
|
||||||
@@ -2218,8 +2218,8 @@ changequote([, ])dnl
|
|
||||||
AC_REQUIRE([gl_SOCKETLIB])
|
|
||||||
AC_REQUIRE([gl_SOCKETS])
|
|
||||||
gl_TYPE_SOCKLEN_T
|
|
||||||
- AC_REQUIRE([gt_TYPE_WCHAR_T])
|
|
||||||
- AC_REQUIRE([gt_TYPE_WINT_T])
|
|
||||||
+ AC_REQUIRE([gt_TYPE_WCHAR_T_GT])
|
|
||||||
+ AC_REQUIRE([gt_TYPE_WINT_T_GT])
|
|
||||||
gl_FUNC_STRERROR_R
|
|
||||||
AS_IF([test $HAVE_DECL_STRERROR_R = 0 || test $REPLACE_STRERROR_R = 1], [
|
|
||||||
AC_LIBOBJ([strerror_r])
|
|
||||||
--- a/libtextstyle/gnulib-m4/stddef_h.m4
|
|
||||||
+++ b/libtextstyle/gnulib-m4/stddef_h.m4
|
|
||||||
@@ -9,7 +9,7 @@ dnl A placeholder for <stddef.h>, for pl
|
|
||||||
AC_DEFUN_ONCE([gl_STDDEF_H],
|
|
||||||
[
|
|
||||||
AC_REQUIRE([gl_STDDEF_H_DEFAULTS])
|
|
||||||
- AC_REQUIRE([gt_TYPE_WCHAR_T])
|
|
||||||
+ AC_REQUIRE([gt_TYPE_WCHAR_T_GT])
|
|
||||||
|
|
||||||
dnl Persuade OpenBSD <stddef.h> to declare max_align_t.
|
|
||||||
AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
|
|
||||||
--- a/gettext-tools/gnulib-m4/stddef_h.m4
|
|
||||||
+++ b/gettext-tools/gnulib-m4/stddef_h.m4
|
|
||||||
@@ -9,7 +9,7 @@ dnl A placeholder for <stddef.h>, for pl
|
|
||||||
AC_DEFUN_ONCE([gl_STDDEF_H],
|
|
||||||
[
|
|
||||||
AC_REQUIRE([gl_STDDEF_H_DEFAULTS])
|
|
||||||
- AC_REQUIRE([gt_TYPE_WCHAR_T])
|
|
||||||
+ AC_REQUIRE([gt_TYPE_WCHAR_T_GT])
|
|
||||||
|
|
||||||
dnl Persuade OpenBSD <stddef.h> to declare max_align_t.
|
|
||||||
AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
--- a/libtextstyle/gnulib-local/modules/libxml.diff
|
||||||
|
+++ /dev/null
|
||||||
|
@@ -1,28 +0,0 @@
|
||||||
|
-*** libxml.orig 2018-10-28 14:37:07.007164889 +0100
|
||||||
|
---- libxml 2019-02-14 22:19:29.994771110 +0100
|
||||||
|
-***************
|
||||||
|
-*** 118,124 ****
|
||||||
|
- fabs
|
||||||
|
-
|
||||||
|
- configure.ac:
|
||||||
|
-! gl_LIBXML
|
||||||
|
-
|
||||||
|
- Makefile.am:
|
||||||
|
- if INCLUDED_LIBXML
|
||||||
|
---- 118,133 ----
|
||||||
|
- fabs
|
||||||
|
-
|
||||||
|
- configure.ac:
|
||||||
|
-! # In libtextstyle, we don't want to use an external libxml, because its
|
||||||
|
-! # dependencies and their dynamic relocations have an impact on the startup
|
||||||
|
-! # time of a program that is linked with it. As you can see by using
|
||||||
|
-! # 'readelf -r ... | wc -l' and 'readelf -d ... | grep NEEDED':
|
||||||
|
-! # - libxml2.so has more than 3300 relocations and depends on libicuuc.
|
||||||
|
-! # - libicuuc.so has more than 4900 relocations and depends on libstdc++.
|
||||||
|
-! # - libstdc++.so has more than 4600 relocations.
|
||||||
|
-! # These are more than 12800 relocations, to perform at program startup.
|
||||||
|
-! # So, force the use of the included libxml part.
|
||||||
|
-! gl_LIBXML([yes])
|
||||||
|
-
|
||||||
|
- Makefile.am:
|
||||||
|
- if INCLUDED_LIBXML
|
|
@ -1,22 +0,0 @@
|
||||||
--- a/gettext-tools/gnulib-lib/libxml/xmlversion.in.h
|
|
||||||
+++ b/gettext-tools/gnulib-lib/libxml/xmlversion.in.h
|
|
||||||
@@ -302,7 +302,7 @@ XMLPUBFUN void XMLCALL xmlCheckVersion(i
|
|
||||||
*
|
|
||||||
* Whether iconv support is available
|
|
||||||
*/
|
|
||||||
-#if 1
|
|
||||||
+#if 0
|
|
||||||
#define LIBXML_ICONV_ENABLED
|
|
||||||
#endif
|
|
||||||
|
|
||||||
--- a/gnulib-local/lib/libxml/xmlversion.in.h
|
|
||||||
+++ b/gnulib-local/lib/libxml/xmlversion.in.h
|
|
||||||
@@ -302,7 +302,7 @@ XMLPUBFUN void XMLCALL xmlCheckVersion(i
|
|
||||||
*
|
|
||||||
* Whether iconv support is available
|
|
||||||
*/
|
|
||||||
-#if 1
|
|
||||||
+#if 0
|
|
||||||
#define LIBXML_ICONV_ENABLED
|
|
||||||
#endif
|
|
||||||
|
|
206
package/libs/libxml2/Makefile
Normal file
206
package/libs/libxml2/Makefile
Normal file
|
@ -0,0 +1,206 @@
|
||||||
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
|
PKG_NAME:=libxml2
|
||||||
|
PKG_VERSION:=2.10.3
|
||||||
|
PKG_RELEASE:=2
|
||||||
|
|
||||||
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
||||||
|
PKG_SOURCE_URL:=@GNOME/libxml2/$(basename $(PKG_VERSION))
|
||||||
|
PKG_HASH:=5d2cc3d78bec3dbe212a9d7fa629ada25a7da928af432c93060ff5c17ee28a9c
|
||||||
|
|
||||||
|
PKG_LICENSE:=MIT
|
||||||
|
PKG_LICENSE_FILES:=COPYING
|
||||||
|
PKG_CPE_ID:=cpe:/a:xmlsoft:libxml2
|
||||||
|
|
||||||
|
include $(INCLUDE_DIR)/host-build.mk
|
||||||
|
include $(INCLUDE_DIR)/package.mk
|
||||||
|
include $(INCLUDE_DIR)/cmake.mk
|
||||||
|
include $(INCLUDE_DIR)/nls.mk
|
||||||
|
|
||||||
|
define Package/libxml2
|
||||||
|
SECTION:=libs
|
||||||
|
CATEGORY:=Libraries
|
||||||
|
TITLE:=Gnome XML library
|
||||||
|
URL:=http://xmlsoft.org/
|
||||||
|
DEPENDS:=+libpthread +zlib $(ICONV_DEPENDS)
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/libxml2/description
|
||||||
|
A library for manipulating XML and HTML resources.
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/libxml2-dev
|
||||||
|
SECTION:=devel
|
||||||
|
CATEGORY:=Development
|
||||||
|
SUBMENU:=Libraries
|
||||||
|
TITLE:=Development files for libxml2
|
||||||
|
URL:=http://xmlsoft.org/
|
||||||
|
DEPENDS:=+libxml2
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/libxml2-dev/description
|
||||||
|
A library for manipulating XML and HTML resources.
|
||||||
|
|
||||||
|
This package contains the headers and xml2-config binary.
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/libxml2-utils
|
||||||
|
SECTION:=utils
|
||||||
|
CATEGORY:=Utilities
|
||||||
|
TITLE:=XML command line utilities (xmllint...)
|
||||||
|
URL:=http://xmlsoft.org/
|
||||||
|
DEPENDS:=+libxml2
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/libxml2-utils/description
|
||||||
|
This package contains the binaries xmllint and xmlcatalog
|
||||||
|
from libxml2, a library for manipulating XML and HTML resources.
|
||||||
|
endef
|
||||||
|
|
||||||
|
CMAKE_HOST_OPTIONS += \
|
||||||
|
-DBUILD_SHARED_LIBS=OFF \
|
||||||
|
-DLIBXML2_WITH_C14N=ON \
|
||||||
|
-DLIBXML2_WITH_CATALOG=OFF \
|
||||||
|
-DLIBXML2_WITH_DEBUG=ON \
|
||||||
|
-DLIBXML2_WITH_FTP=OFF \
|
||||||
|
-DLIBXML2_WITH_HTML=ON \
|
||||||
|
-DLIBXML2_WITH_HTTP=OFF \
|
||||||
|
-DLIBXML2_WITH_ICONV=ON \
|
||||||
|
-DLIBXML2_WITH_ICU=OFF \
|
||||||
|
-DLIBXML2_WITH_ISO8859X=OFF \
|
||||||
|
-DLIBXML2_WITH_LEGACY=OFF \
|
||||||
|
-DLIBXML2_WITH_LZMA=OFF \
|
||||||
|
-DLIBXML2_WITH_MEM_DEBUG=OFF \
|
||||||
|
-DLIBXML2_WITH_MODULES=OFF \
|
||||||
|
-DLIBXML2_WITH_OUTPUT=ON \
|
||||||
|
-DLIBXML2_WITH_PATTERN=ON \
|
||||||
|
-DLIBXML2_WITH_PROGRAMS=OFF \
|
||||||
|
-DLIBXML2_WITH_PUSH=ON \
|
||||||
|
-DLIBXML2_WITH_PYTHON=OFF \
|
||||||
|
-DLIBXML2_WITH_READER=ON \
|
||||||
|
-DLIBXML2_WITH_REGEXPS=ON \
|
||||||
|
-DLIBXML2_WITH_RUN_DEBUG=OFF \
|
||||||
|
-DLIBXML2_WITH_SAX1=ON \
|
||||||
|
-DLIBXML2_WITH_SCHEMAS=ON \
|
||||||
|
-DLIBXML2_WITH_SCHEMATRON=OFF \
|
||||||
|
-DLIBXML2_WITH_TESTS=OFF \
|
||||||
|
-DLIBXML2_WITH_THREADS=ON \
|
||||||
|
-DLIBXML2_WITH_THREAD_ALLOC=OFF \
|
||||||
|
-DLIBXML2_WITH_TREE=ON \
|
||||||
|
-DLIBXML2_WITH_VALID=ON \
|
||||||
|
-DLIBXML2_WITH_WRITER=ON \
|
||||||
|
-DLIBXML2_WITH_XINCLUDE=ON \
|
||||||
|
-DLIBXML2_WITH_XPATH=ON \
|
||||||
|
-DLIBXML2_WITH_XPTR=ON \
|
||||||
|
-DLIBXML2_WITH_XPTR_LOCS=ON \
|
||||||
|
-DLIBXML2_WITH_ZLIB=ON
|
||||||
|
|
||||||
|
CMAKE_OPTIONS += \
|
||||||
|
-DBUILD_SHARED_LIBS=ON \
|
||||||
|
-DLIBXML2_WITH_C14N=ON \
|
||||||
|
-DLIBXML2_WITH_CATALOG=OFF \
|
||||||
|
-DLIBXML2_WITH_DEBUG=ON \
|
||||||
|
-DLIBXML2_WITH_FTP=OFF \
|
||||||
|
-DLIBXML2_WITH_HTML=ON \
|
||||||
|
-DLIBXML2_WITH_HTTP=OFF \
|
||||||
|
-DLIBXML2_WITH_ICONV=ON \
|
||||||
|
-DLIBXML2_WITH_ICU=OFF \
|
||||||
|
-DLIBXML2_WITH_ISO8859X=OFF \
|
||||||
|
-DLIBXML2_WITH_LEGACY=OFF \
|
||||||
|
-DLIBXML2_WITH_LZMA=OFF \
|
||||||
|
-DLIBXML2_WITH_MEM_DEBUG=OFF \
|
||||||
|
-DLIBXML2_WITH_MODULES=OFF \
|
||||||
|
-DLIBXML2_WITH_OUTPUT=ON \
|
||||||
|
-DLIBXML2_WITH_PATTERN=ON \
|
||||||
|
-DLIBXML2_WITH_PROGRAMS=ON \
|
||||||
|
-DLIBXML2_WITH_PUSH=ON \
|
||||||
|
-DLIBXML2_WITH_PYTHON=OFF \
|
||||||
|
-DLIBXML2_WITH_READER=ON \
|
||||||
|
-DLIBXML2_WITH_REGEXPS=ON \
|
||||||
|
-DLIBXML2_WITH_RUN_DEBUG=OFF \
|
||||||
|
-DLIBXML2_WITH_SAX1=ON \
|
||||||
|
-DLIBXML2_WITH_SCHEMAS=ON \
|
||||||
|
-DLIBXML2_WITH_SCHEMATRON=OFF \
|
||||||
|
-DLIBXML2_WITH_TESTS=OFF \
|
||||||
|
-DLIBXML2_WITH_THREADS=ON \
|
||||||
|
-DLIBXML2_WITH_THREAD_ALLOC=OFF \
|
||||||
|
-DLIBXML2_WITH_TREE=ON \
|
||||||
|
-DLIBXML2_WITH_VALID=ON \
|
||||||
|
-DLIBXML2_WITH_WRITER=ON \
|
||||||
|
-DLIBXML2_WITH_XINCLUDE=ON \
|
||||||
|
-DLIBXML2_WITH_XPATH=ON \
|
||||||
|
-DLIBXML2_WITH_XPTR=ON \
|
||||||
|
-DLIBXML2_WITH_XPTR_LOCS=ON \
|
||||||
|
-DLIBXML2_WITH_ZLIB=ON \
|
||||||
|
-DHAVE_LIBHISTORY=OFF \
|
||||||
|
-DHAVE_LIBREADLINE=OFF
|
||||||
|
|
||||||
|
define Build/InstallDev
|
||||||
|
$(INSTALL_DIR) $(2)/bin
|
||||||
|
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/xml2-config \
|
||||||
|
$(2)/bin/$(GNU_TARGET_NAME)-xml2-config
|
||||||
|
$(SED) 's,^\(prefix\|exec_prefix\)=.*,\1=$(STAGING_DIR)/usr,g' \
|
||||||
|
$(2)/bin/$(GNU_TARGET_NAME)-xml2-config
|
||||||
|
$(LN) $(GNU_TARGET_NAME)-xml2-config $(2)/bin/xml2-config
|
||||||
|
|
||||||
|
$(INSTALL_DIR) $(1)/usr/bin
|
||||||
|
$(CP) $(PKG_INSTALL_DIR)/usr/bin/xmlcatalog $(1)/usr/bin/
|
||||||
|
$(CP) $(PKG_INSTALL_DIR)/usr/bin/xmllint $(1)/usr/bin/
|
||||||
|
|
||||||
|
$(INSTALL_DIR) $(1)/usr/include
|
||||||
|
$(CP) $(PKG_INSTALL_DIR)/usr/include/libxml2 $(1)/usr/include/
|
||||||
|
|
||||||
|
$(INSTALL_DIR) $(1)/usr/lib
|
||||||
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libxml2.so* $(1)/usr/lib/
|
||||||
|
|
||||||
|
$(INSTALL_DIR) $(1)/usr/lib/cmake/libxml2
|
||||||
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/cmake/libxml2-$(PKG_VERSION)/*.cmake \
|
||||||
|
$(1)/usr/lib/cmake/libxml2
|
||||||
|
|
||||||
|
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig
|
||||||
|
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libxml-2.0.pc $(1)/usr/lib/pkgconfig/
|
||||||
|
|
||||||
|
$(INSTALL_DIR) $(2)/share/aclocal/
|
||||||
|
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/aclocal/* $(2)/share/aclocal
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Host/Install
|
||||||
|
$(call Host/Install/Default)
|
||||||
|
mv $(1)/bin/xml2-config $(1)/bin/$(GNU_HOST_NAME)-xml2-config
|
||||||
|
$(LN) $(GNU_HOST_NAME)-xml2-config $(1)/bin/xml2-config
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/libxml2/install
|
||||||
|
$(INSTALL_DIR) $(1)/usr/lib
|
||||||
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libxml2.so.* $(1)/usr/lib/
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/libxml2-dev/install
|
||||||
|
$(INSTALL_DIR) $(1)/usr/bin
|
||||||
|
$(CP) $(PKG_INSTALL_DIR)/usr/bin/xml2-config $(1)/usr/bin/
|
||||||
|
$(SED) "s,$(STAGING_DIR),,g" $(1)/usr/bin/xml2-config
|
||||||
|
|
||||||
|
$(INSTALL_DIR) $(1)/usr/include/
|
||||||
|
$(CP) $(PKG_INSTALL_DIR)/usr/include/* $(1)/usr/include/
|
||||||
|
|
||||||
|
$(INSTALL_DIR) $(1)/usr/lib
|
||||||
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libxml2.so $(1)/usr/lib/
|
||||||
|
|
||||||
|
$(INSTALL_DIR) $(1)/usr/lib/{cmake,pkgconfig}
|
||||||
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/{cmake,pkgconfig} $(1)/usr/lib/
|
||||||
|
$(SED) "s,$(STAGING_DIR),,g" $(1)/usr/lib/pkgconfig/*.pc
|
||||||
|
|
||||||
|
$(INSTALL_DIR) $(1)/usr/share/aclocal
|
||||||
|
$(CP) $(PKG_INSTALL_DIR)/usr/share/aclocal/* $(1)/usr/share/aclocal
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/libxml2-utils/install
|
||||||
|
$(INSTALL_DIR) $(1)/usr/bin
|
||||||
|
$(CP) $(PKG_INSTALL_DIR)/usr/bin/xmllint $(1)/usr/bin/
|
||||||
|
$(CP) $(PKG_INSTALL_DIR)/usr/bin/xmlcatalog $(1)/usr/bin/
|
||||||
|
endef
|
||||||
|
|
||||||
|
$(eval $(call HostBuild))
|
||||||
|
$(eval $(call BuildPackage,libxml2))
|
||||||
|
$(eval $(call BuildPackage,libxml2-dev))
|
||||||
|
$(eval $(call BuildPackage,libxml2-utils))
|
12
package/libs/libxml2/patches/010-iconv.patch
Normal file
12
package/libs/libxml2/patches/010-iconv.patch
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
--- a/CMakeLists.txt
|
||||||
|
+++ b/CMakeLists.txt
|
||||||
|
@@ -496,6 +496,9 @@ if(LIBXML2_WITH_PROGRAMS)
|
||||||
|
add_executable(LibXml2::${PROGRAM} ALIAS ${PROGRAM})
|
||||||
|
target_compile_definitions(${PROGRAM} PRIVATE SYSCONFDIR="${CMAKE_INSTALL_FULL_SYSCONFDIR}")
|
||||||
|
target_link_libraries(${PROGRAM} LibXml2)
|
||||||
|
+ if(LIBXML2_WITH_ICONV AND NOT Iconv_IS_BUILT_IN)
|
||||||
|
+ target_link_libraries(${PROGRAM} iconv)
|
||||||
|
+ endif()
|
||||||
|
if(HAVE_LIBHISTORY)
|
||||||
|
target_link_libraries(${PROGRAM} history)
|
||||||
|
endif()
|
|
@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=openssl
|
PKG_NAME:=openssl
|
||||||
PKG_VERSION:=3.0.8
|
PKG_VERSION:=3.0.8
|
||||||
PKG_RELEASE:=8
|
PKG_RELEASE:=9
|
||||||
PKG_BUILD_FLAGS:=no-mips16 gc-sections
|
PKG_BUILD_FLAGS:=no-mips16 gc-sections
|
||||||
|
|
||||||
PKG_BUILD_PARALLEL:=1
|
PKG_BUILD_PARALLEL:=1
|
||||||
|
|
|
@ -0,0 +1,39 @@
|
||||||
|
From 02ac9c9420275868472f33b01def01218742b8bb Mon Sep 17 00:00:00 2001
|
||||||
|
From: Tomas Mraz <tomas@openssl.org>
|
||||||
|
Date: Mon, 17 Apr 2023 16:51:20 +0200
|
||||||
|
Subject: [PATCH] aesv8-armx.pl: Avoid buffer overrread in AES-XTS decryption
|
||||||
|
|
||||||
|
Original author: Nevine Ebeid (Amazon)
|
||||||
|
Fixes: CVE-2023-1255
|
||||||
|
|
||||||
|
The buffer overread happens on decrypts of 4 mod 5 sizes.
|
||||||
|
Unless the memory just after the buffer is unmapped this is harmless.
|
||||||
|
|
||||||
|
Reviewed-by: Paul Dale <pauli@openssl.org>
|
||||||
|
Reviewed-by: Tom Cosgrove <tom.cosgrove@arm.com>
|
||||||
|
(Merged from https://github.com/openssl/openssl/pull/20759)
|
||||||
|
|
||||||
|
(cherry picked from commit 72dfe46550ee1f1bbfacd49f071419365bc23304)
|
||||||
|
|
||||||
|
diff --git a/crypto/aes/asm/aesv8-armx.pl b/crypto/aes/asm/aesv8-armx.pl
|
||||||
|
index 6a7bf05d1b..bd583e2c89 100755
|
||||||
|
--- a/crypto/aes/asm/aesv8-armx.pl
|
||||||
|
+++ b/crypto/aes/asm/aesv8-armx.pl
|
||||||
|
@@ -3353,7 +3353,7 @@ $code.=<<___ if ($flavour =~ /64/);
|
||||||
|
.align 4
|
||||||
|
.Lxts_dec_tail4x:
|
||||||
|
add $inp,$inp,#16
|
||||||
|
- vld1.32 {$dat0},[$inp],#16
|
||||||
|
+ tst $tailcnt,#0xf
|
||||||
|
veor $tmp1,$dat1,$tmp0
|
||||||
|
vst1.8 {$tmp1},[$out],#16
|
||||||
|
veor $tmp2,$dat2,$tmp2
|
||||||
|
@@ -3362,6 +3362,8 @@ $code.=<<___ if ($flavour =~ /64/);
|
||||||
|
veor $tmp4,$dat4,$tmp4
|
||||||
|
vst1.8 {$tmp3-$tmp4},[$out],#32
|
||||||
|
|
||||||
|
+ b.eq .Lxts_dec_abort
|
||||||
|
+ vld1.32 {$dat0},[$inp],#16
|
||||||
|
b .Lxts_done
|
||||||
|
.align 4
|
||||||
|
.Lxts_outer_dec_tail:
|
|
@ -8,12 +8,12 @@
|
||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=iproute2
|
PKG_NAME:=iproute2
|
||||||
PKG_VERSION:=6.2.0
|
PKG_VERSION:=6.3.0
|
||||||
PKG_RELEASE:=1
|
PKG_RELEASE:=1
|
||||||
|
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
||||||
PKG_SOURCE_URL:=@KERNEL/linux/utils/net/iproute2
|
PKG_SOURCE_URL:=@KERNEL/linux/utils/net/iproute2
|
||||||
PKG_HASH:=4d72730200ec5b2aabaa1a2f20553c6748292f065d9a154c7d5e22559df9fd62
|
PKG_HASH:=dfb2a98db96e7a653cffc6693335a1a466e29a34b6ac528be48f35e1d2766732
|
||||||
PKG_BUILD_PARALLEL:=1
|
PKG_BUILD_PARALLEL:=1
|
||||||
PKG_BUILD_DEPENDS:=iptables
|
PKG_BUILD_DEPENDS:=iptables
|
||||||
PKG_LICENSE:=GPL-2.0
|
PKG_LICENSE:=GPL-2.0
|
||||||
|
|
|
@ -19,16 +19,37 @@ proto_mbim_init_config() {
|
||||||
proto_config_add_string auth
|
proto_config_add_string auth
|
||||||
proto_config_add_string username
|
proto_config_add_string username
|
||||||
proto_config_add_string password
|
proto_config_add_string password
|
||||||
|
[ -e /proc/sys/net/ipv6 ] && proto_config_add_string ipv6
|
||||||
|
proto_config_add_string dhcp
|
||||||
|
proto_config_add_string dhcpv6
|
||||||
|
proto_config_add_string pdptype
|
||||||
|
proto_config_add_int mtu
|
||||||
proto_config_add_defaults
|
proto_config_add_defaults
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_proto_mbim_get_field() {
|
||||||
|
local field="$1"
|
||||||
|
shift
|
||||||
|
local mbimconfig="$@"
|
||||||
|
echo "$mbimconfig" | while read -r line; do
|
||||||
|
variable=${line%%:*}
|
||||||
|
[ "$variable" = "$field" ] || continue;
|
||||||
|
value=${line##* }
|
||||||
|
echo -n "$value "
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
_proto_mbim_setup() {
|
_proto_mbim_setup() {
|
||||||
local interface="$1"
|
local interface="$1"
|
||||||
local tid=2
|
local tid=2
|
||||||
local ret
|
local ret
|
||||||
|
|
||||||
local device apn pincode delay allow_roaming allow_partner $PROTO_DEFAULT_OPTIONS
|
local device apn pincode delay auth username password allow_roaming allow_partner
|
||||||
json_get_vars device apn pincode delay auth username password allow_roaming allow_partner $PROTO_DEFAULT_OPTIONS
|
local dhcp dhcpv6 pdptype ip4table ip6table mtu $PROTO_DEFAULT_OPTIONS
|
||||||
|
json_get_vars device apn pincode delay auth username password allow_roaming allow_partner
|
||||||
|
json_get_vars dhcp dhcpv6 pdptype ip4table ip6table mtu $PROTO_DEFAULT_OPTIONS
|
||||||
|
|
||||||
|
[ ! -e /proc/sys/net/ipv6 ] && ipv6=0 || json_get_var ipv6 ipv6
|
||||||
|
|
||||||
[ -n "$ctl_device" ] && device=$ctl_device
|
[ -n "$ctl_device" ] && device=$ctl_device
|
||||||
|
|
||||||
|
@ -146,35 +167,133 @@ _proto_mbim_setup() {
|
||||||
}
|
}
|
||||||
tid=$((tid + 1))
|
tid=$((tid + 1))
|
||||||
|
|
||||||
|
pdptype=$(echo "$pdptype" | awk '{print tolower($0)}')
|
||||||
|
[ "$ipv6" = 0 ] && pdptype="ipv4"
|
||||||
|
|
||||||
|
local req_pdptype="" # Pass "default" PDP type to umbim if unconfigured
|
||||||
|
[ "$pdptype" = "ipv4" -o "$pdptype" = "ipv6" -o "$pdptype" = "ipv4v6" ] && req_pdptype="$pdptype:"
|
||||||
|
|
||||||
|
local connect_state
|
||||||
echo "mbim[$$]" "Connect to network"
|
echo "mbim[$$]" "Connect to network"
|
||||||
while ! umbim $DBG -n -t $tid -d $device connect "$apn" "$auth" "$username" "$password"; do
|
connect_state=$(umbim $DBG -n -t $tid -d $device connect "$req_pdptype$apn" "$auth" "$username" "$password") || {
|
||||||
|
echo "mbim[$$]" "Failed to connect bearer"
|
||||||
tid=$((tid + 1))
|
tid=$((tid + 1))
|
||||||
sleep 1;
|
umbim $DBG -t $tid -d "$device" disconnect
|
||||||
done
|
proto_notify_error "$interface" CONNECT_FAILED
|
||||||
|
return 1
|
||||||
|
}
|
||||||
tid=$((tid + 1))
|
tid=$((tid + 1))
|
||||||
|
|
||||||
uci_set_state network $interface tid "$tid"
|
echo "$connect_state"
|
||||||
|
local iptype="$(echo "$connect_state" | grep iptype: | awk '{print $4}')"
|
||||||
|
|
||||||
|
echo "mbim[$$]" "Connected"
|
||||||
|
|
||||||
|
local zone="$(fw3 -q network "$interface" 2>/dev/null)"
|
||||||
|
|
||||||
|
echo "mbim[$$]" "Setting up $ifname"
|
||||||
|
local mbimconfig="$(umbim $DBG -n -t $tid -d $device config)"
|
||||||
|
echo "$mbimconfig"
|
||||||
|
tid=$((tid + 1))
|
||||||
|
|
||||||
echo "mbim[$$]" "Connected, starting DHCP"
|
|
||||||
proto_init_update "$ifname" 1
|
proto_init_update "$ifname" 1
|
||||||
proto_send_update "$interface"
|
proto_send_update "$interface"
|
||||||
|
|
||||||
|
[ -z "$dhcp" ] && dhcp="auto"
|
||||||
|
[ -z "$dhcpv6" ] && dhcpv6="auto"
|
||||||
|
|
||||||
|
[ "$iptype" != "ipv6" ] && {
|
||||||
json_init
|
json_init
|
||||||
json_add_string name "${interface}_4"
|
json_add_string name "${interface}_4"
|
||||||
json_add_string ifname "@$interface"
|
json_add_string ifname "@$interface"
|
||||||
|
ipv4address=$(_proto_mbim_get_field ipv4address "$mbimconfig")
|
||||||
|
if [ -n "$ipv4address" -a "$dhcp" != 1 ]; then
|
||||||
|
json_add_string proto "static"
|
||||||
|
|
||||||
|
json_add_array ipaddr
|
||||||
|
for address in $ipv4address; do
|
||||||
|
json_add_string "" "$address"
|
||||||
|
done
|
||||||
|
json_close_array
|
||||||
|
|
||||||
|
json_add_string gateway $(_proto_mbim_get_field ipv4gateway "$mbimconfig")
|
||||||
|
elif [ "$dhcp" != 0 ]; then
|
||||||
|
echo "mbim[$$]" "Starting DHCP on $ifname"
|
||||||
json_add_string proto "dhcp"
|
json_add_string proto "dhcp"
|
||||||
|
fi
|
||||||
|
|
||||||
|
[ "$peerdns" = 0 -a "$dhcp" != 1 ] || {
|
||||||
|
json_add_array dns
|
||||||
|
for server in $(_proto_mbim_get_field ipv4dnsserver "$mbimconfig"); do
|
||||||
|
json_add_string "" "$server"
|
||||||
|
done
|
||||||
|
json_close_array
|
||||||
|
}
|
||||||
|
|
||||||
proto_add_dynamic_defaults
|
proto_add_dynamic_defaults
|
||||||
|
[ -n "$zone" ] && json_add_string zone "$zone"
|
||||||
|
[ -n "$ip4table" ] && json_add_string ip4table "$ip4table"
|
||||||
json_close_object
|
json_close_object
|
||||||
ubus call network add_dynamic "$(json_dump)"
|
ubus call network add_dynamic "$(json_dump)"
|
||||||
|
}
|
||||||
|
|
||||||
|
[ "$iptype" != "ipv4" ] && {
|
||||||
json_init
|
json_init
|
||||||
json_add_string name "${interface}_6"
|
json_add_string name "${interface}_6"
|
||||||
json_add_string ifname "@$interface"
|
json_add_string ifname "@$interface"
|
||||||
|
ipv6address=$(_proto_mbim_get_field ipv6address "$mbimconfig")
|
||||||
|
if [ -n "$ipv6address" -a "$dhcpv6" != 1 ]; then
|
||||||
|
json_add_string proto "static"
|
||||||
|
|
||||||
|
json_add_array ip6addr
|
||||||
|
for address in $ipv6address; do
|
||||||
|
json_add_string "" "$address"
|
||||||
|
done
|
||||||
|
json_close_array
|
||||||
|
|
||||||
|
json_add_array ip6prefix
|
||||||
|
for address in $ipv6address; do
|
||||||
|
json_add_string "" "$address"
|
||||||
|
done
|
||||||
|
json_close_array
|
||||||
|
|
||||||
|
json_add_string ip6gw $(_proto_mbim_get_field ipv6gateway "$mbimconfig")
|
||||||
|
|
||||||
|
elif [ "$dhcpv6" != 0 ]; then
|
||||||
|
echo "mbim[$$]" "Starting DHCPv6 on $ifname"
|
||||||
json_add_string proto "dhcpv6"
|
json_add_string proto "dhcpv6"
|
||||||
json_add_string extendprefix 1
|
json_add_string extendprefix 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
[ "$peerdns" = 0 -a "$dhcpv6" != 1 ] || {
|
||||||
|
json_add_array dns
|
||||||
|
for server in $(_proto_mbim_get_field ipv6dnsserver "$mbimconfig"); do
|
||||||
|
json_add_string "" "$server"
|
||||||
|
done
|
||||||
|
json_close_array
|
||||||
|
}
|
||||||
|
|
||||||
proto_add_dynamic_defaults
|
proto_add_dynamic_defaults
|
||||||
|
[ -n "$zone" ] && json_add_string zone "$zone"
|
||||||
|
[ -n "$ip6table" ] && json_add_string ip6table "$ip6table"
|
||||||
json_close_object
|
json_close_object
|
||||||
ubus call network add_dynamic "$(json_dump)"
|
ubus call network add_dynamic "$(json_dump)"
|
||||||
|
}
|
||||||
|
|
||||||
|
[ -z "$mtu" ] && {
|
||||||
|
local ipv4mtu=$(_proto_mbim_get_field ipv4mtu "$mbimconfig")
|
||||||
|
ipv4mtu="${ipv4mtu:-0}"
|
||||||
|
local ipv6mtu=$(_proto_mbim_get_field ipv6mtu "$mbimconfig")
|
||||||
|
ipv6mtu="${ipv6mtu:-0}"
|
||||||
|
|
||||||
|
mtu=$((ipv6mtu > ipv4mtu ? ipv6mtu : ipv4mtu))
|
||||||
|
}
|
||||||
|
[ -n "$mtu" -a "$mtu" != 0 ] && {
|
||||||
|
echo Setting MTU of $ifname to $mtu
|
||||||
|
/sbin/ip link set dev $ifname mtu $mtu
|
||||||
|
}
|
||||||
|
|
||||||
|
uci_set_state network $interface tid "$tid"
|
||||||
}
|
}
|
||||||
|
|
||||||
proto_mbim_setup() {
|
proto_mbim_setup() {
|
||||||
|
|
9
rules.mk
9
rules.mk
|
@ -268,6 +268,14 @@ FIND:=find
|
||||||
PATCH:=patch
|
PATCH:=patch
|
||||||
PYTHON:=python3
|
PYTHON:=python3
|
||||||
|
|
||||||
|
ifeq ($(HOST_OS),Darwin)
|
||||||
|
TRUE:=/usr/bin/env gtrue
|
||||||
|
FALSE:=/usr/bin/env gfalse
|
||||||
|
else
|
||||||
|
TRUE:=/usr/bin/env true
|
||||||
|
FALSE:=/usr/bin/env false
|
||||||
|
endif
|
||||||
|
|
||||||
INSTALL_BIN:=install -m0755
|
INSTALL_BIN:=install -m0755
|
||||||
INSTALL_SUID:=install -m4755
|
INSTALL_SUID:=install -m4755
|
||||||
INSTALL_DIR:=install -d -m0755
|
INSTALL_DIR:=install -d -m0755
|
||||||
|
@ -350,6 +358,7 @@ ifeq ($(CONFIG_BUILD_LOG),y)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
export BISON_PKGDATADIR:=$(STAGING_DIR_HOST)/share/bison
|
export BISON_PKGDATADIR:=$(STAGING_DIR_HOST)/share/bison
|
||||||
|
export HOST_GNULIB_SRCDIR:=$(STAGING_DIR_HOST)/share/gnulib
|
||||||
export M4:=$(STAGING_DIR_HOST)/bin/m4
|
export M4:=$(STAGING_DIR_HOST)/bin/m4
|
||||||
|
|
||||||
define shvar
|
define shvar
|
||||||
|
|
|
@ -135,7 +135,6 @@ CONFIG_INITRAMFS_SOURCE=""
|
||||||
# CONFIG_IOMMU_IO_PGTABLE_ARMV7S is not set
|
# CONFIG_IOMMU_IO_PGTABLE_ARMV7S is not set
|
||||||
# CONFIG_IOMMU_IO_PGTABLE_LPAE is not set
|
# CONFIG_IOMMU_IO_PGTABLE_LPAE is not set
|
||||||
CONFIG_IOMMU_SUPPORT=y
|
CONFIG_IOMMU_SUPPORT=y
|
||||||
CONFIG_IO_URING=y
|
|
||||||
CONFIG_IRQCHIP=y
|
CONFIG_IRQCHIP=y
|
||||||
CONFIG_IRQ_DOMAIN=y
|
CONFIG_IRQ_DOMAIN=y
|
||||||
CONFIG_IRQ_DOMAIN_HIERARCHY=y
|
CONFIG_IRQ_DOMAIN_HIERARCHY=y
|
||||||
|
|
|
@ -110,7 +110,6 @@ CONFIG_GPIO_GENERIC=y
|
||||||
CONFIG_GPIO_SNPS_CREG=y
|
CONFIG_GPIO_SNPS_CREG=y
|
||||||
CONFIG_GRACE_PERIOD=y
|
CONFIG_GRACE_PERIOD=y
|
||||||
CONFIG_HANDLE_DOMAIN_IRQ=y
|
CONFIG_HANDLE_DOMAIN_IRQ=y
|
||||||
# CONFIG_HARDENED_USERCOPY is not set
|
|
||||||
CONFIG_HAS_DMA=y
|
CONFIG_HAS_DMA=y
|
||||||
CONFIG_HAS_IOMEM=y
|
CONFIG_HAS_IOMEM=y
|
||||||
CONFIG_HZ_PERIODIC=y
|
CONFIG_HZ_PERIODIC=y
|
||||||
|
|
|
@ -3,79 +3,25 @@
|
||||||
// Copyright (c) 2021, 2022 Lech Perczak
|
// Copyright (c) 2021, 2022 Lech Perczak
|
||||||
// Copyright (c) 2022 David Bauer <mail@david-bauer.net>
|
// Copyright (c) 2022 David Bauer <mail@david-bauer.net>
|
||||||
|
|
||||||
#include "qca956x.dtsi"
|
#include "qca9563_zte_mf28x.dtsi"
|
||||||
|
|
||||||
#include <dt-bindings/gpio/gpio.h>
|
|
||||||
#include <dt-bindings/input/input.h>
|
|
||||||
#include <dt-bindings/leds/common.h>
|
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
model = "ZTE MF281";
|
model = "ZTE MF281";
|
||||||
compatible = "zte,mf281", "qca,qca9563";
|
compatible = "zte,mf281", "qca,qca9563";
|
||||||
|
|
||||||
aliases {
|
|
||||||
led-boot = &led_debug;
|
|
||||||
led-failsafe = &led_debug;
|
|
||||||
led-running = &led_debug;
|
|
||||||
led-upgrade = &led_debug;
|
|
||||||
label-mac-device = ð0;
|
|
||||||
};
|
|
||||||
|
|
||||||
leds {
|
leds {
|
||||||
compatible = "gpio-leds";
|
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&enable_wlan_led_gpio>;
|
pinctrl-0 = <&enable_wlan_led_gpio>;
|
||||||
|
|
||||||
/* Hidden SMD LED below signal strength LEDs.
|
|
||||||
* Visible through slits underside of the case.
|
|
||||||
*/
|
|
||||||
led_debug: debug {
|
|
||||||
label = "green:debug";
|
|
||||||
gpios = <&gpio 7 GPIO_ACTIVE_LOW>;
|
|
||||||
default-state = "on";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
keys {
|
|
||||||
compatible = "gpio-keys";
|
|
||||||
|
|
||||||
reset {
|
|
||||||
label = "reset";
|
|
||||||
linux,code = <KEY_RESTART>;
|
|
||||||
gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
|
|
||||||
debounce-interval = <60>;
|
|
||||||
};
|
|
||||||
|
|
||||||
wps {
|
|
||||||
label = "wps";
|
|
||||||
linux,code = <KEY_WPS_BUTTON>;
|
|
||||||
gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
|
|
||||||
debounce-interval = <60>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
/* This GPIO is used to reset whole board _including_ the modem */
|
|
||||||
gpio-restart {
|
|
||||||
compatible = "gpio-restart";
|
|
||||||
gpios = <&gpio 5 GPIO_ACTIVE_HIGH>;
|
|
||||||
active-delay = <3000>;
|
|
||||||
inactive-delay = <1000>;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
&spi {
|
&led_debug {
|
||||||
status = "okay";
|
label = "green:debug";
|
||||||
|
color = <LED_COLOR_ID_GREEN>;
|
||||||
flash@0 {
|
};
|
||||||
compatible = "jedec,spi-nor";
|
|
||||||
reg = <0>;
|
|
||||||
spi-max-frequency = <25000000>;
|
|
||||||
|
|
||||||
|
&boot_flash {
|
||||||
partitions {
|
partitions {
|
||||||
compatible = "fixed-partitions";
|
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <1>;
|
|
||||||
|
|
||||||
partition@0 {
|
partition@0 {
|
||||||
label = "u-boot";
|
label = "u-boot";
|
||||||
reg = <0x0 0xa0000>;
|
reg = <0x0 0xa0000>;
|
||||||
|
@ -88,18 +34,10 @@
|
||||||
read-only;
|
read-only;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
flash@1 {
|
|
||||||
compatible = "spi-nand";
|
|
||||||
reg = <1>;
|
|
||||||
spi-max-frequency = <25000000>;
|
|
||||||
|
|
||||||
|
&system_flash {
|
||||||
partitions {
|
partitions {
|
||||||
compatible = "fixed-partitions";
|
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <1>;
|
|
||||||
|
|
||||||
partition@0 {
|
partition@0 {
|
||||||
label = "fota-flag";
|
label = "fota-flag";
|
||||||
reg = <0x000000 0xa0000>;
|
reg = <0x000000 0xa0000>;
|
||||||
|
@ -205,44 +143,17 @@
|
||||||
read-only;
|
read-only;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
&mdio0 {
|
|
||||||
status = "okay";
|
|
||||||
|
|
||||||
phy0: ethernet-phy@0 {
|
|
||||||
reg = <0>;
|
|
||||||
phy-mode = "sgmii";
|
|
||||||
|
|
||||||
qca,ar8327-initvals = <
|
|
||||||
0x04 0x00080080 /* PORT0 PAD MODE CTRL */
|
|
||||||
0x7c 0x0000007e /* PORT0_STATUS */
|
|
||||||
>;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
ð0 {
|
ð0 {
|
||||||
status = "okay";
|
|
||||||
|
|
||||||
phy-mode = "sgmii";
|
|
||||||
phy-handle = <&phy0>;
|
|
||||||
|
|
||||||
nvmem-cells = <&macaddr_mac_0>;
|
nvmem-cells = <&macaddr_mac_0>;
|
||||||
nvmem-cell-names = "mac-address";
|
nvmem-cell-names = "mac-address";
|
||||||
};
|
};
|
||||||
|
|
||||||
&pcie {
|
&wifi_ath10k {
|
||||||
status = "okay";
|
|
||||||
|
|
||||||
wifi@0,0 {
|
|
||||||
compatible = "qcom,ath10k";
|
|
||||||
reg = <0x0 0 0 0 0>;
|
|
||||||
|
|
||||||
nvmem-cells = <&macaddr_mac_0>, <&cal_caldata_5000>;
|
nvmem-cells = <&macaddr_mac_0>, <&cal_caldata_5000>;
|
||||||
nvmem-cell-names = "mac-address", "pre-calibration";
|
nvmem-cell-names = "mac-address", "pre-calibration";
|
||||||
mac-address-increment = <1>;
|
mac-address-increment = <1>;
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
&pinmux {
|
&pinmux {
|
||||||
|
@ -252,24 +163,6 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
&wmac {
|
&wmac {
|
||||||
status = "okay";
|
|
||||||
|
|
||||||
nvmem-cells = <&macaddr_mac_0>, <&cal_caldata_1000>;
|
nvmem-cells = <&macaddr_mac_0>, <&cal_caldata_1000>;
|
||||||
nvmem-cell-names = "mac-address", "calibration";
|
nvmem-cell-names = "mac-address", "calibration";
|
||||||
};
|
};
|
||||||
|
|
||||||
&usb_phy0 {
|
|
||||||
status = "okay";
|
|
||||||
};
|
|
||||||
|
|
||||||
&usb0 {
|
|
||||||
status = "okay";
|
|
||||||
};
|
|
||||||
|
|
||||||
&usb_phy1 {
|
|
||||||
status = "okay";
|
|
||||||
};
|
|
||||||
|
|
||||||
&usb1 {
|
|
||||||
status = "okay";
|
|
||||||
};
|
|
||||||
|
|
129
target/linux/ath79/dts/qca9563_zte_mf282.dts
Normal file
129
target/linux/ath79/dts/qca9563_zte_mf282.dts
Normal file
|
@ -0,0 +1,129 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||||
|
// Copyright (c) 2021 Cezary Jackiewicz
|
||||||
|
// Copyright (c) 2021, 2022 Lech Perczak
|
||||||
|
// Copyright (c) 2022 David Bauer <mail@david-bauer.net>
|
||||||
|
// Copyright (c) 2023 Andreas Böhler <dev@aboehler.at>
|
||||||
|
|
||||||
|
#include "qca9563_zte_mf28x.dtsi"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "ZTE MF282";
|
||||||
|
compatible = "zte,mf282", "qca,qca9563";
|
||||||
|
|
||||||
|
ubi-concat {
|
||||||
|
compatible = "mtd-concat";
|
||||||
|
devices = <&ubiconcat0 &ubiconcat1>;
|
||||||
|
|
||||||
|
partitions {
|
||||||
|
compatible = "fixed-partitions";
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
|
||||||
|
partition@0 {
|
||||||
|
reg = <0x0 0x7440000>;
|
||||||
|
label = "ubi";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&led_debug {
|
||||||
|
label = "blue:debug";
|
||||||
|
color = <LED_COLOR_ID_BLUE>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&boot_flash {
|
||||||
|
partitions {
|
||||||
|
partition@0 {
|
||||||
|
label = "u-boot";
|
||||||
|
reg = <0x0 0x80000>;
|
||||||
|
read-only;
|
||||||
|
};
|
||||||
|
|
||||||
|
partition@80000 {
|
||||||
|
label = "u-boot-env";
|
||||||
|
reg = <0x80000 0x20000>;
|
||||||
|
read-only;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&system_flash {
|
||||||
|
partitions {
|
||||||
|
partition@0 {
|
||||||
|
label = "fota-flag";
|
||||||
|
reg = <0x000000 0x140000>;
|
||||||
|
read-only;
|
||||||
|
};
|
||||||
|
|
||||||
|
partition@140000 {
|
||||||
|
label = "caldata";
|
||||||
|
reg = <0x140000 0x140000>;
|
||||||
|
read-only;
|
||||||
|
|
||||||
|
compatible = "nvmem-cells";
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
|
||||||
|
cal_caldata_1000: cal@1000 {
|
||||||
|
reg = <0x1000 0x440>;
|
||||||
|
};
|
||||||
|
|
||||||
|
cal_caldata_5000: cal@5000 {
|
||||||
|
reg = <0x5000 0x844>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
partition@280000 {
|
||||||
|
label = "mac";
|
||||||
|
reg = <0x280000 0x140000>;
|
||||||
|
read-only;
|
||||||
|
|
||||||
|
compatible = "nvmem-cells";
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
|
||||||
|
macaddr_mac_0: macaddr@0 {
|
||||||
|
reg = <0x0 0x6>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
/* This encompasses stock cfg-param, oops, web partitions,
|
||||||
|
* which can be overwritten safely
|
||||||
|
*/
|
||||||
|
ubiconcat0: partition@3c0000 {
|
||||||
|
label = "ubiconcat0";
|
||||||
|
reg = <0x3c0000 0xf40000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Kernel MTD size is increased to 8MB from stock 3MB */
|
||||||
|
partition@1300000 {
|
||||||
|
label = "kernel";
|
||||||
|
reg = <0x1300000 0x800000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* This encompasses stock rootfs, data, fota partitions,
|
||||||
|
* which can be overwritten safely
|
||||||
|
*/
|
||||||
|
ubiconcat1: partition@1b00000 {
|
||||||
|
label = "ubiconcat1";
|
||||||
|
reg = <0x1b00000 0x6500000>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
ð0 {
|
||||||
|
nvmem-cells = <&macaddr_mac_0>;
|
||||||
|
nvmem-cell-names = "mac-address";
|
||||||
|
};
|
||||||
|
|
||||||
|
&wifi_ath10k {
|
||||||
|
nvmem-cells = <&macaddr_mac_0>, <&cal_caldata_5000>;
|
||||||
|
nvmem-cell-names = "mac-address", "calibration";
|
||||||
|
mac-address-increment = <1>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&wmac {
|
||||||
|
nvmem-cells = <&macaddr_mac_0>, <&cal_caldata_1000>;
|
||||||
|
nvmem-cell-names = "mac-address", "calibration";
|
||||||
|
};
|
|
@ -1,36 +1,13 @@
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||||
// Copyright (c) 2021 Cezary Jackiewicz
|
// Copyright (c) 2021 Cezary Jackiewicz
|
||||||
// Copyright (c) 2021, 2022 Lech Perczak
|
// Copyright (c) 2021, 2022 Lech Perczak
|
||||||
#include "qca956x.dtsi"
|
#include "qca9563_zte_mf28x.dtsi"
|
||||||
|
|
||||||
#include <dt-bindings/gpio/gpio.h>
|
|
||||||
#include <dt-bindings/input/input.h>
|
|
||||||
#include <dt-bindings/leds/common.h>
|
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
aliases {
|
|
||||||
led-boot = &led_debug;
|
|
||||||
led-failsafe = &led_debug;
|
|
||||||
led-running = &led_debug;
|
|
||||||
led-upgrade = &led_debug;
|
|
||||||
label-mac-device = ð0;
|
|
||||||
};
|
|
||||||
|
|
||||||
leds {
|
leds {
|
||||||
compatible = "gpio-leds";
|
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&enable_wlan_led_gpio>;
|
pinctrl-0 = <&enable_wlan_led_gpio>;
|
||||||
|
|
||||||
/* Hidden SMD LED below signal strength LEDs.
|
|
||||||
* Visible through slits underside of the case,
|
|
||||||
* and slightly through the case below signal state LEDs
|
|
||||||
*/
|
|
||||||
led_debug: led-0 {
|
|
||||||
function = LED_FUNCTION_DEBUG;
|
|
||||||
gpios = <&gpio 7 GPIO_ACTIVE_LOW>;
|
|
||||||
default-state = "on";
|
|
||||||
};
|
|
||||||
|
|
||||||
led-1 {
|
led-1 {
|
||||||
function = LED_FUNCTION_WLAN;
|
function = LED_FUNCTION_WLAN;
|
||||||
color = <LED_COLOR_ID_BLUE>;
|
color = <LED_COLOR_ID_BLUE>;
|
||||||
|
@ -40,22 +17,6 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
keys {
|
keys {
|
||||||
compatible = "gpio-keys";
|
|
||||||
|
|
||||||
reset {
|
|
||||||
label = "reset";
|
|
||||||
linux,code = <KEY_RESTART>;
|
|
||||||
gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
|
|
||||||
debounce-interval = <60>;
|
|
||||||
};
|
|
||||||
|
|
||||||
wps {
|
|
||||||
label = "wps";
|
|
||||||
linux,code = <KEY_WPS_BUTTON>;
|
|
||||||
gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
|
|
||||||
debounce-interval = <60>;
|
|
||||||
};
|
|
||||||
|
|
||||||
wifi {
|
wifi {
|
||||||
label = "wifi";
|
label = "wifi";
|
||||||
linux,code = <KEY_RFKILL>;
|
linux,code = <KEY_RFKILL>;
|
||||||
|
@ -63,72 +24,6 @@
|
||||||
debounce-interval = <60>;
|
debounce-interval = <60>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
/* This GPIO is used to reset whole board _including_ the modem */
|
|
||||||
gpio-restart {
|
|
||||||
compatible = "gpio-restart";
|
|
||||||
gpios = <&gpio 5 GPIO_ACTIVE_HIGH>;
|
|
||||||
active-delay = <3000>;
|
|
||||||
inactive-delay = <1000>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
&spi {
|
|
||||||
status = "okay";
|
|
||||||
|
|
||||||
boot_flash: flash@0 {
|
|
||||||
compatible = "jedec,spi-nor";
|
|
||||||
reg = <0>;
|
|
||||||
spi-max-frequency = <25000000>;
|
|
||||||
|
|
||||||
partitions {
|
|
||||||
compatible = "fixed-partitions";
|
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <1>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
system_flash: flash@1 {
|
|
||||||
compatible = "spi-nand";
|
|
||||||
reg = <1>;
|
|
||||||
spi-max-frequency = <25000000>;
|
|
||||||
|
|
||||||
partitions {
|
|
||||||
compatible = "fixed-partitions";
|
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <1>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
&mdio0 {
|
|
||||||
status = "okay";
|
|
||||||
|
|
||||||
phy0: ethernet-phy@0 {
|
|
||||||
reg = <0>;
|
|
||||||
phy-mode = "sgmii";
|
|
||||||
|
|
||||||
qca,ar8327-initvals = <
|
|
||||||
0x04 0x00080080 /* PORT0 PAD MODE CTRL */
|
|
||||||
0x7c 0x0000007e /* PORT0_STATUS */
|
|
||||||
>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
ð0 {
|
|
||||||
status = "okay";
|
|
||||||
|
|
||||||
phy-mode = "sgmii";
|
|
||||||
phy-handle = <&phy0>;
|
|
||||||
};
|
|
||||||
|
|
||||||
&pcie {
|
|
||||||
status = "okay";
|
|
||||||
|
|
||||||
wifi_ath10k: wifi@0,0 {
|
|
||||||
compatible = "qcom,ath10k";
|
|
||||||
reg = <0x0 0 0 0 0>;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
&pinmux {
|
&pinmux {
|
||||||
|
@ -136,23 +31,3 @@
|
||||||
pinctrl-single,bits = <0x10 0x0 0xff000000>;
|
pinctrl-single,bits = <0x10 0x0 0xff000000>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
&wmac {
|
|
||||||
status = "okay";
|
|
||||||
};
|
|
||||||
|
|
||||||
&usb_phy0 {
|
|
||||||
status = "okay";
|
|
||||||
};
|
|
||||||
|
|
||||||
&usb0 {
|
|
||||||
status = "okay";
|
|
||||||
};
|
|
||||||
|
|
||||||
&usb_phy1 {
|
|
||||||
status = "okay";
|
|
||||||
};
|
|
||||||
|
|
||||||
&usb1 {
|
|
||||||
status = "okay";
|
|
||||||
};
|
|
||||||
|
|
136
target/linux/ath79/dts/qca9563_zte_mf28x.dtsi
Normal file
136
target/linux/ath79/dts/qca9563_zte_mf28x.dtsi
Normal file
|
@ -0,0 +1,136 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||||
|
// Copyright (c) 2021 Cezary Jackiewicz
|
||||||
|
// Copyright (c) 2021, 2022 Lech Perczak
|
||||||
|
#include "qca956x.dtsi"
|
||||||
|
|
||||||
|
#include <dt-bindings/gpio/gpio.h>
|
||||||
|
#include <dt-bindings/input/input.h>
|
||||||
|
#include <dt-bindings/leds/common.h>
|
||||||
|
|
||||||
|
/ {
|
||||||
|
aliases {
|
||||||
|
led-boot = &led_debug;
|
||||||
|
led-failsafe = &led_debug;
|
||||||
|
led-running = &led_debug;
|
||||||
|
led-upgrade = &led_debug;
|
||||||
|
label-mac-device = ð0;
|
||||||
|
};
|
||||||
|
|
||||||
|
leds {
|
||||||
|
compatible = "gpio-leds";
|
||||||
|
|
||||||
|
/* Hidden SMD LED below signal strength LEDs.
|
||||||
|
* Visible through slits underside of the case,
|
||||||
|
* and slightly through the case below signal state LEDs
|
||||||
|
*/
|
||||||
|
led_debug: led-0 {
|
||||||
|
function = LED_FUNCTION_DEBUG;
|
||||||
|
gpios = <&gpio 7 GPIO_ACTIVE_LOW>;
|
||||||
|
default-state = "on";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
keys {
|
||||||
|
compatible = "gpio-keys";
|
||||||
|
|
||||||
|
reset {
|
||||||
|
label = "reset";
|
||||||
|
linux,code = <KEY_RESTART>;
|
||||||
|
gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
|
||||||
|
debounce-interval = <60>;
|
||||||
|
};
|
||||||
|
|
||||||
|
wps {
|
||||||
|
label = "wps";
|
||||||
|
linux,code = <KEY_WPS_BUTTON>;
|
||||||
|
gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
|
||||||
|
debounce-interval = <60>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
/* This GPIO is used to reset whole board _including_ the modem */
|
||||||
|
gpio-restart {
|
||||||
|
compatible = "gpio-restart";
|
||||||
|
gpios = <&gpio 5 GPIO_ACTIVE_HIGH>;
|
||||||
|
active-delay = <3000>;
|
||||||
|
inactive-delay = <1000>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&spi {
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
boot_flash: flash@0 {
|
||||||
|
compatible = "jedec,spi-nor";
|
||||||
|
reg = <0>;
|
||||||
|
spi-max-frequency = <25000000>;
|
||||||
|
|
||||||
|
partitions {
|
||||||
|
compatible = "fixed-partitions";
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
system_flash: flash@1 {
|
||||||
|
compatible = "spi-nand";
|
||||||
|
reg = <1>;
|
||||||
|
spi-max-frequency = <25000000>;
|
||||||
|
|
||||||
|
partitions {
|
||||||
|
compatible = "fixed-partitions";
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&mdio0 {
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
phy0: ethernet-phy@0 {
|
||||||
|
reg = <0>;
|
||||||
|
phy-mode = "sgmii";
|
||||||
|
|
||||||
|
qca,ar8327-initvals = <
|
||||||
|
0x04 0x00080080 /* PORT0 PAD MODE CTRL */
|
||||||
|
0x7c 0x0000007e /* PORT0_STATUS */
|
||||||
|
>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
ð0 {
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
phy-mode = "sgmii";
|
||||||
|
phy-handle = <&phy0>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&pcie {
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
wifi_ath10k: wifi@0,0 {
|
||||||
|
compatible = "qcom,ath10k";
|
||||||
|
reg = <0x0 0 0 0 0>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&wmac {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&usb_phy0 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&usb0 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&usb_phy1 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&usb1 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
|
@ -390,6 +390,14 @@ define Device/zte_mf281
|
||||||
endef
|
endef
|
||||||
TARGET_DEVICES += zte_mf281
|
TARGET_DEVICES += zte_mf281
|
||||||
|
|
||||||
|
define Device/zte_mf282
|
||||||
|
$(Device/zte_mf28x_common)
|
||||||
|
DEVICE_MODEL := MF282
|
||||||
|
DEVICE_PACKAGES += ath10k-firmware-qca988x-ct kmod-usb-net-qmi-wwan \
|
||||||
|
kmod-usb-serial-option uqmi
|
||||||
|
endef
|
||||||
|
TARGET_DEVICES += zte_mf282
|
||||||
|
|
||||||
define Device/zte_mf286
|
define Device/zte_mf286
|
||||||
$(Device/zte_mf28x_common)
|
$(Device/zte_mf28x_common)
|
||||||
DEVICE_MODEL := MF286
|
DEVICE_MODEL := MF286
|
||||||
|
|
|
@ -66,6 +66,10 @@ ath79_setup_interfaces()
|
||||||
ucidef_add_switch "switch0" \
|
ucidef_add_switch "switch0" \
|
||||||
"0@eth0" "5:lan"
|
"0@eth0" "5:lan"
|
||||||
;;
|
;;
|
||||||
|
zte,mf282)
|
||||||
|
ucidef_set_interface_lan "eth0"
|
||||||
|
ucidef_set_interface "wan" device "/dev/cdc-wdm0" protocol "qmi"
|
||||||
|
;;
|
||||||
zte,mf286|\
|
zte,mf286|\
|
||||||
zte,mf286a|\
|
zte,mf286a|\
|
||||||
zte,mf286r)
|
zte,mf286r)
|
||||||
|
|
|
@ -16,7 +16,7 @@ Submitted-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
|
||||||
|
|
||||||
--- a/drivers/net/phy/at803x.c
|
--- a/drivers/net/phy/at803x.c
|
||||||
+++ b/drivers/net/phy/at803x.c
|
+++ b/drivers/net/phy/at803x.c
|
||||||
@@ -830,6 +830,13 @@ static int at803x_aneg_done(struct phy_d
|
@@ -959,6 +959,13 @@ static int at803x_aneg_done(struct phy_d
|
||||||
if (!(phy_read(phydev, AT803X_PSSR) & AT803X_PSSR_MR_AN_COMPLETE)) {
|
if (!(phy_read(phydev, AT803X_PSSR) & AT803X_PSSR_MR_AN_COMPLETE)) {
|
||||||
phydev_warn(phydev, "803x_aneg_done: SGMII link is not ok\n");
|
phydev_warn(phydev, "803x_aneg_done: SGMII link is not ok\n");
|
||||||
aneg_done = 0;
|
aneg_done = 0;
|
||||||
|
|
|
@ -256,7 +256,6 @@ CONFIG_NO_HZ=y
|
||||||
CONFIG_NO_HZ_COMMON=y
|
CONFIG_NO_HZ_COMMON=y
|
||||||
CONFIG_NO_HZ_IDLE=y
|
CONFIG_NO_HZ_IDLE=y
|
||||||
CONFIG_NVMEM=y
|
CONFIG_NVMEM=y
|
||||||
CONFIG_OABI_COMPAT=y
|
|
||||||
CONFIG_OF=y
|
CONFIG_OF=y
|
||||||
CONFIG_OF_ADDRESS=y
|
CONFIG_OF_ADDRESS=y
|
||||||
CONFIG_OF_CONFIGFS=y
|
CONFIG_OF_CONFIGFS=y
|
||||||
|
|
|
@ -320,7 +320,6 @@ CONFIG_NO_HZ_COMMON=y
|
||||||
CONFIG_NO_HZ_IDLE=y
|
CONFIG_NO_HZ_IDLE=y
|
||||||
CONFIG_NR_CPUS=4
|
CONFIG_NR_CPUS=4
|
||||||
CONFIG_NVMEM=y
|
CONFIG_NVMEM=y
|
||||||
CONFIG_OABI_COMPAT=y
|
|
||||||
CONFIG_OF=y
|
CONFIG_OF=y
|
||||||
CONFIG_OF_ADDRESS=y
|
CONFIG_OF_ADDRESS=y
|
||||||
CONFIG_OF_CONFIGFS=y
|
CONFIG_OF_CONFIGFS=y
|
||||||
|
|
|
@ -5,7 +5,7 @@ This prevents the options from being delete with make kernel_oldconfig.
|
||||||
|
|
||||||
--- a/drivers/bcma/Kconfig
|
--- a/drivers/bcma/Kconfig
|
||||||
+++ b/drivers/bcma/Kconfig
|
+++ b/drivers/bcma/Kconfig
|
||||||
@@ -32,6 +32,7 @@ config BCMA_HOST_PCI
|
@@ -36,6 +36,7 @@ config BCMA_HOST_PCI
|
||||||
config BCMA_HOST_SOC
|
config BCMA_HOST_SOC
|
||||||
bool "Support for BCMA in a SoC"
|
bool "Support for BCMA in a SoC"
|
||||||
depends on HAS_IOMEM
|
depends on HAS_IOMEM
|
||||||
|
@ -15,7 +15,7 @@ This prevents the options from being delete with make kernel_oldconfig.
|
||||||
the memory. This only works with the Broadcom SoCs from the
|
the memory. This only works with the Broadcom SoCs from the
|
||||||
--- a/drivers/ssb/Kconfig
|
--- a/drivers/ssb/Kconfig
|
||||||
+++ b/drivers/ssb/Kconfig
|
+++ b/drivers/ssb/Kconfig
|
||||||
@@ -136,6 +136,7 @@ config SSB_SFLASH
|
@@ -141,6 +141,7 @@ config SSB_SFLASH
|
||||||
config SSB_EMBEDDED
|
config SSB_EMBEDDED
|
||||||
bool
|
bool
|
||||||
depends on SSB_DRIVER_MIPS && SSB_PCICORE_HOSTMODE
|
depends on SSB_DRIVER_MIPS && SSB_PCICORE_HOSTMODE
|
||||||
|
|
|
@ -165,7 +165,6 @@ CONFIG_HW_RANDOM_BCM2835=y
|
||||||
CONFIG_HZ_FIXED=0
|
CONFIG_HZ_FIXED=0
|
||||||
CONFIG_HZ_PERIODIC=y
|
CONFIG_HZ_PERIODIC=y
|
||||||
CONFIG_INITRAMFS_SOURCE=""
|
CONFIG_INITRAMFS_SOURCE=""
|
||||||
CONFIG_IO_URING=y
|
|
||||||
CONFIG_IRQCHIP=y
|
CONFIG_IRQCHIP=y
|
||||||
CONFIG_IRQ_DOMAIN=y
|
CONFIG_IRQ_DOMAIN=y
|
||||||
CONFIG_IRQ_DOMAIN_HIERARCHY=y
|
CONFIG_IRQ_DOMAIN_HIERARCHY=y
|
||||||
|
|
|
@ -171,7 +171,6 @@ CONFIG_HW_RANDOM_BCM2835=y
|
||||||
CONFIG_HZ_FIXED=0
|
CONFIG_HZ_FIXED=0
|
||||||
CONFIG_HZ_PERIODIC=y
|
CONFIG_HZ_PERIODIC=y
|
||||||
CONFIG_INITRAMFS_SOURCE=""
|
CONFIG_INITRAMFS_SOURCE=""
|
||||||
CONFIG_IO_URING=y
|
|
||||||
CONFIG_IRQCHIP=y
|
CONFIG_IRQCHIP=y
|
||||||
CONFIG_IRQ_DOMAIN=y
|
CONFIG_IRQ_DOMAIN=y
|
||||||
CONFIG_IRQ_DOMAIN_HIERARCHY=y
|
CONFIG_IRQ_DOMAIN_HIERARCHY=y
|
||||||
|
|
|
@ -17,7 +17,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
|
||||||
|
|
||||||
--- a/drivers/bcma/sprom.c
|
--- a/drivers/bcma/sprom.c
|
||||||
+++ b/drivers/bcma/sprom.c
|
+++ b/drivers/bcma/sprom.c
|
||||||
@@ -165,7 +165,7 @@ static int bcma_sprom_valid(struct bcma_
|
@@ -170,7 +170,7 @@ static int bcma_sprom_valid(struct bcma_
|
||||||
return err;
|
return err;
|
||||||
|
|
||||||
revision = sprom[words - 1] & SSB_SPROM_REVISION_REV;
|
revision = sprom[words - 1] & SSB_SPROM_REVISION_REV;
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
|
|
||||||
keys {
|
keys {
|
||||||
compatible = "gpio-keys-polled";
|
compatible = "gpio-keys-polled";
|
||||||
poll-interval = <20>;
|
poll-interval = <100>;
|
||||||
|
|
||||||
wps {
|
wps {
|
||||||
label = "wps";
|
label = "wps";
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
|
|
||||||
keys {
|
keys {
|
||||||
compatible = "gpio-keys-polled";
|
compatible = "gpio-keys-polled";
|
||||||
poll-interval = <20>;
|
poll-interval = <100>;
|
||||||
|
|
||||||
reset {
|
reset {
|
||||||
label = "reset";
|
label = "reset";
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
|
|
||||||
keys {
|
keys {
|
||||||
compatible = "gpio-keys-polled";
|
compatible = "gpio-keys-polled";
|
||||||
poll-interval = <20>;
|
poll-interval = <100>;
|
||||||
|
|
||||||
wps {
|
wps {
|
||||||
label = "wps";
|
label = "wps";
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
|
|
||||||
keys {
|
keys {
|
||||||
compatible = "gpio-keys-polled";
|
compatible = "gpio-keys-polled";
|
||||||
poll-interval = <20>;
|
poll-interval = <100>;
|
||||||
|
|
||||||
wps {
|
wps {
|
||||||
label = "wps";
|
label = "wps";
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
#include <dt-bindings/gpio/gpio.h>
|
#include <dt-bindings/gpio/gpio.h>
|
||||||
#include <dt-bindings/input/input.h>
|
#include <dt-bindings/input/input.h>
|
||||||
#include <dt-bindings/interrupt-controller/bcm6318-interrupt-controller.h>
|
#include <dt-bindings/interrupt-controller/bcm6318-interrupt-controller.h>
|
||||||
|
#include <dt-bindings/interrupt-controller/irq.h>
|
||||||
#include <dt-bindings/reset/bcm6318-reset.h>
|
#include <dt-bindings/reset/bcm6318-reset.h>
|
||||||
#include <dt-bindings/soc/bcm6318-pm.h>
|
#include <dt-bindings/soc/bcm6318-pm.h>
|
||||||
|
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
#include <dt-bindings/gpio/gpio.h>
|
#include <dt-bindings/gpio/gpio.h>
|
||||||
#include <dt-bindings/input/input.h>
|
#include <dt-bindings/input/input.h>
|
||||||
#include <dt-bindings/interrupt-controller/bcm63268-interrupt-controller.h>
|
#include <dt-bindings/interrupt-controller/bcm63268-interrupt-controller.h>
|
||||||
|
#include <dt-bindings/interrupt-controller/irq.h>
|
||||||
#include <dt-bindings/reset/bcm63268-reset.h>
|
#include <dt-bindings/reset/bcm63268-reset.h>
|
||||||
#include <dt-bindings/soc/bcm63268-pm.h>
|
#include <dt-bindings/soc/bcm63268-pm.h>
|
||||||
|
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
|
|
||||||
keys {
|
keys {
|
||||||
compatible = "gpio-keys-polled";
|
compatible = "gpio-keys-polled";
|
||||||
poll-interval = <20>;
|
poll-interval = <100>;
|
||||||
|
|
||||||
reset {
|
reset {
|
||||||
label = "reset";
|
label = "reset";
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
#include <dt-bindings/gpio/gpio.h>
|
#include <dt-bindings/gpio/gpio.h>
|
||||||
#include <dt-bindings/input/input.h>
|
#include <dt-bindings/input/input.h>
|
||||||
#include <dt-bindings/interrupt-controller/bcm6328-interrupt-controller.h>
|
#include <dt-bindings/interrupt-controller/bcm6328-interrupt-controller.h>
|
||||||
|
#include <dt-bindings/interrupt-controller/irq.h>
|
||||||
#include <dt-bindings/reset/bcm6328-reset.h>
|
#include <dt-bindings/reset/bcm6328-reset.h>
|
||||||
#include <dt-bindings/soc/bcm6328-pm.h>
|
#include <dt-bindings/soc/bcm6328-pm.h>
|
||||||
|
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
|
|
||||||
keys {
|
keys {
|
||||||
compatible = "gpio-keys-polled";
|
compatible = "gpio-keys-polled";
|
||||||
poll-interval = <20>;
|
poll-interval = <100>;
|
||||||
|
|
||||||
help {
|
help {
|
||||||
label = "help";
|
label = "help";
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
#include <dt-bindings/gpio/gpio.h>
|
#include <dt-bindings/gpio/gpio.h>
|
||||||
#include <dt-bindings/input/input.h>
|
#include <dt-bindings/input/input.h>
|
||||||
#include <dt-bindings/interrupt-controller/bcm6358-interrupt-controller.h>
|
#include <dt-bindings/interrupt-controller/bcm6358-interrupt-controller.h>
|
||||||
|
#include <dt-bindings/interrupt-controller/irq.h>
|
||||||
#include <dt-bindings/reset/bcm6358-reset.h>
|
#include <dt-bindings/reset/bcm6358-reset.h>
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
|
|
||||||
keys {
|
keys {
|
||||||
compatible = "gpio-keys-polled";
|
compatible = "gpio-keys-polled";
|
||||||
poll-interval = <20>;
|
poll-interval = <100>;
|
||||||
|
|
||||||
reset {
|
reset {
|
||||||
label = "reset";
|
label = "reset";
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
|
|
||||||
keys {
|
keys {
|
||||||
compatible = "gpio-keys-polled";
|
compatible = "gpio-keys-polled";
|
||||||
poll-interval = <20>;
|
poll-interval = <100>;
|
||||||
|
|
||||||
wlan {
|
wlan {
|
||||||
label = "wlan";
|
label = "wlan";
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
#include <dt-bindings/gpio/gpio.h>
|
#include <dt-bindings/gpio/gpio.h>
|
||||||
#include <dt-bindings/input/input.h>
|
#include <dt-bindings/input/input.h>
|
||||||
#include <dt-bindings/interrupt-controller/bcm6362-interrupt-controller.h>
|
#include <dt-bindings/interrupt-controller/bcm6362-interrupt-controller.h>
|
||||||
|
#include <dt-bindings/interrupt-controller/irq.h>
|
||||||
#include <dt-bindings/reset/bcm6362-reset.h>
|
#include <dt-bindings/reset/bcm6362-reset.h>
|
||||||
#include <dt-bindings/soc/bcm6362-pm.h>
|
#include <dt-bindings/soc/bcm6362-pm.h>
|
||||||
|
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
|
|
||||||
keys {
|
keys {
|
||||||
compatible = "gpio-keys-polled";
|
compatible = "gpio-keys-polled";
|
||||||
poll-interval = <20>;
|
poll-interval = <100>;
|
||||||
|
|
||||||
reset {
|
reset {
|
||||||
label = "reset";
|
label = "reset";
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
#include <dt-bindings/gpio/gpio.h>
|
#include <dt-bindings/gpio/gpio.h>
|
||||||
#include <dt-bindings/input/input.h>
|
#include <dt-bindings/input/input.h>
|
||||||
#include <dt-bindings/interrupt-controller/bcm6368-interrupt-controller.h>
|
#include <dt-bindings/interrupt-controller/bcm6368-interrupt-controller.h>
|
||||||
|
#include <dt-bindings/interrupt-controller/irq.h>
|
||||||
#include <dt-bindings/reset/bcm6368-reset.h>
|
#include <dt-bindings/reset/bcm6368-reset.h>
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
|
|
|
@ -81,4 +81,9 @@
|
||||||
#define BCM6318_IRQ_EPHY2_IDDQ_ENERGY 78
|
#define BCM6318_IRQ_EPHY2_IDDQ_ENERGY 78
|
||||||
#define BCM6318_IRQ_EPHY3_IDDQ_ENERGY 79
|
#define BCM6318_IRQ_EPHY3_IDDQ_ENERGY 79
|
||||||
|
|
||||||
|
#define BCM6318_EXTIRQ_0 0 /* GPIO 33 */
|
||||||
|
#define BCM6318_EXTIRQ_1 1
|
||||||
|
#define BCM6318_EXTIRQ_2 2
|
||||||
|
#define BCM6318_EXTIRQ_3 3
|
||||||
|
|
||||||
#endif /* __DT_BINDINGS_INTERRUPT_CONTROLLER_BCM6318_H */
|
#endif /* __DT_BINDINGS_INTERRUPT_CONTROLLER_BCM6318_H */
|
||||||
|
|
|
@ -83,4 +83,9 @@
|
||||||
#define BCM63268_IRQ_ATM_DMA19 79
|
#define BCM63268_IRQ_ATM_DMA19 79
|
||||||
#define BCM63268_IRQ_LSSPI 80
|
#define BCM63268_IRQ_LSSPI 80
|
||||||
|
|
||||||
|
#define BCM63268_EXTIRQ_0 0 /* GPIO 32 */
|
||||||
|
#define BCM63268_EXTIRQ_1 1 /* GPIO 33 */
|
||||||
|
#define BCM63268_EXTIRQ_2 2 /* GPIO 34 */
|
||||||
|
#define BCM63268_EXTIRQ_3 3 /* GPIO 35 */
|
||||||
|
|
||||||
#endif /* __DT_BINDINGS_INTERRUPT_CONTROLLER_BCM63268_H */
|
#endif /* __DT_BINDINGS_INTERRUPT_CONTROLLER_BCM63268_H */
|
||||||
|
|
|
@ -65,4 +65,9 @@
|
||||||
#define BCM6328_IRQ_ATM_DMA19 62
|
#define BCM6328_IRQ_ATM_DMA19 62
|
||||||
#define BCM6328_IRQ_SAR 63
|
#define BCM6328_IRQ_SAR 63
|
||||||
|
|
||||||
|
#define BCM6328_EXTIRQ_0 0 /* GPIO 23 */
|
||||||
|
#define BCM6328_EXTIRQ_1 1 /* GPIO 24 */
|
||||||
|
#define BCM6328_EXTIRQ_2 2 /* GPIO 15 */
|
||||||
|
#define BCM6328_EXTIRQ_3 3 /* GPIO 12 */
|
||||||
|
|
||||||
#endif /* __DT_BINDINGS_INTERRUPT_CONTROLLER_BCM6328_H */
|
#endif /* __DT_BINDINGS_INTERRUPT_CONTROLLER_BCM6328_H */
|
||||||
|
|
|
@ -35,4 +35,11 @@
|
||||||
#define BCM6358_IRQ_DG 30
|
#define BCM6358_IRQ_DG 30
|
||||||
#define BCM6358_IRQ_MPI 31
|
#define BCM6358_IRQ_MPI 31
|
||||||
|
|
||||||
|
#define BCM6358_EXTIRQ0_0 0 /* GPIO 34 */
|
||||||
|
#define BCM6358_EXTIRQ0_1 1 /* GPIO 35 */
|
||||||
|
#define BCM6358_EXTIRQ0_2 2 /* GPIO 36 */
|
||||||
|
#define BCM6358_EXTIRQ0_3 3 /* GPIO 37 */
|
||||||
|
#define BCM6358_EXTIRQ1_4 0 /* GPIO 32 */
|
||||||
|
#define BCM6358_EXTIRQ1_5 1 /* GPIO 33 */
|
||||||
|
|
||||||
#endif /* __DT_BINDINGS_INTERRUPT_CONTROLLER_BCM6358_H */
|
#endif /* __DT_BINDINGS_INTERRUPT_CONTROLLER_BCM6358_H */
|
||||||
|
|
|
@ -68,4 +68,9 @@
|
||||||
#define BCM6362_IRQ_ATM_DMA18 62
|
#define BCM6362_IRQ_ATM_DMA18 62
|
||||||
#define BCM6362_IRQ_ATM_DMA19 63
|
#define BCM6362_IRQ_ATM_DMA19 63
|
||||||
|
|
||||||
|
#define BCM6362_EXTIRQ_0 0 /* GPIO 24 */
|
||||||
|
#define BCM6362_EXTIRQ_1 1 /* GPIO 25 */
|
||||||
|
#define BCM6362_EXTIRQ_2 2 /* GPIO 26 */
|
||||||
|
#define BCM6362_EXTIRQ_3 3 /* GPIO 27 */
|
||||||
|
|
||||||
#endif /* __DT_BINDINGS_INTERRUPT_CONTROLLER_BCM6362_H */
|
#endif /* __DT_BINDINGS_INTERRUPT_CONTROLLER_BCM6362_H */
|
||||||
|
|
|
@ -68,4 +68,11 @@
|
||||||
#define BCM6368_IRQ_PCM_DMA0 62
|
#define BCM6368_IRQ_PCM_DMA0 62
|
||||||
#define BCM6368_IRQ_PCM_DMA1 63
|
#define BCM6368_IRQ_PCM_DMA1 63
|
||||||
|
|
||||||
|
#define BCM6368_EXTIRQ0_0 0 /* GPIO 34 */
|
||||||
|
#define BCM6368_EXTIRQ0_1 1 /* GPIO 35 */
|
||||||
|
#define BCM6368_EXTIRQ0_2 2 /* GPIO 36 */
|
||||||
|
#define BCM6368_EXTIRQ0_3 3 /* GPIO 37 */
|
||||||
|
#define BCM6368_EXTIRQ1_4 0 /* GPIO 32 */
|
||||||
|
#define BCM6368_EXTIRQ1_5 1 /* GPIO 33 */
|
||||||
|
|
||||||
#endif /* __DT_BINDINGS_INTERRUPT_CONTROLLER_BCM6368_H */
|
#endif /* __DT_BINDINGS_INTERRUPT_CONTROLLER_BCM6368_H */
|
||||||
|
|
|
@ -73,7 +73,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||||
obj-$(CONFIG_BCM7120_L2_IRQ) += irq-bcm7120-l2.o
|
obj-$(CONFIG_BCM7120_L2_IRQ) += irq-bcm7120-l2.o
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/irqchip/irq-bcm6345-ext.c
|
+++ b/drivers/irqchip/irq-bcm6345-ext.c
|
||||||
@@ -0,0 +1,299 @@
|
@@ -0,0 +1,280 @@
|
||||||
+/*
|
+/*
|
||||||
+ * This file is subject to the terms and conditions of the GNU General Public
|
+ * This file is subject to the terms and conditions of the GNU General Public
|
||||||
+ * License. See the file "COPYING" in the main directory of this archive
|
+ * License. See the file "COPYING" in the main directory of this archive
|
||||||
|
@ -94,14 +94,6 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||||
+#include <linux/slab.h>
|
+#include <linux/slab.h>
|
||||||
+#include <linux/spinlock.h>
|
+#include <linux/spinlock.h>
|
||||||
+
|
+
|
||||||
+#ifdef CONFIG_BCM63XX
|
|
||||||
+#include <asm/mach-bcm63xx/bcm63xx_irq.h>
|
|
||||||
+
|
|
||||||
+#define VIRQ_BASE IRQ_EXTERNAL_BASE
|
|
||||||
+#else
|
|
||||||
+#define VIRQ_BASE 0
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+#define MAX_IRQS 4
|
+#define MAX_IRQS 4
|
||||||
+
|
+
|
||||||
+#define EXTIRQ_CFG_SENSE 0
|
+#define EXTIRQ_CFG_SENSE 0
|
||||||
|
@ -271,7 +263,6 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||||
+{
|
+{
|
||||||
+ struct intc_data *data;
|
+ struct intc_data *data;
|
||||||
+ unsigned int i;
|
+ unsigned int i;
|
||||||
+ int start = VIRQ_BASE;
|
|
||||||
+
|
+
|
||||||
+ data = kzalloc(sizeof(*data), GFP_KERNEL);
|
+ data = kzalloc(sizeof(*data), GFP_KERNEL);
|
||||||
+ if (!data)
|
+ if (!data)
|
||||||
|
@ -296,17 +287,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||||
+ data->chip.irq_unmask = bcm6345_ext_intc_irq_unmask;
|
+ data->chip.irq_unmask = bcm6345_ext_intc_irq_unmask;
|
||||||
+ data->chip.irq_set_type = bcm6345_ext_intc_set_type;
|
+ data->chip.irq_set_type = bcm6345_ext_intc_set_type;
|
||||||
+
|
+
|
||||||
+ /*
|
+ data->domain = irq_domain_add_linear(node, num_irqs,
|
||||||
+ * If we have less than 4 irqs, this is the second controller on
|
|
||||||
+ * bcm63xx. So increase the VIRQ start to not overlap with the first
|
|
||||||
+ * one, but only do so if we actually use a non-zero start.
|
|
||||||
+ *
|
|
||||||
+ * This can be removed when bcm63xx has no legacy users anymore.
|
|
||||||
+ */
|
|
||||||
+ if (start && num_irqs < 4)
|
|
||||||
+ start += 4;
|
|
||||||
+
|
|
||||||
+ data->domain = irq_domain_add_simple(node, num_irqs, start,
|
|
||||||
+ &bcm6345_ext_domain_ops, data);
|
+ &bcm6345_ext_domain_ops, data);
|
||||||
+ if (!data->domain) {
|
+ if (!data->domain) {
|
||||||
+ kfree(data);
|
+ kfree(data);
|
||||||
|
|
|
@ -216,7 +216,6 @@ CONFIG_INPUT_KEYBOARD=y
|
||||||
# CONFIG_IOMMU_IO_PGTABLE_ARMV7S is not set
|
# CONFIG_IOMMU_IO_PGTABLE_ARMV7S is not set
|
||||||
# CONFIG_IOMMU_IO_PGTABLE_LPAE is not set
|
# CONFIG_IOMMU_IO_PGTABLE_LPAE is not set
|
||||||
CONFIG_IOMMU_SUPPORT=y
|
CONFIG_IOMMU_SUPPORT=y
|
||||||
CONFIG_IO_URING=y
|
|
||||||
CONFIG_IPC_NS=y
|
CONFIG_IPC_NS=y
|
||||||
CONFIG_IRQCHIP=y
|
CONFIG_IRQCHIP=y
|
||||||
CONFIG_IRQ_DOMAIN=y
|
CONFIG_IRQ_DOMAIN=y
|
||||||
|
|
|
@ -217,7 +217,6 @@ CONFIG_INPUT_KEYBOARD=y
|
||||||
# CONFIG_IOMMU_IO_PGTABLE_ARMV7S is not set
|
# CONFIG_IOMMU_IO_PGTABLE_ARMV7S is not set
|
||||||
# CONFIG_IOMMU_IO_PGTABLE_LPAE is not set
|
# CONFIG_IOMMU_IO_PGTABLE_LPAE is not set
|
||||||
CONFIG_IOMMU_SUPPORT=y
|
CONFIG_IOMMU_SUPPORT=y
|
||||||
CONFIG_IO_URING=y
|
|
||||||
CONFIG_IPC_NS=y
|
CONFIG_IPC_NS=y
|
||||||
CONFIG_IRQCHIP=y
|
CONFIG_IRQCHIP=y
|
||||||
CONFIG_IRQ_DOMAIN=y
|
CONFIG_IRQ_DOMAIN=y
|
||||||
|
|
|
@ -677,7 +677,7 @@
|
||||||
#if IS_ENABLED(CONFIG_NF_CONNTRACK)
|
#if IS_ENABLED(CONFIG_NF_CONNTRACK)
|
||||||
#include <linux/netfilter/nf_conntrack_common.h>
|
#include <linux/netfilter/nf_conntrack_common.h>
|
||||||
#endif
|
#endif
|
||||||
@@ -786,7 +787,8 @@ struct sk_buff {
|
@@ -787,7 +788,8 @@ struct sk_buff {
|
||||||
fclone:2,
|
fclone:2,
|
||||||
peeked:1,
|
peeked:1,
|
||||||
head_frag:1,
|
head_frag:1,
|
||||||
|
@ -687,7 +687,7 @@
|
||||||
#ifdef CONFIG_SKB_EXTENSIONS
|
#ifdef CONFIG_SKB_EXTENSIONS
|
||||||
__u8 active_extensions;
|
__u8 active_extensions;
|
||||||
#endif
|
#endif
|
||||||
@@ -3029,9 +3031,15 @@ static inline void skb_frag_ref(struct s
|
@@ -3030,9 +3032,15 @@ static inline void skb_frag_ref(struct s
|
||||||
*
|
*
|
||||||
* Releases a reference on the paged fragment @frag.
|
* Releases a reference on the paged fragment @frag.
|
||||||
*/
|
*/
|
||||||
|
@ -705,7 +705,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -3043,7 +3051,7 @@ static inline void __skb_frag_unref(skb_
|
@@ -3044,7 +3052,7 @@ static inline void __skb_frag_unref(skb_
|
||||||
*/
|
*/
|
||||||
static inline void skb_frag_unref(struct sk_buff *skb, int f)
|
static inline void skb_frag_unref(struct sk_buff *skb, int f)
|
||||||
{
|
{
|
||||||
|
@ -714,7 +714,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -4642,5 +4650,12 @@ static inline u64 skb_get_kcov_handle(st
|
@@ -4643,5 +4651,12 @@ static inline u64 skb_get_kcov_handle(st
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -24,8 +24,8 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||||
#include <linux/kernel.h>
|
#include <linux/kernel.h>
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
#include <linux/io.h>
|
#include <linux/io.h>
|
||||||
@@ -228,11 +229,65 @@ static const struct b53_io_ops b53_mmap_
|
@@ -242,11 +243,65 @@ static const struct b53_io_ops b53_mmap_
|
||||||
.write64 = b53_mmap_write64,
|
.phy_write16 = b53_mmap_phy_write16,
|
||||||
};
|
};
|
||||||
|
|
||||||
+static int b53_mmap_probe_of(struct platform_device *pdev,
|
+static int b53_mmap_probe_of(struct platform_device *pdev,
|
||||||
|
|
|
@ -40,7 +40,7 @@ Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
|
||||||
return !!(pmd_val(pmd) & _PAGE_ACCESSED);
|
return !!(pmd_val(pmd) & _PAGE_ACCESSED);
|
||||||
--- a/arch/riscv/include/asm/pgtable.h
|
--- a/arch/riscv/include/asm/pgtable.h
|
||||||
+++ b/arch/riscv/include/asm/pgtable.h
|
+++ b/arch/riscv/include/asm/pgtable.h
|
||||||
@@ -531,6 +531,7 @@ static inline int pmd_dirty(pmd_t pmd)
|
@@ -535,6 +535,7 @@ static inline int pmd_dirty(pmd_t pmd)
|
||||||
return pte_dirty(pmd_pte(pmd));
|
return pte_dirty(pmd_pte(pmd));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -354,7 +354,7 @@ Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
|
||||||
static void mem_cgroup_css_free(struct cgroup_subsys_state *css)
|
static void mem_cgroup_css_free(struct cgroup_subsys_state *css)
|
||||||
--- a/mm/page_alloc.c
|
--- a/mm/page_alloc.c
|
||||||
+++ b/mm/page_alloc.c
|
+++ b/mm/page_alloc.c
|
||||||
@@ -7645,6 +7645,7 @@ static void __init free_area_init_node(i
|
@@ -7661,6 +7661,7 @@ static void __init free_area_init_node(i
|
||||||
pgdat_set_deferred_range(pgdat);
|
pgdat_set_deferred_range(pgdat);
|
||||||
|
|
||||||
free_area_init_core(pgdat);
|
free_area_init_core(pgdat);
|
||||||
|
|
|
@ -21,7 +21,7 @@ Signed-off-by: Alexei Starovoitov <ast@kernel.org>
|
||||||
|
|
||||||
--- a/include/linux/skbuff.h
|
--- a/include/linux/skbuff.h
|
||||||
+++ b/include/linux/skbuff.h
|
+++ b/include/linux/skbuff.h
|
||||||
@@ -567,6 +567,7 @@ struct skb_shared_info {
|
@@ -568,6 +568,7 @@ struct skb_shared_info {
|
||||||
* Warning : all fields before dataref are cleared in __alloc_skb()
|
* Warning : all fields before dataref are cleared in __alloc_skb()
|
||||||
*/
|
*/
|
||||||
atomic_t dataref;
|
atomic_t dataref;
|
||||||
|
|
|
@ -1,3 +1,20 @@
|
||||||
|
From f5d43ddd334b7c32fcaed9ba46afbd85cb467f1f Mon Sep 17 00:00:00 2001
|
||||||
|
From: Daniel Golle <daniel@makrotopia.org>
|
||||||
|
Date: Sun, 19 Mar 2023 12:56:28 +0000
|
||||||
|
Subject: [PATCH] net: ethernet: mtk_eth_soc: add support for MT7981 SoC
|
||||||
|
|
||||||
|
The MediaTek MT7981 SoC comes with two 1G/2.5G SGMII ports, just like
|
||||||
|
MT7986.
|
||||||
|
|
||||||
|
In addition MT7981 is equipped with a built-in 1000Base-T PHY which can
|
||||||
|
be used with GMAC1.
|
||||||
|
|
||||||
|
As many MT7981 boards make use of inverting SGMII signal polarity, add
|
||||||
|
new device-tree attribute 'mediatek,pn_swap' to support them.
|
||||||
|
|
||||||
|
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||||
|
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||||
|
|
||||||
--- a/drivers/net/ethernet/mediatek/mtk_eth_path.c
|
--- a/drivers/net/ethernet/mediatek/mtk_eth_path.c
|
||||||
+++ b/drivers/net/ethernet/mediatek/mtk_eth_path.c
|
+++ b/drivers/net/ethernet/mediatek/mtk_eth_path.c
|
||||||
@@ -96,12 +96,20 @@ static int set_mux_gmac2_gmac0_to_gephy(
|
@@ -96,12 +96,20 @@ static int set_mux_gmac2_gmac0_to_gephy(
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue