diff --git a/config/Config-kernel.in b/config/Config-kernel.in index 1cd9da4d12..3f013aa2b2 100644 --- a/config/Config-kernel.in +++ b/config/Config-kernel.in @@ -531,23 +531,23 @@ if KERNEL_DEVTMPFS endif config KERNEL_KEYS - bool "Enable kernel access key retention support" - default n + bool "Enable kernel access key retention support" + default !SMALL_FLASH config KERNEL_PERSISTENT_KEYRINGS - bool "Enable kernel persistent keyrings" - depends on KERNEL_KEYS - default n + bool "Enable kernel persistent keyrings" + depends on KERNEL_KEYS + default n + +config KERNEL_KEYS_REQUEST_CACHE + bool "Enable temporary caching of the last request_key() result" + depends on KERNEL_KEYS + default n config KERNEL_BIG_KEYS - bool "Enable large payload keys on kernel keyrings" - depends on KERNEL_KEYS - default n - -config KERNEL_ENCRYPTED_KEYS - tristate "Enable keys with encrypted payloads on kernel keyrings" - depends on KERNEL_KEYS - default n + bool "Enable large payload keys on kernel keyrings" + depends on KERNEL_KEYS + default n # # CGROUP support symbols diff --git a/include/image.mk b/include/image.mk index 33aa0f72bf..01e64f4f66 100644 --- a/include/image.mk +++ b/include/image.mk @@ -568,6 +568,7 @@ define Device/Build/image SOURCE_DATE_EPOCH=$(SOURCE_DATE_EPOCH) \ IMAGE_NAME="$(IMAGE_NAME)" \ IMAGE_TYPE=$(word 1,$(subst ., ,$(2))) \ + IMAGE_FILESYSTEM="$(1)" \ IMAGE_PREFIX="$(IMAGE_PREFIX)" \ DEVICE_VENDOR="$(DEVICE_VENDOR)" \ DEVICE_MODEL="$(DEVICE_MODEL)" \ diff --git a/include/kernel-version.mk b/include/kernel-version.mk index 2633ef5107..89bae2e8b3 100644 --- a/include/kernel-version.mk +++ b/include/kernel-version.mk @@ -6,9 +6,9 @@ ifdef CONFIG_TESTING_KERNEL KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER) endif -LINUX_VERSION-5.4 = .82 +LINUX_VERSION-5.4 = .83 -LINUX_KERNEL_HASH-5.4.82 = fb4458e4ea38b6c5df4ee8cee0d9b0420b5aed07e273787b045c0db48709ddaf +LINUX_KERNEL_HASH-5.4.83 = beec970bbb93de8ab839f27930f7ab00c7bd65af0ffa07a50e765affdc2561c6 remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1)))) sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1))))))) diff --git a/package/boot/uboot-zynq/patches/010-fix_dtc_compilation_on_host_gcc10.patch b/package/boot/uboot-zynq/patches/010-fix_dtc_compilation_on_host_gcc10.patch new file mode 100644 index 0000000000..a4080e4ea9 --- /dev/null +++ b/package/boot/uboot-zynq/patches/010-fix_dtc_compilation_on_host_gcc10.patch @@ -0,0 +1,48 @@ +From e33a814e772cdc36436c8c188d8c42d019fda639 Mon Sep 17 00:00:00 2001 +From: Dirk Mueller +Date: Tue, 14 Jan 2020 18:53:41 +0100 +Subject: [PATCH] scripts/dtc: Remove redundant YYLOC global declaration + +gcc 10 will default to -fno-common, which causes this error at link +time: + + (.text+0x0): multiple definition of `yylloc'; dtc-lexer.lex.o (symbol from plugin):(.text+0x0): first defined here + +This is because both dtc-lexer as well as dtc-parser define the same +global symbol yyloc. Before with -fcommon those were merged into one +defintion. The proper solution would be to to mark this as "extern", +however that leads to: + + dtc-lexer.l:26:16: error: redundant redeclaration of 'yylloc' [-Werror=redundant-decls] + 26 | extern YYLTYPE yylloc; + | ^~~~~~ +In file included from dtc-lexer.l:24: +dtc-parser.tab.h:127:16: note: previous declaration of 'yylloc' was here + 127 | extern YYLTYPE yylloc; + | ^~~~~~ +cc1: all warnings being treated as errors + +which means the declaration is completely redundant and can just be +dropped. + +Signed-off-by: Dirk Mueller +Signed-off-by: David Gibson +[robh: cherry-pick from upstream] +Cc: stable@vger.kernel.org +Signed-off-by: Rob Herring +--- + scripts/dtc/dtc-lexer.l | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/scripts/dtc/dtc-lexer.l b/scripts/dtc/dtc-lexer.l +index 5c6c3fd557d7f..b3b7270300de5 100644 +--- a/scripts/dtc/dtc-lexer.l ++++ b/scripts/dtc/dtc-lexer.l +@@ -38,7 +38,6 @@ LINECOMMENT "//".*\n + #include "srcpos.h" + #include "dtc-parser.tab.h" + +-YYLTYPE yylloc; + extern bool treesource_error; + + /* CAUTION: this will stop working if we ever use yyless() or yyunput() */ diff --git a/package/kernel/linux/modules/other.mk b/package/kernel/linux/modules/other.mk index 41de6ac2ba..421b1b536c 100644 --- a/package/kernel/linux/modules/other.mk +++ b/package/kernel/linux/modules/other.mk @@ -1103,6 +1103,47 @@ endef $(eval $(call KernelPackage,echo)) +define KernelPackage/keys-encrypted + SUBMENU:=$(OTHER_MENU) + TITLE:=encrypted keys on kernel keyring + DEPENDS:=@KERNEL_KEYS +kmod-crypto-cbc +kmod-crypto-hmac +kmod-crypto-rng \ + +kmod-crypto-sha256 +kmod-keys-trusted + KCONFIG:=CONFIG_ENCRYPTED_KEYS + FILES:=$(LINUX_DIR)/security/keys/encrypted-keys/encrypted-keys.ko + AUTOLOAD:=$(call AutoLoad,01,encrypted-keys,1) +endef + +define KernelPackage/keys-encrypted/description + This module provides support for create/encrypting/decrypting keys + in the kernel. Encrypted keys are kernel generated random numbers, + which are encrypted/decrypted with a 'master' symmetric key. The + 'master' key can be either a trusted-key or user-key type. + Userspace only ever sees/stores encrypted blobs. +endef + +$(eval $(call KernelPackage,keys-encrypted)) + + +define KernelPackage/keys-trusted + SUBMENU:=$(OTHER_MENU) + TITLE:=TPM trusted keys on kernel keyring + DEPENDS:=@KERNEL_KEYS +kmod-crypto-hash +kmod-crypto-hmac +kmod-crypto-sha1 +kmod-tpm + KCONFIG:=CONFIG_TRUSTED_KEYS + FILES:=$(LINUX_DIR)/security/keys/trusted.ko + AUTOLOAD:=$(call AutoLoad,01,trusted-keys,1) +endef + +define KernelPackage/keys-trusted/description + This module provides support for creating, sealing, and unsealing + keys in the kernel. Trusted keys are random number symmetric keys, + generated and RSA-sealed by the TPM. The TPM only unseals the keys, + if the boot PCRs and other criteria match. Userspace will only ever + see encrypted blobs. +endef + +$(eval $(call KernelPackage,keys-trusted)) + + define KernelPackage/tpm SUBMENU:=$(OTHER_MENU) TITLE:=TPM Hardware Support diff --git a/package/lean/luci-app-docker/Makefile b/package/lean/luci-app-docker/Makefile index 4624618b6e..a3e699db1f 100644 --- a/package/lean/luci-app-docker/Makefile +++ b/package/lean/luci-app-docker/Makefile @@ -7,7 +7,7 @@ include $(TOPDIR)/rules.mk LUCI_TITLE:=Luci for Docker-CE -LUCI_DEPENDS:=+docker-ce +e2fsprogs +fdisk +LUCI_DEPENDS:=+docker +e2fsprogs +fdisk LUCI_PKGARCH:=all PKG_VERSION:=1 PKG_RELEASE:=9 diff --git a/package/libs/libnetfilter-conntrack/Makefile b/package/libs/libnetfilter-conntrack/Makefile index a97482ecc0..2020709d01 100644 --- a/package/libs/libnetfilter-conntrack/Makefile +++ b/package/libs/libnetfilter-conntrack/Makefile @@ -8,20 +8,19 @@ include $(TOPDIR)/rules.mk PKG_NAME:=libnetfilter_conntrack -PKG_RELEASE:=2 +PKG_VERSION:=1.0.8 +PKG_RELEASE:=1 -PKG_SOURCE_PROTO:=git -PKG_SOURCE_URL:=https://git.netfilter.org/libnetfilter_conntrack -PKG_SOURCE_DATE:=2018-05-01 -PKG_SOURCE_VERSION:=3ccae9f5b2a9564cd63699ba60e54a46bc0d73b6 -PKG_MIRROR_HASH:=c978ef0fa5b7379de2909ca5d9c599ac63b4f8166f5971d58f6e074a922d996f +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 +PKG_SOURCE_URL:=https://www.netfilter.org/projects/libnetfilter_conntrack/files +PKG_HASH:=0cd13be008923528687af6c6b860f35392d49251c04ee0648282d36b1faec1cf PKG_MAINTAINER:=Jo-Philipp Wich - -PKG_FIXUP:=autoreconf -PKG_LICENSE:=GPL-2.0+ +PKG_LICENSE:=GPL-2.0-or-later +PKG_LICENSE_FILES:=COPYING PKG_INSTALL:=1 +PKG_BUILD_PARALLEL:=1 include $(INCLUDE_DIR)/package.mk diff --git a/package/libs/uclient/Makefile b/package/libs/uclient/Makefile index 9edb5a6ea0..43d00a2299 100644 --- a/package/libs/uclient/Makefile +++ b/package/libs/uclient/Makefile @@ -5,9 +5,9 @@ PKG_RELEASE=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=$(PROJECT_GIT)/project/uclient.git -PKG_MIRROR_HASH:=05962d4edbe7b856e017d974c3d7e34dfa5f905821ab7a3534acc5886af4e5c7 -PKG_SOURCE_DATE:=2020-06-17 -PKG_SOURCE_VERSION:=c66098611f16806a936a3a3f92113a16382fc4d9 +PKG_MIRROR_HASH:=532016a283722f21dd450e388060af0db765972956eee288c7cabf102c8303d0 +PKG_SOURCE_DATE:=2020-12-10 +PKG_SOURCE_VERSION:=2c843b2bc04c34403d9a6b4de025447e4b5d8aa4 CMAKE_INSTALL:=1 PKG_BUILD_DEPENDS:=ustream-ssl @@ -24,7 +24,7 @@ define Package/libuclient SECTION:=libs CATEGORY:=Libraries TITLE:=HTTP/1.1 client library - ABI_VERSION:=20160123 + ABI_VERSION:=20201210 DEPENDS:=+libubox endef diff --git a/package/libs/ustream-ssl/Makefile b/package/libs/ustream-ssl/Makefile index 6368ca9619..3d1e48dcbd 100644 --- a/package/libs/ustream-ssl/Makefile +++ b/package/libs/ustream-ssl/Makefile @@ -5,9 +5,9 @@ PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=$(PROJECT_GIT)/project/ustream-ssl.git -PKG_SOURCE_DATE:=2020-03-13 -PKG_SOURCE_VERSION:=5e1bc3429cbf9c3be4db65ef5dbf21ea99cf5b95 -PKG_MIRROR_HASH:=c59dea9b98d3ce88d886f7c7b3b252c55312ad281b731ab9172ae78570f1b643 +PKG_SOURCE_DATE:=2020-12-10 +PKG_SOURCE_VERSION:=68d09243b6fd4473004b27ff6483352e76e6af1a +PKG_MIRROR_HASH:=a620090dee08c0624d167c10e9e45d54aa2b953a1f356eff7325a8fe53c622e6 CMAKE_INSTALL:=1 PKG_LICENSE:=ISC @@ -23,7 +23,7 @@ define Package/libustream/default CATEGORY:=Libraries TITLE:=ustream SSL Library DEPENDS:=+libubox - ABI_VERSION:=20200215 + ABI_VERSION:=20201210 endef define Package/libustream-openssl diff --git a/package/network/config/netifd/Makefile b/package/network/config/netifd/Makefile index 32aa350a21..ed35719aaa 100644 --- a/package/network/config/netifd/Makefile +++ b/package/network/config/netifd/Makefile @@ -5,9 +5,9 @@ PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=$(PROJECT_GIT)/project/netifd.git -PKG_SOURCE_DATE:=2020-11-30 -PKG_SOURCE_VERSION:=42c48866f1c1fce068f41536baa8dd2e80fc08d7 -PKG_MIRROR_HASH:=7eeec56364f1e6de8f0917f16ae933ca9bd0298e6a68e330025282164ea9af63 +PKG_SOURCE_DATE:=2020-12-13 +PKG_SOURCE_VERSION:=458b1a7e9473c150a40cae5d8be174f4bb03bd39 +PKG_MIRROR_HASH:=424aefb55aedebfcffd540a2c02a42aeb574b7ebb1a6b546ca9965d9280d82e5 PKG_MAINTAINER:=Felix Fietkau PKG_LICENSE:=GPL-2.0 diff --git a/package/system/zram-swap/files/zram.init b/package/system/zram-swap/files/zram.init index c6b7ae89c2..685648aae5 100755 --- a/package/system/zram-swap/files/zram.init +++ b/package/system/zram-swap/files/zram.init @@ -97,19 +97,6 @@ zram_comp_algo() fi } -zram_comp_streams() -{ - local dev="$1" - local logical_cpus=$( grep -ci "^processor" /proc/cpuinfo ) - [ $logical_cpus -gt 1 ] || return 1 - local zram_comp_streams="$( uci -q get system.@system[0].zram_comp_streams )" - [ -n "$zram_comp_streams" ] && [ "$zram_comp_streams" -le "$logical_cpus" ] || zram_comp_streams=$logical_cpus - if [ -e /sys/block/$( basename $dev )/max_comp_streams ]; then - logger -s -t zram_comp_streams -p daemon.debug "Set max compression streams to '$zram_comp_streams' for zram '$dev'" - echo $zram_comp_streams > /sys/block/$( basename $dev )/max_comp_streams - fi -} - #print various stats info about zram swap device zram_stats() { @@ -121,7 +108,6 @@ zram_stats() printf "%-25s - %s\n" "Block device" $zdev awk '{ printf "%-25s - %d MiB\n", "Device size", $1/1024/1024 }' <$zdev/disksize printf "%-25s - %s\n" "Compression algo" "$(cat $zdev/comp_algorithm)" - printf "%-25s - %s\n" "Compression streams" "$( cat $zdev/max_comp_streams)" awk 'BEGIN { fmt = "%-25s - %.2f %s\n" fmt2 = "%-25s - %d\n" @@ -179,7 +165,6 @@ start() zram_reset "$zram_dev" "enforcing defaults" zram_comp_algo "$zram_dev" - zram_comp_streams "$zram_dev" echo $(( $zram_size * 1024 * 1024 )) >"/sys/block/$( basename "$zram_dev" )/disksize" /sbin/mkswap "$zram_dev" /sbin/swapon -d $zram_priority "$zram_dev" diff --git a/scripts/json_add_image_info.py b/scripts/json_add_image_info.py index ac907c777c..d394cf4d1f 100755 --- a/scripts/json_add_image_info.py +++ b/scripts/json_add_image_info.py @@ -51,6 +51,7 @@ image_info = { "images": [ { "type": getenv("IMAGE_TYPE"), + "filesystem": getenv("IMAGE_FILESYSTEM"), "name": getenv("IMAGE_NAME"), "sha256": image_hash, } diff --git a/target/linux/armvirt/64/target.mk b/target/linux/armvirt/64/target.mk index 38d8fa13b6..58adcc7d60 100644 --- a/target/linux/armvirt/64/target.mk +++ b/target/linux/armvirt/64/target.mk @@ -1,8 +1,9 @@ ARCH:=aarch64 SUBTARGET:=64 -BOARDNAME:=ARMv8 multiplatform +BOARDNAME:=QEMU ARMv8 Virtual Machine (cortex-a53) +CPU_TYPE:=cortex-a53 KERNELNAME:=Image define Target/Description - Build multi-platform images for the ARMv8 instruction set architecture + Build multi-platform images for the ARMv8 instruction set architecture endef diff --git a/target/linux/armvirt/README b/target/linux/armvirt/README index ae0d2ada62..b870fe19f7 100644 --- a/target/linux/armvirt/README +++ b/target/linux/armvirt/README @@ -1,4 +1,4 @@ -This is intended to be used with LEDE project to provide image for use with +This is intended to be used with OpenWrt project to provide image for use with QEMU ARM virt machine. Run with qemu-system-arm diff --git a/target/linux/ath79/dts/qca9558_belkin_f9j1108-v2.dts b/target/linux/ath79/dts/qca9558_belkin_f9j1108-v2.dts index 0bd3af98db..80775d6cb3 100644 --- a/target/linux/ath79/dts/qca9558_belkin_f9j1108-v2.dts +++ b/target/linux/ath79/dts/qca9558_belkin_f9j1108-v2.dts @@ -1,229 +1,8 @@ // SPDX-License-Identifier: GPL-2.0-or-later OR MIT -#include "qca955x.dtsi" - -#include -#include +#include "qca9558_belkin_f9x-v2.dtsi" / { model = "Belkin F9J1108 v2 (AC1750 DB Wi-Fi)"; compatible = "belkin,f9j1108-v2", "qca,qca9558"; - - aliases { - led-boot = &led_system; - led-failsafe = &led_system; - led-running = &led_system; - led-upgrade = &led_system; - label-mac-device = ð1; - }; - - leds { - compatible = "gpio-leds"; - - usb { - label = "green:usb2"; - gpios = <&gpio 4 GPIO_ACTIVE_LOW>; - trigger-sources = <&hub_port0>; - linux,default-trigger = "usbport"; - }; - - status { - label = "amber:status"; - gpios = <&gpio 15 GPIO_ACTIVE_LOW>; - }; - - wps-amber { - label = "amber:wps"; - gpios = <&gpio 14 GPIO_ACTIVE_LOW>; - }; - - wps-blue { - label = "blue:wps"; - gpios = <&gpio 19 GPIO_ACTIVE_LOW>; - }; - - led_system: system { - label = "blue:system"; - gpios = <&gpio 20 GPIO_ACTIVE_LOW>; - }; - }; - - gpio-export { - compatible = "gpio-export"; - #size-cells = <0>; - - usb2_power { - gpio-export,name = "usb2:power"; - gpio-export,output = <1>; - gpios = <&gpio 21 GPIO_ACTIVE_HIGH>; - }; - }; - - keys { - compatible = "gpio-keys"; - - wps { - label = "WPS button"; - linux,code = ; - gpios = <&gpio 16 GPIO_ACTIVE_LOW>; - debounce-interval = <60>; - }; - - reset { - label = "Reset button"; - linux,code = ; - gpios = <&gpio 17 GPIO_ACTIVE_LOW>; - debounce-interval = <60>; - }; - }; - - virtual_flash { - compatible = "mtd-concat"; - - devices = <&fwpart1 &fwpart2>; - - partitions { - compatible = "fixed-partitions"; - #address-cells = <1>; - #size-cells = <1>; - - partition@0 { - compatible = "openwrt,okli"; - label = "firmware"; - reg = <0x0 0x0>; - }; - }; - }; -}; - -&pcie1 { - status = "okay"; -}; - -&uart { - status = "okay"; -}; - -&usb_phy0 { - status = "okay"; -}; - -&usb0 { - #address-cells = <1>; - #size-cells = <0>; - status = "okay"; - - hub_port0: port@1 { - reg = <1>; - #trigger-source-cells = <0>; - }; -}; - -&spi { - status = "okay"; - - flash@0 { - compatible = "jedec,spi-nor"; - reg = <0>; - spi-max-frequency = <80000000>; - m25p,fast-read; - - partitions { - compatible = "fixed-partitions"; - #address-cells = <1>; - #size-cells = <1>; - - uboot: partition@0 { - label = "u-boot"; - reg = <0x000000 0x040000>; - read-only; - }; - - partition@40000 { - label = "u-boot-env"; - reg = <0x040000 0x010000>; - }; - - fwpart1: partition@50000 { - label = "fwpart1"; - reg = <0x050000 0xe20000>; - }; - - partition@e70000 { - label = "loader"; - reg = <0xe70000 0x10000>; - read-only; - }; - - fwpart2: partition@e80000 { - label = "fwpart2"; - reg = <0xe80000 0x170000>; - }; - - art: partition@ff0000 { - label = "art"; - reg = <0xff0000 0x010000>; - }; - }; - }; -}; - -&mdio0 { - status = "okay"; - - phy0: ethernet-phy@0 { - reg = <0>; - - qca,ar8327-initvals = < - 0x04 0x00080080 /* PORT0 PAD MODE CTRL */ - 0x0c 0x07600000 /* PORT6 PAD MODE CTRL */ - 0x50 0xc737c737 /* LED_CTRL0 */ - 0x54 0x00000000 /* LED_CTRL1 */ - 0x58 0x00000000 /* LED_CTRL2 */ - 0x5c 0x0030c300 /* LED_CTRL3 */ - 0x7c 0x0000007e /* PORT0_STATUS */ - 0x94 0x0000007e /* PORT6 STATUS */ - >; - }; -}; - -ð0 { - status = "okay"; - - mtd-mac-address = <&art 0x0>; - phy-handle = <&phy0>; - pll-data = <0xa6000000 0x00000101 0x00001616>; - - gmac-config { - device = <&gmac>; - rgmii-enabled = <1>; - }; -}; - -ð1 { - status = "okay"; - - mtd-mac-address = <&art 0x0>; - mtd-mac-address-increment = <(-1)>; - pll-data = <0x03000101 0x00000101 0x00001616>; - - fixed-link { - speed = <1000>; - full-duplex; - }; -}; - -&pcie0 { - status = "okay"; - - wifi@0,0 { - compatible = "qcom,ath10k"; - reg = <0 0 0 0 0>; - }; -}; - -&wmac { - status = "okay"; - - mtd-cal-data = <&art 0x1000>; }; diff --git a/target/linux/ath79/dts/qca9558_belkin_f9k1115-v2.dts b/target/linux/ath79/dts/qca9558_belkin_f9k1115-v2.dts new file mode 100644 index 0000000000..aa5851c2e8 --- /dev/null +++ b/target/linux/ath79/dts/qca9558_belkin_f9k1115-v2.dts @@ -0,0 +1,8 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT + +#include "qca9558_belkin_f9x-v2.dtsi" + +/ { + model = "Belkin F9K1115 v2 (AC 1750 DB)"; + compatible = "belkin,f9k1115-v2", "qca,qca9558"; +}; diff --git a/target/linux/ath79/dts/qca9558_belkin_f9x-v2.dtsi b/target/linux/ath79/dts/qca9558_belkin_f9x-v2.dtsi new file mode 100644 index 0000000000..c88e2b0ba6 --- /dev/null +++ b/target/linux/ath79/dts/qca9558_belkin_f9x-v2.dtsi @@ -0,0 +1,226 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT + +#include "qca955x.dtsi" + +#include +#include + +/ { + aliases { + led-boot = &led_system; + led-failsafe = &led_system; + led-running = &led_system; + led-upgrade = &led_system; + label-mac-device = ð1; + }; + + leds { + compatible = "gpio-leds"; + + usb { + label = "green:usb2"; + gpios = <&gpio 4 GPIO_ACTIVE_LOW>; + trigger-sources = <&hub_port0>; + linux,default-trigger = "usbport"; + }; + + status { + label = "amber:status"; + gpios = <&gpio 15 GPIO_ACTIVE_LOW>; + }; + + wps-amber { + label = "amber:wps"; + gpios = <&gpio 14 GPIO_ACTIVE_LOW>; + }; + + wps-blue { + label = "blue:wps"; + gpios = <&gpio 19 GPIO_ACTIVE_LOW>; + }; + + led_system: system { + label = "blue:system"; + gpios = <&gpio 20 GPIO_ACTIVE_LOW>; + }; + }; + + gpio-export { + compatible = "gpio-export"; + #size-cells = <0>; + + usb2_power { + gpio-export,name = "usb2:power"; + gpio-export,output = <1>; + gpios = <&gpio 21 GPIO_ACTIVE_HIGH>; + }; + }; + + keys { + compatible = "gpio-keys"; + + wps { + label = "WPS button"; + linux,code = ; + gpios = <&gpio 16 GPIO_ACTIVE_LOW>; + debounce-interval = <60>; + }; + + reset { + label = "Reset button"; + linux,code = ; + gpios = <&gpio 17 GPIO_ACTIVE_LOW>; + debounce-interval = <60>; + }; + }; + + virtual_flash { + compatible = "mtd-concat"; + + devices = <&fwpart1 &fwpart2>; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + compatible = "openwrt,okli"; + label = "firmware"; + reg = <0x0 0x0>; + }; + }; + }; +}; + +&pcie1 { + status = "okay"; +}; + +&uart { + status = "okay"; +}; + +&usb_phy0 { + status = "okay"; +}; + +&usb0 { + #address-cells = <1>; + #size-cells = <0>; + status = "okay"; + + hub_port0: port@1 { + reg = <1>; + #trigger-source-cells = <0>; + }; +}; + +&spi { + status = "okay"; + + flash@0 { + compatible = "jedec,spi-nor"; + reg = <0>; + spi-max-frequency = <80000000>; + m25p,fast-read; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + uboot: partition@0 { + label = "u-boot"; + reg = <0x000000 0x040000>; + read-only; + }; + + partition@40000 { + label = "u-boot-env"; + reg = <0x040000 0x010000>; + }; + + fwpart1: partition@50000 { + label = "fwpart1"; + reg = <0x050000 0xe20000>; + }; + + partition@e70000 { + label = "loader"; + reg = <0xe70000 0x10000>; + read-only; + }; + + fwpart2: partition@e80000 { + label = "fwpart2"; + reg = <0xe80000 0x170000>; + }; + + art: partition@ff0000 { + label = "art"; + reg = <0xff0000 0x010000>; + }; + }; + }; +}; + +&mdio0 { + status = "okay"; + + phy0: ethernet-phy@0 { + reg = <0>; + + qca,ar8327-initvals = < + 0x04 0x00080080 /* PORT0 PAD MODE CTRL */ + 0x0c 0x07600000 /* PORT6 PAD MODE CTRL */ + 0x50 0xc737c737 /* LED_CTRL0 */ + 0x54 0x00000000 /* LED_CTRL1 */ + 0x58 0x00000000 /* LED_CTRL2 */ + 0x5c 0x0030c300 /* LED_CTRL3 */ + 0x7c 0x0000007e /* PORT0_STATUS */ + 0x94 0x0000007e /* PORT6 STATUS */ + >; + }; +}; + +ð0 { + status = "okay"; + + mtd-mac-address = <&art 0x0>; + phy-handle = <&phy0>; + pll-data = <0xa6000000 0x00000101 0x00001616>; + + gmac-config { + device = <&gmac>; + rgmii-enabled = <1>; + }; +}; + +ð1 { + status = "okay"; + + mtd-mac-address = <&art 0x0>; + mtd-mac-address-increment = <(-1)>; + pll-data = <0x03000101 0x00000101 0x00001616>; + + fixed-link { + speed = <1000>; + full-duplex; + }; +}; + +&pcie0 { + status = "okay"; + + wifi@0,0 { + compatible = "qcom,ath10k"; + reg = <0 0 0 0 0>; + }; +}; + +&wmac { + status = "okay"; + + mtd-cal-data = <&art 0x1000>; +}; diff --git a/target/linux/ath79/generic/base-files/etc/board.d/02_network b/target/linux/ath79/generic/base-files/etc/board.d/02_network index cd8b3b2f29..70e16bd053 100755 --- a/target/linux/ath79/generic/base-files/etc/board.d/02_network +++ b/target/linux/ath79/generic/base-files/etc/board.d/02_network @@ -101,6 +101,7 @@ ath79_setup_interfaces() "0@eth0" "1:lan:1" "2:lan:4" "3:lan:3" "4:lan:2" ;; belkin,f9j1108-v2|\ + belkin,f9k1115-v2|\ tplink,archer-c5-v1|\ tplink,archer-c7-v1|\ tplink,archer-c7-v2|\ diff --git a/target/linux/ath79/image/generic.mk b/target/linux/ath79/image/generic.mk index 6b44f3ca1a..643456ad45 100644 --- a/target/linux/ath79/image/generic.mk +++ b/target/linux/ath79/image/generic.mk @@ -7,6 +7,7 @@ DEVICE_VARS += ADDPATTERN_ID ADDPATTERN_VERSION DEVICE_VARS += SEAMA_SIGNATURE SEAMA_MTDBLOCK DEVICE_VARS += KERNEL_INITRAMFS_PREFIX DEVICE_VARS += DAP_SIGNATURE ENGENIUS_IMGNAME +DEVICE_VARS += EDIMAX_HEADER_MAGIC EDIMAX_HEADER_MODEL define Build/add-elecom-factory-initramfs $(eval edimax_model=$(word 1,$(1))) @@ -408,10 +409,9 @@ define Device/avm_fritzdvbc endef TARGET_DEVICES += avm_fritzdvbc -define Device/belkin_f9j1108-v2 +define Device/belkin_f9x-v2 SOC := qca9558 DEVICE_VENDOR := Belkin - DEVICE_MODEL := F9J1108 v2 (AC1750 DB Wi-Fi) IMAGE_SIZE := 14464k DEVICE_PACKAGES += kmod-ath10k-ct ath10k-firmware-qca988x-ct kmod-usb2 \ kmod-usb3 kmod-usb-ledtrig-usbport @@ -425,10 +425,26 @@ define Device/belkin_f9j1108-v2 IMAGES += factory.bin IMAGE/factory.bin := append-kernel | pad-to $$$$(BLOCKSIZE) | \ append-rootfs | pad-rootfs | check-size | \ - edimax-headers F9J1108v1 BR-6679BAC | pad-to $$$$(BLOCKSIZE) + edimax-headers $$$$(EDIMAX_HEADER_MAGIC) $$$$(EDIMAX_HEADER_MODEL) | \ + pad-to $$$$(BLOCKSIZE) +endef + +define Device/belkin_f9j1108-v2 + $(Device/belkin_f9x-v2) + DEVICE_MODEL := F9J1108 v2 (AC1750 DB Wi-Fi) + EDIMAX_HEADER_MAGIC := F9J1108v1 + EDIMAX_HEADER_MODEL := BR-6679BAC endef TARGET_DEVICES += belkin_f9j1108-v2 +define Device/belkin_f9k1115-v2 + $(Device/belkin_f9x-v2) + DEVICE_MODEL := F9K1115 v2 (AC1750 DB Wi-Fi) + EDIMAX_HEADER_MAGIC := eDiMaX + EDIMAX_HEADER_MODEL := F9K1115V2 +endef +TARGET_DEVICES += belkin_f9k1115-v2 + define Device/buffalo_bhr-4grv $(Device/buffalo_common) SOC := ar7242 diff --git a/target/linux/bcm53xx/image/Makefile b/target/linux/bcm53xx/image/Makefile index 0e7292ab57..fba6562f63 100644 --- a/target/linux/bcm53xx/image/Makefile +++ b/target/linux/bcm53xx/image/Makefile @@ -321,7 +321,7 @@ endef TARGET_DEVICES += luxul_xwr-3150 define Device/meraki_mr32 - DEVICE_VENODR := Meraki + DEVICE_VENDOR := Meraki DEVICE_MODEL := MR32 DEVICE_PACKAGES := $(B43) kmod-i2c-bcm-iproc kmod-i2c-gpio kmod-eeprom-at24 \ kmod-leds-pwm kmod-hwmon-ina2xx kmod-bluetooth diff --git a/target/linux/generic/pending-5.4/640-netfilter-nf_flow_table-add-hardware-offload-support.patch b/target/linux/generic/pending-5.4/640-netfilter-nf_flow_table-add-hardware-offload-support.patch index 605ce19f52..e944a71884 100644 --- a/target/linux/generic/pending-5.4/640-netfilter-nf_flow_table-add-hardware-offload-support.patch +++ b/target/linux/generic/pending-5.4/640-netfilter-nf_flow_table-add-hardware-offload-support.patch @@ -506,7 +506,7 @@ Signed-off-by: Pablo Neira Ayuso +MODULE_ALIAS("nf-flow-table-hw"); --- a/net/netfilter/nf_tables_api.c +++ b/net/netfilter/nf_tables_api.c -@@ -5742,6 +5742,13 @@ static int nf_tables_flowtable_parse_hoo +@@ -5743,6 +5743,13 @@ static int nf_tables_flowtable_parse_hoo if (err < 0) return err; @@ -520,7 +520,7 @@ Signed-off-by: Pablo Neira Ayuso ops = kcalloc(n, sizeof(struct nf_hook_ops), GFP_KERNEL); if (!ops) return -ENOMEM; -@@ -5872,10 +5879,19 @@ static int nf_tables_newflowtable(struct +@@ -5873,10 +5880,19 @@ static int nf_tables_newflowtable(struct } flowtable->data.type = type; @@ -540,7 +540,7 @@ Signed-off-by: Pablo Neira Ayuso err = nf_tables_flowtable_parse_hook(&ctx, nla[NFTA_FLOWTABLE_HOOK], flowtable); if (err < 0) -@@ -6001,7 +6017,8 @@ static int nf_tables_fill_flowtable_info +@@ -6002,7 +6018,8 @@ static int nf_tables_fill_flowtable_info nla_put_string(skb, NFTA_FLOWTABLE_NAME, flowtable->name) || nla_put_be32(skb, NFTA_FLOWTABLE_USE, htonl(flowtable->use)) || nla_put_be64(skb, NFTA_FLOWTABLE_HANDLE, cpu_to_be64(flowtable->handle), diff --git a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-map-ac2200.dts b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-map-ac2200.dts index 5b86605daa..3b9078bc08 100644 --- a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-map-ac2200.dts +++ b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-map-ac2200.dts @@ -176,6 +176,22 @@ bias-pull-down; }; }; + enable_ext_pa_high { + gpio-hog; + gpios = <44 GPIO_ACTIVE_HIGH>, + <46 GPIO_ACTIVE_HIGH>; + output-high; + bias-pull-down; + line-name = "enable external PA output-high"; + }; + enable_ext_pa_low { + gpio-hog; + gpios = <45 GPIO_ACTIVE_HIGH>, + <47 GPIO_ACTIVE_HIGH>; + output-low; + bias-pull-down; + line-name = "enable external PA output-low"; + }; }; &cryptobam { diff --git a/target/linux/ipq40xx/files/drivers/net/ethernet/qualcomm/essedma/edma_axi.c b/target/linux/ipq40xx/files/drivers/net/ethernet/qualcomm/essedma/edma_axi.c index 49ee31a1bd..68718de9f4 100644 --- a/target/linux/ipq40xx/files/drivers/net/ethernet/qualcomm/essedma/edma_axi.c +++ b/target/linux/ipq40xx/files/drivers/net/ethernet/qualcomm/essedma/edma_axi.c @@ -969,7 +969,7 @@ static int edma_axi_probe(struct platform_device *pdev) edma_netdev[i]->max_mtu = 9000; edma_netdev[i]->features = NETIF_F_HW_CSUM | NETIF_F_RXCSUM | NETIF_F_HW_VLAN_CTAG_RX | NETIF_F_SG | - NETIF_F_TSO | NETIF_F_GRO; + NETIF_F_TSO | NETIF_F_GRO | NETIF_F_HW_VLAN_CTAG_TX; edma_netdev[i]->hw_features = NETIF_F_HW_CSUM | NETIF_F_RXCSUM | NETIF_F_HW_VLAN_CTAG_RX | NETIF_F_SG | NETIF_F_TSO | NETIF_F_GRO; @@ -978,20 +978,11 @@ static int edma_axi_probe(struct platform_device *pdev) edma_netdev[i]->wanted_features = NETIF_F_HW_CSUM | NETIF_F_SG | NETIF_F_TSO | NETIF_F_GRO; - if (of_property_read_bool(np, "qcom,single-phy") && edma_cinfo->num_gmac == 1) - edma_netdev[i]->features |= NETIF_F_HW_VLAN_CTAG_TX; - #ifdef CONFIG_RFS_ACCEL - edma_netdev[i]->features |= NETIF_F_NTUPLE; - edma_netdev[i]->hw_features |= NETIF_F_NTUPLE; - edma_netdev[i]->vlan_features |= NETIF_F_NTUPLE; - edma_netdev[i]->wanted_features |= NETIF_F_NTUPLE; - if (of_property_read_bool(np, "qcom,single-phy") && edma_cinfo->num_gmac == 1) { - edma_netdev[i]->features |= NETIF_F_RXHASH; - edma_netdev[i]->hw_features |= NETIF_F_RXHASH; - edma_netdev[i]->vlan_features |= NETIF_F_RXHASH; - edma_netdev[i]->wanted_features |= NETIF_F_RXHASH; - } + edma_netdev[i]->features |= NETIF_F_NTUPLE | NETIF_F_RXHASH; + edma_netdev[i]->hw_features |= NETIF_F_NTUPLE | NETIF_F_RXHASH; + edma_netdev[i]->vlan_features |= NETIF_F_NTUPLE | NETIF_F_RXHASH; + edma_netdev[i]->wanted_features |= NETIF_F_NTUPLE | NETIF_F_RXHASH; #endif edma_set_ethtool_ops(edma_netdev[i]); diff --git a/target/linux/ipq40xx/files/drivers/net/phy/ar40xx.c b/target/linux/ipq40xx/files/drivers/net/phy/ar40xx.c index 8c036af160..084a8d9116 100644 --- a/target/linux/ipq40xx/files/drivers/net/phy/ar40xx.c +++ b/target/linux/ipq40xx/files/drivers/net/phy/ar40xx.c @@ -1232,11 +1232,7 @@ ar40xx_init_port(struct ar40xx_priv *priv, int port) ar40xx_rmw(priv, AR40XX_REG_PORT_STATUS(port), AR40XX_PORT_AUTO_LINK_EN, 0); - /* CPU port is setting headers to limit output ports */ - if (port == 0) - ar40xx_write(priv, AR40XX_REG_PORT_HEADER(port), 0x8); - else - ar40xx_write(priv, AR40XX_REG_PORT_HEADER(port), 0); + ar40xx_write(priv, AR40XX_REG_PORT_HEADER(port), 0); ar40xx_write(priv, AR40XX_REG_PORT_VLAN0(port), 0); @@ -1279,10 +1275,6 @@ ar40xx_init_globals(struct ar40xx_priv *priv) t = (AR40XX_PORT0_FC_THRESH_ON_DFLT << 16) | AR40XX_PORT0_FC_THRESH_OFF_DFLT; ar40xx_write(priv, AR40XX_REG_PORT_FLOWCTRL_THRESH(0), t); - - /* set service tag to 802.1q */ - t = ETH_P_8021Q | AR40XX_ESS_SERVICE_TAG_STAG; - ar40xx_write(priv, AR40XX_ESS_SERVICE_TAG, t); } static void @@ -1608,10 +1600,7 @@ ar40xx_setup_port(struct ar40xx_priv *priv, int port, u32 members) u32 pvid = priv->vlan_id[priv->pvid[port]]; if (priv->vlan) { - if (priv->vlan_tagged & BIT(port)) - egress = AR40XX_PORT_VLAN1_OUT_MODE_TAG; - else - egress = AR40XX_PORT_VLAN1_OUT_MODE_UNMOD; + egress = AR40XX_PORT_VLAN1_OUT_MODE_UNMOD; ingress = AR40XX_IN_SECURE; } else { @@ -1623,16 +1612,8 @@ ar40xx_setup_port(struct ar40xx_priv *priv, int port, u32 members) t |= pvid << AR40XX_PORT_VLAN0_DEF_CVID_S; ar40xx_write(priv, AR40XX_REG_PORT_VLAN0(port), t); - t = egress << AR40XX_PORT_VLAN1_OUT_MODE_S; - - /* set CPU port to core port */ - if (port == 0) - t |= AR40XX_PORT_VLAN1_CORE_PORT; - - if (priv->vlan_tagged & BIT(port)) - t |= AR40XX_PORT_VLAN1_PORT_VLAN_PROP; - else - t |= AR40XX_PORT_VLAN1_PORT_TLS_MODE; + t = AR40XX_PORT_VLAN1_PORT_VLAN_PROP; + t |= egress << AR40XX_PORT_VLAN1_OUT_MODE_S; ar40xx_write(priv, AR40XX_REG_PORT_VLAN1(port), t); diff --git a/target/linux/ipq40xx/patches-5.4/0019-v5.6-mtd-spi-nor-Add-support-for-mx25r3235f.patch b/target/linux/ipq40xx/patches-5.4/0019-v5.6-mtd-spi-nor-Add-support-for-mx25r3235f.patch index 97433b030e..60fe8f90c6 100644 --- a/target/linux/ipq40xx/patches-5.4/0019-v5.6-mtd-spi-nor-Add-support-for-mx25r3235f.patch +++ b/target/linux/ipq40xx/patches-5.4/0019-v5.6-mtd-spi-nor-Add-support-for-mx25r3235f.patch @@ -18,7 +18,7 @@ Signed-off-by: Tudor Ambarus --- a/drivers/mtd/spi-nor/spi-nor.c +++ b/drivers/mtd/spi-nor/spi-nor.c -@@ -2344,6 +2344,8 @@ static const struct flash_info spi_nor_i +@@ -2351,6 +2351,8 @@ static const struct flash_info spi_nor_i { "mx25u6435f", INFO(0xc22537, 0, 64 * 1024, 128, SECT_4K) }, { "mx25l12805d", INFO(0xc22018, 0, 64 * 1024, 256, 0) }, { "mx25l12855e", INFO(0xc22618, 0, 64 * 1024, 256, 0) }, diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_alphanetworks_asl56026.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_alphanetworks_asl56026.dts index a95f3faa00..84a2a93428 100644 --- a/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_alphanetworks_asl56026.dts +++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_alphanetworks_asl56026.dts @@ -70,7 +70,7 @@ }; ð0 { - lan: interface@0 { + interface@0 { compatible = "lantiq,xrx200-pdi"; #address-cells = <1>; #size-cells = <0>; diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_arcadyan_arv7519rw22.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_arcadyan_arv7519rw22.dts index 9da2649833..c924a2b275 100644 --- a/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_arcadyan_arv7519rw22.dts +++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_arcadyan_arv7519rw22.dts @@ -94,7 +94,7 @@ }; ð0 { - lan: interface@0 { + interface@0 { compatible = "lantiq,xrx200-pdi"; #address-cells = <1>; #size-cells = <0>; diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_arcadyan_vgv7510kw22.dtsi b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_arcadyan_vgv7510kw22.dtsi index a6206f4a87..696a61a861 100644 --- a/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_arcadyan_vgv7510kw22.dtsi +++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_arcadyan_vgv7510kw22.dtsi @@ -112,7 +112,7 @@ <&gphy1_led0_pins>, <&gphy1_led1_pins>; pinctrl-names = "default"; - lan: interface@0 { + interface@0 { compatible = "lantiq,xrx200-pdi"; #address-cells = <1>; #size-cells = <0>; diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_arcadyan_vgv7519.dtsi b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_arcadyan_vgv7519.dtsi index 0cb5244dbc..0a8fa19e6e 100644 --- a/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_arcadyan_vgv7519.dtsi +++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_arcadyan_vgv7519.dtsi @@ -130,7 +130,7 @@ pinctrl-0 = <&mdio_pins>, <&gphy0_led1_pins>, <&gphy1_led0_pins>; pinctrl-names = "default"; - lan: interface@0 { + interface@0 { compatible = "lantiq,xrx200-pdi"; #address-cells = <1>; #size-cells = <0>; diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_avm_fritz3370-rev2.dtsi b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_avm_fritz3370-rev2.dtsi index b25d11e1c6..09c95375d5 100644 --- a/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_avm_fritz3370-rev2.dtsi +++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_avm_fritz3370-rev2.dtsi @@ -115,7 +115,7 @@ }; ð0 { - lan: interface@0 { + interface@0 { compatible = "lantiq,xrx200-pdi"; #address-cells = <1>; #size-cells = <0>; diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_avm_fritz736x.dtsi b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_avm_fritz736x.dtsi index 5c41d3c505..c7e600aace 100644 --- a/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_avm_fritz736x.dtsi +++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_avm_fritz736x.dtsi @@ -81,7 +81,7 @@ }; ð0 { - lan: interface@0 { + interface@0 { compatible = "lantiq,xrx200-pdi"; #address-cells = <1>; #size-cells = <0>; diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_bt_homehub-v5a.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_bt_homehub-v5a.dts index 51af5469fd..f817b3a41b 100644 --- a/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_bt_homehub-v5a.dts +++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_bt_homehub-v5a.dts @@ -115,7 +115,7 @@ }; ð0 { - lan: interface@0 { + interface@0 { compatible = "lantiq,xrx200-pdi"; #address-cells = <1>; #size-cells = <0>; diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_buffalo_wbmr-300hpd.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_buffalo_wbmr-300hpd.dts index 2802663051..8917d359e7 100644 --- a/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_buffalo_wbmr-300hpd.dts +++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_buffalo_wbmr-300hpd.dts @@ -153,7 +153,7 @@ }; ð0 { - lan: interface@0 { + interface@0 { compatible = "lantiq,xrx200-pdi"; #address-cells = <1>; #size-cells = <0>; diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_lantiq_easy80920.dtsi b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_lantiq_easy80920.dtsi index ea7fddbe0f..7eac5c396c 100644 --- a/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_lantiq_easy80920.dtsi +++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_lantiq_easy80920.dtsi @@ -96,7 +96,7 @@ }; ð0 { - lan: interface@0 { + interface@0 { compatible = "lantiq,xrx200-pdi"; #address-cells = <1>; #size-cells = <0>; @@ -129,7 +129,7 @@ }; }; - wan: interface@1 { + interface@1 { compatible = "lantiq,xrx200-pdi"; #address-cells = <1>; #size-cells = <0>; diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_netgear_dm200.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_netgear_dm200.dts index 9dc6d767a6..be4810c431 100644 --- a/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_netgear_dm200.dts +++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_netgear_dm200.dts @@ -86,7 +86,7 @@ ð0 { lantiq,phys = <&gphy1>; - lan: interface@0 { + interface@0 { compatible = "lantiq,xrx200-pdi"; #address-cells = <1>; #size-cells = <0>; diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_tplink_tdw89x0.dtsi b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_tplink_tdw89x0.dtsi index f10e3a8567..aa6c308ffe 100644 --- a/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_tplink_tdw89x0.dtsi +++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_tplink_tdw89x0.dtsi @@ -111,7 +111,7 @@ pinctrl-0 = <&mdio_pins>, <&gphy0_led1_pins>, <&gphy1_led1_pins>; pinctrl-names = "default"; - lan: interface@0 { + interface@0 { compatible = "lantiq,xrx200-pdi"; #address-cells = <1>; #size-cells = <0>; diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_zyxel_p-2812hnu-fx.dtsi b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_zyxel_p-2812hnu-fx.dtsi index c4f30f5ffc..230d804d9a 100644 --- a/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_zyxel_p-2812hnu-fx.dtsi +++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_zyxel_p-2812hnu-fx.dtsi @@ -116,7 +116,7 @@ <&gphy1_led1_pins>, <&gphy1_led2_pins>; pinctrl-names = "default"; - lan: interface@0 { + interface@0 { compatible = "lantiq,xrx200-pdi"; #address-cells = <1>; #size-cells = <0>; diff --git a/target/linux/layerscape/patches-5.4/808-i2c-0002-MLK-10893-i2c-imx-add-irqf_no_suspend.patch b/target/linux/layerscape/patches-5.4/808-i2c-0002-MLK-10893-i2c-imx-add-irqf_no_suspend.patch index 48432e1ec1..c583177ebf 100644 --- a/target/linux/layerscape/patches-5.4/808-i2c-0002-MLK-10893-i2c-imx-add-irqf_no_suspend.patch +++ b/target/linux/layerscape/patches-5.4/808-i2c-0002-MLK-10893-i2c-imx-add-irqf_no_suspend.patch @@ -17,7 +17,7 @@ Signed-off-by: Vipul Kumar --- a/drivers/i2c/busses/i2c-imx.c +++ b/drivers/i2c/busses/i2c-imx.c -@@ -1131,7 +1131,8 @@ static int i2c_imx_probe(struct platform +@@ -1159,7 +1159,8 @@ static int i2c_imx_probe(struct platform goto rpm_disable; /* Request IRQ */ diff --git a/target/linux/layerscape/patches-5.4/808-i2c-0003-MLK-11403-I2C-imx-restore-pin-setting-for-i2c.patch b/target/linux/layerscape/patches-5.4/808-i2c-0003-MLK-11403-I2C-imx-restore-pin-setting-for-i2c.patch index a017e09930..a03d73a890 100644 --- a/target/linux/layerscape/patches-5.4/808-i2c-0003-MLK-11403-I2C-imx-restore-pin-setting-for-i2c.patch +++ b/target/linux/layerscape/patches-5.4/808-i2c-0003-MLK-11403-I2C-imx-restore-pin-setting-for-i2c.patch @@ -15,7 +15,7 @@ Signed-off-by: Vipul Kumar --- a/drivers/i2c/busses/i2c-imx.c +++ b/drivers/i2c/busses/i2c-imx.c -@@ -1229,7 +1229,8 @@ static int __maybe_unused i2c_imx_runtim +@@ -1257,7 +1257,8 @@ static int __maybe_unused i2c_imx_runtim { struct imx_i2c_struct *i2c_imx = dev_get_drvdata(dev); @@ -25,7 +25,7 @@ Signed-off-by: Vipul Kumar return 0; } -@@ -1239,14 +1240,28 @@ static int __maybe_unused i2c_imx_runtim +@@ -1267,14 +1268,28 @@ static int __maybe_unused i2c_imx_runtim struct imx_i2c_struct *i2c_imx = dev_get_drvdata(dev); int ret; diff --git a/target/linux/layerscape/patches-5.4/808-i2c-0004-MLK-16203-enable-runtime-pm-of-i2c-temporary-when-do.patch b/target/linux/layerscape/patches-5.4/808-i2c-0004-MLK-16203-enable-runtime-pm-of-i2c-temporary-when-do.patch index 16ac77c6f0..60c49bf99a 100644 --- a/target/linux/layerscape/patches-5.4/808-i2c-0004-MLK-16203-enable-runtime-pm-of-i2c-temporary-when-do.patch +++ b/target/linux/layerscape/patches-5.4/808-i2c-0004-MLK-16203-enable-runtime-pm-of-i2c-temporary-when-do.patch @@ -19,7 +19,7 @@ Signed-off-by: Vipul Kumar --- a/drivers/i2c/busses/i2c-imx.c +++ b/drivers/i2c/busses/i2c-imx.c -@@ -896,10 +896,17 @@ static int i2c_imx_xfer(struct i2c_adapt +@@ -924,10 +924,17 @@ static int i2c_imx_xfer(struct i2c_adapt unsigned int i, temp; int result; bool is_lastmsg = false; @@ -37,7 +37,7 @@ Signed-off-by: Vipul Kumar result = pm_runtime_get_sync(i2c_imx->adapter.dev.parent); if (result < 0) goto out; -@@ -971,6 +978,9 @@ fail0: +@@ -999,6 +1006,9 @@ fail0: pm_runtime_put_autosuspend(i2c_imx->adapter.dev.parent); out: @@ -47,7 +47,7 @@ Signed-off-by: Vipul Kumar dev_dbg(&i2c_imx->adapter.dev, "<%s> exit with: %s: %d\n", __func__, (result < 0) ? "error" : "success msg", (result < 0) ? result : num); -@@ -1261,7 +1271,7 @@ static int i2c_imx_resume(struct device +@@ -1289,7 +1299,7 @@ static int i2c_imx_resume(struct device } static const struct dev_pm_ops i2c_imx_pm_ops = { diff --git a/target/linux/layerscape/patches-5.4/808-i2c-0005-MLK-20773-i2c-imx-add-a-limit-of-maximum-transfer-sp.patch b/target/linux/layerscape/patches-5.4/808-i2c-0005-MLK-20773-i2c-imx-add-a-limit-of-maximum-transfer-sp.patch index 939fb61d90..5f62b3f153 100644 --- a/target/linux/layerscape/patches-5.4/808-i2c-0005-MLK-20773-i2c-imx-add-a-limit-of-maximum-transfer-sp.patch +++ b/target/linux/layerscape/patches-5.4/808-i2c-0005-MLK-20773-i2c-imx-add-a-limit-of-maximum-transfer-sp.patch @@ -77,7 +77,7 @@ Signed-off-by: Clark Wang static inline void imx_i2c_write_reg(unsigned int val, struct imx_i2c_struct *i2c_imx, unsigned int reg) { -@@ -1159,6 +1177,14 @@ static int i2c_imx_probe(struct platform +@@ -1187,6 +1205,14 @@ static int i2c_imx_probe(struct platform clk_notifier_register(i2c_imx->clk, &i2c_imx->clk_change_nb); i2c_imx_set_clk(i2c_imx, clk_get_rate(i2c_imx->clk)); diff --git a/target/linux/layerscape/patches-5.4/808-i2c-0006-MLK-20368-i2c-imx-Coverity-fix-divide-by-zero-warnin.patch b/target/linux/layerscape/patches-5.4/808-i2c-0006-MLK-20368-i2c-imx-Coverity-fix-divide-by-zero-warnin.patch index 98c5c21486..97f1f78230 100644 --- a/target/linux/layerscape/patches-5.4/808-i2c-0006-MLK-20368-i2c-imx-Coverity-fix-divide-by-zero-warnin.patch +++ b/target/linux/layerscape/patches-5.4/808-i2c-0006-MLK-20368-i2c-imx-Coverity-fix-divide-by-zero-warnin.patch @@ -19,7 +19,7 @@ Signed-off-by: Shrikant Bobade --- a/drivers/i2c/busses/i2c-imx.c +++ b/drivers/i2c/busses/i2c-imx.c -@@ -492,16 +492,24 @@ static int i2c_imx_acked(struct imx_i2c_ +@@ -514,16 +514,24 @@ static int i2c_imx_acked(struct imx_i2c_ return 0; } @@ -47,7 +47,7 @@ Signed-off-by: Shrikant Bobade i2c_imx->cur_clk = i2c_clk_rate; -@@ -532,20 +540,23 @@ static void i2c_imx_set_clk(struct imx_i +@@ -554,20 +562,23 @@ static void i2c_imx_set_clk(struct imx_i dev_dbg(&i2c_imx->adapter.dev, "IFDR[IC]=0x%x, REAL DIV=%d\n", i2c_clk_div[i].val, i2c_clk_div[i].div); #endif @@ -73,7 +73,7 @@ Signed-off-by: Shrikant Bobade } static int i2c_imx_start(struct imx_i2c_struct *i2c_imx) -@@ -555,6 +566,10 @@ static int i2c_imx_start(struct imx_i2c_ +@@ -577,6 +588,10 @@ static int i2c_imx_start(struct imx_i2c_ dev_dbg(&i2c_imx->adapter.dev, "<%s>\n", __func__); @@ -84,7 +84,7 @@ Signed-off-by: Shrikant Bobade imx_i2c_write_reg(i2c_imx->ifdr, i2c_imx, IMX_I2C_IFDR); /* Enable I2C controller */ imx_i2c_write_reg(i2c_imx->hwdata->i2sr_clr_opcode, i2c_imx, IMX_I2C_I2SR); -@@ -1175,7 +1190,11 @@ static int i2c_imx_probe(struct platform +@@ -1203,7 +1218,11 @@ static int i2c_imx_probe(struct platform i2c_imx->bitrate = pdata->bitrate; i2c_imx->clk_change_nb.notifier_call = i2c_imx_clk_notifier_call; clk_notifier_register(i2c_imx->clk, &i2c_imx->clk_change_nb); diff --git a/target/linux/layerscape/patches-5.4/808-i2c-0007-i2c-imx-add-workaround-for-erratum-ERR010027.patch b/target/linux/layerscape/patches-5.4/808-i2c-0007-i2c-imx-add-workaround-for-erratum-ERR010027.patch index 68b08fba31..a22f9766eb 100644 --- a/target/linux/layerscape/patches-5.4/808-i2c-0007-i2c-imx-add-workaround-for-erratum-ERR010027.patch +++ b/target/linux/layerscape/patches-5.4/808-i2c-0007-i2c-imx-add-workaround-for-erratum-ERR010027.patch @@ -17,7 +17,7 @@ Signed-off-by: Zhang Ying-22455 --- a/drivers/i2c/busses/i2c-imx.c +++ b/drivers/i2c/busses/i2c-imx.c -@@ -940,6 +940,14 @@ static int i2c_imx_xfer(struct i2c_adapt +@@ -968,6 +968,14 @@ static int i2c_imx_xfer(struct i2c_adapt enable_runtime_pm = true; } diff --git a/target/linux/layerscape/patches-5.4/808-i2c-0008-i2c-imx-implement-bus-recovery-with-gpio-for-Layersc.patch b/target/linux/layerscape/patches-5.4/808-i2c-0008-i2c-imx-implement-bus-recovery-with-gpio-for-Layersc.patch index dacee2af8a..f7686f358d 100644 --- a/target/linux/layerscape/patches-5.4/808-i2c-0008-i2c-imx-implement-bus-recovery-with-gpio-for-Layersc.patch +++ b/target/linux/layerscape/patches-5.4/808-i2c-0008-i2c-imx-implement-bus-recovery-with-gpio-for-Layersc.patch @@ -106,7 +106,7 @@ Signed-off-by: Zhang Ying-22455 }; static const struct imx_i2c_hwdata imx1_i2c_hwdata = { -@@ -923,6 +983,78 @@ static int i2c_imx_read(struct imx_i2c_s +@@ -951,6 +1011,78 @@ static int i2c_imx_read(struct imx_i2c_s return 0; } @@ -185,7 +185,7 @@ Signed-off-by: Zhang Ying-22455 static int i2c_imx_xfer(struct i2c_adapter *adapter, struct i2c_msg *msgs, int num) { -@@ -945,8 +1077,13 @@ static int i2c_imx_xfer(struct i2c_adapt +@@ -973,8 +1105,13 @@ static int i2c_imx_xfer(struct i2c_adapt * before switching to master mode and attempting a Start cycle */ result = i2c_imx_bus_busy(i2c_imx, 0); @@ -201,7 +201,7 @@ Signed-off-by: Zhang Ying-22455 result = pm_runtime_get_sync(i2c_imx->adapter.dev.parent); if (result < 0) -@@ -1093,6 +1230,50 @@ static int i2c_imx_init_recovery_info(st +@@ -1121,6 +1258,50 @@ static int i2c_imx_init_recovery_info(st return 0; } @@ -252,7 +252,7 @@ Signed-off-by: Zhang Ying-22455 static u32 i2c_imx_func(struct i2c_adapter *adapter) { return I2C_FUNC_I2C | I2C_FUNC_SMBUS_EMUL -@@ -1217,8 +1398,13 @@ static int i2c_imx_probe(struct platform +@@ -1245,8 +1426,13 @@ static int i2c_imx_probe(struct platform i2c_imx, IMX_I2C_I2CR); imx_i2c_write_reg(i2c_imx->hwdata->i2sr_clr_opcode, i2c_imx, IMX_I2C_I2SR); diff --git a/target/linux/layerscape/patches-5.4/808-i2c-0009-i2c-imx-get-rid-of-CONFIG_ARCH_LAYERSCAPE.patch b/target/linux/layerscape/patches-5.4/808-i2c-0009-i2c-imx-get-rid-of-CONFIG_ARCH_LAYERSCAPE.patch index 1bcc6e0e6c..9287cd2df2 100644 --- a/target/linux/layerscape/patches-5.4/808-i2c-0009-i2c-imx-get-rid-of-CONFIG_ARCH_LAYERSCAPE.patch +++ b/target/linux/layerscape/patches-5.4/808-i2c-0009-i2c-imx-get-rid-of-CONFIG_ARCH_LAYERSCAPE.patch @@ -14,7 +14,7 @@ Signed-off-by: Dong Aisheng --- a/drivers/i2c/busses/i2c-imx.c +++ b/drivers/i2c/busses/i2c-imx.c -@@ -1398,13 +1398,12 @@ static int i2c_imx_probe(struct platform +@@ -1426,13 +1426,12 @@ static int i2c_imx_probe(struct platform i2c_imx, IMX_I2C_I2CR); imx_i2c_write_reg(i2c_imx->hwdata->i2sr_clr_opcode, i2c_imx, IMX_I2C_I2SR); diff --git a/target/linux/layerscape/patches-5.4/808-i2c-0010-i2c-imx-fix-system-hang-due-to-access-i2c-registers-.patch b/target/linux/layerscape/patches-5.4/808-i2c-0010-i2c-imx-fix-system-hang-due-to-access-i2c-registers-.patch index 0d80b9edd8..435bb14e8d 100644 --- a/target/linux/layerscape/patches-5.4/808-i2c-0010-i2c-imx-fix-system-hang-due-to-access-i2c-registers-.patch +++ b/target/linux/layerscape/patches-5.4/808-i2c-0010-i2c-imx-fix-system-hang-due-to-access-i2c-registers-.patch @@ -22,7 +22,7 @@ Signed-off-by: Dong Aisheng --- a/drivers/i2c/busses/i2c-imx.c +++ b/drivers/i2c/busses/i2c-imx.c -@@ -1066,12 +1066,15 @@ static int i2c_imx_xfer(struct i2c_adapt +@@ -1094,12 +1094,15 @@ static int i2c_imx_xfer(struct i2c_adapt dev_dbg(&i2c_imx->adapter.dev, "<%s>\n", __func__); @@ -39,7 +39,7 @@ Signed-off-by: Dong Aisheng /* * workround for ERR010027: ensure that the I2C BUS is idle * before switching to master mode and attempting a Start cycle -@@ -1085,10 +1088,6 @@ static int i2c_imx_xfer(struct i2c_adapt +@@ -1113,10 +1116,6 @@ static int i2c_imx_xfer(struct i2c_adapt goto out; } diff --git a/target/linux/layerscape/patches-5.4/808-i2c-0011-i2c-imx-support-slave-mode-for-imx-I2C-driver.patch b/target/linux/layerscape/patches-5.4/808-i2c-0011-i2c-imx-support-slave-mode-for-imx-I2C-driver.patch index 246a2602f3..5377d05d0c 100644 --- a/target/linux/layerscape/patches-5.4/808-i2c-0011-i2c-imx-support-slave-mode-for-imx-I2C-driver.patch +++ b/target/linux/layerscape/patches-5.4/808-i2c-0011-i2c-imx-support-slave-mode-for-imx-I2C-driver.patch @@ -38,7 +38,7 @@ Signed-off-by: Biwen Li /* Functions for DMA support */ static void i2c_imx_dma_request(struct imx_i2c_struct *i2c_imx, dma_addr_t phy_addr) -@@ -681,23 +692,33 @@ static void i2c_imx_stop(struct imx_i2c_ +@@ -705,21 +716,33 @@ static void i2c_imx_stop(struct imx_i2c_ imx_i2c_write_reg(temp, i2c_imx, IMX_I2C_I2CR); } @@ -57,9 +57,7 @@ Signed-off-by: Biwen Li - if (temp & I2SR_IIF) { - /* save status register */ - i2c_imx->i2csr = temp; -- temp &= ~I2SR_IIF; -- temp |= (i2c_imx->hwdata->i2sr_clr_opcode & I2SR_IIF); -- imx_i2c_write_reg(temp, i2c_imx, IMX_I2C_I2SR); +- i2c_imx_clear_irq(i2c_imx, I2SR_IIF); - wake_up(&i2c_imx->queue); - return IRQ_HANDLED; - } @@ -70,8 +68,7 @@ Signed-off-by: Biwen Li + status |= (i2c_imx->hwdata->i2sr_clr_opcode & I2SR_IAL); + imx_i2c_write_reg(status, i2c_imx, IMX_I2C_I2SR); +} - -- return IRQ_NONE; ++ +static irqreturn_t i2c_imx_master_isr(struct imx_i2c_struct *i2c_imx) +{ + unsigned int status; @@ -81,12 +78,13 @@ Signed-off-by: Biwen Li + i2c_imx->i2csr = status | I2SR_IIF; + + wake_up(&i2c_imx->queue); -+ + +- return IRQ_NONE; + return IRQ_HANDLED; } static int i2c_imx_dma_write(struct imx_i2c_struct *i2c_imx, -@@ -1066,6 +1087,13 @@ static int i2c_imx_xfer(struct i2c_adapt +@@ -1094,6 +1117,13 @@ static int i2c_imx_xfer(struct i2c_adapt dev_dbg(&i2c_imx->adapter.dev, "<%s>\n", __func__); @@ -100,7 +98,7 @@ Signed-off-by: Biwen Li if (!pm_runtime_enabled(i2c_imx->adapter.dev.parent)) { pm_runtime_enable(i2c_imx->adapter.dev.parent); enable_runtime_pm = true; -@@ -1279,11 +1307,169 @@ static u32 i2c_imx_func(struct i2c_adapt +@@ -1307,11 +1337,169 @@ static u32 i2c_imx_func(struct i2c_adapt | I2C_FUNC_SMBUS_READ_BLOCK_DATA; } @@ -270,7 +268,7 @@ Signed-off-by: Biwen Li static int i2c_imx_probe(struct platform_device *pdev) { struct imx_i2c_struct *i2c_imx; -@@ -1392,10 +1578,7 @@ static int i2c_imx_probe(struct platform +@@ -1420,10 +1608,7 @@ static int i2c_imx_probe(struct platform if (is_imx7d_i2c(i2c_imx) && i2c_imx->bitrate > IMX_I2C_MAX_E_BIT_RATE) i2c_imx->bitrate = IMX_I2C_MAX_E_BIT_RATE; diff --git a/target/linux/layerscape/patches-5.4/808-i2c-0012-i2c-imx-correct-code-of-errata-A-010650-for-layersca.patch b/target/linux/layerscape/patches-5.4/808-i2c-0012-i2c-imx-correct-code-of-errata-A-010650-for-layersca.patch index fe6d6d3135..7fd505df42 100644 --- a/target/linux/layerscape/patches-5.4/808-i2c-0012-i2c-imx-correct-code-of-errata-A-010650-for-layersca.patch +++ b/target/linux/layerscape/patches-5.4/808-i2c-0012-i2c-imx-correct-code-of-errata-A-010650-for-layersca.patch @@ -17,8 +17,8 @@ Signed-off-by: Biwen Li --- a/drivers/i2c/busses/i2c-imx.c +++ b/drivers/i2c/busses/i2c-imx.c -@@ -503,6 +503,14 @@ static void i2c_imx_dma_free(struct imx_ - dma->chan_using = NULL; +@@ -516,6 +516,14 @@ static void i2c_imx_clear_irq(struct imx + imx_i2c_write_reg(temp, i2c_imx, IMX_I2C_I2SR); } +/* Clear arbitration lost bit */ @@ -32,17 +32,16 @@ Signed-off-by: Biwen Li static int i2c_imx_bus_busy(struct imx_i2c_struct *i2c_imx, int for_busy) { unsigned long orig_jiffies = jiffies; -@@ -515,8 +523,7 @@ static int i2c_imx_bus_busy(struct imx_i +@@ -528,7 +536,7 @@ static int i2c_imx_bus_busy(struct imx_i /* check for arbitration lost */ if (temp & I2SR_IAL) { -- temp &= ~I2SR_IAL; -- imx_i2c_write_reg(temp, i2c_imx, IMX_I2C_I2SR); +- i2c_imx_clear_irq(i2c_imx, I2SR_IAL); + i2c_imx_clr_al_bit(temp, i2c_imx); return -EAGAIN; } -@@ -700,14 +707,6 @@ static void i2c_imx_clr_if_bit(unsigned +@@ -724,14 +732,6 @@ static void i2c_imx_clr_if_bit(unsigned imx_i2c_write_reg(status, i2c_imx, IMX_I2C_I2SR); } @@ -57,7 +56,7 @@ Signed-off-by: Biwen Li static irqreturn_t i2c_imx_master_isr(struct imx_i2c_struct *i2c_imx) { unsigned int status; -@@ -1050,12 +1049,14 @@ static int i2c_imx_recovery_for_layersca +@@ -1080,12 +1080,14 @@ static int i2c_imx_recovery_for_layersca gpio_set_value(i2c_imx->gpio, 1); /* @@ -77,7 +76,7 @@ Signed-off-by: Biwen Li /* Restore the saved value of the register SCFG_RCWPMUXCR0 */ if (i2c_imx->need_set_pmuxcr == 1) { -@@ -1069,10 +1070,9 @@ static int i2c_imx_recovery_for_layersca +@@ -1099,10 +1101,9 @@ static int i2c_imx_recovery_for_layersca * I2C_IBSR[IBAL] = 1 */ temp = imx_i2c_read_reg(i2c_imx, IMX_I2C_I2SR); diff --git a/target/linux/layerscape/patches-5.4/808-i2c-0013-LF-98-i2c-imx-fix-the-judgement-of-slave-mode-in-isr.patch b/target/linux/layerscape/patches-5.4/808-i2c-0013-LF-98-i2c-imx-fix-the-judgement-of-slave-mode-in-isr.patch index 45f7fa36a2..cd404efcc0 100644 --- a/target/linux/layerscape/patches-5.4/808-i2c-0013-LF-98-i2c-imx-fix-the-judgement-of-slave-mode-in-isr.patch +++ b/target/linux/layerscape/patches-5.4/808-i2c-0013-LF-98-i2c-imx-fix-the-judgement-of-slave-mode-in-isr.patch @@ -15,7 +15,7 @@ Signed-off-by: Clark Wang --- a/drivers/i2c/busses/i2c-imx.c +++ b/drivers/i2c/busses/i2c-imx.c -@@ -1451,23 +1451,20 @@ static const struct i2c_algorithm i2c_im +@@ -1482,23 +1482,20 @@ static const struct i2c_algorithm i2c_im static irqreturn_t i2c_imx_isr(int irq, void *dev_id) { struct imx_i2c_struct *i2c_imx = dev_id; diff --git a/target/linux/layerscape/patches-5.4/808-i2c-0016-LF-162-i2c-imx-Defer-probing-if-EDMA-not-available.patch b/target/linux/layerscape/patches-5.4/808-i2c-0016-LF-162-i2c-imx-Defer-probing-if-EDMA-not-available.patch index 53440f896b..815cb0efe6 100644 --- a/target/linux/layerscape/patches-5.4/808-i2c-0016-LF-162-i2c-imx-Defer-probing-if-EDMA-not-available.patch +++ b/target/linux/layerscape/patches-5.4/808-i2c-0016-LF-162-i2c-imx-Defer-probing-if-EDMA-not-available.patch @@ -52,7 +52,7 @@ Signed-off-by: Peng Ma } static void i2c_imx_dma_callback(void *arg) -@@ -1602,10 +1604,14 @@ static int i2c_imx_probe(struct platform +@@ -1633,10 +1635,14 @@ static int i2c_imx_probe(struct platform dev_info(&i2c_imx->adapter.dev, "IMX I2C adapter registered\n"); /* Init DMA config if supported */ diff --git a/target/linux/layerscape/patches-5.4/817-spi-0006-LF-20-2-mtd-spi-nor-Use-1-bit-mode-of-spansion-s25fs.patch b/target/linux/layerscape/patches-5.4/817-spi-0006-LF-20-2-mtd-spi-nor-Use-1-bit-mode-of-spansion-s25fs.patch index f3df08048a..067bf025a3 100644 --- a/target/linux/layerscape/patches-5.4/817-spi-0006-LF-20-2-mtd-spi-nor-Use-1-bit-mode-of-spansion-s25fs.patch +++ b/target/linux/layerscape/patches-5.4/817-spi-0006-LF-20-2-mtd-spi-nor-Use-1-bit-mode-of-spansion-s25fs.patch @@ -11,7 +11,7 @@ Signed-off-by: Kuldeep Singh --- a/drivers/mtd/spi-nor/spi-nor.c +++ b/drivers/mtd/spi-nor/spi-nor.c -@@ -2410,7 +2410,7 @@ static const struct flash_info spi_nor_i +@@ -2417,7 +2417,7 @@ static const struct flash_info spi_nor_i { "s25fl512s", INFO6(0x010220, 0x4d0080, 256 * 1024, 256, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ | SPI_NOR_HAS_LOCK | USE_CLSR) }, diff --git a/target/linux/pistachio/patches-5.4/401-mtd-nor-support-mtd-name-from-device-tree.patch b/target/linux/pistachio/patches-5.4/401-mtd-nor-support-mtd-name-from-device-tree.patch index f156e968af..a02b632e8c 100644 --- a/target/linux/pistachio/patches-5.4/401-mtd-nor-support-mtd-name-from-device-tree.patch +++ b/target/linux/pistachio/patches-5.4/401-mtd-nor-support-mtd-name-from-device-tree.patch @@ -10,7 +10,7 @@ Signed-off-by: Abhimanyu Vishwakarma --- a/drivers/mtd/spi-nor/spi-nor.c +++ b/drivers/mtd/spi-nor/spi-nor.c -@@ -4930,6 +4930,7 @@ int spi_nor_scan(struct spi_nor *nor, co +@@ -4937,6 +4937,7 @@ int spi_nor_scan(struct spi_nor *nor, co struct mtd_info *mtd = &nor->mtd; struct device_node *np = spi_nor_get_flash_node(nor); struct spi_nor_flash_parameter *params = &nor->params; @@ -18,7 +18,7 @@ Signed-off-by: Abhimanyu Vishwakarma int ret; int i; -@@ -4992,7 +4993,12 @@ int spi_nor_scan(struct spi_nor *nor, co +@@ -4999,7 +5000,12 @@ int spi_nor_scan(struct spi_nor *nor, co /* Init flash parameters based on flash_info struct and SFDP */ spi_nor_init_params(nor); diff --git a/target/linux/ramips/patches-5.4/302-spi-nor-add-gd25q512.patch b/target/linux/ramips/patches-5.4/302-spi-nor-add-gd25q512.patch index aa69f32968..7fcf0c54b6 100644 --- a/target/linux/ramips/patches-5.4/302-spi-nor-add-gd25q512.patch +++ b/target/linux/ramips/patches-5.4/302-spi-nor-add-gd25q512.patch @@ -1,6 +1,6 @@ --- a/drivers/mtd/spi-nor/spi-nor.c +++ b/drivers/mtd/spi-nor/spi-nor.c -@@ -2296,6 +2296,11 @@ static const struct flash_info spi_nor_i +@@ -2303,6 +2303,11 @@ static const struct flash_info spi_nor_i SPI_NOR_4B_OPCODES | SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB) .fixups = &gd25q256_fixups, }, diff --git a/tools/firmware-utils/src/tplink-safeloader.c b/tools/firmware-utils/src/tplink-safeloader.c index ce07a95574..deba84c6d1 100644 --- a/tools/firmware-utils/src/tplink-safeloader.c +++ b/tools/firmware-utils/src/tplink-safeloader.c @@ -430,7 +430,10 @@ static struct device_info boards[] = { "CPE510(TP-LINK|US|N300-5|55530000):3.0\r\n" "CPE510(TP-LINK|UN|N300-5):3.0\r\n" "CPE510(TP-LINK|EU|N300-5):3.0\r\n" - "CPE510(TP-LINK|US|N300-5):3.0\r\n", + "CPE510(TP-LINK|US|N300-5):3.0\r\n" + "CPE510(TP-LINK|UN|N300-5|00000000):3.20\r\n" + "CPE510(TP-LINK|US|N300-5|55530000):3.20\r\n" + "CPE510(TP-LINK|EU|N300-5|45550000):3.20\r\n", .part_trail = 0xff, .soft_ver = NULL,