Compare commits
72 Commits
v22.03.0-r
...
v22.03.0-r
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4f6f9caf1f | ||
|
|
34b6abf5a8 | ||
|
|
03cfdf72e2 | ||
|
|
80baa60259 | ||
|
|
4575498276 | ||
|
|
e90f74feb6 | ||
|
|
95c315f200 | ||
|
|
97a2012ecc | ||
|
|
6f8db8fee3 | ||
|
|
3aeb6e975f | ||
|
|
a11c3cde27 | ||
|
|
9b20e2a699 | ||
|
|
6729fa2dd2 | ||
|
|
3c57430d1c | ||
|
|
e431195abf | ||
|
|
5439efe37d | ||
|
|
fe5943a7bd | ||
|
|
5454735574 | ||
|
|
7152bc84f4 | ||
|
|
d627ea510c | ||
|
|
9c2ed54aa2 | ||
|
|
87f9dd665a | ||
|
|
3963a90df8 | ||
|
|
7a0af40e37 | ||
|
|
e0aaecdbb8 | ||
|
|
416e8aefe1 | ||
|
|
ec45e1ff68 | ||
|
|
144d9c4a43 | ||
|
|
9ef931f96b | ||
|
|
54e759d05d | ||
|
|
0f8eba4f95 | ||
|
|
308ce46076 | ||
|
|
19a8c723b6 | ||
|
|
a374a959b9 | ||
|
|
7b4702afef | ||
|
|
1c6a179e1a | ||
|
|
6120a66e6a | ||
|
|
ae64d0624c | ||
|
|
53fc6e9ede | ||
|
|
77e123340f | ||
|
|
5ff900e0ad | ||
|
|
2ac5ee7f8a | ||
|
|
ffe12f8b48 | ||
|
|
0dc3ecf0da | ||
|
|
efc38b315e | ||
|
|
6cb08b1797 | ||
|
|
9282cb0be0 | ||
|
|
dc71658a80 | ||
|
|
3a974b5bcd | ||
|
|
d90c7621f4 | ||
|
|
e9c14fa85f | ||
|
|
fa8e050c4b | ||
|
|
0c25b9cb11 | ||
|
|
a142d96ade | ||
|
|
fbd9605a90 | ||
|
|
946f60aaeb | ||
|
|
6d5a097232 | ||
|
|
18649fbff0 | ||
|
|
d79380ac1d | ||
|
|
4c5d2cde13 | ||
|
|
d4053d2e8e | ||
|
|
5a11704244 | ||
|
|
832e3ad71a | ||
|
|
1b7cf4dd1c | ||
|
|
3579ee63bc | ||
|
|
084053ddf7 | ||
|
|
0481a5a35a | ||
|
|
23170c6f4e | ||
|
|
dbe8d4fa2e | ||
|
|
e4d8c0f9b4 | ||
|
|
be8e9cae82 | ||
|
|
0e607d60ef |
2
Makefile
2
Makefile
@@ -51,7 +51,7 @@ printdb:
|
||||
prepare: $(target/stamp-compile)
|
||||
|
||||
_clean: FORCE
|
||||
rm -rf $(BUILD_DIR) $(STAGING_DIR) $(BIN_DIR) $(OUTPUT_DIR)/packages/$(ARCH_PACKAGES) $(BUILD_LOG_DIR) $(TOPDIR)/staging_dir/packages
|
||||
rm -rf $(BUILD_DIR) $(STAGING_DIR) $(BIN_DIR) $(OUTPUT_DIR)/packages/$(ARCH_PACKAGES) $(TOPDIR)/staging_dir/packages
|
||||
|
||||
clean: _clean
|
||||
rm -rf $(BUILD_LOG_DIR)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
src-git-full packages https://git.openwrt.org/feed/packages.git^3d33fa3b09414f8a79e1e8f98d64d41b26235e12
|
||||
src-git-full luci https://git.openwrt.org/project/luci.git^990aa4fc6b80706cafec8d63e05085b45217c364
|
||||
src-git-full routing https://git.openwrt.org/feed/routing.git^48f6120ad4b8c1515d29110c6291ff7e264fef29
|
||||
src-git-full packages https://git.openwrt.org/feed/packages.git^b708cf5a17a1498b02c3ca4fd66f99aba3773c9c
|
||||
src-git-full luci https://git.openwrt.org/project/luci.git^d8ecf48f20da632af86def0f18093861c522914b
|
||||
src-git-full routing https://git.openwrt.org/feed/routing.git^f6d2b09643dfdc3b3916cb116ebc3f45a058fae6
|
||||
src-git-full telephony https://git.openwrt.org/feed/telephony.git^4c148548df2aae3c036a5e309ff0474dbb1f48ac
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
LINUX_VERSION-5.10 = .111
|
||||
LINUX_KERNEL_HASH-5.10.111 = 1831b3d8765592ce91e51441bb179d908f6bcfe8c78d03c2bec8c675c4a0ab1a
|
||||
LINUX_VERSION-5.10 = .116
|
||||
LINUX_KERNEL_HASH-5.10.116 = 806692ba7436f9cfbc32709fe20097dbde4ae5e2f4ae582f39b1d91ce5d20b49
|
||||
|
||||
@@ -23,13 +23,13 @@ PKG_CONFIG_DEPENDS += \
|
||||
sanitize = $(call tolower,$(subst _,-,$(subst $(space),-,$(1))))
|
||||
|
||||
VERSION_NUMBER:=$(call qstrip,$(CONFIG_VERSION_NUMBER))
|
||||
VERSION_NUMBER:=$(if $(VERSION_NUMBER),$(VERSION_NUMBER),22.03.0-rc1)
|
||||
VERSION_NUMBER:=$(if $(VERSION_NUMBER),$(VERSION_NUMBER),22.03.0-rc2)
|
||||
|
||||
VERSION_CODE:=$(call qstrip,$(CONFIG_VERSION_CODE))
|
||||
VERSION_CODE:=$(if $(VERSION_CODE),$(VERSION_CODE),r19302-df622768da)
|
||||
VERSION_CODE:=$(if $(VERSION_CODE),$(VERSION_CODE),r19374-34b6abf5a8)
|
||||
|
||||
VERSION_REPO:=$(call qstrip,$(CONFIG_VERSION_REPO))
|
||||
VERSION_REPO:=$(if $(VERSION_REPO),$(VERSION_REPO),https://downloads.openwrt.org/releases/22.03.0-rc1)
|
||||
VERSION_REPO:=$(if $(VERSION_REPO),$(VERSION_REPO),https://downloads.openwrt.org/releases/22.03.0-rc2)
|
||||
|
||||
VERSION_DIST:=$(call qstrip,$(CONFIG_VERSION_DIST))
|
||||
VERSION_DIST:=$(if $(VERSION_DIST),$(VERSION_DIST),OpenWrt)
|
||||
|
||||
@@ -386,6 +386,9 @@ group_add_user() {
|
||||
echo "$grp" | grep -q ":$" && delim=""
|
||||
[ -n "$IPKG_INSTROOT" ] || lock /var/lock/passwd
|
||||
sed -i "s/$grp/$grp$delim$2/g" ${IPKG_INSTROOT}/etc/group
|
||||
if [ -z "$IPKG_INSTROOT" ] && [ -x /usr/sbin/selinuxenabled ] && selinuxenabled; then
|
||||
restorecon /etc/group
|
||||
fi
|
||||
[ -n "$IPKG_INSTROOT" ] || lock -u /var/lock/passwd
|
||||
}
|
||||
|
||||
|
||||
@@ -183,7 +183,7 @@ if VERSIONOPT
|
||||
config VERSION_REPO
|
||||
string
|
||||
prompt "Release repository"
|
||||
default "https://downloads.openwrt.org/releases/22.03.0-rc1"
|
||||
default "https://downloads.openwrt.org/releases/22.03-SNAPSHOT"
|
||||
help
|
||||
This is the repository address embedded in the image, it defaults
|
||||
to the trunk snapshot repo; the url may contain the following placeholders:
|
||||
@@ -259,7 +259,7 @@ if VERSIONOPT
|
||||
config VERSION_CODE_FILENAMES
|
||||
bool
|
||||
prompt "Revision code in filenames"
|
||||
default n
|
||||
default y
|
||||
help
|
||||
Enable this to include the revision identifier or the configured
|
||||
version code into the firmware image, SDK- and Image Builder archive
|
||||
|
||||
@@ -30,6 +30,7 @@ ubootenv_mtdinfo () {
|
||||
}
|
||||
|
||||
case "$board" in
|
||||
arris,tr4400-v2|\
|
||||
askey,rt4230w-rev6)
|
||||
ubootenv_add_uci_config "/dev/mtd9" "0x0" "0x40000" "0x20000"
|
||||
;;
|
||||
|
||||
@@ -8,6 +8,10 @@ touch /etc/config/ubootenv
|
||||
board=$(board_name)
|
||||
|
||||
case "$board" in
|
||||
extreme-networks,ws-ap3825i)
|
||||
ubootenv_add_uci_config "$(find_mtd_part 'cfg1')" "0x0" "0x10000" "0x20000"
|
||||
ubootenv_add_uci_config "$(find_mtd_part 'cfg2')" "0x0" "0x10000" "0x20000"
|
||||
;;
|
||||
ocedo,panda)
|
||||
ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x20000" "0x20000"
|
||||
ubootenv_add_uci_config "/dev/mtd2" "0x0" "0x20000" "0x20000"
|
||||
|
||||
@@ -23,7 +23,8 @@ sitecom,wlr-4100-v1-002)
|
||||
;;
|
||||
allnet,all0256n-4m|\
|
||||
allnet,all0256n-8m|\
|
||||
allnet,all5002)
|
||||
allnet,all5002|\
|
||||
yuncore,ax820)
|
||||
ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x10000" "0x10000"
|
||||
;;
|
||||
ampedwireless,ally-00x19k|\
|
||||
|
||||
@@ -15,6 +15,7 @@ zyxel,gs1900-8|\
|
||||
zyxel,gs1900-8hp-v1|\
|
||||
zyxel,gs1900-8hp-v2|\
|
||||
zyxel,gs1900-10hp|\
|
||||
zyxel,gs1900-16|\
|
||||
zyxel,gs1900-24-v1|\
|
||||
zyxel,gs1900-24hp-v1|\
|
||||
zyxel,gs1900-24hp-v2)
|
||||
|
||||
@@ -10,9 +10,9 @@ include $(INCLUDE_DIR)/kernel.mk
|
||||
|
||||
PKG_SOURCE_URL:=https://github.com/chunkeey/FritzBox-4040-UBOOT
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_VERSION:=f92be9d783b1210c020d5d6129e210a94bb7e290
|
||||
PKG_SOURCE_DATE:=2019-10-19
|
||||
PKG_MIRROR_HASH:=e40a7f624b1758b276f81c765ef1da568c595b8bd54568b9cceca7d170ebc612
|
||||
PKG_SOURCE_VERSION:=9d89013f9cc963eca25856c61fa066091d35f8de
|
||||
PKG_SOURCE_DATE:=2022-05-01
|
||||
PKG_MIRROR_HASH:=4f2a3782ba359e6d901b536d1d685026913c14426f8e58ba9673281f20675050
|
||||
|
||||
PKG_RELEASE:=$(AUTORELEASE)
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
+ ranges;
|
||||
+
|
||||
+ /* 64 KiB reserved for ramoops/pstore */
|
||||
+ ramoops@0x42ff0000 {
|
||||
+ ramoops@42ff0000 {
|
||||
+ compatible = "ramoops";
|
||||
+ reg = <0 0x42ff0000 0 0x10000>;
|
||||
+ record-size = <0x1000>;
|
||||
|
||||
Binary file not shown.
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=openssl
|
||||
PKG_BASE:=1.1.1
|
||||
PKG_BUGFIX:=n
|
||||
PKG_BUGFIX:=o
|
||||
PKG_VERSION:=$(PKG_BASE)$(PKG_BUGFIX)
|
||||
PKG_RELEASE:=1
|
||||
PKG_USE_MIPS16:=0
|
||||
@@ -25,7 +25,7 @@ PKG_SOURCE_URL:= \
|
||||
ftp://ftp.pca.dfn.de/pub/tools/net/openssl/source/ \
|
||||
ftp://ftp.pca.dfn.de/pub/tools/net/openssl/source/old/$(PKG_BASE)/
|
||||
|
||||
PKG_HASH:=40dceb51a4f6a5275bde0e6bf20ef4b91bfc32ed57c0552e2e8e15463372b17a
|
||||
PKG_HASH:=9384a2b0570dd80358841464677115df785edb941c71211f75076d72fe6b438f
|
||||
|
||||
PKG_LICENSE:=OpenSSL
|
||||
PKG_LICENSE_FILES:=LICENSE
|
||||
|
||||
@@ -21,7 +21,7 @@ diff --git a/crypto/engine/build.info b/crypto/engine/build.info
|
||||
diff --git a/crypto/init.c b/crypto/init.c
|
||||
--- a/crypto/init.c
|
||||
+++ b/crypto/init.c
|
||||
@@ -329,18 +329,6 @@ DEFINE_RUN_ONCE_STATIC(ossl_init_engine_openssl)
|
||||
@@ -328,18 +328,6 @@ DEFINE_RUN_ONCE_STATIC(ossl_init_engine_openssl)
|
||||
engine_load_openssl_int();
|
||||
return 1;
|
||||
}
|
||||
@@ -40,7 +40,7 @@ diff --git a/crypto/init.c b/crypto/init.c
|
||||
|
||||
# ifndef OPENSSL_NO_RDRAND
|
||||
static CRYPTO_ONCE engine_rdrand = CRYPTO_ONCE_STATIC_INIT;
|
||||
@@ -365,6 +353,18 @@ DEFINE_RUN_ONCE_STATIC(ossl_init_engine_dynamic)
|
||||
@@ -364,6 +352,18 @@ DEFINE_RUN_ONCE_STATIC(ossl_init_engine_dynamic)
|
||||
return 1;
|
||||
}
|
||||
# ifndef OPENSSL_NO_STATIC_ENGINE
|
||||
@@ -59,7 +59,7 @@ diff --git a/crypto/init.c b/crypto/init.c
|
||||
# if !defined(OPENSSL_NO_HW) && !defined(OPENSSL_NO_HW_PADLOCK)
|
||||
static CRYPTO_ONCE engine_padlock = CRYPTO_ONCE_STATIC_INIT;
|
||||
DEFINE_RUN_ONCE_STATIC(ossl_init_engine_padlock)
|
||||
@@ -713,11 +713,6 @@ int OPENSSL_init_crypto(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings)
|
||||
@@ -704,11 +704,6 @@ int OPENSSL_init_crypto(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings)
|
||||
if ((opts & OPENSSL_INIT_ENGINE_OPENSSL)
|
||||
&& !RUN_ONCE(&engine_openssl, ossl_init_engine_openssl))
|
||||
return 0;
|
||||
@@ -71,7 +71,7 @@ diff --git a/crypto/init.c b/crypto/init.c
|
||||
# ifndef OPENSSL_NO_RDRAND
|
||||
if ((opts & OPENSSL_INIT_ENGINE_RDRAND)
|
||||
&& !RUN_ONCE(&engine_rdrand, ossl_init_engine_rdrand))
|
||||
@@ -727,6 +722,11 @@ int OPENSSL_init_crypto(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings)
|
||||
@@ -718,6 +713,11 @@ int OPENSSL_init_crypto(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings)
|
||||
&& !RUN_ONCE(&engine_dynamic, ossl_init_engine_dynamic))
|
||||
return 0;
|
||||
# ifndef OPENSSL_NO_STATIC_ENGINE
|
||||
|
||||
@@ -8,12 +8,12 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=wolfssl
|
||||
PKG_VERSION:=5.2.0-stable
|
||||
PKG_VERSION:=5.3.0-stable
|
||||
PKG_RELEASE:=$(AUTORELEASE)
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://github.com/wolfSSL/wolfssl/archive/v$(PKG_VERSION)
|
||||
PKG_HASH:=409b4646c5f54f642de0e9f3544c3b83de7238134f5b1ff93fb44527bf119d05
|
||||
PKG_HASH:=1a3bb310dc01d3e73d9ad91b6ea8249d081016f8eef4ae8f21d3421f91ef1de9
|
||||
|
||||
PKG_FIXUP:=libtool libtool-abiver
|
||||
PKG_INSTALL:=1
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
From 87e43dd63ba429297e439f2dfd1ee8b45981e18b Mon Sep 17 00:00:00 2001
|
||||
From: Juliusz Sosinowicz <juliusz@wolfssl.com>
|
||||
Date: Sat, 12 Feb 2022 00:34:24 +0100
|
||||
Subject: [PATCH] Reported in ZD13631
|
||||
|
||||
`ssl->peerVerifyRet` wasn't being cleared when retrying with an alternative cert chain
|
||||
|
||||
References: https://github.com/wolfSSL/wolfssl/issues/4879
|
||||
---
|
||||
src/internal.c | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
--- a/src/internal.c
|
||||
+++ b/src/internal.c
|
||||
@@ -12342,6 +12342,9 @@ int ProcessPeerCerts(WOLFSSL* ssl, byte*
|
||||
}
|
||||
|
||||
ret = 0; /* clear errors and continue */
|
||||
+ #if defined(OPENSSL_EXTRA) || defined(OPENSSL_EXTRA_X509_SMALL)
|
||||
+ ssl->peerVerifyRet = 0;
|
||||
+ #endif
|
||||
args->verifyErr = 0;
|
||||
}
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
From 096889927d9528d4fbeb3aab56d1fe8225d2e7ec Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Pouzzner <douzzer@wolfssl.com>
|
||||
Date: Thu, 14 Apr 2022 20:23:31 -0500
|
||||
Subject: [PATCH] wolfcrypt/src/port/devcrypto/devcrypto_aes.c: remove
|
||||
redundant "int ret" in wc_AesCtrEncrypt() (supersedes #5052).
|
||||
|
||||
|
||||
diff --git a/wolfcrypt/src/port/devcrypto/devcrypto_aes.c b/wolfcrypt/src/port/devcrypto/devcrypto_aes.c
|
||||
index 3bc1d5bb1..28e145e27 100644
|
||||
--- a/wolfcrypt/src/port/devcrypto/devcrypto_aes.c
|
||||
+++ b/wolfcrypt/src/port/devcrypto/devcrypto_aes.c
|
||||
@@ -208,7 +208,6 @@ int wc_AesCtrEncrypt(Aes* aes, byte* out, const byte* in, word32 sz)
|
||||
int ret;
|
||||
struct crypt_op crt;
|
||||
byte* tmp;
|
||||
- int ret;
|
||||
|
||||
if (aes == NULL || out == NULL || in == NULL) {
|
||||
return BAD_FUNC_ARG;
|
||||
@@ -9,7 +9,7 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=firewall
|
||||
PKG_RELEASE:=2
|
||||
PKG_RELEASE:=3
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL=$(PROJECT_GIT)/project/firewall3.git
|
||||
|
||||
@@ -54,13 +54,11 @@ config rule
|
||||
option target ACCEPT
|
||||
|
||||
# Allow DHCPv6 replies
|
||||
# see https://dev.openwrt.org/ticket/10381
|
||||
# see https://github.com/openwrt/openwrt/issues/5066
|
||||
config rule
|
||||
option name Allow-DHCPv6
|
||||
option src wan
|
||||
option proto udp
|
||||
option src_ip fc00::/6
|
||||
option dest_ip fc00::/6
|
||||
option dest_port 546
|
||||
option family ipv6
|
||||
option target ACCEPT
|
||||
|
||||
@@ -9,9 +9,9 @@ PKG_RELEASE:=$(AUTORELEASE)
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL=$(PROJECT_GIT)/project/firewall4.git
|
||||
PKG_SOURCE_DATE:=2022-02-12
|
||||
PKG_SOURCE_VERSION:=53caa1a762125a71389a486aa913e4fbdf3650cf
|
||||
PKG_MIRROR_HASH:=9052a779b12c0c9b21914bf38daf11a2d98879c2f9c9b39f091d7ebb7f0f877b
|
||||
PKG_SOURCE_DATE:=2022-05-20
|
||||
PKG_SOURCE_VERSION:=c22eeeff1ef0884fd3c76f4ff2c72caa9de82fd5
|
||||
PKG_MIRROR_HASH:=ccaf776e3b762a2c684aac3adeb2e3a6a651b58253ea03643cc4964172030178
|
||||
PKG_MAINTAINER:=Jo-Philipp Wich <jo@mein.io>
|
||||
PKG_LICENSE:=ISC
|
||||
|
||||
@@ -26,7 +26,7 @@ define Package/firewall4
|
||||
+kmod-nft-nat +kmod-nft-nat6 \
|
||||
+nftables-json \
|
||||
+ucode +ucode-mod-fs +ucode-mod-ubus +ucode-mod-uci
|
||||
EXTRA_DEPENDS:=ucode (>= 2022-01-26)
|
||||
EXTRA_DEPENDS:=ucode (>= 2022-03-22)
|
||||
PROVIDES:=uci-firewall
|
||||
endef
|
||||
|
||||
|
||||
@@ -820,7 +820,7 @@ dnsmasq_ipset_add() {
|
||||
dnsmasq_start()
|
||||
{
|
||||
local cfg="$1"
|
||||
local disabled user_dhcpscript
|
||||
local disabled user_dhcpscript logfacility
|
||||
local resolvfile resolvdir localuse=0
|
||||
|
||||
config_get_bool disabled "$cfg" disabled 0
|
||||
@@ -933,7 +933,7 @@ dnsmasq_start()
|
||||
append_bool "$cfg" scriptarp "--script-arp"
|
||||
|
||||
append_parm "$cfg" logfacility "--log-facility"
|
||||
|
||||
config_get logfacility "$cfg" "logfacility"
|
||||
append_parm "$cfg" cachesize "--cache-size"
|
||||
append_parm "$cfg" dnsforwardmax "--dns-forward-max"
|
||||
append_parm "$cfg" port "--port"
|
||||
@@ -1167,6 +1167,10 @@ dnsmasq_start()
|
||||
procd_add_jail_mount $dnsmasqconffile $dnsmasqconfdir $resolvdir $user_dhcpscript
|
||||
procd_add_jail_mount /etc/passwd /etc/group /etc/TZ /etc/hosts /etc/ethers
|
||||
procd_add_jail_mount_rw /var/run/dnsmasq/ $leasefile
|
||||
case "$logfacility" in */*)
|
||||
[ ! -e "$logfacility" ] && touch "$logfacility"
|
||||
procd_add_jail_mount_rw "$logfacility"
|
||||
esac
|
||||
|
||||
procd_close_instance
|
||||
}
|
||||
|
||||
@@ -11,9 +11,9 @@ PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL=$(PROJECT_GIT)/project/iwinfo.git
|
||||
PKG_SOURCE_DATE:=2022-03-01
|
||||
PKG_SOURCE_VERSION:=90bfbb9a3ac39e41c59a9802d0730560eb7d0f83
|
||||
PKG_MIRROR_HASH:=31cae75dbe1cf347a8c768769bb7a772eeff4970c9b1ba3ab5d260ac056a1161
|
||||
PKG_SOURCE_DATE:=2022-04-26
|
||||
PKG_SOURCE_VERSION:=dc6847eb5ec8747867bc20f1024723c6397c1df7
|
||||
PKG_MIRROR_HASH:=3f243cf75f4cec02e9e8ecc2087577146845346c0172808f64dea066f84f88d4
|
||||
PKG_MAINTAINER:=Jo-Philipp Wich <jo@mein.io>
|
||||
PKG_LICENSE:=GPL-2.0
|
||||
|
||||
|
||||
@@ -12,9 +12,9 @@ PKG_RELEASE:=$(AUTORELEASE)
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL=$(PROJECT_GIT)/project/fstools.git
|
||||
PKG_MIRROR_HASH:=e4d8fcdf8f83749553be109c7c39141cc4495ac46d476c8d2dc6a0d8dccfb741
|
||||
PKG_SOURCE_DATE:=2021-11-16
|
||||
PKG_SOURCE_VERSION:=77c02889177c43df8ebe07bce4d55b7f7358118f
|
||||
PKG_MIRROR_HASH:=c6239a75f6a3b5b010a48d195006550b0e2154f5b22611484c4979f552c0da7d
|
||||
PKG_SOURCE_DATE:=2022-05-03
|
||||
PKG_SOURCE_VERSION:=9e11b3723ce30b9b8c94ad7d15072a10cf13c0b4
|
||||
CMAKE_INSTALL:=1
|
||||
|
||||
PKG_LICENSE:=GPL-2.0
|
||||
|
||||
@@ -12,9 +12,9 @@ PKG_RELEASE:=$(AUTORELEASE)
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL=$(PROJECT_GIT)/project/procd.git
|
||||
PKG_MIRROR_HASH:=28630389c91e6025a718abcbd100534d72446afce3c5956f94d6972e56ed7c5f
|
||||
PKG_SOURCE_DATE:=2022-04-13
|
||||
PKG_SOURCE_VERSION:=eb03f03105a857a0b7310e4c93bff46aa29f3a40
|
||||
PKG_MIRROR_HASH:=26c4dd6cfb27ef8f5ef55f7c8d4622ff91e3490917e4fb03f54b138737113251
|
||||
PKG_SOURCE_DATE:=2022-05-03
|
||||
PKG_SOURCE_VERSION:=652e6df06f8413f19a4786a275862cfe76628093
|
||||
CMAKE_INSTALL:=1
|
||||
|
||||
PKG_LICENSE:=GPL-2.0
|
||||
|
||||
@@ -7,9 +7,9 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=selinux-policy
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL:=https://github.com/DefenSec/selinux-policy
|
||||
PKG_VERSION:=1.0
|
||||
PKG_MIRROR_HASH:=2358a064d1231d39e6292d646e1a38898d949b8bef6558ac1e0992d3b5bca33f
|
||||
PKG_SOURCE_URL:=https://git.defensec.nl/selinux-policy.git
|
||||
PKG_VERSION:=1.1
|
||||
PKG_MIRROR_HASH:=657ec1ff51ab946753fb3559384511a536ac1e018691f3e49cbab21c55d23e08
|
||||
PKG_SOURCE_VERSION:=v$(PKG_VERSION)
|
||||
PKG_BUILD_DEPENDS:=secilc/host policycoreutils/host
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=f2fs-tools
|
||||
PKG_VERSION:=1.14.0
|
||||
PKG_RELEASE:=2
|
||||
PKG_RELEASE:=3
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs-tools.git/snapshot/
|
||||
|
||||
@@ -0,0 +1,46 @@
|
||||
From f056fbeff08d30a6d9acdb9e06704461ceee3500 Mon Sep 17 00:00:00 2001
|
||||
From: Jaegeuk Kim <jaegeuk@kernel.org>
|
||||
Date: Thu, 1 Apr 2021 20:13:55 -0700
|
||||
Subject: resize.f2fs: fix wrong ovp calculation
|
||||
|
||||
beroal reported a mount failure due to broken valid_user_blocks.
|
||||
[ 6890.647749] F2FS-fs (loop0): Wrong valid_user_blocks: 16040048,
|
||||
user_block_count: 10016768
|
||||
|
||||
From fsck,
|
||||
|
||||
segment_count_main [0x 9a95 : 39573]
|
||||
-> 39573 * 2MB = 78GB as user space
|
||||
|
||||
overprov_segment_count [0x 4e29 : 20009]
|
||||
-> 20009 * 2MB = 40GB as overprovisioned space which user can't see.
|
||||
|
||||
But,
|
||||
[FSCK] valid_block_count matching with CP [Ok..] [0xf4c070]
|
||||
-> 0xf4c070 = 16040048
|
||||
|
||||
valid_block_count [0x f4c070 : 16040048]
|
||||
-> So, this is correct.
|
||||
|
||||
It turns out resize.f2fs gave very large and wrong overprovisioning space
|
||||
result in shortage of user blocks. The root cause was f2fs_get_usable_segments()
|
||||
didn't consider resize case which needs segment_count_main from new superblock.
|
||||
|
||||
Fixes: f8410857b7a8 ("f2fs-tools: zns zone-capacity support")
|
||||
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
|
||||
---
|
||||
lib/libf2fs_zoned.c | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
--- a/lib/libf2fs_zoned.c
|
||||
+++ b/lib/libf2fs_zoned.c
|
||||
@@ -495,6 +495,9 @@ uint32_t f2fs_get_usable_segments(struct
|
||||
int i, j;
|
||||
uint32_t usable_segs = 0, zone_segs;
|
||||
|
||||
+ if (c.func == RESIZE)
|
||||
+ return get_sb(segment_count_main);
|
||||
+
|
||||
for (i = 0; i < c.ndevs; i++) {
|
||||
if (c.devices[i].zoned_model != F2FS_ZONED_HM) {
|
||||
usable_segs += c.devices[i].total_segments;
|
||||
@@ -12,13 +12,13 @@ PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL=https://github.com/jow-/ucode.git
|
||||
PKG_SOURCE_DATE:=2022-02-11
|
||||
PKG_SOURCE_VERSION:=a29bad9454edcc285f7f37410b6822affede44d1
|
||||
PKG_MIRROR_HASH:=eaba0f12c469ef82b772a64f8763e8855dbba81551a78d05f547c0922a7dacad
|
||||
PKG_SOURCE_DATE:=2022-05-20
|
||||
PKG_SOURCE_VERSION:=081871e18db544e2c834a516950e1c16c9bc4d2c
|
||||
PKG_MIRROR_HASH:=5ff1ee6d5549e83ac7bc5f5877d303c82cdb8e640305de5d95cbd3ce66ced133
|
||||
PKG_MAINTAINER:=Jo-Philipp Wich <jo@mein.io>
|
||||
PKG_LICENSE:=ISC
|
||||
|
||||
PKG_ABI_VERSION:=20220206
|
||||
PKG_ABI_VERSION:=20220322
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(INCLUDE_DIR)/cmake.mk
|
||||
@@ -152,7 +152,7 @@ endef
|
||||
|
||||
define Package/ucode/install
|
||||
$(INSTALL_DIR) $(1)/usr/bin
|
||||
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/ucode $(1)/usr/bin/ucode
|
||||
$(CP) $(PKG_INSTALL_DIR)/usr/bin/u* $(1)/usr/bin/
|
||||
endef
|
||||
|
||||
define Package/libucode/install
|
||||
@@ -201,8 +201,8 @@ define Package/ucode-mod-uci/install
|
||||
endef
|
||||
|
||||
|
||||
$(eval $(call BuildPackage,ucode))
|
||||
$(eval $(call BuildPackage,libucode))
|
||||
$(eval $(call BuildPackage,ucode))
|
||||
$(eval $(call BuildPackage,ucode-mod-fs))
|
||||
$(eval $(call BuildPackage,ucode-mod-math))
|
||||
$(eval $(call BuildPackage,ucode-mod-nl80211))
|
||||
|
||||
@@ -13,7 +13,7 @@ produce a noisy warning.
|
||||
|
||||
--- a/drivers/usb/host/xhci-pci.c
|
||||
+++ b/drivers/usb/host/xhci-pci.c
|
||||
@@ -279,6 +279,7 @@ static void xhci_pci_quirks(struct devic
|
||||
@@ -281,6 +281,7 @@ static void xhci_pci_quirks(struct devic
|
||||
pdev->device == 0x0015) {
|
||||
xhci->quirks |= XHCI_RESET_ON_RESUME;
|
||||
xhci->quirks |= XHCI_ZERO_64B_REGS;
|
||||
|
||||
@@ -49,7 +49,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
#ifdef CONFIG_MACB_USE_HWSTAMP
|
||||
--- a/drivers/net/ethernet/cadence/macb_main.c
|
||||
+++ b/drivers/net/ethernet/cadence/macb_main.c
|
||||
@@ -3823,15 +3823,15 @@ static int macb_init(struct platform_dev
|
||||
@@ -3831,15 +3831,15 @@ static int macb_init(struct platform_dev
|
||||
if (!(bp->caps & MACB_CAPS_USRIO_DISABLED)) {
|
||||
val = 0;
|
||||
if (phy_interface_mode_is_rgmii(bp->phy_interface))
|
||||
@@ -69,7 +69,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
|
||||
macb_or_gem_writel(bp, USRIO, val);
|
||||
}
|
||||
@@ -4349,6 +4349,13 @@ static int fu540_c000_init(struct platfo
|
||||
@@ -4357,6 +4357,13 @@ static int fu540_c000_init(struct platfo
|
||||
return macb_init(pdev);
|
||||
}
|
||||
|
||||
@@ -83,7 +83,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
static const struct macb_config fu540_c000_config = {
|
||||
.caps = MACB_CAPS_GIGABIT_MODE_AVAILABLE | MACB_CAPS_JUMBO |
|
||||
MACB_CAPS_GEM_HAS_PTP,
|
||||
@@ -4356,12 +4363,14 @@ static const struct macb_config fu540_c0
|
||||
@@ -4364,12 +4371,14 @@ static const struct macb_config fu540_c0
|
||||
.clk_init = fu540_c000_clk_init,
|
||||
.init = fu540_c000_init,
|
||||
.jumbo_max_len = 10240,
|
||||
@@ -98,7 +98,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
};
|
||||
|
||||
static const struct macb_config sama5d3macb_config = {
|
||||
@@ -4369,6 +4378,7 @@ static const struct macb_config sama5d3m
|
||||
@@ -4377,6 +4386,7 @@ static const struct macb_config sama5d3m
|
||||
| MACB_CAPS_USRIO_HAS_CLKEN | MACB_CAPS_USRIO_DEFAULT_IS_MII_GMII,
|
||||
.clk_init = macb_clk_init,
|
||||
.init = macb_init,
|
||||
@@ -106,7 +106,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
};
|
||||
|
||||
static const struct macb_config pc302gem_config = {
|
||||
@@ -4376,6 +4386,7 @@ static const struct macb_config pc302gem
|
||||
@@ -4384,6 +4394,7 @@ static const struct macb_config pc302gem
|
||||
.dma_burst_length = 16,
|
||||
.clk_init = macb_clk_init,
|
||||
.init = macb_init,
|
||||
@@ -114,7 +114,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
};
|
||||
|
||||
static const struct macb_config sama5d2_config = {
|
||||
@@ -4383,6 +4394,7 @@ static const struct macb_config sama5d2_
|
||||
@@ -4391,6 +4402,7 @@ static const struct macb_config sama5d2_
|
||||
.dma_burst_length = 16,
|
||||
.clk_init = macb_clk_init,
|
||||
.init = macb_init,
|
||||
@@ -122,7 +122,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
};
|
||||
|
||||
static const struct macb_config sama5d3_config = {
|
||||
@@ -4392,6 +4404,7 @@ static const struct macb_config sama5d3_
|
||||
@@ -4400,6 +4412,7 @@ static const struct macb_config sama5d3_
|
||||
.clk_init = macb_clk_init,
|
||||
.init = macb_init,
|
||||
.jumbo_max_len = 10240,
|
||||
@@ -130,7 +130,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
};
|
||||
|
||||
static const struct macb_config sama5d4_config = {
|
||||
@@ -4399,18 +4412,21 @@ static const struct macb_config sama5d4_
|
||||
@@ -4407,18 +4420,21 @@ static const struct macb_config sama5d4_
|
||||
.dma_burst_length = 4,
|
||||
.clk_init = macb_clk_init,
|
||||
.init = macb_init,
|
||||
@@ -152,7 +152,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
};
|
||||
|
||||
static const struct macb_config zynqmp_config = {
|
||||
@@ -4421,6 +4437,7 @@ static const struct macb_config zynqmp_c
|
||||
@@ -4429,6 +4445,7 @@ static const struct macb_config zynqmp_c
|
||||
.clk_init = macb_clk_init,
|
||||
.init = macb_init,
|
||||
.jumbo_max_len = 10240,
|
||||
@@ -160,7 +160,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
};
|
||||
|
||||
static const struct macb_config zynq_config = {
|
||||
@@ -4429,6 +4446,7 @@ static const struct macb_config zynq_con
|
||||
@@ -4437,6 +4454,7 @@ static const struct macb_config zynq_con
|
||||
.dma_burst_length = 16,
|
||||
.clk_init = macb_clk_init,
|
||||
.init = macb_init,
|
||||
@@ -168,7 +168,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
};
|
||||
|
||||
static const struct of_device_id macb_dt_ids[] = {
|
||||
@@ -4549,6 +4567,8 @@ static int macb_probe(struct platform_de
|
||||
@@ -4557,6 +4575,8 @@ static int macb_probe(struct platform_de
|
||||
bp->wol |= MACB_WOL_HAS_MAGIC_PACKET;
|
||||
device_set_wakeup_capable(&pdev->dev, bp->wol & MACB_WOL_HAS_MAGIC_PACKET);
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
|
||||
--- a/drivers/net/ethernet/cadence/macb_main.c
|
||||
+++ b/drivers/net/ethernet/cadence/macb_main.c
|
||||
@@ -3598,6 +3598,20 @@ static void macb_probe_queues(void __iom
|
||||
@@ -3606,6 +3606,20 @@ static void macb_probe_queues(void __iom
|
||||
*num_queues = hweight32(*queue_mask);
|
||||
}
|
||||
|
||||
@@ -35,7 +35,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
static int macb_clk_init(struct platform_device *pdev, struct clk **pclk,
|
||||
struct clk **hclk, struct clk **tx_clk,
|
||||
struct clk **rx_clk, struct clk **tsu_clk)
|
||||
@@ -4660,11 +4674,7 @@ err_out_free_netdev:
|
||||
@@ -4668,11 +4682,7 @@ err_out_free_netdev:
|
||||
free_netdev(dev);
|
||||
|
||||
err_disable_clocks:
|
||||
@@ -48,7 +48,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
pm_runtime_disable(&pdev->dev);
|
||||
pm_runtime_set_suspended(&pdev->dev);
|
||||
pm_runtime_dont_use_autosuspend(&pdev->dev);
|
||||
@@ -4689,11 +4699,8 @@ static int macb_remove(struct platform_d
|
||||
@@ -4697,11 +4707,8 @@ static int macb_remove(struct platform_d
|
||||
pm_runtime_disable(&pdev->dev);
|
||||
pm_runtime_dont_use_autosuspend(&pdev->dev);
|
||||
if (!pm_runtime_suspended(&pdev->dev)) {
|
||||
@@ -62,7 +62,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
pm_runtime_set_suspended(&pdev->dev);
|
||||
}
|
||||
phylink_destroy(bp->phylink);
|
||||
@@ -4872,13 +4879,10 @@ static int __maybe_unused macb_runtime_s
|
||||
@@ -4880,13 +4887,10 @@ static int __maybe_unused macb_runtime_s
|
||||
struct net_device *netdev = dev_get_drvdata(dev);
|
||||
struct macb *bp = netdev_priv(netdev);
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
|
||||
--- a/drivers/net/ethernet/cadence/macb_main.c
|
||||
+++ b/drivers/net/ethernet/cadence/macb_main.c
|
||||
@@ -4330,8 +4330,10 @@ static int fu540_c000_clk_init(struct pl
|
||||
@@ -4338,8 +4338,10 @@ static int fu540_c000_clk_init(struct pl
|
||||
return err;
|
||||
|
||||
mgmt = devm_kzalloc(&pdev->dev, sizeof(*mgmt), GFP_KERNEL);
|
||||
@@ -27,7 +27,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
|
||||
init.name = "sifive-gemgxl-mgmt";
|
||||
init.ops = &fu540_c000_ops;
|
||||
@@ -4342,16 +4344,26 @@ static int fu540_c000_clk_init(struct pl
|
||||
@@ -4350,16 +4352,26 @@ static int fu540_c000_clk_init(struct pl
|
||||
mgmt->hw.init = &init;
|
||||
|
||||
*tx_clk = devm_clk_register(&pdev->dev, &mgmt->hw);
|
||||
|
||||
@@ -14,7 +14,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
|
||||
--- a/drivers/net/ethernet/cadence/macb_main.c
|
||||
+++ b/drivers/net/ethernet/cadence/macb_main.c
|
||||
@@ -4382,6 +4382,14 @@ static const struct macb_usrio_config ma
|
||||
@@ -4390,6 +4390,14 @@ static const struct macb_usrio_config ma
|
||||
.refclk = MACB_BIT(CLKEN),
|
||||
};
|
||||
|
||||
@@ -29,7 +29,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
static const struct macb_config fu540_c000_config = {
|
||||
.caps = MACB_CAPS_GIGABIT_MODE_AVAILABLE | MACB_CAPS_JUMBO |
|
||||
MACB_CAPS_GEM_HAS_PTP,
|
||||
@@ -4475,6 +4483,14 @@ static const struct macb_config zynq_con
|
||||
@@ -4483,6 +4491,14 @@ static const struct macb_config zynq_con
|
||||
.usrio = &macb_default_usrio,
|
||||
};
|
||||
|
||||
@@ -44,7 +44,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
static const struct of_device_id macb_dt_ids[] = {
|
||||
{ .compatible = "cdns,at32ap7000-macb" },
|
||||
{ .compatible = "cdns,at91sam9260-macb", .data = &at91sam9260_config },
|
||||
@@ -4492,6 +4508,7 @@ static const struct of_device_id macb_dt
|
||||
@@ -4500,6 +4516,7 @@ static const struct of_device_id macb_dt
|
||||
{ .compatible = "cdns,zynqmp-gem", .data = &zynqmp_config},
|
||||
{ .compatible = "cdns,zynq-gem", .data = &zynq_config },
|
||||
{ .compatible = "sifive,fu540-c000-gem", .data = &fu540_c000_config },
|
||||
|
||||
@@ -14,7 +14,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
|
||||
--- a/drivers/net/ethernet/cadence/macb_main.c
|
||||
+++ b/drivers/net/ethernet/cadence/macb_main.c
|
||||
@@ -4491,6 +4491,14 @@ static const struct macb_config sama7g5_
|
||||
@@ -4499,6 +4499,14 @@ static const struct macb_config sama7g5_
|
||||
.usrio = &sama7g5_usrio,
|
||||
};
|
||||
|
||||
@@ -29,7 +29,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
static const struct of_device_id macb_dt_ids[] = {
|
||||
{ .compatible = "cdns,at32ap7000-macb" },
|
||||
{ .compatible = "cdns,at91sam9260-macb", .data = &at91sam9260_config },
|
||||
@@ -4509,6 +4517,7 @@ static const struct of_device_id macb_dt
|
||||
@@ -4517,6 +4525,7 @@ static const struct of_device_id macb_dt
|
||||
{ .compatible = "cdns,zynq-gem", .data = &zynq_config },
|
||||
{ .compatible = "sifive,fu540-c000-gem", .data = &fu540_c000_config },
|
||||
{ .compatible = "microchip,sama7g5-gem", .data = &sama7g5_gem_config },
|
||||
|
||||
@@ -238,7 +238,7 @@ Signed-off-by: Vinod Koul <vkoul@kernel.org>
|
||||
while (!(at_xdmac_chan_read(atchan, AT_XDMAC_CIS) & AT_XDMAC_CIS_FIS))
|
||||
cpu_relax();
|
||||
}
|
||||
@@ -1760,7 +1810,7 @@ static int at_xdmac_device_pause(struct
|
||||
@@ -1762,7 +1812,7 @@ static int at_xdmac_device_pause(struct
|
||||
return 0;
|
||||
|
||||
spin_lock_irqsave(&atchan->lock, flags);
|
||||
@@ -247,7 +247,7 @@ Signed-off-by: Vinod Koul <vkoul@kernel.org>
|
||||
while (at_xdmac_chan_read(atchan, AT_XDMAC_CC)
|
||||
& (AT_XDMAC_CC_WRIP | AT_XDMAC_CC_RDIP))
|
||||
cpu_relax();
|
||||
@@ -1783,7 +1833,7 @@ static int at_xdmac_device_resume(struct
|
||||
@@ -1785,7 +1835,7 @@ static int at_xdmac_device_resume(struct
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -256,7 +256,7 @@ Signed-off-by: Vinod Koul <vkoul@kernel.org>
|
||||
clear_bit(AT_XDMAC_CHAN_IS_PAUSED, &atchan->status);
|
||||
spin_unlock_irqrestore(&atchan->lock, flags);
|
||||
|
||||
@@ -1985,6 +2035,10 @@ static int at_xdmac_probe(struct platfor
|
||||
@@ -1987,6 +2037,10 @@ static int at_xdmac_probe(struct platfor
|
||||
atxdmac->regs = base;
|
||||
atxdmac->irq = irq;
|
||||
|
||||
@@ -267,7 +267,7 @@ Signed-off-by: Vinod Koul <vkoul@kernel.org>
|
||||
atxdmac->clk = devm_clk_get(&pdev->dev, "dma_clk");
|
||||
if (IS_ERR(atxdmac->clk)) {
|
||||
dev_err(&pdev->dev, "can't get dma_clk\n");
|
||||
@@ -2127,6 +2181,10 @@ static const struct dev_pm_ops atmel_xdm
|
||||
@@ -2129,6 +2183,10 @@ static const struct dev_pm_ops atmel_xdm
|
||||
static const struct of_device_id atmel_xdmac_dt_ids[] = {
|
||||
{
|
||||
.compatible = "atmel,sama5d4-dma",
|
||||
|
||||
@@ -71,7 +71,7 @@ Signed-off-by: Vinod Koul <vkoul@kernel.org>
|
||||
};
|
||||
|
||||
static inline void __iomem *at_xdmac_chan_reg_base(struct at_xdmac *atxdmac, unsigned int chan_nb)
|
||||
@@ -1996,6 +2017,30 @@ static int atmel_xdmac_resume(struct dev
|
||||
@@ -1998,6 +2019,30 @@ static int atmel_xdmac_resume(struct dev
|
||||
}
|
||||
#endif /* CONFIG_PM_SLEEP */
|
||||
|
||||
@@ -102,7 +102,7 @@ Signed-off-by: Vinod Koul <vkoul@kernel.org>
|
||||
static int at_xdmac_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct at_xdmac *atxdmac;
|
||||
@@ -2140,6 +2185,8 @@ static int at_xdmac_probe(struct platfor
|
||||
@@ -2142,6 +2187,8 @@ static int at_xdmac_probe(struct platfor
|
||||
dev_info(&pdev->dev, "%d channels, mapped at 0x%p\n",
|
||||
nr_channels, atxdmac->regs);
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
|
||||
--- a/drivers/net/ethernet/cadence/macb_main.c
|
||||
+++ b/drivers/net/ethernet/cadence/macb_main.c
|
||||
@@ -3860,6 +3860,13 @@ static int macb_init(struct platform_dev
|
||||
@@ -3868,6 +3868,13 @@ static int macb_init(struct platform_dev
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -34,7 +34,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
#if defined(CONFIG_OF)
|
||||
/* 1518 rounded up */
|
||||
#define AT91ETHER_MAX_RBUFF_SZ 0x600
|
||||
@@ -4375,13 +4382,6 @@ static int fu540_c000_init(struct platfo
|
||||
@@ -4383,13 +4390,6 @@ static int fu540_c000_init(struct platfo
|
||||
return macb_init(pdev);
|
||||
}
|
||||
|
||||
@@ -48,7 +48,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
static const struct macb_usrio_config sama7g5_usrio = {
|
||||
.mii = 0,
|
||||
.rmii = 1,
|
||||
@@ -4530,6 +4530,7 @@ static const struct macb_config default_
|
||||
@@ -4538,6 +4538,7 @@ static const struct macb_config default_
|
||||
.dma_burst_length = 16,
|
||||
.clk_init = macb_clk_init,
|
||||
.init = macb_init,
|
||||
|
||||
169
target/linux/ath79/dts/ar7161_netgear_wndap360.dts
Normal file
169
target/linux/ath79/dts/ar7161_netgear_wndap360.dts
Normal file
@@ -0,0 +1,169 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||
|
||||
#include "ar7100.dtsi"
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/input/input.h>
|
||||
|
||||
/ {
|
||||
compatible = "netgear,wndap360", "qca,ar7161";
|
||||
model = "Netgear WNDAP360";
|
||||
|
||||
aliases {
|
||||
led-boot = &led_power_orange;
|
||||
led-failsafe = &led_power_orange;
|
||||
led-running = &led_power_orange;
|
||||
led-upgrade = &led_power_orange;
|
||||
};
|
||||
|
||||
extosc: ref {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-output-names = "ref";
|
||||
clock-frequency = <40000000>;
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
led_power_orange: power_orange {
|
||||
label = "orange:power";
|
||||
gpios = <&gpio 0 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
};
|
||||
|
||||
ath9k-leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
wifi_2g_green {
|
||||
label = "green:wlan2g";
|
||||
gpios = <&ath9k0 5 GPIO_ACTIVE_LOW>;
|
||||
linux,default-trigger = "phy0tpt";
|
||||
};
|
||||
|
||||
wifi_5g_green {
|
||||
label = "green:wlan5g";
|
||||
gpios = <&ath9k1 5 GPIO_ACTIVE_LOW>;
|
||||
linux,default-trigger = "phy1tpt";
|
||||
};
|
||||
};
|
||||
|
||||
keys {
|
||||
compatible = "gpio-keys";
|
||||
|
||||
reset {
|
||||
label = "reset";
|
||||
linux,code = <KEY_RESTART>;
|
||||
gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&mdio0 {
|
||||
status = "okay";
|
||||
|
||||
phy-mask = <0x0f>;
|
||||
phy1: ethernet-phy@1 {
|
||||
reg = <0x1>;
|
||||
};
|
||||
};
|
||||
|
||||
ð0 {
|
||||
status = "okay";
|
||||
|
||||
phy-mode = "rgmii";
|
||||
phy-handle = <&phy1>;
|
||||
|
||||
nvmem-cells = <&macaddr_art_0>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
|
||||
&spi {
|
||||
status = "okay";
|
||||
|
||||
flash@0 {
|
||||
compatible = "jedec,spi-nor";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <50000000>;
|
||||
|
||||
partitions {
|
||||
compatible = "fixed-partitions";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
partition@0 {
|
||||
label = "u-boot";
|
||||
reg = <0x0 0x040000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@40000 {
|
||||
label = "u-boot-env";
|
||||
reg = <0x40000 0x010000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@50000 {
|
||||
compatible = "denx,uimage";
|
||||
label = "firmware";
|
||||
reg = <0x50000 0x790000>;
|
||||
};
|
||||
|
||||
partition@7e0000 {
|
||||
label = "nvram";
|
||||
reg = <0x7e0000 0x010000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
art: partition@7f0000 {
|
||||
label = "art";
|
||||
reg = <0x7f0000 0x010000>;
|
||||
read-only;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&pcie0 {
|
||||
status = "okay";
|
||||
|
||||
ath9k0: wifi@0,11 {
|
||||
compatible = "pci168c,0029";
|
||||
reg = <0x8800 0 0 0 0>;
|
||||
qca,no-eeprom;
|
||||
nvmem-cells = <&macaddr_art_120c>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
#gpio-cells = <2>;
|
||||
gpio-controller;
|
||||
};
|
||||
|
||||
ath9k1: wifi@0,12 {
|
||||
compatible = "pci168c,0029";
|
||||
reg = <0x9000 0 0 0 0>;
|
||||
qca,no-eeprom;
|
||||
nvmem-cells = <&macaddr_art_520c>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
mac-address-increment = <1>;
|
||||
#gpio-cells = <2>;
|
||||
gpio-controller;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
&art {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_art_0: macaddr@0 {
|
||||
reg = <0x0 0x6>;
|
||||
};
|
||||
|
||||
macaddr_art_120c: macaddr@120c {
|
||||
reg = <0x120c 0x6>;
|
||||
};
|
||||
|
||||
macaddr_art_520c: macaddr@520c {
|
||||
reg = <0x520c 0x6>;
|
||||
};
|
||||
};
|
||||
@@ -7,6 +7,8 @@
|
||||
model = "GL.iNet GL-AR300M-Lite";
|
||||
};
|
||||
|
||||
/delete-node/ ®_usb_vbus;
|
||||
|
||||
/delete-node/ &nand_flash;
|
||||
|
||||
&nor_firmware {
|
||||
@@ -27,3 +29,7 @@
|
||||
&led_wlan {
|
||||
label = "green:wlan";
|
||||
};
|
||||
|
||||
&usb0 {
|
||||
/delete-property/ vbus-supply;
|
||||
};
|
||||
|
||||
@@ -37,6 +37,16 @@
|
||||
};
|
||||
};
|
||||
|
||||
reg_usb_vbus: reg_usb_vbus {
|
||||
compatible = "regulator-fixed";
|
||||
|
||||
regulator-name = "usb_vbus";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
gpio = <&gpio 2 GPIO_ACTIVE_HIGH>;
|
||||
enable-active-high;
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
@@ -62,6 +72,9 @@
|
||||
i2c: i2c {
|
||||
compatible = "i2c-gpio";
|
||||
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&enable_gpio17>;
|
||||
|
||||
sda-gpios = <&gpio 17 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
|
||||
scl-gpios = <&gpio 16 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
|
||||
};
|
||||
@@ -134,6 +147,7 @@
|
||||
&usb0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
vbus-supply = <®_usb_vbus>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
@@ -170,3 +184,9 @@
|
||||
reg = <0x0 0x6>;
|
||||
};
|
||||
};
|
||||
|
||||
&pinmux {
|
||||
enable_gpio17: pinmux_enable_gpio17 {
|
||||
pinctrl-single,bits = <0x10 0x0000 0xff00>;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||
|
||||
#include "qca9533_mikrotik_routerboard-95x.dtsi"
|
||||
|
||||
/ {
|
||||
compatible = "mikrotik,routerboard-951ui-2nd", "qca,qca9531";
|
||||
model = "MikroTik RouterBOARD 951Ui-2nD (hAP)";
|
||||
};
|
||||
@@ -0,0 +1,18 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||
|
||||
#include "qca9533_mikrotik_routerboard-95x.dtsi"
|
||||
|
||||
/ {
|
||||
compatible = "mikrotik,routerboard-952ui-5ac2nd", "qca,qca9533";
|
||||
model = "MikroTik RouterBOARD 952Ui-5ac2nD (hAP ac lite)";
|
||||
};
|
||||
|
||||
&pcie0 {
|
||||
status = "okay";
|
||||
|
||||
wifi@0,0 {
|
||||
compatible = "qcom,ath10k";
|
||||
reg = <0 0 0 0 0>;
|
||||
};
|
||||
};
|
||||
|
||||
98
target/linux/ath79/dts/qca9533_mikrotik_routerboard-95x.dtsi
Normal file
98
target/linux/ath79/dts/qca9533_mikrotik_routerboard-95x.dtsi
Normal file
@@ -0,0 +1,98 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||
|
||||
#include "qca9533_mikrotik_routerboard-16m.dtsi"
|
||||
|
||||
/ {
|
||||
aliases {
|
||||
led-boot = &led_user;
|
||||
led-failsafe = &led_user;
|
||||
led-running = &led_user;
|
||||
led-upgrade = &led_user;
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
led_user: user {
|
||||
label = "green:user";
|
||||
gpios = <&gpio 4 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
port1 {
|
||||
label = "green:port1";
|
||||
gpios = <&gpio_ext 0 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
port2 {
|
||||
label = "green:port2";
|
||||
gpios = <&gpio_ext 1 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
port3 {
|
||||
label = "green:port3";
|
||||
gpios = <&gpio_ext 2 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
port4 {
|
||||
label = "green:port4";
|
||||
gpios = <&gpio_ext 3 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
port5 {
|
||||
label = "green:port5";
|
||||
gpios = <&gpio_ext 4 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
gpio-export {
|
||||
compatible = "gpio-export";
|
||||
|
||||
usb_power {
|
||||
gpio-export,name = "usb-power";
|
||||
gpio-export,output = <1>;
|
||||
gpios = <&gpio_ext 5 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
enable_poe_port5 {
|
||||
gpio-export,name = "enable-poe:port5";
|
||||
gpio-export,output = <0>;
|
||||
gpios = <&gpio 14 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&spi {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pin_spi_cs1>;
|
||||
|
||||
gpio_ext: gpio_ext@1 {
|
||||
compatible = "fairchild,74hc595";
|
||||
reg = <1>;
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
registers-number = <1>;
|
||||
spi-max-frequency = <25000000>;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
&pinmux {
|
||||
pin_spi_cs1: pinmux_spi_cs1 {
|
||||
pinctrl-single,bits = <0x8 0x0a000000 0xff000000>;
|
||||
};
|
||||
};
|
||||
|
||||
ð0 {
|
||||
status = "okay";
|
||||
|
||||
phy-handle = <&swphy4>;
|
||||
};
|
||||
|
||||
&usb0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb_phy {
|
||||
status = "okay";
|
||||
};
|
||||
147
target/linux/ath79/dts/qca9563_tplink_deco-m4r-v1.dts
Normal file
147
target/linux/ath79/dts/qca9563_tplink_deco-m4r-v1.dts
Normal file
@@ -0,0 +1,147 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/input/input.h>
|
||||
|
||||
#include "qca956x.dtsi"
|
||||
|
||||
/ {
|
||||
compatible = "tplink,deco-m4r-v1", "qca,qca9563";
|
||||
model = "TP-Link Deco M4R v1";
|
||||
|
||||
aliases {
|
||||
led-boot = &led_power;
|
||||
led-failsafe = &led_power;
|
||||
led-running = &led_power;
|
||||
led-upgrade = &led_power;
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
wlan2g {
|
||||
label = "red:wlan2g";
|
||||
gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
|
||||
linux,default-trigger = "phy1tpt";
|
||||
};
|
||||
|
||||
led_power: power {
|
||||
label = "green:power";
|
||||
gpios = <&gpio 7 GPIO_ACTIVE_LOW>;
|
||||
default-state = "on";
|
||||
};
|
||||
|
||||
wlan5g {
|
||||
label = "blue:wlan5g";
|
||||
gpios = <&gpio 9 GPIO_ACTIVE_LOW>;
|
||||
linux,default-trigger = "phy0tpt";
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
keys {
|
||||
compatible = "gpio-keys";
|
||||
|
||||
reset {
|
||||
label = "Reset button";
|
||||
linux,code = <KEY_RESTART>;
|
||||
gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
|
||||
debounce-interval = <60>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&pcie {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&mdio0 {
|
||||
status = "okay";
|
||||
phy-mask = <0>;
|
||||
|
||||
phy0: ethernet-phy@0 {
|
||||
reg = <0>;
|
||||
phy-mode = "sgmii";
|
||||
qca,mib-poll-interval = <500>;
|
||||
|
||||
qca,ar8327-initvals = <
|
||||
0x04 0x00080080 /* PORT0 PAD MODE CTRL */
|
||||
0x7c 0x0000007e /* PORT0_STATUS */
|
||||
>;
|
||||
};
|
||||
};
|
||||
|
||||
&spi {
|
||||
status = "okay";
|
||||
num-cs = <1>;
|
||||
|
||||
flash@0 {
|
||||
compatible = "jedec,spi-nor";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <25000000>;
|
||||
|
||||
partitions {
|
||||
compatible = "fixed-partitions";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
uboot: partition@0 {
|
||||
label = "u-boot";
|
||||
reg = <0x000000 0x080000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@80000 {
|
||||
compatible = "denx,uimage";
|
||||
label = "firmware";
|
||||
reg = <0x080000 0xe00000>;
|
||||
};
|
||||
|
||||
partition@e80000 {
|
||||
label = "product-info";
|
||||
reg = <0xe80000 0x05000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
config: partition@e85000 {
|
||||
label = "config";
|
||||
reg = <0xe85000 0x16b000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
art: partition@ff0000 {
|
||||
label = "art";
|
||||
reg = <0xff0000 0x010000>;
|
||||
read-only;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
ð0 {
|
||||
status = "okay";
|
||||
|
||||
phy-mode = "sgmii";
|
||||
phy-handle = <&phy0>;
|
||||
|
||||
nvmem-cells = <&macaddr_config_8>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
|
||||
&wmac {
|
||||
status = "okay";
|
||||
|
||||
mtd-cal-data = <&art 0x1000>;
|
||||
nvmem-cells = <&macaddr_config_8>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
|
||||
&config {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_config_8: macaddr@8 {
|
||||
reg = <0x8 0x6>;
|
||||
};
|
||||
};
|
||||
@@ -49,6 +49,7 @@ ath79_setup_interfaces()
|
||||
netgear,ex6400|\
|
||||
netgear,ex7300|\
|
||||
netgear,ex7300-v2|\
|
||||
netgear,wndap360|\
|
||||
ocedo,koala|\
|
||||
ocedo,raccoon|\
|
||||
onion,omega|\
|
||||
@@ -508,6 +509,10 @@ ath79_setup_interfaces()
|
||||
ucidef_add_switch "switch0" \
|
||||
"0@eth0" "1:lan" "2:lan"
|
||||
;;
|
||||
tplink,deco-m4r-v1)
|
||||
ucidef_add_switch "switch0" \
|
||||
"0@eth0" "3:lan:1" "5:lan:2"
|
||||
;;
|
||||
xiaomi,mi-router-4q|\
|
||||
zbtlink,zbt-wd323)
|
||||
ucidef_set_interface_wan "eth1"
|
||||
|
||||
@@ -152,7 +152,8 @@ case "$FIRMWARE" in
|
||||
"ath9k-eeprom-pci-0000:00:11.0.bin")
|
||||
case $board in
|
||||
buffalo,wzr-600dhp|\
|
||||
buffalo,wzr-hp-ag300h)
|
||||
buffalo,wzr-hp-ag300h|\
|
||||
netgear,wndap360)
|
||||
caldata_extract "art" 0x1000 0xeb8
|
||||
;;
|
||||
dlink,dir-825-b1)
|
||||
@@ -170,7 +171,8 @@ case "$FIRMWARE" in
|
||||
"ath9k-eeprom-pci-0000:00:12.0.bin")
|
||||
case $board in
|
||||
buffalo,wzr-600dhp|\
|
||||
buffalo,wzr-hp-ag300h)
|
||||
buffalo,wzr-hp-ag300h|\
|
||||
netgear,wndap360)
|
||||
caldata_extract "art" 0x5000 0xeb8
|
||||
;;
|
||||
dlink,dir-825-b1)
|
||||
|
||||
@@ -269,6 +269,12 @@ case "$FIRMWARE" in
|
||||
ln -sf /lib/firmware/ath10k/pre-cal-pci-0000\:00\:00.0.bin \
|
||||
/lib/firmware/ath10k/QCA9984/hw1.0/board.bin
|
||||
;;
|
||||
tplink,deco-m4r-v1)
|
||||
caldata_extract "art" 0x5000 0x2f20
|
||||
ath10k_patch_mac $(macaddr_add $(mtd_get_mac_binary config 0x8) -1)
|
||||
ln -sf /lib/firmware/ath10k/pre-cal-pci-0000\:00\:00.0.bin \
|
||||
/lib/firmware/ath10k/QCA9888/hw2.0/board.bin
|
||||
;;
|
||||
yuncore,a782|\
|
||||
yuncore,xd4200)
|
||||
caldata_extract "art" 0x5000 0x2f20
|
||||
|
||||
@@ -456,6 +456,18 @@ define Device/tplink_eap245-v3
|
||||
endef
|
||||
TARGET_DEVICES += tplink_eap245-v3
|
||||
|
||||
define Device/tplink_deco-m4r-v1
|
||||
$(Device/tplink-safeloader-uimage)
|
||||
SOC := qca9563
|
||||
IMAGE_SIZE := 13824k
|
||||
DEVICE_MODEL := Deco M4R
|
||||
DEVICE_VARIANT := v1
|
||||
DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca9888-ct
|
||||
SUPPORTED_DEVICES += deco-m4r-v1
|
||||
TPLINK_BOARD_ID := DECO-M4R-V1
|
||||
endef
|
||||
TARGET_DEVICES += tplink_deco-m4r-v1
|
||||
|
||||
define Device/tplink_re350k-v1
|
||||
$(Device/tplink-safeloader)
|
||||
SOC := qca9558
|
||||
|
||||
@@ -434,6 +434,7 @@ endef
|
||||
define Device/ubnt_unifiac-lite
|
||||
$(Device/ubnt_unifiac)
|
||||
DEVICE_MODEL := UniFi AC Lite
|
||||
DEVICE_PACKAGES += -swconfig
|
||||
SUPPORTED_DEVICES += unifiac-lite
|
||||
endef
|
||||
TARGET_DEVICES += ubnt_unifiac-lite
|
||||
@@ -441,6 +442,7 @@ TARGET_DEVICES += ubnt_unifiac-lite
|
||||
define Device/ubnt_unifiac-lr
|
||||
$(Device/ubnt_unifiac)
|
||||
DEVICE_MODEL := UniFi AC LR
|
||||
DEVICE_PACKAGES += -swconfig
|
||||
SUPPORTED_DEVICES += unifiac-lite ubnt,unifiac-lite
|
||||
endef
|
||||
TARGET_DEVICES += ubnt_unifiac-lr
|
||||
@@ -448,6 +450,7 @@ TARGET_DEVICES += ubnt_unifiac-lr
|
||||
define Device/ubnt_unifiac-mesh
|
||||
$(Device/ubnt_unifiac)
|
||||
DEVICE_MODEL := UniFi AC Mesh
|
||||
DEVICE_PACKAGES += -swconfig
|
||||
SUPPORTED_DEVICES += unifiac-lite
|
||||
endef
|
||||
TARGET_DEVICES += ubnt_unifiac-mesh
|
||||
|
||||
@@ -1642,6 +1642,21 @@ define Device/netgear_ex7300-v2
|
||||
endef
|
||||
TARGET_DEVICES += netgear_ex7300-v2
|
||||
|
||||
define Device/netgear_wndap360
|
||||
$(Device/netgear_generic)
|
||||
SOC := ar7161
|
||||
DEVICE_MODEL := WNDAP360
|
||||
DEVICE_PACKAGES := kmod-leds-reset kmod-owl-loader
|
||||
IMAGE_SIZE := 7744k
|
||||
BLOCKSIZE := 256k
|
||||
KERNEL := kernel-bin | append-dtb | gzip | uImage gzip
|
||||
KERNEL_INITRAMFS := kernel-bin | append-dtb | uImage none
|
||||
IMAGES := sysupgrade.bin
|
||||
IMAGE/sysupgrade.bin := append-kernel | pad-to 64k | append-rootfs | pad-rootfs | \
|
||||
check-size | append-metadata
|
||||
endef
|
||||
TARGET_DEVICES += netgear_wndap360
|
||||
|
||||
define Device/netgear_wndr3x00
|
||||
$(Device/netgear_generic)
|
||||
SOC := ar7161
|
||||
|
||||
@@ -38,6 +38,25 @@ define Device/mikrotik_routerboard-922uags-5hpacd
|
||||
endef
|
||||
TARGET_DEVICES += mikrotik_routerboard-922uags-5hpacd
|
||||
|
||||
define Device/mikrotik_routerboard-951ui-2nd
|
||||
$(Device/mikrotik_nor)
|
||||
SOC := qca9531
|
||||
DEVICE_MODEL := RouterBOARD 951Ui-2nD (hAP)
|
||||
IMAGE_SIZE := 16256k
|
||||
SUPPORTED_DEVICES += rb-951ui-2nd
|
||||
endef
|
||||
TARGET_DEVICES += mikrotik_routerboard-951ui-2nd
|
||||
|
||||
define Device/mikrotik_routerboard-952ui-5ac2nd
|
||||
$(Device/mikrotik_nor)
|
||||
SOC := qca9533
|
||||
DEVICE_MODEL := RouterBOARD 952Ui-5ac2nD (hAP ac lite)
|
||||
DEVICE_PACKAGES += kmod-ath10k-ct-smallbuffers ath10k-firmware-qca9887-ct
|
||||
IMAGE_SIZE := 16256k
|
||||
SUPPORTED_DEVICES += rb-952ui-5ac2nd
|
||||
endef
|
||||
TARGET_DEVICES += mikrotik_routerboard-952ui-5ac2nd
|
||||
|
||||
define Device/mikrotik_routerboard-962uigs-5hact2hnt
|
||||
$(Device/mikrotik_nor)
|
||||
SOC := qca9558
|
||||
|
||||
@@ -334,7 +334,8 @@ TARGET_DEVICES += zte_mf286a
|
||||
define Device/zte_mf286r
|
||||
$(Device/zte_mf286_common)
|
||||
DEVICE_MODEL := MF286R
|
||||
DEVICE_PACKAGES += ath10k-firmware-qca9888-ct kmod-usb-net-rndis kmod-usb-acm
|
||||
DEVICE_PACKAGES += ath10k-firmware-qca9888-ct kmod-usb-net-rndis kmod-usb-acm \
|
||||
comgt-ncm
|
||||
endef
|
||||
TARGET_DEVICES += zte_mf286r
|
||||
|
||||
|
||||
@@ -6,6 +6,14 @@ board_config_update
|
||||
board=$(board_name)
|
||||
|
||||
case "$board" in
|
||||
mikrotik,routerboard-951ui-2nd|\
|
||||
mikrotik,routerboard-952ui-5ac2nd)
|
||||
ucidef_set_led_netdev "port1" "port1" "green:port1" "eth1"
|
||||
ucidef_set_led_switch "port2" "port2" "green:port2" "switch0" "0x10"
|
||||
ucidef_set_led_switch "port3" "port3" "green:port3" "switch0" "0x08"
|
||||
ucidef_set_led_switch "port4" "port4" "green:port4" "switch0" "0x04"
|
||||
ucidef_set_led_switch "port5" "port5" "green:port5" "switch0" "0x02"
|
||||
;;
|
||||
mikrotik,routerboard-lhg-2nd|\
|
||||
mikrotik,routerboard-mapl-2nd|\
|
||||
mikrotik,routerboard-wap-2nd)
|
||||
|
||||
@@ -24,6 +24,12 @@ ath79_setup_interfaces()
|
||||
mikrotik,routerboard-wapr-2nd)
|
||||
ucidef_set_interface_lan "eth0"
|
||||
;;
|
||||
mikrotik,routerboard-951ui-2nd|\
|
||||
mikrotik,routerboard-952ui-5ac2nd)
|
||||
ucidef_set_interface_wan "eth1"
|
||||
ucidef_add_switch "switch0" \
|
||||
"0@eth0" "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1"
|
||||
;;
|
||||
mikrotik,routerboard-962uigs-5hact2hnt)
|
||||
ucidef_add_switch "switch0" \
|
||||
"0@eth0" "2:lan" "3:lan" "4:lan" "5:lan" "1:wan"
|
||||
|
||||
@@ -35,6 +35,10 @@ case "$FIRMWARE" in
|
||||
mikrotik,routerboard-wap-g-5hact2hnd)
|
||||
caldata_mikrotik_ath9k 0x1000 0x440 $(macaddr_add "$mac_base" 2)
|
||||
;;
|
||||
mikrotik,routerboard-951ui-2nd|\
|
||||
mikrotik,routerboard-952ui-5ac2nd)
|
||||
caldata_mikrotik_ath9k 0x1000 0x440 $(macaddr_add "$mac_base" 6)
|
||||
;;
|
||||
mikrotik,routerboard-962uigs-5hact2hnt)
|
||||
caldata_mikrotik_ath9k 0x1000 0x440 $(macaddr_add "$mac_base" 7)
|
||||
;;
|
||||
|
||||
@@ -12,6 +12,8 @@ case "$FIRMWARE" in
|
||||
"ath10k/cal-pci-0000:00:00.0.bin")
|
||||
case $board in
|
||||
mikrotik,routerboard-921gs-5hpacd-15s|\
|
||||
mikrotik,routerboard-951ui-2nd|\
|
||||
mikrotik,routerboard-952ui-5ac2nd|\
|
||||
mikrotik,routerboard-962uigs-5hact2hnt|\
|
||||
mikrotik,routerboard-wap-g-5hact2hnd)
|
||||
caldata_sysfsload_from_file $wlan_data 0x5000 0x844
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
#
|
||||
# Copyright (C) 2022 OpenWrt.org
|
||||
#
|
||||
|
||||
. /lib/functions/uci-defaults.sh
|
||||
|
||||
board_config_update
|
||||
|
||||
board=$(board_name)
|
||||
|
||||
case "$board" in
|
||||
zte,mf286a|\
|
||||
zte,mf286r)
|
||||
ucidef_add_gpio_switch "power_btn_block" "Power button blocker" "20" "0"
|
||||
;;
|
||||
esac
|
||||
|
||||
board_config_flush
|
||||
|
||||
exit 0
|
||||
@@ -0,0 +1,27 @@
|
||||
From c70282457c380db7deb57c81a6894debc8f88efa Mon Sep 17 00:00:00 2001
|
||||
From: Oskari Lemmela <oskari@lemmela.net>
|
||||
Date: Wed, 22 Dec 2021 07:59:58 +0200
|
||||
Subject: [PATCH] spi: ar934x: fix transfer and word delays
|
||||
|
||||
Add missing delay between transferred messages and words.
|
||||
|
||||
Signed-off-by: Oskari Lemmela <oskari@lemmela.net>
|
||||
Link: https://lore.kernel.org/r/20211222055958.1383233-3-oskari@lemmela.net
|
||||
Signed-off-by: Mark Brown <broonie@kernel.org>
|
||||
---
|
||||
drivers/spi/spi-ar934x.c | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
--- a/drivers/spi/spi-ar934x.c
|
||||
+++ b/drivers/spi/spi-ar934x.c
|
||||
@@ -137,8 +137,10 @@ static int ar934x_spi_transfer_one_messa
|
||||
reg >>= 8;
|
||||
}
|
||||
}
|
||||
+ spi_delay_exec(&t->word_delay, t);
|
||||
}
|
||||
m->actual_length += t->len;
|
||||
+ spi_transfer_delay_exec(t);
|
||||
}
|
||||
|
||||
msg_done:
|
||||
@@ -0,0 +1,62 @@
|
||||
From ebe33e5a98dcf14a9630845f3f10c193584ac054 Mon Sep 17 00:00:00 2001
|
||||
From: Oskari Lemmela <oskari@lemmela.net>
|
||||
Date: Wed, 22 Dec 2021 07:59:57 +0200
|
||||
Subject: [PATCH] spi: ar934x: fix transfer size
|
||||
|
||||
If bits_per_word is configured, transfer only word amount
|
||||
of data per iteration.
|
||||
|
||||
Signed-off-by: Oskari Lemmela <oskari@lemmela.net>
|
||||
Link: https://lore.kernel.org/r/20211222055958.1383233-2-oskari@lemmela.net
|
||||
Signed-off-by: Mark Brown <broonie@kernel.org>
|
||||
---
|
||||
drivers/spi/spi-ar934x.c | 16 +++++++++++-----
|
||||
1 file changed, 11 insertions(+), 5 deletions(-)
|
||||
|
||||
--- a/drivers/spi/spi-ar934x.c
|
||||
+++ b/drivers/spi/spi-ar934x.c
|
||||
@@ -82,7 +82,7 @@ static int ar934x_spi_transfer_one_messa
|
||||
struct spi_device *spi = m->spi;
|
||||
unsigned long trx_done, trx_cur;
|
||||
int stat = 0;
|
||||
- u8 term = 0;
|
||||
+ u8 bpw, term = 0;
|
||||
int div, i;
|
||||
u32 reg;
|
||||
const u8 *tx_buf;
|
||||
@@ -90,6 +90,11 @@ static int ar934x_spi_transfer_one_messa
|
||||
|
||||
m->actual_length = 0;
|
||||
list_for_each_entry(t, &m->transfers, transfer_list) {
|
||||
+ if (t->bits_per_word >= 8 && t->bits_per_word < 32)
|
||||
+ bpw = t->bits_per_word >> 3;
|
||||
+ else
|
||||
+ bpw = 4;
|
||||
+
|
||||
if (t->speed_hz)
|
||||
div = ar934x_spi_clk_div(sp, t->speed_hz);
|
||||
else
|
||||
@@ -105,10 +110,10 @@ static int ar934x_spi_transfer_one_messa
|
||||
iowrite32(reg, sp->base + AR934X_SPI_REG_CTRL);
|
||||
iowrite32(0, sp->base + AR934X_SPI_DATAOUT);
|
||||
|
||||
- for (trx_done = 0; trx_done < t->len; trx_done += 4) {
|
||||
+ for (trx_done = 0; trx_done < t->len; trx_done += bpw) {
|
||||
trx_cur = t->len - trx_done;
|
||||
- if (trx_cur > 4)
|
||||
- trx_cur = 4;
|
||||
+ if (trx_cur > bpw)
|
||||
+ trx_cur = bpw;
|
||||
else if (list_is_last(&t->transfer_list, &m->transfers))
|
||||
term = 1;
|
||||
|
||||
@@ -193,7 +198,8 @@ static int ar934x_spi_probe(struct platf
|
||||
ctlr->mode_bits = SPI_LSB_FIRST;
|
||||
ctlr->setup = ar934x_spi_setup;
|
||||
ctlr->transfer_one_message = ar934x_spi_transfer_one_message;
|
||||
- ctlr->bits_per_word_mask = SPI_BPW_MASK(8);
|
||||
+ ctlr->bits_per_word_mask = SPI_BPW_MASK(32) | SPI_BPW_MASK(24) |
|
||||
+ SPI_BPW_MASK(16) | SPI_BPW_MASK(8);
|
||||
ctlr->dev.of_node = pdev->dev.of_node;
|
||||
ctlr->num_chipselect = 3;
|
||||
|
||||
@@ -14,13 +14,13 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
|
||||
--- a/drivers/net/mdio/mdio-bitbang.c
|
||||
+++ b/drivers/net/mdio/mdio-bitbang.c
|
||||
@@ -14,6 +14,7 @@
|
||||
* Vitaly Bordug <vbordug@ru.mvista.com>
|
||||
@@ -15,6 +15,7 @@
|
||||
*/
|
||||
|
||||
#include <linux/delay.h>
|
||||
+#include <linux/irqflags.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/mdio-bitbang.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/types.h>
|
||||
@@ -153,7 +154,9 @@ static int mdiobb_read(struct mii_bus *b
|
||||
{
|
||||
|
||||
@@ -305,7 +305,7 @@
|
||||
list_for_each_entry(p, head, list) {
|
||||
--- a/net/ipv4/tcp_output.c
|
||||
+++ b/net/ipv4/tcp_output.c
|
||||
@@ -611,48 +611,53 @@ static void tcp_options_write(__be32 *pt
|
||||
@@ -612,48 +612,53 @@ static void tcp_options_write(__be32 *pt
|
||||
u16 options = opts->options; /* mungable copy */
|
||||
|
||||
if (unlikely(OPTION_MD5 & options)) {
|
||||
@@ -382,7 +382,7 @@
|
||||
}
|
||||
|
||||
if (unlikely(opts->num_sack_blocks)) {
|
||||
@@ -660,16 +665,17 @@ static void tcp_options_write(__be32 *pt
|
||||
@@ -661,16 +666,17 @@ static void tcp_options_write(__be32 *pt
|
||||
tp->duplicate_sack : tp->selective_acks;
|
||||
int this_sack;
|
||||
|
||||
@@ -406,7 +406,7 @@
|
||||
}
|
||||
|
||||
tp->rx_opt.dsack = 0;
|
||||
@@ -682,13 +688,14 @@ static void tcp_options_write(__be32 *pt
|
||||
@@ -683,13 +689,14 @@ static void tcp_options_write(__be32 *pt
|
||||
|
||||
if (foc->exp) {
|
||||
len = TCPOLEN_EXP_FASTOPEN_BASE + foc->len;
|
||||
@@ -706,7 +706,7 @@
|
||||
EXPORT_SYMBOL(xfrm_parse_spi);
|
||||
--- a/net/ipv4/tcp_input.c
|
||||
+++ b/net/ipv4/tcp_input.c
|
||||
@@ -4083,14 +4083,16 @@ static bool tcp_parse_aligned_timestamp(
|
||||
@@ -4084,14 +4084,16 @@ static bool tcp_parse_aligned_timestamp(
|
||||
{
|
||||
const __be32 *ptr = (const __be32 *)(th + 1);
|
||||
|
||||
@@ -799,7 +799,7 @@
|
||||
*sum = csum_fold(csum_partial(diff, sizeof(diff),
|
||||
--- a/include/linux/etherdevice.h
|
||||
+++ b/include/linux/etherdevice.h
|
||||
@@ -500,7 +500,7 @@ static inline bool is_etherdev_addr(cons
|
||||
@@ -499,7 +499,7 @@ static inline bool is_etherdev_addr(cons
|
||||
* @b: Pointer to Ethernet header
|
||||
*
|
||||
* Compare two Ethernet headers, returns 0 if equal.
|
||||
@@ -808,7 +808,7 @@
|
||||
* aligned OR the platform can handle unaligned access. This is the
|
||||
* case for all packets coming into netif_receive_skb or similar
|
||||
* entry points.
|
||||
@@ -523,11 +523,12 @@ static inline unsigned long compare_ethe
|
||||
@@ -522,11 +522,12 @@ static inline unsigned long compare_ethe
|
||||
fold |= *(unsigned long *)(a + 6) ^ *(unsigned long *)(b + 6);
|
||||
return fold;
|
||||
#else
|
||||
|
||||
@@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk
|
||||
ARCH:=arm
|
||||
BOARD:=bcm27xx
|
||||
BOARDNAME:=Broadcom BCM27xx
|
||||
FEATURES:=ext4 audio usb usbgadget display gpio fpu squashfs rootfs-part boot-part
|
||||
FEATURES:=audio boot-part display ext4 fpu gpio rootfs-part rtc squashfs usb usbgadget
|
||||
SUBTARGETS:=bcm2708 bcm2709 bcm2710 bcm2711
|
||||
|
||||
KERNEL_PATCHVER=5.10
|
||||
|
||||
@@ -18,7 +18,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
|
||||
--- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
|
||||
+++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
|
||||
@@ -2597,7 +2597,7 @@ static void bcmgenet_init_tx_ring(struct
|
||||
@@ -2604,7 +2604,7 @@ static void bcmgenet_init_tx_ring(struct
|
||||
|
||||
bcmgenet_tdma_ring_writel(priv, index, 0, TDMA_PROD_INDEX);
|
||||
bcmgenet_tdma_ring_writel(priv, index, 0, TDMA_CONS_INDEX);
|
||||
@@ -27,7 +27,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
/* Disable rate control for now */
|
||||
bcmgenet_tdma_ring_writel(priv, index, flow_period_val,
|
||||
TDMA_FLOW_PERIOD);
|
||||
@@ -4062,9 +4062,12 @@ static int bcmgenet_probe(struct platfor
|
||||
@@ -4069,9 +4069,12 @@ static int bcmgenet_probe(struct platfor
|
||||
netif_set_real_num_rx_queues(priv->dev, priv->hw_params->rx_queues + 1);
|
||||
|
||||
/* Set default coalescing parameters */
|
||||
|
||||
@@ -15,7 +15,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
||||
|
||||
--- a/drivers/usb/host/xhci.c
|
||||
+++ b/drivers/usb/host/xhci.c
|
||||
@@ -1472,6 +1472,103 @@ command_cleanup:
|
||||
@@ -1483,6 +1483,103 @@ command_cleanup:
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -119,7 +119,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
||||
* non-error returns are a promise to giveback() the urb later
|
||||
* we drop ownership so next owner (or urb unlink) can get it
|
||||
*/
|
||||
@@ -5378,6 +5475,7 @@ static const struct hc_driver xhci_hc_dr
|
||||
@@ -5389,6 +5486,7 @@ static const struct hc_driver xhci_hc_dr
|
||||
.endpoint_reset = xhci_endpoint_reset,
|
||||
.check_bandwidth = xhci_check_bandwidth,
|
||||
.reset_bandwidth = xhci_reset_bandwidth,
|
||||
|
||||
@@ -37,7 +37,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
|
||||
static inline void bcmgenet_writel(u32 value, void __iomem *offset)
|
||||
{
|
||||
@@ -2428,6 +2431,11 @@ static void reset_umac(struct bcmgenet_p
|
||||
@@ -2435,6 +2438,11 @@ static void reset_umac(struct bcmgenet_p
|
||||
bcmgenet_rbuf_ctrl_set(priv, 0);
|
||||
udelay(10);
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
|
||||
--- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
|
||||
+++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
|
||||
@@ -3246,7 +3246,7 @@ static void bcmgenet_get_hw_addr(struct
|
||||
@@ -3253,7 +3253,7 @@ static void bcmgenet_get_hw_addr(struct
|
||||
}
|
||||
|
||||
/* Returns a reusable dma control register value */
|
||||
@@ -33,7 +33,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
{
|
||||
unsigned int i;
|
||||
u32 reg;
|
||||
@@ -3271,6 +3271,14 @@ static u32 bcmgenet_dma_disable(struct b
|
||||
@@ -3278,6 +3278,14 @@ static u32 bcmgenet_dma_disable(struct b
|
||||
udelay(10);
|
||||
bcmgenet_umac_writel(priv, 0, UMAC_TX_FLUSH);
|
||||
|
||||
@@ -48,7 +48,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
return dma_ctrl;
|
||||
}
|
||||
|
||||
@@ -3334,8 +3342,8 @@ static int bcmgenet_open(struct net_devi
|
||||
@@ -3341,8 +3349,8 @@ static int bcmgenet_open(struct net_devi
|
||||
|
||||
bcmgenet_set_hw_addr(priv, dev->dev_addr);
|
||||
|
||||
@@ -59,7 +59,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
|
||||
/* Reinitialize TDMA and RDMA and SW housekeeping */
|
||||
ret = bcmgenet_init_dma(priv);
|
||||
@@ -4191,7 +4199,7 @@ static int bcmgenet_resume(struct device
|
||||
@@ -4198,7 +4206,7 @@ static int bcmgenet_resume(struct device
|
||||
bcmgenet_hfb_create_rxnfc_filter(priv, rule);
|
||||
|
||||
/* Disable RX/TX DMA and flush TX queues */
|
||||
|
||||
@@ -22,7 +22,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
|
||||
--- a/drivers/usb/host/xhci-pci.c
|
||||
+++ b/drivers/usb/host/xhci-pci.c
|
||||
@@ -291,6 +291,7 @@ static void xhci_pci_quirks(struct devic
|
||||
@@ -293,6 +293,7 @@ static void xhci_pci_quirks(struct devic
|
||||
if (pdev->vendor == PCI_VENDOR_ID_VIA && pdev->device == 0x3483) {
|
||||
xhci->quirks |= XHCI_LPM_SUPPORT;
|
||||
xhci->quirks |= XHCI_EP_CTX_BROKEN_DCS;
|
||||
|
||||
@@ -16,7 +16,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
|
||||
--- a/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c
|
||||
+++ b/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c
|
||||
@@ -299,6 +299,7 @@ static int rpi_touchscreen_enable(struct
|
||||
@@ -299,6 +299,7 @@ static int rpi_touchscreen_prepare(struc
|
||||
int i;
|
||||
|
||||
rpi_touchscreen_i2c_write(ts, REG_POWERON, 1);
|
||||
|
||||
@@ -201,7 +201,7 @@ Link: https://patchwork.freedesktop.org/patch/msgid/20201028123222.1732139-1-max
|
||||
|
||||
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
|
||||
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
|
||||
@@ -5605,17 +5605,19 @@ static void dm_update_crtc_active_planes
|
||||
@@ -5606,17 +5606,19 @@ static void dm_update_crtc_active_planes
|
||||
}
|
||||
|
||||
static int dm_crtc_helper_atomic_check(struct drm_crtc *crtc,
|
||||
@@ -225,7 +225,7 @@ Link: https://patchwork.freedesktop.org/patch/msgid/20201028123222.1732139-1-max
|
||||
WARN_ON(1);
|
||||
return ret;
|
||||
}
|
||||
@@ -5626,8 +5628,8 @@ static int dm_crtc_helper_atomic_check(s
|
||||
@@ -5627,8 +5629,8 @@ static int dm_crtc_helper_atomic_check(s
|
||||
* planes are disabled, which is not supported by the hardware. And there is legacy
|
||||
* userspace which stops using the HW cursor altogether in response to the resulting EINVAL.
|
||||
*/
|
||||
|
||||
@@ -22,7 +22,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
|
||||
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
|
||||
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
|
||||
@@ -6531,9 +6531,7 @@ void amdgpu_dm_connector_init_helper(str
|
||||
@@ -6532,9 +6532,7 @@ void amdgpu_dm_connector_init_helper(str
|
||||
if (connector_type == DRM_MODE_CONNECTOR_HDMIA ||
|
||||
connector_type == DRM_MODE_CONNECTOR_DisplayPort ||
|
||||
connector_type == DRM_MODE_CONNECTOR_eDP) {
|
||||
|
||||
@@ -21,7 +21,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
|
||||
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
|
||||
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
|
||||
@@ -5476,25 +5476,6 @@ static int fill_hdr_info_packet(const st
|
||||
@@ -5477,25 +5477,6 @@ static int fill_hdr_info_packet(const st
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -47,7 +47,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
static int
|
||||
amdgpu_dm_connector_atomic_check(struct drm_connector *conn,
|
||||
struct drm_atomic_state *state)
|
||||
@@ -5510,7 +5491,7 @@ amdgpu_dm_connector_atomic_check(struct
|
||||
@@ -5511,7 +5492,7 @@ amdgpu_dm_connector_atomic_check(struct
|
||||
if (!crtc)
|
||||
return 0;
|
||||
|
||||
|
||||
@@ -66,7 +66,7 @@ Link: https://patchwork.freedesktop.org/patch/msgid/20201203132543.861591-5-maxi
|
||||
struct vc4_dsi_encoder {
|
||||
@@ -837,7 +848,7 @@ static void vc4_dsi_encoder_enable(struc
|
||||
|
||||
ret = pm_runtime_get_sync(dev);
|
||||
ret = pm_runtime_resume_and_get(dev);
|
||||
if (ret) {
|
||||
- DRM_ERROR("Failed to runtime PM enable on DSI%d\n", dsi->port);
|
||||
+ DRM_ERROR("Failed to runtime PM enable on DSI%d\n", dsi->variant->port);
|
||||
|
||||
@@ -42,7 +42,7 @@ Link: https://patchwork.freedesktop.org/patch/msgid/20201211114237.213288-2-tomi
|
||||
|
||||
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
|
||||
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
|
||||
@@ -4992,7 +4992,6 @@ static void dm_disable_vblank(struct drm
|
||||
@@ -4993,7 +4993,6 @@ static void dm_disable_vblank(struct drm
|
||||
static const struct drm_crtc_funcs amdgpu_dm_crtc_funcs = {
|
||||
.reset = dm_crtc_reset_state,
|
||||
.destroy = amdgpu_dm_crtc_destroy,
|
||||
|
||||
@@ -26,7 +26,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
|
||||
--- a/drivers/usb/host/xhci-ring.c
|
||||
+++ b/drivers/usb/host/xhci-ring.c
|
||||
@@ -4268,9 +4268,9 @@ void xhci_queue_new_dequeue_state(struct
|
||||
@@ -4270,9 +4270,9 @@ void xhci_queue_new_dequeue_state(struct
|
||||
}
|
||||
ep = &xhci->devs[slot_id]->eps[ep_index];
|
||||
if ((ep->ep_state & SET_DEQ_PENDING)) {
|
||||
|
||||
@@ -8,7 +8,7 @@ define Profile/Default
|
||||
PRIORITY:=1
|
||||
endef
|
||||
|
||||
define Profile/Default/description
|
||||
define Profile/Default/Description
|
||||
Package set compatible with most boards.
|
||||
endef
|
||||
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
From: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
Date: Sat, 17 Jul 2021 10:10:29 +0200
|
||||
Subject: [PATCH] netfilter: flowtable: avoid possible false sharing
|
||||
|
||||
The flowtable follows the same timeout approach as conntrack, use the
|
||||
same idiom as in cc16921351d8 ("netfilter: conntrack: avoid same-timeout
|
||||
update") but also include the fix provided by e37542ba111f ("netfilter:
|
||||
conntrack: avoid possible false sharing").
|
||||
|
||||
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
---
|
||||
|
||||
--- a/net/netfilter/nf_flow_table_core.c
|
||||
+++ b/net/netfilter/nf_flow_table_core.c
|
||||
@@ -328,7 +328,11 @@ EXPORT_SYMBOL_GPL(flow_offload_add);
|
||||
void flow_offload_refresh(struct nf_flowtable *flow_table,
|
||||
struct flow_offload *flow)
|
||||
{
|
||||
- flow->timeout = nf_flowtable_time_stamp + flow_offload_get_timeout(flow);
|
||||
+ u32 timeout;
|
||||
+
|
||||
+ timeout = nf_flowtable_time_stamp + flow_offload_get_timeout(flow);
|
||||
+ if (READ_ONCE(flow->timeout) != timeout)
|
||||
+ WRITE_ONCE(flow->timeout, timeout);
|
||||
|
||||
if (likely(!nf_flowtable_hw_offload(flow_table)))
|
||||
return;
|
||||
@@ -137,7 +137,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
static int
|
||||
mt7530_setup(struct dsa_switch *ds)
|
||||
{
|
||||
@@ -1675,6 +1779,12 @@ mt7530_setup(struct dsa_switch *ds)
|
||||
@@ -1676,6 +1780,12 @@ mt7530_setup(struct dsa_switch *ds)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
|
||||
--- a/drivers/net/dsa/mt7530.c
|
||||
+++ b/drivers/net/dsa/mt7530.c
|
||||
@@ -2371,6 +2371,17 @@ static void mt753x_phylink_mac_link_up(s
|
||||
@@ -2372,6 +2372,17 @@ static void mt753x_phylink_mac_link_up(s
|
||||
mcr |= PMCR_RX_FC_EN;
|
||||
}
|
||||
|
||||
@@ -35,7 +35,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
mt7530_set(priv, MT7530_PMCR_P(port), mcr);
|
||||
}
|
||||
|
||||
@@ -2601,6 +2612,36 @@ mt753x_phy_write(struct dsa_switch *ds,
|
||||
@@ -2602,6 +2613,36 @@ mt753x_phy_write(struct dsa_switch *ds,
|
||||
return priv->info->phy_write(ds, port, regnum, val);
|
||||
}
|
||||
|
||||
@@ -72,7 +72,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
static const struct dsa_switch_ops mt7530_switch_ops = {
|
||||
.get_tag_protocol = mtk_get_tag_protocol,
|
||||
.setup = mt753x_setup,
|
||||
@@ -2629,6 +2670,8 @@ static const struct dsa_switch_ops mt753
|
||||
@@ -2630,6 +2671,8 @@ static const struct dsa_switch_ops mt753
|
||||
.phylink_mac_an_restart = mt753x_phylink_mac_an_restart,
|
||||
.phylink_mac_link_down = mt753x_phylink_mac_link_down,
|
||||
.phylink_mac_link_up = mt753x_phylink_mac_link_up,
|
||||
|
||||
@@ -423,7 +423,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
if (bgmac->irq < 0)
|
||||
--- a/drivers/net/ethernet/cadence/macb_main.c
|
||||
+++ b/drivers/net/ethernet/cadence/macb_main.c
|
||||
@@ -4479,7 +4479,6 @@ static int macb_probe(struct platform_de
|
||||
@@ -4487,7 +4487,6 @@ static int macb_probe(struct platform_de
|
||||
struct net_device *dev;
|
||||
struct resource *regs;
|
||||
void __iomem *mem;
|
||||
@@ -431,7 +431,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
struct macb *bp;
|
||||
int err, val;
|
||||
|
||||
@@ -4592,15 +4591,11 @@ static int macb_probe(struct platform_de
|
||||
@@ -4600,15 +4599,11 @@ static int macb_probe(struct platform_de
|
||||
if (bp->caps & MACB_CAPS_NEEDS_RSTONUBR)
|
||||
bp->rx_intr_mask |= MACB_BIT(RXUBR);
|
||||
|
||||
@@ -1294,7 +1294,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
|
||||
--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c
|
||||
+++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c
|
||||
@@ -398,7 +398,7 @@ static int socfpga_dwmac_probe(struct pl
|
||||
@@ -397,7 +397,7 @@ static int socfpga_dwmac_probe(struct pl
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
@@ -1327,7 +1327,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
|
||||
--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c
|
||||
+++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c
|
||||
@@ -1202,7 +1202,7 @@ static int sun8i_dwmac_probe(struct plat
|
||||
@@ -1203,7 +1203,7 @@ static int sun8i_dwmac_probe(struct plat
|
||||
if (ret)
|
||||
return -EINVAL;
|
||||
|
||||
@@ -1478,7 +1478,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
if (ret)
|
||||
--- a/drivers/net/ethernet/ti/cpsw_new.c
|
||||
+++ b/drivers/net/ethernet/ti/cpsw_new.c
|
||||
@@ -1267,7 +1267,6 @@ static int cpsw_probe_dt(struct cpsw_com
|
||||
@@ -1269,7 +1269,6 @@ static int cpsw_probe_dt(struct cpsw_com
|
||||
|
||||
for_each_child_of_node(tmp_node, port_np) {
|
||||
struct cpsw_slave_data *slave_data;
|
||||
@@ -1486,7 +1486,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
u32 port_id;
|
||||
|
||||
ret = of_property_read_u32(port_np, "reg", &port_id);
|
||||
@@ -1326,10 +1325,8 @@ static int cpsw_probe_dt(struct cpsw_com
|
||||
@@ -1328,10 +1327,8 @@ static int cpsw_probe_dt(struct cpsw_com
|
||||
goto err_node_put;
|
||||
}
|
||||
|
||||
@@ -1641,7 +1641,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
lp->coalesce_count_tx = XAXIDMA_DFT_TX_THRESHOLD;
|
||||
--- a/drivers/net/ethernet/xilinx/xilinx_emaclite.c
|
||||
+++ b/drivers/net/ethernet/xilinx/xilinx_emaclite.c
|
||||
@@ -1113,7 +1113,6 @@ static int xemaclite_of_probe(struct pla
|
||||
@@ -1122,7 +1122,6 @@ static int xemaclite_of_probe(struct pla
|
||||
struct net_device *ndev = NULL;
|
||||
struct net_local *lp = NULL;
|
||||
struct device *dev = &ofdev->dev;
|
||||
@@ -1649,7 +1649,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
|
||||
int rc = 0;
|
||||
|
||||
@@ -1155,12 +1154,9 @@ static int xemaclite_of_probe(struct pla
|
||||
@@ -1164,12 +1163,9 @@ static int xemaclite_of_probe(struct pla
|
||||
lp->next_rx_buf_to_use = 0x0;
|
||||
lp->tx_ping_pong = get_bool(ofdev, "xlnx,tx-ping-pong");
|
||||
lp->rx_ping_pong = get_bool(ofdev, "xlnx,rx-ping-pong");
|
||||
|
||||
@@ -73,7 +73,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
static void
|
||||
mt7530_stp_state_set(struct dsa_switch *ds, int port, u8 state)
|
||||
{
|
||||
@@ -2652,6 +2699,8 @@ static const struct dsa_switch_ops mt753
|
||||
@@ -2653,6 +2700,8 @@ static const struct dsa_switch_ops mt753
|
||||
.get_sset_count = mt7530_get_sset_count,
|
||||
.port_enable = mt7530_port_enable,
|
||||
.port_disable = mt7530_port_disable,
|
||||
|
||||
@@ -26,7 +26,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
|
||||
if (priv->id == ID_MT7530) {
|
||||
regulator_set_voltage(priv->core_pwr, 1000000, 1000000);
|
||||
@@ -1947,6 +1948,7 @@ mt7531_setup(struct dsa_switch *ds)
|
||||
@@ -1948,6 +1949,7 @@ mt7531_setup(struct dsa_switch *ds)
|
||||
}
|
||||
|
||||
ds->configure_vlan_while_not_filtering = true;
|
||||
|
||||
@@ -67,7 +67,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
static void mt7530_setup_port5(struct dsa_switch *ds, phy_interface_t interface)
|
||||
{
|
||||
struct mt7530_priv *priv = ds->priv;
|
||||
@@ -2699,6 +2739,7 @@ static const struct dsa_switch_ops mt753
|
||||
@@ -2700,6 +2740,7 @@ static const struct dsa_switch_ops mt753
|
||||
.phy_write = mt753x_phy_write,
|
||||
.get_ethtool_stats = mt7530_get_ethtool_stats,
|
||||
.get_sset_count = mt7530_get_sset_count,
|
||||
|
||||
@@ -14,7 +14,7 @@ Signed-off-by: DENG Qingfang <dqfext@gmail.com>
|
||||
|
||||
--- a/drivers/net/dsa/mt7530.c
|
||||
+++ b/drivers/net/dsa/mt7530.c
|
||||
@@ -1000,9 +1000,6 @@ mt753x_cpu_port_enable(struct dsa_switch
|
||||
@@ -998,9 +998,6 @@ mt753x_cpu_port_enable(struct dsa_switch
|
||||
mt7530_write(priv, MT7530_PVC_P(port),
|
||||
PORT_SPEC_TAG);
|
||||
|
||||
@@ -24,7 +24,7 @@ Signed-off-by: DENG Qingfang <dqfext@gmail.com>
|
||||
/* Set CPU port number */
|
||||
if (priv->id == ID_MT7621)
|
||||
mt7530_rmw(priv, MT7530_MFC, CPU_MASK, CPU_EN | CPU_PORT(port));
|
||||
@@ -1138,6 +1135,20 @@ mt7530_stp_state_set(struct dsa_switch *
|
||||
@@ -1131,6 +1128,20 @@ mt7530_stp_state_set(struct dsa_switch *
|
||||
}
|
||||
|
||||
static int
|
||||
@@ -45,7 +45,7 @@ Signed-off-by: DENG Qingfang <dqfext@gmail.com>
|
||||
mt7530_port_bridge_join(struct dsa_switch *ds, int port,
|
||||
struct net_device *bridge)
|
||||
{
|
||||
@@ -1357,6 +1368,63 @@ err:
|
||||
@@ -1331,6 +1342,63 @@ err:
|
||||
}
|
||||
|
||||
static int
|
||||
@@ -109,7 +109,7 @@ Signed-off-by: DENG Qingfang <dqfext@gmail.com>
|
||||
mt7530_vlan_cmd(struct mt7530_priv *priv, enum mt7530_vlan_cmd cmd, u16 vid)
|
||||
{
|
||||
struct mt7530_dummy_poll p;
|
||||
@@ -2794,11 +2862,15 @@ static const struct dsa_switch_ops mt753
|
||||
@@ -2746,11 +2814,15 @@ static const struct dsa_switch_ops mt753
|
||||
.port_change_mtu = mt7530_port_change_mtu,
|
||||
.port_max_mtu = mt7530_port_max_mtu,
|
||||
.port_stp_state_set = mt7530_stp_state_set,
|
||||
|
||||
@@ -27,7 +27,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
#include <linux/of_mdio.h>
|
||||
#include <linux/of_net.h>
|
||||
#include <linux/of_platform.h>
|
||||
@@ -602,18 +603,14 @@ mt7530_mib_reset(struct dsa_switch *ds)
|
||||
@@ -600,18 +601,14 @@ mt7530_mib_reset(struct dsa_switch *ds)
|
||||
mt7530_write(priv, MT7530_MIB_CCR, CCR_MIB_ACTIVATE);
|
||||
}
|
||||
|
||||
@@ -48,7 +48,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
return mdiobus_write_nested(priv->bus, port, regnum, val);
|
||||
}
|
||||
|
||||
@@ -791,9 +788,8 @@ out:
|
||||
@@ -789,9 +786,8 @@ out:
|
||||
}
|
||||
|
||||
static int
|
||||
@@ -59,7 +59,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
int devad;
|
||||
int ret;
|
||||
|
||||
@@ -809,10 +805,9 @@ mt7531_ind_phy_read(struct dsa_switch *d
|
||||
@@ -807,10 +803,9 @@ mt7531_ind_phy_read(struct dsa_switch *d
|
||||
}
|
||||
|
||||
static int
|
||||
@@ -71,7 +71,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
int devad;
|
||||
int ret;
|
||||
|
||||
@@ -828,6 +823,22 @@ mt7531_ind_phy_write(struct dsa_switch *
|
||||
@@ -826,6 +821,22 @@ mt7531_ind_phy_write(struct dsa_switch *
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -94,7 +94,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
static void
|
||||
mt7530_get_strings(struct dsa_switch *ds, int port, u32 stringset,
|
||||
uint8_t *data)
|
||||
@@ -1824,6 +1835,210 @@ mt7530_setup_gpio(struct mt7530_priv *pr
|
||||
@@ -1793,6 +1804,210 @@ mt7530_setup_gpio(struct mt7530_priv *pr
|
||||
return devm_gpiochip_add_data(dev, gc, priv);
|
||||
}
|
||||
|
||||
@@ -305,7 +305,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
static int
|
||||
mt7530_setup(struct dsa_switch *ds)
|
||||
{
|
||||
@@ -2798,24 +3013,20 @@ static int
|
||||
@@ -2750,24 +2965,20 @@ static int
|
||||
mt753x_setup(struct dsa_switch *ds)
|
||||
{
|
||||
struct mt7530_priv *priv = ds->priv;
|
||||
@@ -340,7 +340,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
}
|
||||
|
||||
static int mt753x_get_mac_eee(struct dsa_switch *ds, int port,
|
||||
@@ -2852,8 +3063,6 @@ static const struct dsa_switch_ops mt753
|
||||
@@ -2804,8 +3015,6 @@ static const struct dsa_switch_ops mt753
|
||||
.get_tag_protocol = mtk_get_tag_protocol,
|
||||
.setup = mt753x_setup,
|
||||
.get_strings = mt7530_get_strings,
|
||||
@@ -349,7 +349,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
.get_ethtool_stats = mt7530_get_ethtool_stats,
|
||||
.get_sset_count = mt7530_get_sset_count,
|
||||
.set_ageing_time = mt7530_set_ageing_time,
|
||||
@@ -3036,6 +3245,9 @@ mt7530_remove(struct mdio_device *mdiode
|
||||
@@ -2988,6 +3197,9 @@ mt7530_remove(struct mdio_device *mdiode
|
||||
dev_err(priv->dev, "Failed to disable io pwr: %d\n",
|
||||
ret);
|
||||
|
||||
@@ -369,7 +369,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
#define MT7530_CPU_PORT 6
|
||||
#define MT7530_NUM_FDB_RECORDS 2048
|
||||
#define MT7530_ALL_MEMBERS 0xff
|
||||
@@ -401,6 +402,12 @@ enum mt7531_sgmii_force_duplex {
|
||||
@@ -392,6 +393,12 @@ enum mt7531_sgmii_force_duplex {
|
||||
#define SYS_CTRL_SW_RST BIT(1)
|
||||
#define SYS_CTRL_REG_RST BIT(0)
|
||||
|
||||
@@ -382,7 +382,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
/* Register for PHY Indirect Access Control */
|
||||
#define MT7531_PHY_IAC 0x701C
|
||||
#define MT7531_PHY_ACS_ST BIT(31)
|
||||
@@ -722,6 +729,8 @@ static const char *p5_intf_modes(unsigne
|
||||
@@ -713,6 +720,8 @@ static const char *p5_intf_modes(unsigne
|
||||
}
|
||||
}
|
||||
|
||||
@@ -391,7 +391,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
/* struct mt753x_info - This is the main data structure for holding the specific
|
||||
* part for each supported device
|
||||
* @sw_setup: Holding the handler to a device initialization
|
||||
@@ -746,8 +755,8 @@ struct mt753x_info {
|
||||
@@ -737,8 +746,8 @@ struct mt753x_info {
|
||||
enum mt753x_id id;
|
||||
|
||||
int (*sw_setup)(struct dsa_switch *ds);
|
||||
@@ -402,7 +402,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
int (*pad_setup)(struct dsa_switch *ds, phy_interface_t interface);
|
||||
int (*cpu_port_config)(struct dsa_switch *ds, int port);
|
||||
bool (*phy_mode_supported)(struct dsa_switch *ds, int port,
|
||||
@@ -781,6 +790,10 @@ struct mt753x_info {
|
||||
@@ -772,6 +781,10 @@ struct mt753x_info {
|
||||
* registers
|
||||
* @p6_interface Holding the current port 6 interface
|
||||
* @p5_intf_sel: Holding the current port 5 interface select
|
||||
@@ -413,7 +413,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
*/
|
||||
struct mt7530_priv {
|
||||
struct device *dev;
|
||||
@@ -802,6 +815,9 @@ struct mt7530_priv {
|
||||
@@ -793,6 +806,9 @@ struct mt7530_priv {
|
||||
struct mt7530_port ports[MT7530_NUM_PORTS];
|
||||
/* protect among processes for registers access*/
|
||||
struct mutex reg_mutex;
|
||||
|
||||
@@ -21,7 +21,7 @@ Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
|
||||
|
||||
--- a/drivers/pci/controller/pci-aardvark.c
|
||||
+++ b/drivers/pci/controller/pci-aardvark.c
|
||||
@@ -883,8 +883,13 @@ advk_pci_bridge_emul_pcie_conf_read(stru
|
||||
@@ -885,8 +885,13 @@ advk_pci_bridge_emul_pcie_conf_read(stru
|
||||
|
||||
case PCI_EXP_DEVCAP:
|
||||
case PCI_EXP_DEVCTL:
|
||||
@@ -35,7 +35,7 @@ Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
|
||||
default:
|
||||
return PCI_BRIDGE_EMUL_NOT_HANDLED;
|
||||
}
|
||||
@@ -898,10 +903,6 @@ advk_pci_bridge_emul_pcie_conf_write(str
|
||||
@@ -900,10 +905,6 @@ advk_pci_bridge_emul_pcie_conf_write(str
|
||||
struct advk_pcie *pcie = bridge->data;
|
||||
|
||||
switch (reg) {
|
||||
@@ -46,7 +46,7 @@ Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
|
||||
case PCI_EXP_LNKCTL:
|
||||
advk_writel(pcie, new, PCIE_CORE_PCIEXP_CAP + reg);
|
||||
if (new & PCI_EXP_LNKCTL_RL)
|
||||
@@ -923,6 +924,12 @@ advk_pci_bridge_emul_pcie_conf_write(str
|
||||
@@ -925,6 +926,12 @@ advk_pci_bridge_emul_pcie_conf_write(str
|
||||
advk_writel(pcie, new, PCIE_ISR0_REG);
|
||||
break;
|
||||
|
||||
|
||||
@@ -1,59 +0,0 @@
|
||||
From 7d8dc1f7cd007a7ce94c5b4c20d63a8b8d6d7751 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Pali=20Roh=C3=A1r?= <pali@kernel.org>
|
||||
Date: Tue, 30 Nov 2021 18:29:06 +0100
|
||||
Subject: [PATCH] PCI: aardvark: Clear all MSIs at setup
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
We already clear all the other interrupts (ISR0, ISR1, HOST_CTRL_INT).
|
||||
|
||||
Define a new macro PCIE_MSI_ALL_MASK and do the same clearing for MSIs,
|
||||
to ensure that we don't start receiving spurious interrupts.
|
||||
|
||||
Use this new mask in advk_pcie_handle_msi();
|
||||
|
||||
Link: https://lore.kernel.org/r/20211130172913.9727-5-kabel@kernel.org
|
||||
Signed-off-by: Pali Rohár <pali@kernel.org>
|
||||
Signed-off-by: Marek Behún <kabel@kernel.org>
|
||||
Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
|
||||
---
|
||||
drivers/pci/controller/pci-aardvark.c | 6 ++++--
|
||||
1 file changed, 4 insertions(+), 2 deletions(-)
|
||||
|
||||
--- a/drivers/pci/controller/pci-aardvark.c
|
||||
+++ b/drivers/pci/controller/pci-aardvark.c
|
||||
@@ -114,6 +114,7 @@
|
||||
#define PCIE_MSI_ADDR_HIGH_REG (CONTROL_BASE_ADDR + 0x54)
|
||||
#define PCIE_MSI_STATUS_REG (CONTROL_BASE_ADDR + 0x58)
|
||||
#define PCIE_MSI_MASK_REG (CONTROL_BASE_ADDR + 0x5C)
|
||||
+#define PCIE_MSI_ALL_MASK GENMASK(31, 0)
|
||||
#define PCIE_MSI_PAYLOAD_REG (CONTROL_BASE_ADDR + 0x9C)
|
||||
#define PCIE_MSI_DATA_MASK GENMASK(15, 0)
|
||||
|
||||
@@ -577,6 +578,7 @@ static void advk_pcie_setup_hw(struct ad
|
||||
advk_writel(pcie, reg, PCIE_CORE_CTRL2_REG);
|
||||
|
||||
/* Clear all interrupts */
|
||||
+ advk_writel(pcie, PCIE_MSI_ALL_MASK, PCIE_MSI_STATUS_REG);
|
||||
advk_writel(pcie, PCIE_ISR0_ALL_MASK, PCIE_ISR0_REG);
|
||||
advk_writel(pcie, PCIE_ISR1_ALL_MASK, PCIE_ISR1_REG);
|
||||
advk_writel(pcie, PCIE_IRQ_ALL_MASK, HOST_CTRL_INT_STATUS_REG);
|
||||
@@ -589,7 +591,7 @@ static void advk_pcie_setup_hw(struct ad
|
||||
advk_writel(pcie, PCIE_ISR1_ALL_MASK, PCIE_ISR1_MASK_REG);
|
||||
|
||||
/* Unmask all MSIs */
|
||||
- advk_writel(pcie, 0, PCIE_MSI_MASK_REG);
|
||||
+ advk_writel(pcie, ~(u32)PCIE_MSI_ALL_MASK, PCIE_MSI_MASK_REG);
|
||||
|
||||
/* Enable summary interrupt for GIC SPI source */
|
||||
reg = PCIE_IRQ_ALL_MASK & (~PCIE_IRQ_ENABLE_INTS_MASK);
|
||||
@@ -1397,7 +1399,7 @@ static void advk_pcie_handle_msi(struct
|
||||
|
||||
msi_mask = advk_readl(pcie, PCIE_MSI_MASK_REG);
|
||||
msi_val = advk_readl(pcie, PCIE_MSI_STATUS_REG);
|
||||
- msi_status = msi_val & ~msi_mask;
|
||||
+ msi_status = msi_val & ((~msi_mask) & PCIE_MSI_ALL_MASK);
|
||||
|
||||
for (msi_idx = 0; msi_idx < MSI_IRQ_NUM; msi_idx++) {
|
||||
if (!(BIT(msi_idx) & msi_status))
|
||||
@@ -18,7 +18,7 @@ Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
|
||||
|
||||
--- a/drivers/pci/controller/pci-aardvark.c
|
||||
+++ b/drivers/pci/controller/pci-aardvark.c
|
||||
@@ -1696,11 +1696,13 @@ static int advk_pcie_remove(struct platf
|
||||
@@ -1692,11 +1692,13 @@ static int advk_pcie_remove(struct platf
|
||||
struct pci_host_bridge *bridge = pci_host_bridge_from_priv(pcie);
|
||||
int i;
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@ Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
|
||||
|
||||
--- a/drivers/pci/controller/pci-aardvark.c
|
||||
+++ b/drivers/pci/controller/pci-aardvark.c
|
||||
@@ -1694,6 +1694,7 @@ static int advk_pcie_remove(struct platf
|
||||
@@ -1690,6 +1690,7 @@ static int advk_pcie_remove(struct platf
|
||||
{
|
||||
struct advk_pcie *pcie = platform_get_drvdata(pdev);
|
||||
struct pci_host_bridge *bridge = pci_host_bridge_from_priv(pcie);
|
||||
@@ -27,7 +27,7 @@ Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
|
||||
int i;
|
||||
|
||||
/* Remove PCI bus with all devices */
|
||||
@@ -1702,6 +1703,11 @@ static int advk_pcie_remove(struct platf
|
||||
@@ -1698,6 +1699,11 @@ static int advk_pcie_remove(struct platf
|
||||
pci_remove_root_bus(bridge->bus);
|
||||
pci_unlock_rescan_remove();
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@ Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
|
||||
|
||||
--- a/drivers/pci/controller/pci-aardvark.c
|
||||
+++ b/drivers/pci/controller/pci-aardvark.c
|
||||
@@ -1708,6 +1708,27 @@ static int advk_pcie_remove(struct platf
|
||||
@@ -1704,6 +1704,27 @@ static int advk_pcie_remove(struct platf
|
||||
val &= ~(PCI_COMMAND_IO | PCI_COMMAND_MEMORY | PCI_COMMAND_MASTER);
|
||||
advk_writel(pcie, val, PCIE_CORE_CMD_STATUS_REG);
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
|
||||
|
||||
--- a/drivers/pci/controller/pci-aardvark.c
|
||||
+++ b/drivers/pci/controller/pci-aardvark.c
|
||||
@@ -1733,6 +1733,9 @@ static int advk_pcie_remove(struct platf
|
||||
@@ -1729,6 +1729,9 @@ static int advk_pcie_remove(struct platf
|
||||
advk_pcie_remove_msi_irq_domain(pcie);
|
||||
advk_pcie_remove_irq_domain(pcie);
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
|
||||
|
||||
--- a/drivers/pci/controller/pci-aardvark.c
|
||||
+++ b/drivers/pci/controller/pci-aardvark.c
|
||||
@@ -1736,6 +1736,10 @@ static int advk_pcie_remove(struct platf
|
||||
@@ -1732,6 +1732,10 @@ static int advk_pcie_remove(struct platf
|
||||
/* Free config space for emulated root bridge */
|
||||
pci_bridge_emul_cleanup(&pcie->bridge);
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
|
||||
|
||||
--- a/drivers/pci/controller/pci-aardvark.c
|
||||
+++ b/drivers/pci/controller/pci-aardvark.c
|
||||
@@ -1740,6 +1740,11 @@ static int advk_pcie_remove(struct platf
|
||||
@@ -1736,6 +1736,11 @@ static int advk_pcie_remove(struct platf
|
||||
if (pcie->reset_gpio)
|
||||
gpiod_set_value_cansleep(pcie->reset_gpio, 1);
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@ Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
|
||||
|
||||
--- a/drivers/pci/controller/pci-aardvark.c
|
||||
+++ b/drivers/pci/controller/pci-aardvark.c
|
||||
@@ -1749,6 +1749,9 @@ static int advk_pcie_remove(struct platf
|
||||
@@ -1745,6 +1745,9 @@ static int advk_pcie_remove(struct platf
|
||||
for (i = 0; i < OB_WIN_COUNT; i++)
|
||||
advk_pcie_disable_ob_win(pcie, i);
|
||||
|
||||
|
||||
@@ -98,7 +98,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
obj-$(CONFIG_NETFILTER_XT_TARGET_LED) += xt_LED.o
|
||||
--- /dev/null
|
||||
+++ b/net/netfilter/xt_FLOWOFFLOAD.c
|
||||
@@ -0,0 +1,657 @@
|
||||
@@ -0,0 +1,712 @@
|
||||
+/*
|
||||
+ * Copyright (C) 2018-2021 Felix Fietkau <nbd@nbd.name>
|
||||
+ *
|
||||
@@ -110,6 +110,9 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
+#include <linux/init.h>
|
||||
+#include <linux/netfilter.h>
|
||||
+#include <linux/netfilter/xt_FLOWOFFLOAD.h>
|
||||
+#include <linux/if_vlan.h>
|
||||
+#include <linux/if_pppox.h>
|
||||
+#include <linux/ppp_defs.h>
|
||||
+#include <net/ip.h>
|
||||
+#include <net/netfilter/nf_conntrack.h>
|
||||
+#include <net/netfilter/nf_conntrack_extend.h>
|
||||
@@ -130,20 +133,62 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
+ struct delayed_work work;
|
||||
+};
|
||||
+
|
||||
+struct nf_forward_info {
|
||||
+ const struct net_device *indev;
|
||||
+ const struct net_device *outdev;
|
||||
+ const struct net_device *hw_outdev;
|
||||
+ struct id {
|
||||
+ __u16 id;
|
||||
+ __be16 proto;
|
||||
+ } encap[NF_FLOW_TABLE_ENCAP_MAX];
|
||||
+ u8 num_encaps;
|
||||
+ u8 ingress_vlans;
|
||||
+ u8 h_source[ETH_ALEN];
|
||||
+ u8 h_dest[ETH_ALEN];
|
||||
+ enum flow_offload_xmit_type xmit_type;
|
||||
+};
|
||||
+
|
||||
+static DEFINE_SPINLOCK(hooks_lock);
|
||||
+
|
||||
+struct xt_flowoffload_table flowtable[2];
|
||||
+
|
||||
+static inline __be16 nf_flow_pppoe_proto(const struct sk_buff *skb)
|
||||
+{
|
||||
+ __be16 proto;
|
||||
+
|
||||
+ proto = *((__be16 *)(skb_mac_header(skb) + ETH_HLEN +
|
||||
+ sizeof(struct pppoe_hdr)));
|
||||
+ switch (proto) {
|
||||
+ case htons(PPP_IP):
|
||||
+ return htons(ETH_P_IP);
|
||||
+ case htons(PPP_IPV6):
|
||||
+ return htons(ETH_P_IPV6);
|
||||
+ }
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static unsigned int
|
||||
+xt_flowoffload_net_hook(void *priv, struct sk_buff *skb,
|
||||
+ const struct nf_hook_state *state)
|
||||
+{
|
||||
+ struct nf_flowtable *ft = priv;
|
||||
+
|
||||
+ if (!atomic_read(&ft->rhashtable.nelems))
|
||||
+ return NF_ACCEPT;
|
||||
+ struct vlan_ethhdr *veth;
|
||||
+ __be16 proto;
|
||||
+
|
||||
+ switch (skb->protocol) {
|
||||
+ case htons(ETH_P_8021Q):
|
||||
+ veth = (struct vlan_ethhdr *)skb_mac_header(skb);
|
||||
+ proto = veth->h_vlan_encapsulated_proto;
|
||||
+ break;
|
||||
+ case htons(ETH_P_PPP_SES):
|
||||
+ proto = nf_flow_pppoe_proto(skb);
|
||||
+ break;
|
||||
+ default:
|
||||
+ proto = skb->protocol;
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
+ switch (proto) {
|
||||
+ case htons(ETH_P_IP):
|
||||
+ return nf_flow_offload_ip_hook(priv, skb, state);
|
||||
+ case htons(ETH_P_IPV6):
|
||||
@@ -323,7 +368,26 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
+ return false;
|
||||
+}
|
||||
+
|
||||
+static bool flow_is_valid_ether_device(const struct net_device *dev)
|
||||
+static enum flow_offload_xmit_type nf_xmit_type(struct dst_entry *dst)
|
||||
+{
|
||||
+ if (dst_xfrm(dst))
|
||||
+ return FLOW_OFFLOAD_XMIT_XFRM;
|
||||
+
|
||||
+ return FLOW_OFFLOAD_XMIT_NEIGH;
|
||||
+}
|
||||
+
|
||||
+static void nf_default_forward_path(struct nf_flow_route *route,
|
||||
+ struct dst_entry *dst_cache,
|
||||
+ enum ip_conntrack_dir dir,
|
||||
+ struct net_device **dev)
|
||||
+{
|
||||
+ dev[!dir] = dst_cache->dev;
|
||||
+ route->tuple[!dir].in.ifindex = dst_cache->dev->ifindex;
|
||||
+ route->tuple[dir].dst = dst_cache;
|
||||
+ route->tuple[dir].xmit_type = nf_xmit_type(dst_cache);
|
||||
+}
|
||||
+
|
||||
+static bool nf_is_valid_ether_device(const struct net_device *dev)
|
||||
+{
|
||||
+ if (!dev || (dev->flags & IFF_LOOPBACK) || dev->type != ARPHRD_ETHER ||
|
||||
+ dev->addr_len != ETH_ALEN || !is_valid_ether_addr(dev->dev_addr))
|
||||
@@ -332,174 +396,181 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
+ return true;
|
||||
+}
|
||||
+
|
||||
+static void
|
||||
+xt_flowoffload_route_check_path(struct nf_flow_route *route,
|
||||
+ const struct nf_conn *ct,
|
||||
+ enum ip_conntrack_dir dir,
|
||||
+ struct net_device **out_dev)
|
||||
+static void nf_dev_path_info(const struct net_device_path_stack *stack,
|
||||
+ struct nf_forward_info *info,
|
||||
+ unsigned char *ha)
|
||||
+{
|
||||
+ const struct dst_entry *dst = route->tuple[dir].dst;
|
||||
+ const void *daddr = &ct->tuplehash[!dir].tuple.src.u3;
|
||||
+ struct net_device_path_stack stack;
|
||||
+ enum net_device_path_type prev_type;
|
||||
+ struct net_device *dev = dst->dev;
|
||||
+ struct neighbour *n;
|
||||
+ bool last = false;
|
||||
+ u8 nud_state;
|
||||
+ const struct net_device_path *path;
|
||||
+ int i;
|
||||
+
|
||||
+ route->tuple[!dir].in.ifindex = dev->ifindex;
|
||||
+ route->tuple[dir].out.ifindex = dev->ifindex;
|
||||
+
|
||||
+ if (route->tuple[dir].xmit_type == FLOW_OFFLOAD_XMIT_XFRM)
|
||||
+ return;
|
||||
+
|
||||
+ if ((dev->flags & IFF_LOOPBACK) ||
|
||||
+ dev->type != ARPHRD_ETHER || dev->addr_len != ETH_ALEN ||
|
||||
+ !is_valid_ether_addr(dev->dev_addr))
|
||||
+ return;
|
||||
+
|
||||
+ n = dst_neigh_lookup(dst, daddr);
|
||||
+ if (!n)
|
||||
+ return;
|
||||
+
|
||||
+ read_lock_bh(&n->lock);
|
||||
+ nud_state = n->nud_state;
|
||||
+ memcpy(route->tuple[dir].out.h_dest, n->ha, ETH_ALEN);
|
||||
+ read_unlock_bh(&n->lock);
|
||||
+ neigh_release(n);
|
||||
+
|
||||
+ if (!(nud_state & NUD_VALID))
|
||||
+ return;
|
||||
+
|
||||
+ if (dev_fill_forward_path(dev, route->tuple[dir].out.h_dest, &stack) ||
|
||||
+ !stack.num_paths)
|
||||
+ return;
|
||||
+
|
||||
+ prev_type = DEV_PATH_ETHERNET;
|
||||
+ for (i = 0; i <= stack.num_paths; i++) {
|
||||
+ const struct net_device_path *path = &stack.path[i];
|
||||
+ int n_encaps = route->tuple[!dir].in.num_encaps;
|
||||
+
|
||||
+ dev = (struct net_device *)path->dev;
|
||||
+ if (flow_is_valid_ether_device(dev)) {
|
||||
+ if (route->tuple[dir].xmit_type != FLOW_OFFLOAD_XMIT_DIRECT) {
|
||||
+ memcpy(route->tuple[dir].out.h_source,
|
||||
+ dev->dev_addr, ETH_ALEN);
|
||||
+ route->tuple[dir].out.ifindex = dev->ifindex;
|
||||
+ }
|
||||
+ route->tuple[dir].xmit_type = FLOW_OFFLOAD_XMIT_DIRECT;
|
||||
+ }
|
||||
+ memcpy(info->h_dest, ha, ETH_ALEN);
|
||||
+
|
||||
+ for (i = 0; i < stack->num_paths; i++) {
|
||||
+ path = &stack->path[i];
|
||||
+ switch (path->type) {
|
||||
+ case DEV_PATH_PPPOE:
|
||||
+ case DEV_PATH_ETHERNET:
|
||||
+ case DEV_PATH_DSA:
|
||||
+ case DEV_PATH_VLAN:
|
||||
+ if (n_encaps >= NF_FLOW_TABLE_ENCAP_MAX ||
|
||||
+ i == stack.num_paths) {
|
||||
+ last = true;
|
||||
+ case DEV_PATH_PPPOE:
|
||||
+ info->indev = path->dev;
|
||||
+ if (is_zero_ether_addr(info->h_source))
|
||||
+ memcpy(info->h_source, path->dev->dev_addr, ETH_ALEN);
|
||||
+
|
||||
+ if (path->type == DEV_PATH_ETHERNET)
|
||||
+ break;
|
||||
+ if (path->type == DEV_PATH_DSA) {
|
||||
+ i = stack->num_paths;
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
+ route->tuple[!dir].in.num_encaps++;
|
||||
+ route->tuple[!dir].in.encap[n_encaps].id = path->encap.id;
|
||||
+ route->tuple[!dir].in.encap[n_encaps].proto = path->encap.proto;
|
||||
+ /* DEV_PATH_VLAN and DEV_PATH_PPPOE */
|
||||
+ if (info->num_encaps >= NF_FLOW_TABLE_ENCAP_MAX) {
|
||||
+ info->indev = NULL;
|
||||
+ break;
|
||||
+ }
|
||||
+ if (!info->outdev)
|
||||
+ info->outdev = path->dev;
|
||||
+ info->encap[info->num_encaps].id = path->encap.id;
|
||||
+ info->encap[info->num_encaps].proto = path->encap.proto;
|
||||
+ info->num_encaps++;
|
||||
+ if (path->type == DEV_PATH_PPPOE)
|
||||
+ memcpy(route->tuple[dir].out.h_dest,
|
||||
+ path->encap.h_dest, ETH_ALEN);
|
||||
+ memcpy(info->h_dest, path->encap.h_dest, ETH_ALEN);
|
||||
+ break;
|
||||
+ case DEV_PATH_BRIDGE:
|
||||
+ switch (path->bridge.vlan_mode) {
|
||||
+ case DEV_PATH_BR_VLAN_TAG:
|
||||
+ if (n_encaps >= NF_FLOW_TABLE_ENCAP_MAX ||
|
||||
+ i == stack.num_paths) {
|
||||
+ last = true;
|
||||
+ break;
|
||||
+ }
|
||||
+ if (is_zero_ether_addr(info->h_source))
|
||||
+ memcpy(info->h_source, path->dev->dev_addr, ETH_ALEN);
|
||||
+
|
||||
+ route->tuple[!dir].in.num_encaps++;
|
||||
+ route->tuple[!dir].in.encap[n_encaps].id =
|
||||
+ path->bridge.vlan_id;
|
||||
+ route->tuple[!dir].in.encap[n_encaps].proto =
|
||||
+ path->bridge.vlan_proto;
|
||||
+ switch (path->bridge.vlan_mode) {
|
||||
+ case DEV_PATH_BR_VLAN_UNTAG_HW:
|
||||
+ info->ingress_vlans |= BIT(info->num_encaps - 1);
|
||||
+ break;
|
||||
+ case DEV_PATH_BR_VLAN_TAG:
|
||||
+ info->encap[info->num_encaps].id = path->bridge.vlan_id;
|
||||
+ info->encap[info->num_encaps].proto = path->bridge.vlan_proto;
|
||||
+ info->num_encaps++;
|
||||
+ break;
|
||||
+ case DEV_PATH_BR_VLAN_UNTAG:
|
||||
+ route->tuple[!dir].in.num_encaps--;
|
||||
+ break;
|
||||
+ case DEV_PATH_BR_VLAN_UNTAG_HW:
|
||||
+ route->tuple[!dir].in.ingress_vlans |= BIT(n_encaps - 1);
|
||||
+ info->num_encaps--;
|
||||
+ break;
|
||||
+ case DEV_PATH_BR_VLAN_KEEP:
|
||||
+ break;
|
||||
+ }
|
||||
+ break;
|
||||
+ default:
|
||||
+ last = true;
|
||||
+ info->indev = NULL;
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
+ if (last)
|
||||
+ break;
|
||||
+ }
|
||||
+ if (!info->outdev)
|
||||
+ info->outdev = info->indev;
|
||||
+
|
||||
+ *out_dev = dev;
|
||||
+ route->tuple[dir].out.hw_ifindex = dev->ifindex;
|
||||
+ route->tuple[!dir].in.ifindex = dev->ifindex;
|
||||
+ info->hw_outdev = info->indev;
|
||||
+
|
||||
+ if (nf_is_valid_ether_device(info->indev))
|
||||
+ info->xmit_type = FLOW_OFFLOAD_XMIT_DIRECT;
|
||||
+}
|
||||
+
|
||||
+static int
|
||||
+xt_flowoffload_route_dir(struct nf_flow_route *route, const struct nf_conn *ct,
|
||||
+ enum ip_conntrack_dir dir,
|
||||
+ const struct xt_action_param *par, int ifindex)
|
||||
+static int nf_dev_fill_forward_path(const struct nf_flow_route *route,
|
||||
+ const struct dst_entry *dst_cache,
|
||||
+ const struct nf_conn *ct,
|
||||
+ enum ip_conntrack_dir dir, u8 *ha,
|
||||
+ struct net_device_path_stack *stack)
|
||||
+{
|
||||
+ struct dst_entry *dst = NULL;
|
||||
+ struct flowi fl;
|
||||
+ const void *daddr = &ct->tuplehash[!dir].tuple.src.u3;
|
||||
+ struct net_device *dev = dst_cache->dev;
|
||||
+ struct neighbour *n;
|
||||
+ u8 nud_state;
|
||||
+
|
||||
+ memset(&fl, 0, sizeof(fl));
|
||||
+ switch (xt_family(par)) {
|
||||
+ case NFPROTO_IPV4:
|
||||
+ fl.u.ip4.daddr = ct->tuplehash[!dir].tuple.src.u3.ip;
|
||||
+ fl.u.ip4.flowi4_oif = ifindex;
|
||||
+ break;
|
||||
+ case NFPROTO_IPV6:
|
||||
+ fl.u.ip6.saddr = ct->tuplehash[!dir].tuple.dst.u3.in6;
|
||||
+ fl.u.ip6.daddr = ct->tuplehash[!dir].tuple.src.u3.in6;
|
||||
+ fl.u.ip6.flowi6_oif = ifindex;
|
||||
+ break;
|
||||
+ if (!nf_is_valid_ether_device(dev))
|
||||
+ goto out;
|
||||
+
|
||||
+ n = dst_neigh_lookup(dst_cache, daddr);
|
||||
+ if (!n)
|
||||
+ return -1;
|
||||
+
|
||||
+ read_lock_bh(&n->lock);
|
||||
+ nud_state = n->nud_state;
|
||||
+ ether_addr_copy(ha, n->ha);
|
||||
+ read_unlock_bh(&n->lock);
|
||||
+ neigh_release(n);
|
||||
+
|
||||
+ if (!(nud_state & NUD_VALID))
|
||||
+ return -1;
|
||||
+
|
||||
+out:
|
||||
+ return dev_fill_forward_path(dev, ha, stack);
|
||||
+}
|
||||
+
|
||||
+static void nf_dev_forward_path(struct nf_flow_route *route,
|
||||
+ const struct nf_conn *ct,
|
||||
+ enum ip_conntrack_dir dir,
|
||||
+ struct net_device **devs)
|
||||
+{
|
||||
+ const struct dst_entry *dst = route->tuple[dir].dst;
|
||||
+ struct net_device_path_stack stack;
|
||||
+ struct nf_forward_info info = {};
|
||||
+ unsigned char ha[ETH_ALEN];
|
||||
+ int i;
|
||||
+
|
||||
+ if (nf_dev_fill_forward_path(route, dst, ct, dir, ha, &stack) >= 0)
|
||||
+ nf_dev_path_info(&stack, &info, ha);
|
||||
+
|
||||
+ devs[!dir] = (struct net_device *)info.indev;
|
||||
+ if (!info.indev)
|
||||
+ return;
|
||||
+
|
||||
+ route->tuple[!dir].in.ifindex = info.indev->ifindex;
|
||||
+ for (i = 0; i < info.num_encaps; i++) {
|
||||
+ route->tuple[!dir].in.encap[i].id = info.encap[i].id;
|
||||
+ route->tuple[!dir].in.encap[i].proto = info.encap[i].proto;
|
||||
+ }
|
||||
+ route->tuple[!dir].in.num_encaps = info.num_encaps;
|
||||
+ route->tuple[!dir].in.ingress_vlans = info.ingress_vlans;
|
||||
+
|
||||
+ nf_route(xt_net(par), &dst, &fl, false, xt_family(par));
|
||||
+ if (!dst)
|
||||
+ return -ENOENT;
|
||||
+
|
||||
+ route->tuple[dir].dst = dst;
|
||||
+ if (dst_xfrm(dst))
|
||||
+ route->tuple[dir].xmit_type = FLOW_OFFLOAD_XMIT_XFRM;
|
||||
+ else
|
||||
+ route->tuple[dir].xmit_type = FLOW_OFFLOAD_XMIT_NEIGH;
|
||||
+
|
||||
+ return 0;
|
||||
+ if (info.xmit_type == FLOW_OFFLOAD_XMIT_DIRECT) {
|
||||
+ memcpy(route->tuple[dir].out.h_source, info.h_source, ETH_ALEN);
|
||||
+ memcpy(route->tuple[dir].out.h_dest, info.h_dest, ETH_ALEN);
|
||||
+ route->tuple[dir].out.ifindex = info.outdev->ifindex;
|
||||
+ route->tuple[dir].out.hw_ifindex = info.hw_outdev->ifindex;
|
||||
+ route->tuple[dir].xmit_type = info.xmit_type;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+static int
|
||||
+xt_flowoffload_route(struct sk_buff *skb, const struct nf_conn *ct,
|
||||
+ const struct xt_action_param *par,
|
||||
+ struct nf_flow_route *route, enum ip_conntrack_dir dir,
|
||||
+ struct net_device **dev)
|
||||
+ struct net_device **devs)
|
||||
+{
|
||||
+ int ret;
|
||||
+ struct dst_entry *this_dst = skb_dst(skb);
|
||||
+ struct dst_entry *other_dst = NULL;
|
||||
+ struct flowi fl;
|
||||
+
|
||||
+ ret = xt_flowoffload_route_dir(route, ct, dir, par,
|
||||
+ dev[dir]->ifindex);
|
||||
+ if (ret)
|
||||
+ return ret;
|
||||
+ memset(&fl, 0, sizeof(fl));
|
||||
+ switch (xt_family(par)) {
|
||||
+ case NFPROTO_IPV4:
|
||||
+ fl.u.ip4.daddr = ct->tuplehash[dir].tuple.src.u3.ip;
|
||||
+ fl.u.ip4.flowi4_oif = xt_in(par)->ifindex;
|
||||
+ break;
|
||||
+ case NFPROTO_IPV6:
|
||||
+ fl.u.ip6.saddr = ct->tuplehash[!dir].tuple.dst.u3.in6;
|
||||
+ fl.u.ip6.daddr = ct->tuplehash[dir].tuple.src.u3.in6;
|
||||
+ fl.u.ip6.flowi6_oif = xt_in(par)->ifindex;
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
+ ret = xt_flowoffload_route_dir(route, ct, !dir, par,
|
||||
+ dev[!dir]->ifindex);
|
||||
+ if (ret)
|
||||
+ return ret;
|
||||
+ nf_route(xt_net(par), &other_dst, &fl, false, xt_family(par));
|
||||
+ if (!other_dst)
|
||||
+ return -ENOENT;
|
||||
+
|
||||
+ xt_flowoffload_route_check_path(route, ct, dir, &dev[!dir]);
|
||||
+ xt_flowoffload_route_check_path(route, ct, !dir, &dev[dir]);
|
||||
+ nf_default_forward_path(route, this_dst, dir, devs);
|
||||
+ nf_default_forward_path(route, other_dst, !dir, devs);
|
||||
+
|
||||
+ if (route->tuple[dir].xmit_type == FLOW_OFFLOAD_XMIT_NEIGH &&
|
||||
+ route->tuple[!dir].xmit_type == FLOW_OFFLOAD_XMIT_NEIGH) {
|
||||
+ nf_dev_forward_path(route, ct, dir, devs);
|
||||
+ nf_dev_forward_path(route, ct, !dir, devs);
|
||||
+ }
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
@@ -542,7 +613,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
+ }
|
||||
+
|
||||
+ if (nf_ct_ext_exist(ct, NF_CT_EXT_HELPER) ||
|
||||
+ ct->status & IPS_SEQ_ADJUST)
|
||||
+ ct->status & (IPS_SEQ_ADJUST | IPS_NAT_CLASH))
|
||||
+ return XT_CONTINUE;
|
||||
+
|
||||
+ if (!nf_ct_is_confirmed(ct))
|
||||
@@ -586,7 +657,6 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
+ xt_flowoffload_check_device(table, devs[0]);
|
||||
+ xt_flowoffload_check_device(table, devs[1]);
|
||||
+
|
||||
+ dst_release(route.tuple[dir].dst);
|
||||
+ dst_release(route.tuple[!dir].dst);
|
||||
+
|
||||
+ return XT_CONTINUE;
|
||||
@@ -594,7 +664,6 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
+err_flow_add:
|
||||
+ flow_offload_free(flow);
|
||||
+err_flow_alloc:
|
||||
+ dst_release(route.tuple[dir].dst);
|
||||
+ dst_release(route.tuple[!dir].dst);
|
||||
+err_flow_route:
|
||||
+ clear_bit(IPS_OFFLOAD_BIT, &ct->status);
|
||||
@@ -661,20 +730,6 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
+ .notifier_call = flow_offload_netdev_event,
|
||||
+};
|
||||
+
|
||||
+static unsigned int
|
||||
+nf_flow_offload_inet_hook(void *priv, struct sk_buff *skb,
|
||||
+ const struct nf_hook_state *state)
|
||||
+{
|
||||
+ switch (skb->protocol) {
|
||||
+ case htons(ETH_P_IP):
|
||||
+ return nf_flow_offload_ip_hook(priv, skb, state);
|
||||
+ case htons(ETH_P_IPV6):
|
||||
+ return nf_flow_offload_ipv6_hook(priv, skb, state);
|
||||
+ }
|
||||
+
|
||||
+ return NF_ACCEPT;
|
||||
+}
|
||||
+
|
||||
+static int nf_flow_rule_route_inet(struct net *net,
|
||||
+ const struct flow_offload *flow,
|
||||
+ enum flow_offload_tuple_dir dir,
|
||||
@@ -704,7 +759,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
+ .setup = nf_flow_table_offload_setup,
|
||||
+ .action = nf_flow_rule_route_inet,
|
||||
+ .free = nf_flow_table_free,
|
||||
+ .hook = nf_flow_offload_inet_hook,
|
||||
+ .hook = xt_flowoffload_net_hook,
|
||||
+ .owner = THIS_MODULE,
|
||||
+};
|
||||
+
|
||||
@@ -766,7 +821,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
#include <net/netfilter/nf_flow_table.h>
|
||||
#include <net/netfilter/nf_conntrack.h>
|
||||
#include <net/netfilter/nf_conntrack_core.h>
|
||||
@@ -395,8 +394,7 @@ flow_offload_lookup(struct nf_flowtable
|
||||
@@ -401,8 +400,7 @@ flow_offload_lookup(struct nf_flowtable
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(flow_offload_lookup);
|
||||
|
||||
@@ -776,7 +831,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
void (*iter)(struct flow_offload *flow, void *data),
|
||||
void *data)
|
||||
{
|
||||
@@ -428,6 +426,7 @@ nf_flow_table_iterate(struct nf_flowtabl
|
||||
@@ -434,6 +432,7 @@ nf_flow_table_iterate(struct nf_flowtabl
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
--- a/include/linux/netdevice.h
|
||||
+++ b/include/linux/netdevice.h
|
||||
@@ -1618,6 +1618,7 @@ enum netdev_priv_flags {
|
||||
@@ -1625,6 +1625,7 @@ enum netdev_priv_flags {
|
||||
IFF_FAILOVER_SLAVE = 1<<28,
|
||||
IFF_L3MDEV_RX_HANDLER = 1<<29,
|
||||
IFF_LIVE_RENAME_OK = 1<<30,
|
||||
@@ -27,7 +27,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
};
|
||||
|
||||
#define IFF_802_1Q_VLAN IFF_802_1Q_VLAN
|
||||
@@ -1650,6 +1651,7 @@ enum netdev_priv_flags {
|
||||
@@ -1657,6 +1658,7 @@ enum netdev_priv_flags {
|
||||
#define IFF_FAILOVER_SLAVE IFF_FAILOVER_SLAVE
|
||||
#define IFF_L3MDEV_RX_HANDLER IFF_L3MDEV_RX_HANDLER
|
||||
#define IFF_LIVE_RENAME_OK IFF_LIVE_RENAME_OK
|
||||
@@ -35,7 +35,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
/* Specifies the type of the struct net_device::ml_priv pointer */
|
||||
enum netdev_ml_priv_type {
|
||||
@@ -1990,6 +1992,11 @@ struct net_device {
|
||||
@@ -1997,6 +1999,11 @@ struct net_device {
|
||||
const struct tlsdev_ops *tlsdev_ops;
|
||||
#endif
|
||||
|
||||
@@ -47,7 +47,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
const struct header_ops *header_ops;
|
||||
|
||||
unsigned int flags;
|
||||
@@ -2080,6 +2087,10 @@ struct net_device {
|
||||
@@ -2087,6 +2094,10 @@ struct net_device {
|
||||
struct mpls_dev __rcu *mpls_ptr;
|
||||
#endif
|
||||
|
||||
@@ -105,7 +105,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
help
|
||||
--- a/net/core/dev.c
|
||||
+++ b/net/core/dev.c
|
||||
@@ -3646,6 +3646,11 @@ static int xmit_one(struct sk_buff *skb,
|
||||
@@ -3650,6 +3650,11 @@ static int xmit_one(struct sk_buff *skb,
|
||||
if (dev_nit_active(dev))
|
||||
dev_queue_xmit_nit(skb, dev);
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
|
||||
#define QUECTEL_VENDOR_ID 0x2c7c
|
||||
/* These Quectel products use Quectel's vendor ID */
|
||||
@@ -1127,6 +1129,11 @@ static const struct usb_device_id option
|
||||
@@ -1129,6 +1131,11 @@ static const struct usb_device_id option
|
||||
{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EG95, 0xff, 0, 0) },
|
||||
{ USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_BG96),
|
||||
.driver_info = RSVD(4) },
|
||||
|
||||
@@ -246,7 +246,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
&vmalloc_op,
|
||||
--- a/mm/vmstat.c
|
||||
+++ b/mm/vmstat.c
|
||||
@@ -2044,10 +2044,12 @@ void __init init_mm_internals(void)
|
||||
@@ -2040,10 +2040,12 @@ void __init init_mm_internals(void)
|
||||
start_shepherd_timer();
|
||||
#endif
|
||||
#ifdef CONFIG_PROC_FS
|
||||
|
||||
@@ -272,7 +272,7 @@
|
||||
obj-$(CONFIG_MTD_BLOCK) += mtdblock.o
|
||||
--- a/include/linux/mtd/mtd.h
|
||||
+++ b/include/linux/mtd/mtd.h
|
||||
@@ -608,6 +608,24 @@ static inline void mtd_align_erase_req(s
|
||||
@@ -606,6 +606,24 @@ static inline void mtd_align_erase_req(s
|
||||
req->len += mtd->erasesize - mod;
|
||||
}
|
||||
|
||||
@@ -297,7 +297,7 @@
|
||||
static inline uint32_t mtd_div_by_ws(uint64_t sz, struct mtd_info *mtd)
|
||||
{
|
||||
if (mtd->writesize_shift)
|
||||
@@ -680,6 +698,13 @@ extern void __put_mtd_device(struct mtd_
|
||||
@@ -678,6 +696,13 @@ extern void __put_mtd_device(struct mtd_
|
||||
extern struct mtd_info *get_mtd_device_nm(const char *name);
|
||||
extern void put_mtd_device(struct mtd_info *mtd);
|
||||
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
From 35ca7e3e6ccd120d694a3425f37fc6374ad2e11e Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Andreas=20B=C3=B6hler?= <dev@aboehler.at>
|
||||
Date: Wed, 20 Apr 2022 12:08:38 +0200
|
||||
Subject: [PATCH] mtd: rawnand: add support for Toshiba TC58NVG0S3HTA00
|
||||
NAND flash
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
The Toshiba TC58NVG0S3HTA00 is detected with 64 byte OOB while the flash
|
||||
has 128 bytes OOB. This adds a static NAND ID entry to correct this.
|
||||
|
||||
Tested on FRITZ!Box 7530 flashed with OpenWrt.
|
||||
|
||||
Signed-off-by: Andreas Böhler <dev@aboehler.at>
|
||||
---
|
||||
drivers/mtd/nand/raw/nand_ids.c | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
--- a/drivers/mtd/nand/raw/nand_ids.c
|
||||
+++ b/drivers/mtd/nand/raw/nand_ids.c
|
||||
@@ -29,6 +29,9 @@ struct nand_flash_dev nand_flash_ids[] =
|
||||
{"TC58NVG0S3E 1G 3.3V 8-bit",
|
||||
{ .id = {0x98, 0xd1, 0x90, 0x15, 0x76, 0x14, 0x01, 0x00} },
|
||||
SZ_2K, SZ_128, SZ_128K, 0, 8, 64, NAND_ECC_INFO(1, SZ_512), },
|
||||
+ {"TC58NVG0S3HTA00 1G 3.3V 8-bit",
|
||||
+ { .id = {0x98, 0xf1, 0x80, 0x15} },
|
||||
+ SZ_2K, SZ_128, SZ_128K, 0, 4, 128, NAND_ECC_INFO(8, SZ_512), },
|
||||
{"TC58NVG2S0F 4G 3.3V 8-bit",
|
||||
{ .id = {0x98, 0xdc, 0x90, 0x26, 0x76, 0x15, 0x01, 0x08} },
|
||||
SZ_4K, SZ_512, SZ_256K, 0, 8, 224, NAND_ECC_INFO(4, SZ_512) },
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user