mirror of
https://github.com/hanwckf/immortalwrt-mt798x.git
synced 2025-01-09 02:43:53 +08:00
Merge Official Source
This commit is contained in:
commit
b4bdbe2151
@ -532,20 +532,20 @@ endif
|
|||||||
|
|
||||||
config KERNEL_KEYS
|
config KERNEL_KEYS
|
||||||
bool "Enable kernel access key retention support"
|
bool "Enable kernel access key retention support"
|
||||||
default n
|
default !SMALL_FLASH
|
||||||
|
|
||||||
config KERNEL_PERSISTENT_KEYRINGS
|
config KERNEL_PERSISTENT_KEYRINGS
|
||||||
bool "Enable kernel persistent keyrings"
|
bool "Enable kernel persistent keyrings"
|
||||||
depends on KERNEL_KEYS
|
depends on KERNEL_KEYS
|
||||||
default n
|
default n
|
||||||
|
|
||||||
config KERNEL_BIG_KEYS
|
config KERNEL_KEYS_REQUEST_CACHE
|
||||||
bool "Enable large payload keys on kernel keyrings"
|
bool "Enable temporary caching of the last request_key() result"
|
||||||
depends on KERNEL_KEYS
|
depends on KERNEL_KEYS
|
||||||
default n
|
default n
|
||||||
|
|
||||||
config KERNEL_ENCRYPTED_KEYS
|
config KERNEL_BIG_KEYS
|
||||||
tristate "Enable keys with encrypted payloads on kernel keyrings"
|
bool "Enable large payload keys on kernel keyrings"
|
||||||
depends on KERNEL_KEYS
|
depends on KERNEL_KEYS
|
||||||
default n
|
default n
|
||||||
|
|
||||||
|
@ -568,6 +568,7 @@ define Device/Build/image
|
|||||||
SOURCE_DATE_EPOCH=$(SOURCE_DATE_EPOCH) \
|
SOURCE_DATE_EPOCH=$(SOURCE_DATE_EPOCH) \
|
||||||
IMAGE_NAME="$(IMAGE_NAME)" \
|
IMAGE_NAME="$(IMAGE_NAME)" \
|
||||||
IMAGE_TYPE=$(word 1,$(subst ., ,$(2))) \
|
IMAGE_TYPE=$(word 1,$(subst ., ,$(2))) \
|
||||||
|
IMAGE_FILESYSTEM="$(1)" \
|
||||||
IMAGE_PREFIX="$(IMAGE_PREFIX)" \
|
IMAGE_PREFIX="$(IMAGE_PREFIX)" \
|
||||||
DEVICE_VENDOR="$(DEVICE_VENDOR)" \
|
DEVICE_VENDOR="$(DEVICE_VENDOR)" \
|
||||||
DEVICE_MODEL="$(DEVICE_MODEL)" \
|
DEVICE_MODEL="$(DEVICE_MODEL)" \
|
||||||
|
@ -6,9 +6,9 @@ ifdef CONFIG_TESTING_KERNEL
|
|||||||
KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER)
|
KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
LINUX_VERSION-5.4 = .82
|
LINUX_VERSION-5.4 = .83
|
||||||
|
|
||||||
LINUX_KERNEL_HASH-5.4.82 = fb4458e4ea38b6c5df4ee8cee0d9b0420b5aed07e273787b045c0db48709ddaf
|
LINUX_KERNEL_HASH-5.4.83 = beec970bbb93de8ab839f27930f7ab00c7bd65af0ffa07a50e765affdc2561c6
|
||||||
|
|
||||||
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
|
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
|
||||||
sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))
|
sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))
|
||||||
|
@ -0,0 +1,48 @@
|
|||||||
|
From e33a814e772cdc36436c8c188d8c42d019fda639 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Dirk Mueller <dmueller@suse.com>
|
||||||
|
Date: Tue, 14 Jan 2020 18:53:41 +0100
|
||||||
|
Subject: [PATCH] scripts/dtc: Remove redundant YYLOC global declaration
|
||||||
|
|
||||||
|
gcc 10 will default to -fno-common, which causes this error at link
|
||||||
|
time:
|
||||||
|
|
||||||
|
(.text+0x0): multiple definition of `yylloc'; dtc-lexer.lex.o (symbol from plugin):(.text+0x0): first defined here
|
||||||
|
|
||||||
|
This is because both dtc-lexer as well as dtc-parser define the same
|
||||||
|
global symbol yyloc. Before with -fcommon those were merged into one
|
||||||
|
defintion. The proper solution would be to to mark this as "extern",
|
||||||
|
however that leads to:
|
||||||
|
|
||||||
|
dtc-lexer.l:26:16: error: redundant redeclaration of 'yylloc' [-Werror=redundant-decls]
|
||||||
|
26 | extern YYLTYPE yylloc;
|
||||||
|
| ^~~~~~
|
||||||
|
In file included from dtc-lexer.l:24:
|
||||||
|
dtc-parser.tab.h:127:16: note: previous declaration of 'yylloc' was here
|
||||||
|
127 | extern YYLTYPE yylloc;
|
||||||
|
| ^~~~~~
|
||||||
|
cc1: all warnings being treated as errors
|
||||||
|
|
||||||
|
which means the declaration is completely redundant and can just be
|
||||||
|
dropped.
|
||||||
|
|
||||||
|
Signed-off-by: Dirk Mueller <dmueller@suse.com>
|
||||||
|
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
|
||||||
|
[robh: cherry-pick from upstream]
|
||||||
|
Cc: stable@vger.kernel.org
|
||||||
|
Signed-off-by: Rob Herring <robh@kernel.org>
|
||||||
|
---
|
||||||
|
scripts/dtc/dtc-lexer.l | 1 -
|
||||||
|
1 file changed, 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/scripts/dtc/dtc-lexer.l b/scripts/dtc/dtc-lexer.l
|
||||||
|
index 5c6c3fd557d7f..b3b7270300de5 100644
|
||||||
|
--- a/scripts/dtc/dtc-lexer.l
|
||||||
|
+++ b/scripts/dtc/dtc-lexer.l
|
||||||
|
@@ -38,7 +38,6 @@ LINECOMMENT "//".*\n
|
||||||
|
#include "srcpos.h"
|
||||||
|
#include "dtc-parser.tab.h"
|
||||||
|
|
||||||
|
-YYLTYPE yylloc;
|
||||||
|
extern bool treesource_error;
|
||||||
|
|
||||||
|
/* CAUTION: this will stop working if we ever use yyless() or yyunput() */
|
@ -1103,6 +1103,47 @@ endef
|
|||||||
$(eval $(call KernelPackage,echo))
|
$(eval $(call KernelPackage,echo))
|
||||||
|
|
||||||
|
|
||||||
|
define KernelPackage/keys-encrypted
|
||||||
|
SUBMENU:=$(OTHER_MENU)
|
||||||
|
TITLE:=encrypted keys on kernel keyring
|
||||||
|
DEPENDS:=@KERNEL_KEYS +kmod-crypto-cbc +kmod-crypto-hmac +kmod-crypto-rng \
|
||||||
|
+kmod-crypto-sha256 +kmod-keys-trusted
|
||||||
|
KCONFIG:=CONFIG_ENCRYPTED_KEYS
|
||||||
|
FILES:=$(LINUX_DIR)/security/keys/encrypted-keys/encrypted-keys.ko
|
||||||
|
AUTOLOAD:=$(call AutoLoad,01,encrypted-keys,1)
|
||||||
|
endef
|
||||||
|
|
||||||
|
define KernelPackage/keys-encrypted/description
|
||||||
|
This module provides support for create/encrypting/decrypting keys
|
||||||
|
in the kernel. Encrypted keys are kernel generated random numbers,
|
||||||
|
which are encrypted/decrypted with a 'master' symmetric key. The
|
||||||
|
'master' key can be either a trusted-key or user-key type.
|
||||||
|
Userspace only ever sees/stores encrypted blobs.
|
||||||
|
endef
|
||||||
|
|
||||||
|
$(eval $(call KernelPackage,keys-encrypted))
|
||||||
|
|
||||||
|
|
||||||
|
define KernelPackage/keys-trusted
|
||||||
|
SUBMENU:=$(OTHER_MENU)
|
||||||
|
TITLE:=TPM trusted keys on kernel keyring
|
||||||
|
DEPENDS:=@KERNEL_KEYS +kmod-crypto-hash +kmod-crypto-hmac +kmod-crypto-sha1 +kmod-tpm
|
||||||
|
KCONFIG:=CONFIG_TRUSTED_KEYS
|
||||||
|
FILES:=$(LINUX_DIR)/security/keys/trusted.ko
|
||||||
|
AUTOLOAD:=$(call AutoLoad,01,trusted-keys,1)
|
||||||
|
endef
|
||||||
|
|
||||||
|
define KernelPackage/keys-trusted/description
|
||||||
|
This module provides support for creating, sealing, and unsealing
|
||||||
|
keys in the kernel. Trusted keys are random number symmetric keys,
|
||||||
|
generated and RSA-sealed by the TPM. The TPM only unseals the keys,
|
||||||
|
if the boot PCRs and other criteria match. Userspace will only ever
|
||||||
|
see encrypted blobs.
|
||||||
|
endef
|
||||||
|
|
||||||
|
$(eval $(call KernelPackage,keys-trusted))
|
||||||
|
|
||||||
|
|
||||||
define KernelPackage/tpm
|
define KernelPackage/tpm
|
||||||
SUBMENU:=$(OTHER_MENU)
|
SUBMENU:=$(OTHER_MENU)
|
||||||
TITLE:=TPM Hardware Support
|
TITLE:=TPM Hardware Support
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
LUCI_TITLE:=Luci for Docker-CE
|
LUCI_TITLE:=Luci for Docker-CE
|
||||||
LUCI_DEPENDS:=+docker-ce +e2fsprogs +fdisk
|
LUCI_DEPENDS:=+docker +e2fsprogs +fdisk
|
||||||
LUCI_PKGARCH:=all
|
LUCI_PKGARCH:=all
|
||||||
PKG_VERSION:=1
|
PKG_VERSION:=1
|
||||||
PKG_RELEASE:=9
|
PKG_RELEASE:=9
|
||||||
|
@ -8,20 +8,19 @@
|
|||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=libnetfilter_conntrack
|
PKG_NAME:=libnetfilter_conntrack
|
||||||
PKG_RELEASE:=2
|
PKG_VERSION:=1.0.8
|
||||||
|
PKG_RELEASE:=1
|
||||||
|
|
||||||
PKG_SOURCE_PROTO:=git
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
|
||||||
PKG_SOURCE_URL:=https://git.netfilter.org/libnetfilter_conntrack
|
PKG_SOURCE_URL:=https://www.netfilter.org/projects/libnetfilter_conntrack/files
|
||||||
PKG_SOURCE_DATE:=2018-05-01
|
PKG_HASH:=0cd13be008923528687af6c6b860f35392d49251c04ee0648282d36b1faec1cf
|
||||||
PKG_SOURCE_VERSION:=3ccae9f5b2a9564cd63699ba60e54a46bc0d73b6
|
|
||||||
PKG_MIRROR_HASH:=c978ef0fa5b7379de2909ca5d9c599ac63b4f8166f5971d58f6e074a922d996f
|
|
||||||
|
|
||||||
PKG_MAINTAINER:=Jo-Philipp Wich <jo@mein.io>
|
PKG_MAINTAINER:=Jo-Philipp Wich <jo@mein.io>
|
||||||
|
PKG_LICENSE:=GPL-2.0-or-later
|
||||||
PKG_FIXUP:=autoreconf
|
PKG_LICENSE_FILES:=COPYING
|
||||||
PKG_LICENSE:=GPL-2.0+
|
|
||||||
|
|
||||||
PKG_INSTALL:=1
|
PKG_INSTALL:=1
|
||||||
|
PKG_BUILD_PARALLEL:=1
|
||||||
|
|
||||||
include $(INCLUDE_DIR)/package.mk
|
include $(INCLUDE_DIR)/package.mk
|
||||||
|
|
||||||
|
@ -5,9 +5,9 @@ PKG_RELEASE=1
|
|||||||
|
|
||||||
PKG_SOURCE_PROTO:=git
|
PKG_SOURCE_PROTO:=git
|
||||||
PKG_SOURCE_URL=$(PROJECT_GIT)/project/uclient.git
|
PKG_SOURCE_URL=$(PROJECT_GIT)/project/uclient.git
|
||||||
PKG_MIRROR_HASH:=05962d4edbe7b856e017d974c3d7e34dfa5f905821ab7a3534acc5886af4e5c7
|
PKG_MIRROR_HASH:=532016a283722f21dd450e388060af0db765972956eee288c7cabf102c8303d0
|
||||||
PKG_SOURCE_DATE:=2020-06-17
|
PKG_SOURCE_DATE:=2020-12-10
|
||||||
PKG_SOURCE_VERSION:=c66098611f16806a936a3a3f92113a16382fc4d9
|
PKG_SOURCE_VERSION:=2c843b2bc04c34403d9a6b4de025447e4b5d8aa4
|
||||||
CMAKE_INSTALL:=1
|
CMAKE_INSTALL:=1
|
||||||
|
|
||||||
PKG_BUILD_DEPENDS:=ustream-ssl
|
PKG_BUILD_DEPENDS:=ustream-ssl
|
||||||
@ -24,7 +24,7 @@ define Package/libuclient
|
|||||||
SECTION:=libs
|
SECTION:=libs
|
||||||
CATEGORY:=Libraries
|
CATEGORY:=Libraries
|
||||||
TITLE:=HTTP/1.1 client library
|
TITLE:=HTTP/1.1 client library
|
||||||
ABI_VERSION:=20160123
|
ABI_VERSION:=20201210
|
||||||
DEPENDS:=+libubox
|
DEPENDS:=+libubox
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
@ -5,9 +5,9 @@ PKG_RELEASE:=1
|
|||||||
|
|
||||||
PKG_SOURCE_PROTO:=git
|
PKG_SOURCE_PROTO:=git
|
||||||
PKG_SOURCE_URL=$(PROJECT_GIT)/project/ustream-ssl.git
|
PKG_SOURCE_URL=$(PROJECT_GIT)/project/ustream-ssl.git
|
||||||
PKG_SOURCE_DATE:=2020-03-13
|
PKG_SOURCE_DATE:=2020-12-10
|
||||||
PKG_SOURCE_VERSION:=5e1bc3429cbf9c3be4db65ef5dbf21ea99cf5b95
|
PKG_SOURCE_VERSION:=68d09243b6fd4473004b27ff6483352e76e6af1a
|
||||||
PKG_MIRROR_HASH:=c59dea9b98d3ce88d886f7c7b3b252c55312ad281b731ab9172ae78570f1b643
|
PKG_MIRROR_HASH:=a620090dee08c0624d167c10e9e45d54aa2b953a1f356eff7325a8fe53c622e6
|
||||||
CMAKE_INSTALL:=1
|
CMAKE_INSTALL:=1
|
||||||
|
|
||||||
PKG_LICENSE:=ISC
|
PKG_LICENSE:=ISC
|
||||||
@ -23,7 +23,7 @@ define Package/libustream/default
|
|||||||
CATEGORY:=Libraries
|
CATEGORY:=Libraries
|
||||||
TITLE:=ustream SSL Library
|
TITLE:=ustream SSL Library
|
||||||
DEPENDS:=+libubox
|
DEPENDS:=+libubox
|
||||||
ABI_VERSION:=20200215
|
ABI_VERSION:=20201210
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/libustream-openssl
|
define Package/libustream-openssl
|
||||||
|
@ -5,9 +5,9 @@ PKG_RELEASE:=1
|
|||||||
|
|
||||||
PKG_SOURCE_PROTO:=git
|
PKG_SOURCE_PROTO:=git
|
||||||
PKG_SOURCE_URL=$(PROJECT_GIT)/project/netifd.git
|
PKG_SOURCE_URL=$(PROJECT_GIT)/project/netifd.git
|
||||||
PKG_SOURCE_DATE:=2020-11-30
|
PKG_SOURCE_DATE:=2020-12-13
|
||||||
PKG_SOURCE_VERSION:=42c48866f1c1fce068f41536baa8dd2e80fc08d7
|
PKG_SOURCE_VERSION:=458b1a7e9473c150a40cae5d8be174f4bb03bd39
|
||||||
PKG_MIRROR_HASH:=7eeec56364f1e6de8f0917f16ae933ca9bd0298e6a68e330025282164ea9af63
|
PKG_MIRROR_HASH:=424aefb55aedebfcffd540a2c02a42aeb574b7ebb1a6b546ca9965d9280d82e5
|
||||||
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
|
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
|
||||||
|
|
||||||
PKG_LICENSE:=GPL-2.0
|
PKG_LICENSE:=GPL-2.0
|
||||||
|
@ -97,19 +97,6 @@ zram_comp_algo()
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
zram_comp_streams()
|
|
||||||
{
|
|
||||||
local dev="$1"
|
|
||||||
local logical_cpus=$( grep -ci "^processor" /proc/cpuinfo )
|
|
||||||
[ $logical_cpus -gt 1 ] || return 1
|
|
||||||
local zram_comp_streams="$( uci -q get system.@system[0].zram_comp_streams )"
|
|
||||||
[ -n "$zram_comp_streams" ] && [ "$zram_comp_streams" -le "$logical_cpus" ] || zram_comp_streams=$logical_cpus
|
|
||||||
if [ -e /sys/block/$( basename $dev )/max_comp_streams ]; then
|
|
||||||
logger -s -t zram_comp_streams -p daemon.debug "Set max compression streams to '$zram_comp_streams' for zram '$dev'"
|
|
||||||
echo $zram_comp_streams > /sys/block/$( basename $dev )/max_comp_streams
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
#print various stats info about zram swap device
|
#print various stats info about zram swap device
|
||||||
zram_stats()
|
zram_stats()
|
||||||
{
|
{
|
||||||
@ -121,7 +108,6 @@ zram_stats()
|
|||||||
printf "%-25s - %s\n" "Block device" $zdev
|
printf "%-25s - %s\n" "Block device" $zdev
|
||||||
awk '{ printf "%-25s - %d MiB\n", "Device size", $1/1024/1024 }' <$zdev/disksize
|
awk '{ printf "%-25s - %d MiB\n", "Device size", $1/1024/1024 }' <$zdev/disksize
|
||||||
printf "%-25s - %s\n" "Compression algo" "$(cat $zdev/comp_algorithm)"
|
printf "%-25s - %s\n" "Compression algo" "$(cat $zdev/comp_algorithm)"
|
||||||
printf "%-25s - %s\n" "Compression streams" "$( cat $zdev/max_comp_streams)"
|
|
||||||
|
|
||||||
awk 'BEGIN { fmt = "%-25s - %.2f %s\n"
|
awk 'BEGIN { fmt = "%-25s - %.2f %s\n"
|
||||||
fmt2 = "%-25s - %d\n"
|
fmt2 = "%-25s - %d\n"
|
||||||
@ -179,7 +165,6 @@ start()
|
|||||||
|
|
||||||
zram_reset "$zram_dev" "enforcing defaults"
|
zram_reset "$zram_dev" "enforcing defaults"
|
||||||
zram_comp_algo "$zram_dev"
|
zram_comp_algo "$zram_dev"
|
||||||
zram_comp_streams "$zram_dev"
|
|
||||||
echo $(( $zram_size * 1024 * 1024 )) >"/sys/block/$( basename "$zram_dev" )/disksize"
|
echo $(( $zram_size * 1024 * 1024 )) >"/sys/block/$( basename "$zram_dev" )/disksize"
|
||||||
/sbin/mkswap "$zram_dev"
|
/sbin/mkswap "$zram_dev"
|
||||||
/sbin/swapon -d $zram_priority "$zram_dev"
|
/sbin/swapon -d $zram_priority "$zram_dev"
|
||||||
|
@ -51,6 +51,7 @@ image_info = {
|
|||||||
"images": [
|
"images": [
|
||||||
{
|
{
|
||||||
"type": getenv("IMAGE_TYPE"),
|
"type": getenv("IMAGE_TYPE"),
|
||||||
|
"filesystem": getenv("IMAGE_FILESYSTEM"),
|
||||||
"name": getenv("IMAGE_NAME"),
|
"name": getenv("IMAGE_NAME"),
|
||||||
"sha256": image_hash,
|
"sha256": image_hash,
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
ARCH:=aarch64
|
ARCH:=aarch64
|
||||||
SUBTARGET:=64
|
SUBTARGET:=64
|
||||||
BOARDNAME:=ARMv8 multiplatform
|
BOARDNAME:=QEMU ARMv8 Virtual Machine (cortex-a53)
|
||||||
|
CPU_TYPE:=cortex-a53
|
||||||
KERNELNAME:=Image
|
KERNELNAME:=Image
|
||||||
|
|
||||||
define Target/Description
|
define Target/Description
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
This is intended to be used with LEDE project to provide image for use with
|
This is intended to be used with OpenWrt project to provide image for use with
|
||||||
QEMU ARM virt machine.
|
QEMU ARM virt machine.
|
||||||
|
|
||||||
Run with qemu-system-arm
|
Run with qemu-system-arm
|
||||||
|
@ -1,229 +1,8 @@
|
|||||||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||||
|
|
||||||
#include "qca955x.dtsi"
|
#include "qca9558_belkin_f9x-v2.dtsi"
|
||||||
|
|
||||||
#include <dt-bindings/gpio/gpio.h>
|
|
||||||
#include <dt-bindings/input/input.h>
|
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
model = "Belkin F9J1108 v2 (AC1750 DB Wi-Fi)";
|
model = "Belkin F9J1108 v2 (AC1750 DB Wi-Fi)";
|
||||||
compatible = "belkin,f9j1108-v2", "qca,qca9558";
|
compatible = "belkin,f9j1108-v2", "qca,qca9558";
|
||||||
|
|
||||||
aliases {
|
|
||||||
led-boot = &led_system;
|
|
||||||
led-failsafe = &led_system;
|
|
||||||
led-running = &led_system;
|
|
||||||
led-upgrade = &led_system;
|
|
||||||
label-mac-device = ð1;
|
|
||||||
};
|
|
||||||
|
|
||||||
leds {
|
|
||||||
compatible = "gpio-leds";
|
|
||||||
|
|
||||||
usb {
|
|
||||||
label = "green:usb2";
|
|
||||||
gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
|
|
||||||
trigger-sources = <&hub_port0>;
|
|
||||||
linux,default-trigger = "usbport";
|
|
||||||
};
|
|
||||||
|
|
||||||
status {
|
|
||||||
label = "amber:status";
|
|
||||||
gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
|
|
||||||
};
|
|
||||||
|
|
||||||
wps-amber {
|
|
||||||
label = "amber:wps";
|
|
||||||
gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
|
|
||||||
};
|
|
||||||
|
|
||||||
wps-blue {
|
|
||||||
label = "blue:wps";
|
|
||||||
gpios = <&gpio 19 GPIO_ACTIVE_LOW>;
|
|
||||||
};
|
|
||||||
|
|
||||||
led_system: system {
|
|
||||||
label = "blue:system";
|
|
||||||
gpios = <&gpio 20 GPIO_ACTIVE_LOW>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
gpio-export {
|
|
||||||
compatible = "gpio-export";
|
|
||||||
#size-cells = <0>;
|
|
||||||
|
|
||||||
usb2_power {
|
|
||||||
gpio-export,name = "usb2:power";
|
|
||||||
gpio-export,output = <1>;
|
|
||||||
gpios = <&gpio 21 GPIO_ACTIVE_HIGH>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
keys {
|
|
||||||
compatible = "gpio-keys";
|
|
||||||
|
|
||||||
wps {
|
|
||||||
label = "WPS button";
|
|
||||||
linux,code = <KEY_WPS_BUTTON>;
|
|
||||||
gpios = <&gpio 16 GPIO_ACTIVE_LOW>;
|
|
||||||
debounce-interval = <60>;
|
|
||||||
};
|
|
||||||
|
|
||||||
reset {
|
|
||||||
label = "Reset button";
|
|
||||||
linux,code = <KEY_RESTART>;
|
|
||||||
gpios = <&gpio 17 GPIO_ACTIVE_LOW>;
|
|
||||||
debounce-interval = <60>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
virtual_flash {
|
|
||||||
compatible = "mtd-concat";
|
|
||||||
|
|
||||||
devices = <&fwpart1 &fwpart2>;
|
|
||||||
|
|
||||||
partitions {
|
|
||||||
compatible = "fixed-partitions";
|
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <1>;
|
|
||||||
|
|
||||||
partition@0 {
|
|
||||||
compatible = "openwrt,okli";
|
|
||||||
label = "firmware";
|
|
||||||
reg = <0x0 0x0>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
&pcie1 {
|
|
||||||
status = "okay";
|
|
||||||
};
|
|
||||||
|
|
||||||
&uart {
|
|
||||||
status = "okay";
|
|
||||||
};
|
|
||||||
|
|
||||||
&usb_phy0 {
|
|
||||||
status = "okay";
|
|
||||||
};
|
|
||||||
|
|
||||||
&usb0 {
|
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <0>;
|
|
||||||
status = "okay";
|
|
||||||
|
|
||||||
hub_port0: port@1 {
|
|
||||||
reg = <1>;
|
|
||||||
#trigger-source-cells = <0>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
&spi {
|
|
||||||
status = "okay";
|
|
||||||
|
|
||||||
flash@0 {
|
|
||||||
compatible = "jedec,spi-nor";
|
|
||||||
reg = <0>;
|
|
||||||
spi-max-frequency = <80000000>;
|
|
||||||
m25p,fast-read;
|
|
||||||
|
|
||||||
partitions {
|
|
||||||
compatible = "fixed-partitions";
|
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <1>;
|
|
||||||
|
|
||||||
uboot: partition@0 {
|
|
||||||
label = "u-boot";
|
|
||||||
reg = <0x000000 0x040000>;
|
|
||||||
read-only;
|
|
||||||
};
|
|
||||||
|
|
||||||
partition@40000 {
|
|
||||||
label = "u-boot-env";
|
|
||||||
reg = <0x040000 0x010000>;
|
|
||||||
};
|
|
||||||
|
|
||||||
fwpart1: partition@50000 {
|
|
||||||
label = "fwpart1";
|
|
||||||
reg = <0x050000 0xe20000>;
|
|
||||||
};
|
|
||||||
|
|
||||||
partition@e70000 {
|
|
||||||
label = "loader";
|
|
||||||
reg = <0xe70000 0x10000>;
|
|
||||||
read-only;
|
|
||||||
};
|
|
||||||
|
|
||||||
fwpart2: partition@e80000 {
|
|
||||||
label = "fwpart2";
|
|
||||||
reg = <0xe80000 0x170000>;
|
|
||||||
};
|
|
||||||
|
|
||||||
art: partition@ff0000 {
|
|
||||||
label = "art";
|
|
||||||
reg = <0xff0000 0x010000>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
&mdio0 {
|
|
||||||
status = "okay";
|
|
||||||
|
|
||||||
phy0: ethernet-phy@0 {
|
|
||||||
reg = <0>;
|
|
||||||
|
|
||||||
qca,ar8327-initvals = <
|
|
||||||
0x04 0x00080080 /* PORT0 PAD MODE CTRL */
|
|
||||||
0x0c 0x07600000 /* PORT6 PAD MODE CTRL */
|
|
||||||
0x50 0xc737c737 /* LED_CTRL0 */
|
|
||||||
0x54 0x00000000 /* LED_CTRL1 */
|
|
||||||
0x58 0x00000000 /* LED_CTRL2 */
|
|
||||||
0x5c 0x0030c300 /* LED_CTRL3 */
|
|
||||||
0x7c 0x0000007e /* PORT0_STATUS */
|
|
||||||
0x94 0x0000007e /* PORT6 STATUS */
|
|
||||||
>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
ð0 {
|
|
||||||
status = "okay";
|
|
||||||
|
|
||||||
mtd-mac-address = <&art 0x0>;
|
|
||||||
phy-handle = <&phy0>;
|
|
||||||
pll-data = <0xa6000000 0x00000101 0x00001616>;
|
|
||||||
|
|
||||||
gmac-config {
|
|
||||||
device = <&gmac>;
|
|
||||||
rgmii-enabled = <1>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
ð1 {
|
|
||||||
status = "okay";
|
|
||||||
|
|
||||||
mtd-mac-address = <&art 0x0>;
|
|
||||||
mtd-mac-address-increment = <(-1)>;
|
|
||||||
pll-data = <0x03000101 0x00000101 0x00001616>;
|
|
||||||
|
|
||||||
fixed-link {
|
|
||||||
speed = <1000>;
|
|
||||||
full-duplex;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
&pcie0 {
|
|
||||||
status = "okay";
|
|
||||||
|
|
||||||
wifi@0,0 {
|
|
||||||
compatible = "qcom,ath10k";
|
|
||||||
reg = <0 0 0 0 0>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
&wmac {
|
|
||||||
status = "okay";
|
|
||||||
|
|
||||||
mtd-cal-data = <&art 0x1000>;
|
|
||||||
};
|
};
|
||||||
|
8
target/linux/ath79/dts/qca9558_belkin_f9k1115-v2.dts
Normal file
8
target/linux/ath79/dts/qca9558_belkin_f9k1115-v2.dts
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||||
|
|
||||||
|
#include "qca9558_belkin_f9x-v2.dtsi"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "Belkin F9K1115 v2 (AC 1750 DB)";
|
||||||
|
compatible = "belkin,f9k1115-v2", "qca,qca9558";
|
||||||
|
};
|
226
target/linux/ath79/dts/qca9558_belkin_f9x-v2.dtsi
Normal file
226
target/linux/ath79/dts/qca9558_belkin_f9x-v2.dtsi
Normal file
@ -0,0 +1,226 @@
|
|||||||
|
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||||
|
|
||||||
|
#include "qca955x.dtsi"
|
||||||
|
|
||||||
|
#include <dt-bindings/gpio/gpio.h>
|
||||||
|
#include <dt-bindings/input/input.h>
|
||||||
|
|
||||||
|
/ {
|
||||||
|
aliases {
|
||||||
|
led-boot = &led_system;
|
||||||
|
led-failsafe = &led_system;
|
||||||
|
led-running = &led_system;
|
||||||
|
led-upgrade = &led_system;
|
||||||
|
label-mac-device = ð1;
|
||||||
|
};
|
||||||
|
|
||||||
|
leds {
|
||||||
|
compatible = "gpio-leds";
|
||||||
|
|
||||||
|
usb {
|
||||||
|
label = "green:usb2";
|
||||||
|
gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
|
||||||
|
trigger-sources = <&hub_port0>;
|
||||||
|
linux,default-trigger = "usbport";
|
||||||
|
};
|
||||||
|
|
||||||
|
status {
|
||||||
|
label = "amber:status";
|
||||||
|
gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
|
||||||
|
};
|
||||||
|
|
||||||
|
wps-amber {
|
||||||
|
label = "amber:wps";
|
||||||
|
gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
|
||||||
|
};
|
||||||
|
|
||||||
|
wps-blue {
|
||||||
|
label = "blue:wps";
|
||||||
|
gpios = <&gpio 19 GPIO_ACTIVE_LOW>;
|
||||||
|
};
|
||||||
|
|
||||||
|
led_system: system {
|
||||||
|
label = "blue:system";
|
||||||
|
gpios = <&gpio 20 GPIO_ACTIVE_LOW>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
gpio-export {
|
||||||
|
compatible = "gpio-export";
|
||||||
|
#size-cells = <0>;
|
||||||
|
|
||||||
|
usb2_power {
|
||||||
|
gpio-export,name = "usb2:power";
|
||||||
|
gpio-export,output = <1>;
|
||||||
|
gpios = <&gpio 21 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
keys {
|
||||||
|
compatible = "gpio-keys";
|
||||||
|
|
||||||
|
wps {
|
||||||
|
label = "WPS button";
|
||||||
|
linux,code = <KEY_WPS_BUTTON>;
|
||||||
|
gpios = <&gpio 16 GPIO_ACTIVE_LOW>;
|
||||||
|
debounce-interval = <60>;
|
||||||
|
};
|
||||||
|
|
||||||
|
reset {
|
||||||
|
label = "Reset button";
|
||||||
|
linux,code = <KEY_RESTART>;
|
||||||
|
gpios = <&gpio 17 GPIO_ACTIVE_LOW>;
|
||||||
|
debounce-interval = <60>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
virtual_flash {
|
||||||
|
compatible = "mtd-concat";
|
||||||
|
|
||||||
|
devices = <&fwpart1 &fwpart2>;
|
||||||
|
|
||||||
|
partitions {
|
||||||
|
compatible = "fixed-partitions";
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
|
||||||
|
partition@0 {
|
||||||
|
compatible = "openwrt,okli";
|
||||||
|
label = "firmware";
|
||||||
|
reg = <0x0 0x0>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&pcie1 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&uart {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&usb_phy0 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&usb0 {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
hub_port0: port@1 {
|
||||||
|
reg = <1>;
|
||||||
|
#trigger-source-cells = <0>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&spi {
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
flash@0 {
|
||||||
|
compatible = "jedec,spi-nor";
|
||||||
|
reg = <0>;
|
||||||
|
spi-max-frequency = <80000000>;
|
||||||
|
m25p,fast-read;
|
||||||
|
|
||||||
|
partitions {
|
||||||
|
compatible = "fixed-partitions";
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
|
||||||
|
uboot: partition@0 {
|
||||||
|
label = "u-boot";
|
||||||
|
reg = <0x000000 0x040000>;
|
||||||
|
read-only;
|
||||||
|
};
|
||||||
|
|
||||||
|
partition@40000 {
|
||||||
|
label = "u-boot-env";
|
||||||
|
reg = <0x040000 0x010000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
fwpart1: partition@50000 {
|
||||||
|
label = "fwpart1";
|
||||||
|
reg = <0x050000 0xe20000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
partition@e70000 {
|
||||||
|
label = "loader";
|
||||||
|
reg = <0xe70000 0x10000>;
|
||||||
|
read-only;
|
||||||
|
};
|
||||||
|
|
||||||
|
fwpart2: partition@e80000 {
|
||||||
|
label = "fwpart2";
|
||||||
|
reg = <0xe80000 0x170000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
art: partition@ff0000 {
|
||||||
|
label = "art";
|
||||||
|
reg = <0xff0000 0x010000>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&mdio0 {
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
phy0: ethernet-phy@0 {
|
||||||
|
reg = <0>;
|
||||||
|
|
||||||
|
qca,ar8327-initvals = <
|
||||||
|
0x04 0x00080080 /* PORT0 PAD MODE CTRL */
|
||||||
|
0x0c 0x07600000 /* PORT6 PAD MODE CTRL */
|
||||||
|
0x50 0xc737c737 /* LED_CTRL0 */
|
||||||
|
0x54 0x00000000 /* LED_CTRL1 */
|
||||||
|
0x58 0x00000000 /* LED_CTRL2 */
|
||||||
|
0x5c 0x0030c300 /* LED_CTRL3 */
|
||||||
|
0x7c 0x0000007e /* PORT0_STATUS */
|
||||||
|
0x94 0x0000007e /* PORT6 STATUS */
|
||||||
|
>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
ð0 {
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
mtd-mac-address = <&art 0x0>;
|
||||||
|
phy-handle = <&phy0>;
|
||||||
|
pll-data = <0xa6000000 0x00000101 0x00001616>;
|
||||||
|
|
||||||
|
gmac-config {
|
||||||
|
device = <&gmac>;
|
||||||
|
rgmii-enabled = <1>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
ð1 {
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
mtd-mac-address = <&art 0x0>;
|
||||||
|
mtd-mac-address-increment = <(-1)>;
|
||||||
|
pll-data = <0x03000101 0x00000101 0x00001616>;
|
||||||
|
|
||||||
|
fixed-link {
|
||||||
|
speed = <1000>;
|
||||||
|
full-duplex;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&pcie0 {
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
wifi@0,0 {
|
||||||
|
compatible = "qcom,ath10k";
|
||||||
|
reg = <0 0 0 0 0>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&wmac {
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
mtd-cal-data = <&art 0x1000>;
|
||||||
|
};
|
@ -101,6 +101,7 @@ ath79_setup_interfaces()
|
|||||||
"0@eth0" "1:lan:1" "2:lan:4" "3:lan:3" "4:lan:2"
|
"0@eth0" "1:lan:1" "2:lan:4" "3:lan:3" "4:lan:2"
|
||||||
;;
|
;;
|
||||||
belkin,f9j1108-v2|\
|
belkin,f9j1108-v2|\
|
||||||
|
belkin,f9k1115-v2|\
|
||||||
tplink,archer-c5-v1|\
|
tplink,archer-c5-v1|\
|
||||||
tplink,archer-c7-v1|\
|
tplink,archer-c7-v1|\
|
||||||
tplink,archer-c7-v2|\
|
tplink,archer-c7-v2|\
|
||||||
|
@ -7,6 +7,7 @@ DEVICE_VARS += ADDPATTERN_ID ADDPATTERN_VERSION
|
|||||||
DEVICE_VARS += SEAMA_SIGNATURE SEAMA_MTDBLOCK
|
DEVICE_VARS += SEAMA_SIGNATURE SEAMA_MTDBLOCK
|
||||||
DEVICE_VARS += KERNEL_INITRAMFS_PREFIX
|
DEVICE_VARS += KERNEL_INITRAMFS_PREFIX
|
||||||
DEVICE_VARS += DAP_SIGNATURE ENGENIUS_IMGNAME
|
DEVICE_VARS += DAP_SIGNATURE ENGENIUS_IMGNAME
|
||||||
|
DEVICE_VARS += EDIMAX_HEADER_MAGIC EDIMAX_HEADER_MODEL
|
||||||
|
|
||||||
define Build/add-elecom-factory-initramfs
|
define Build/add-elecom-factory-initramfs
|
||||||
$(eval edimax_model=$(word 1,$(1)))
|
$(eval edimax_model=$(word 1,$(1)))
|
||||||
@ -408,10 +409,9 @@ define Device/avm_fritzdvbc
|
|||||||
endef
|
endef
|
||||||
TARGET_DEVICES += avm_fritzdvbc
|
TARGET_DEVICES += avm_fritzdvbc
|
||||||
|
|
||||||
define Device/belkin_f9j1108-v2
|
define Device/belkin_f9x-v2
|
||||||
SOC := qca9558
|
SOC := qca9558
|
||||||
DEVICE_VENDOR := Belkin
|
DEVICE_VENDOR := Belkin
|
||||||
DEVICE_MODEL := F9J1108 v2 (AC1750 DB Wi-Fi)
|
|
||||||
IMAGE_SIZE := 14464k
|
IMAGE_SIZE := 14464k
|
||||||
DEVICE_PACKAGES += kmod-ath10k-ct ath10k-firmware-qca988x-ct kmod-usb2 \
|
DEVICE_PACKAGES += kmod-ath10k-ct ath10k-firmware-qca988x-ct kmod-usb2 \
|
||||||
kmod-usb3 kmod-usb-ledtrig-usbport
|
kmod-usb3 kmod-usb-ledtrig-usbport
|
||||||
@ -425,10 +425,26 @@ define Device/belkin_f9j1108-v2
|
|||||||
IMAGES += factory.bin
|
IMAGES += factory.bin
|
||||||
IMAGE/factory.bin := append-kernel | pad-to $$$$(BLOCKSIZE) | \
|
IMAGE/factory.bin := append-kernel | pad-to $$$$(BLOCKSIZE) | \
|
||||||
append-rootfs | pad-rootfs | check-size | \
|
append-rootfs | pad-rootfs | check-size | \
|
||||||
edimax-headers F9J1108v1 BR-6679BAC | pad-to $$$$(BLOCKSIZE)
|
edimax-headers $$$$(EDIMAX_HEADER_MAGIC) $$$$(EDIMAX_HEADER_MODEL) | \
|
||||||
|
pad-to $$$$(BLOCKSIZE)
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Device/belkin_f9j1108-v2
|
||||||
|
$(Device/belkin_f9x-v2)
|
||||||
|
DEVICE_MODEL := F9J1108 v2 (AC1750 DB Wi-Fi)
|
||||||
|
EDIMAX_HEADER_MAGIC := F9J1108v1
|
||||||
|
EDIMAX_HEADER_MODEL := BR-6679BAC
|
||||||
endef
|
endef
|
||||||
TARGET_DEVICES += belkin_f9j1108-v2
|
TARGET_DEVICES += belkin_f9j1108-v2
|
||||||
|
|
||||||
|
define Device/belkin_f9k1115-v2
|
||||||
|
$(Device/belkin_f9x-v2)
|
||||||
|
DEVICE_MODEL := F9K1115 v2 (AC1750 DB Wi-Fi)
|
||||||
|
EDIMAX_HEADER_MAGIC := eDiMaX
|
||||||
|
EDIMAX_HEADER_MODEL := F9K1115V2
|
||||||
|
endef
|
||||||
|
TARGET_DEVICES += belkin_f9k1115-v2
|
||||||
|
|
||||||
define Device/buffalo_bhr-4grv
|
define Device/buffalo_bhr-4grv
|
||||||
$(Device/buffalo_common)
|
$(Device/buffalo_common)
|
||||||
SOC := ar7242
|
SOC := ar7242
|
||||||
|
@ -321,7 +321,7 @@ endef
|
|||||||
TARGET_DEVICES += luxul_xwr-3150
|
TARGET_DEVICES += luxul_xwr-3150
|
||||||
|
|
||||||
define Device/meraki_mr32
|
define Device/meraki_mr32
|
||||||
DEVICE_VENODR := Meraki
|
DEVICE_VENDOR := Meraki
|
||||||
DEVICE_MODEL := MR32
|
DEVICE_MODEL := MR32
|
||||||
DEVICE_PACKAGES := $(B43) kmod-i2c-bcm-iproc kmod-i2c-gpio kmod-eeprom-at24 \
|
DEVICE_PACKAGES := $(B43) kmod-i2c-bcm-iproc kmod-i2c-gpio kmod-eeprom-at24 \
|
||||||
kmod-leds-pwm kmod-hwmon-ina2xx kmod-bluetooth
|
kmod-leds-pwm kmod-hwmon-ina2xx kmod-bluetooth
|
||||||
|
@ -506,7 +506,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||||||
+MODULE_ALIAS("nf-flow-table-hw");
|
+MODULE_ALIAS("nf-flow-table-hw");
|
||||||
--- a/net/netfilter/nf_tables_api.c
|
--- a/net/netfilter/nf_tables_api.c
|
||||||
+++ b/net/netfilter/nf_tables_api.c
|
+++ b/net/netfilter/nf_tables_api.c
|
||||||
@@ -5742,6 +5742,13 @@ static int nf_tables_flowtable_parse_hoo
|
@@ -5743,6 +5743,13 @@ static int nf_tables_flowtable_parse_hoo
|
||||||
if (err < 0)
|
if (err < 0)
|
||||||
return err;
|
return err;
|
||||||
|
|
||||||
@ -520,7 +520,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||||||
ops = kcalloc(n, sizeof(struct nf_hook_ops), GFP_KERNEL);
|
ops = kcalloc(n, sizeof(struct nf_hook_ops), GFP_KERNEL);
|
||||||
if (!ops)
|
if (!ops)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
@@ -5872,10 +5879,19 @@ static int nf_tables_newflowtable(struct
|
@@ -5873,10 +5880,19 @@ static int nf_tables_newflowtable(struct
|
||||||
}
|
}
|
||||||
|
|
||||||
flowtable->data.type = type;
|
flowtable->data.type = type;
|
||||||
@ -540,7 +540,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||||||
err = nf_tables_flowtable_parse_hook(&ctx, nla[NFTA_FLOWTABLE_HOOK],
|
err = nf_tables_flowtable_parse_hook(&ctx, nla[NFTA_FLOWTABLE_HOOK],
|
||||||
flowtable);
|
flowtable);
|
||||||
if (err < 0)
|
if (err < 0)
|
||||||
@@ -6001,7 +6017,8 @@ static int nf_tables_fill_flowtable_info
|
@@ -6002,7 +6018,8 @@ static int nf_tables_fill_flowtable_info
|
||||||
nla_put_string(skb, NFTA_FLOWTABLE_NAME, flowtable->name) ||
|
nla_put_string(skb, NFTA_FLOWTABLE_NAME, flowtable->name) ||
|
||||||
nla_put_be32(skb, NFTA_FLOWTABLE_USE, htonl(flowtable->use)) ||
|
nla_put_be32(skb, NFTA_FLOWTABLE_USE, htonl(flowtable->use)) ||
|
||||||
nla_put_be64(skb, NFTA_FLOWTABLE_HANDLE, cpu_to_be64(flowtable->handle),
|
nla_put_be64(skb, NFTA_FLOWTABLE_HANDLE, cpu_to_be64(flowtable->handle),
|
||||||
|
@ -176,6 +176,22 @@
|
|||||||
bias-pull-down;
|
bias-pull-down;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
enable_ext_pa_high {
|
||||||
|
gpio-hog;
|
||||||
|
gpios = <44 GPIO_ACTIVE_HIGH>,
|
||||||
|
<46 GPIO_ACTIVE_HIGH>;
|
||||||
|
output-high;
|
||||||
|
bias-pull-down;
|
||||||
|
line-name = "enable external PA output-high";
|
||||||
|
};
|
||||||
|
enable_ext_pa_low {
|
||||||
|
gpio-hog;
|
||||||
|
gpios = <45 GPIO_ACTIVE_HIGH>,
|
||||||
|
<47 GPIO_ACTIVE_HIGH>;
|
||||||
|
output-low;
|
||||||
|
bias-pull-down;
|
||||||
|
line-name = "enable external PA output-low";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
&cryptobam {
|
&cryptobam {
|
||||||
|
@ -969,7 +969,7 @@ static int edma_axi_probe(struct platform_device *pdev)
|
|||||||
edma_netdev[i]->max_mtu = 9000;
|
edma_netdev[i]->max_mtu = 9000;
|
||||||
edma_netdev[i]->features = NETIF_F_HW_CSUM | NETIF_F_RXCSUM
|
edma_netdev[i]->features = NETIF_F_HW_CSUM | NETIF_F_RXCSUM
|
||||||
| NETIF_F_HW_VLAN_CTAG_RX | NETIF_F_SG |
|
| NETIF_F_HW_VLAN_CTAG_RX | NETIF_F_SG |
|
||||||
NETIF_F_TSO | NETIF_F_GRO;
|
NETIF_F_TSO | NETIF_F_GRO | NETIF_F_HW_VLAN_CTAG_TX;
|
||||||
edma_netdev[i]->hw_features = NETIF_F_HW_CSUM | NETIF_F_RXCSUM |
|
edma_netdev[i]->hw_features = NETIF_F_HW_CSUM | NETIF_F_RXCSUM |
|
||||||
NETIF_F_HW_VLAN_CTAG_RX
|
NETIF_F_HW_VLAN_CTAG_RX
|
||||||
| NETIF_F_SG | NETIF_F_TSO | NETIF_F_GRO;
|
| NETIF_F_SG | NETIF_F_TSO | NETIF_F_GRO;
|
||||||
@ -978,20 +978,11 @@ static int edma_axi_probe(struct platform_device *pdev)
|
|||||||
edma_netdev[i]->wanted_features = NETIF_F_HW_CSUM | NETIF_F_SG |
|
edma_netdev[i]->wanted_features = NETIF_F_HW_CSUM | NETIF_F_SG |
|
||||||
NETIF_F_TSO | NETIF_F_GRO;
|
NETIF_F_TSO | NETIF_F_GRO;
|
||||||
|
|
||||||
if (of_property_read_bool(np, "qcom,single-phy") && edma_cinfo->num_gmac == 1)
|
|
||||||
edma_netdev[i]->features |= NETIF_F_HW_VLAN_CTAG_TX;
|
|
||||||
|
|
||||||
#ifdef CONFIG_RFS_ACCEL
|
#ifdef CONFIG_RFS_ACCEL
|
||||||
edma_netdev[i]->features |= NETIF_F_NTUPLE;
|
edma_netdev[i]->features |= NETIF_F_NTUPLE | NETIF_F_RXHASH;
|
||||||
edma_netdev[i]->hw_features |= NETIF_F_NTUPLE;
|
edma_netdev[i]->hw_features |= NETIF_F_NTUPLE | NETIF_F_RXHASH;
|
||||||
edma_netdev[i]->vlan_features |= NETIF_F_NTUPLE;
|
edma_netdev[i]->vlan_features |= NETIF_F_NTUPLE | NETIF_F_RXHASH;
|
||||||
edma_netdev[i]->wanted_features |= NETIF_F_NTUPLE;
|
edma_netdev[i]->wanted_features |= NETIF_F_NTUPLE | NETIF_F_RXHASH;
|
||||||
if (of_property_read_bool(np, "qcom,single-phy") && edma_cinfo->num_gmac == 1) {
|
|
||||||
edma_netdev[i]->features |= NETIF_F_RXHASH;
|
|
||||||
edma_netdev[i]->hw_features |= NETIF_F_RXHASH;
|
|
||||||
edma_netdev[i]->vlan_features |= NETIF_F_RXHASH;
|
|
||||||
edma_netdev[i]->wanted_features |= NETIF_F_RXHASH;
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
edma_set_ethtool_ops(edma_netdev[i]);
|
edma_set_ethtool_ops(edma_netdev[i]);
|
||||||
|
|
||||||
|
@ -1232,10 +1232,6 @@ ar40xx_init_port(struct ar40xx_priv *priv, int port)
|
|||||||
ar40xx_rmw(priv, AR40XX_REG_PORT_STATUS(port),
|
ar40xx_rmw(priv, AR40XX_REG_PORT_STATUS(port),
|
||||||
AR40XX_PORT_AUTO_LINK_EN, 0);
|
AR40XX_PORT_AUTO_LINK_EN, 0);
|
||||||
|
|
||||||
/* CPU port is setting headers to limit output ports */
|
|
||||||
if (port == 0)
|
|
||||||
ar40xx_write(priv, AR40XX_REG_PORT_HEADER(port), 0x8);
|
|
||||||
else
|
|
||||||
ar40xx_write(priv, AR40XX_REG_PORT_HEADER(port), 0);
|
ar40xx_write(priv, AR40XX_REG_PORT_HEADER(port), 0);
|
||||||
|
|
||||||
ar40xx_write(priv, AR40XX_REG_PORT_VLAN0(port), 0);
|
ar40xx_write(priv, AR40XX_REG_PORT_VLAN0(port), 0);
|
||||||
@ -1279,10 +1275,6 @@ ar40xx_init_globals(struct ar40xx_priv *priv)
|
|||||||
t = (AR40XX_PORT0_FC_THRESH_ON_DFLT << 16) |
|
t = (AR40XX_PORT0_FC_THRESH_ON_DFLT << 16) |
|
||||||
AR40XX_PORT0_FC_THRESH_OFF_DFLT;
|
AR40XX_PORT0_FC_THRESH_OFF_DFLT;
|
||||||
ar40xx_write(priv, AR40XX_REG_PORT_FLOWCTRL_THRESH(0), t);
|
ar40xx_write(priv, AR40XX_REG_PORT_FLOWCTRL_THRESH(0), t);
|
||||||
|
|
||||||
/* set service tag to 802.1q */
|
|
||||||
t = ETH_P_8021Q | AR40XX_ESS_SERVICE_TAG_STAG;
|
|
||||||
ar40xx_write(priv, AR40XX_ESS_SERVICE_TAG, t);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -1608,9 +1600,6 @@ ar40xx_setup_port(struct ar40xx_priv *priv, int port, u32 members)
|
|||||||
u32 pvid = priv->vlan_id[priv->pvid[port]];
|
u32 pvid = priv->vlan_id[priv->pvid[port]];
|
||||||
|
|
||||||
if (priv->vlan) {
|
if (priv->vlan) {
|
||||||
if (priv->vlan_tagged & BIT(port))
|
|
||||||
egress = AR40XX_PORT_VLAN1_OUT_MODE_TAG;
|
|
||||||
else
|
|
||||||
egress = AR40XX_PORT_VLAN1_OUT_MODE_UNMOD;
|
egress = AR40XX_PORT_VLAN1_OUT_MODE_UNMOD;
|
||||||
|
|
||||||
ingress = AR40XX_IN_SECURE;
|
ingress = AR40XX_IN_SECURE;
|
||||||
@ -1623,16 +1612,8 @@ ar40xx_setup_port(struct ar40xx_priv *priv, int port, u32 members)
|
|||||||
t |= pvid << AR40XX_PORT_VLAN0_DEF_CVID_S;
|
t |= pvid << AR40XX_PORT_VLAN0_DEF_CVID_S;
|
||||||
ar40xx_write(priv, AR40XX_REG_PORT_VLAN0(port), t);
|
ar40xx_write(priv, AR40XX_REG_PORT_VLAN0(port), t);
|
||||||
|
|
||||||
t = egress << AR40XX_PORT_VLAN1_OUT_MODE_S;
|
t = AR40XX_PORT_VLAN1_PORT_VLAN_PROP;
|
||||||
|
t |= egress << AR40XX_PORT_VLAN1_OUT_MODE_S;
|
||||||
/* set CPU port to core port */
|
|
||||||
if (port == 0)
|
|
||||||
t |= AR40XX_PORT_VLAN1_CORE_PORT;
|
|
||||||
|
|
||||||
if (priv->vlan_tagged & BIT(port))
|
|
||||||
t |= AR40XX_PORT_VLAN1_PORT_VLAN_PROP;
|
|
||||||
else
|
|
||||||
t |= AR40XX_PORT_VLAN1_PORT_TLS_MODE;
|
|
||||||
|
|
||||||
ar40xx_write(priv, AR40XX_REG_PORT_VLAN1(port), t);
|
ar40xx_write(priv, AR40XX_REG_PORT_VLAN1(port), t);
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@ Signed-off-by: Tudor Ambarus <tudor.ambarus@microchip.com>
|
|||||||
|
|
||||||
--- a/drivers/mtd/spi-nor/spi-nor.c
|
--- a/drivers/mtd/spi-nor/spi-nor.c
|
||||||
+++ b/drivers/mtd/spi-nor/spi-nor.c
|
+++ b/drivers/mtd/spi-nor/spi-nor.c
|
||||||
@@ -2344,6 +2344,8 @@ static const struct flash_info spi_nor_i
|
@@ -2351,6 +2351,8 @@ static const struct flash_info spi_nor_i
|
||||||
{ "mx25u6435f", INFO(0xc22537, 0, 64 * 1024, 128, SECT_4K) },
|
{ "mx25u6435f", INFO(0xc22537, 0, 64 * 1024, 128, SECT_4K) },
|
||||||
{ "mx25l12805d", INFO(0xc22018, 0, 64 * 1024, 256, 0) },
|
{ "mx25l12805d", INFO(0xc22018, 0, 64 * 1024, 256, 0) },
|
||||||
{ "mx25l12855e", INFO(0xc22618, 0, 64 * 1024, 256, 0) },
|
{ "mx25l12855e", INFO(0xc22618, 0, 64 * 1024, 256, 0) },
|
||||||
|
@ -70,7 +70,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
ð0 {
|
ð0 {
|
||||||
lan: interface@0 {
|
interface@0 {
|
||||||
compatible = "lantiq,xrx200-pdi";
|
compatible = "lantiq,xrx200-pdi";
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
|
@ -94,7 +94,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
ð0 {
|
ð0 {
|
||||||
lan: interface@0 {
|
interface@0 {
|
||||||
compatible = "lantiq,xrx200-pdi";
|
compatible = "lantiq,xrx200-pdi";
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
|
@ -112,7 +112,7 @@
|
|||||||
<&gphy1_led0_pins>, <&gphy1_led1_pins>;
|
<&gphy1_led0_pins>, <&gphy1_led1_pins>;
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
|
|
||||||
lan: interface@0 {
|
interface@0 {
|
||||||
compatible = "lantiq,xrx200-pdi";
|
compatible = "lantiq,xrx200-pdi";
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
|
@ -130,7 +130,7 @@
|
|||||||
pinctrl-0 = <&mdio_pins>, <&gphy0_led1_pins>, <&gphy1_led0_pins>;
|
pinctrl-0 = <&mdio_pins>, <&gphy0_led1_pins>, <&gphy1_led0_pins>;
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
|
|
||||||
lan: interface@0 {
|
interface@0 {
|
||||||
compatible = "lantiq,xrx200-pdi";
|
compatible = "lantiq,xrx200-pdi";
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
|
@ -115,7 +115,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
ð0 {
|
ð0 {
|
||||||
lan: interface@0 {
|
interface@0 {
|
||||||
compatible = "lantiq,xrx200-pdi";
|
compatible = "lantiq,xrx200-pdi";
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
|
@ -81,7 +81,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
ð0 {
|
ð0 {
|
||||||
lan: interface@0 {
|
interface@0 {
|
||||||
compatible = "lantiq,xrx200-pdi";
|
compatible = "lantiq,xrx200-pdi";
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
|
@ -115,7 +115,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
ð0 {
|
ð0 {
|
||||||
lan: interface@0 {
|
interface@0 {
|
||||||
compatible = "lantiq,xrx200-pdi";
|
compatible = "lantiq,xrx200-pdi";
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
|
@ -153,7 +153,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
ð0 {
|
ð0 {
|
||||||
lan: interface@0 {
|
interface@0 {
|
||||||
compatible = "lantiq,xrx200-pdi";
|
compatible = "lantiq,xrx200-pdi";
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
|
@ -96,7 +96,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
ð0 {
|
ð0 {
|
||||||
lan: interface@0 {
|
interface@0 {
|
||||||
compatible = "lantiq,xrx200-pdi";
|
compatible = "lantiq,xrx200-pdi";
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
@ -129,7 +129,7 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
wan: interface@1 {
|
interface@1 {
|
||||||
compatible = "lantiq,xrx200-pdi";
|
compatible = "lantiq,xrx200-pdi";
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
|
@ -86,7 +86,7 @@
|
|||||||
ð0 {
|
ð0 {
|
||||||
lantiq,phys = <&gphy1>;
|
lantiq,phys = <&gphy1>;
|
||||||
|
|
||||||
lan: interface@0 {
|
interface@0 {
|
||||||
compatible = "lantiq,xrx200-pdi";
|
compatible = "lantiq,xrx200-pdi";
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
|
@ -111,7 +111,7 @@
|
|||||||
pinctrl-0 = <&mdio_pins>, <&gphy0_led1_pins>, <&gphy1_led1_pins>;
|
pinctrl-0 = <&mdio_pins>, <&gphy0_led1_pins>, <&gphy1_led1_pins>;
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
|
|
||||||
lan: interface@0 {
|
interface@0 {
|
||||||
compatible = "lantiq,xrx200-pdi";
|
compatible = "lantiq,xrx200-pdi";
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
|
@ -116,7 +116,7 @@
|
|||||||
<&gphy1_led1_pins>, <&gphy1_led2_pins>;
|
<&gphy1_led1_pins>, <&gphy1_led2_pins>;
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
|
|
||||||
lan: interface@0 {
|
interface@0 {
|
||||||
compatible = "lantiq,xrx200-pdi";
|
compatible = "lantiq,xrx200-pdi";
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
|
@ -17,7 +17,7 @@ Signed-off-by: Vipul Kumar <vipul_kumar@mentor.com>
|
|||||||
|
|
||||||
--- a/drivers/i2c/busses/i2c-imx.c
|
--- a/drivers/i2c/busses/i2c-imx.c
|
||||||
+++ b/drivers/i2c/busses/i2c-imx.c
|
+++ b/drivers/i2c/busses/i2c-imx.c
|
||||||
@@ -1131,7 +1131,8 @@ static int i2c_imx_probe(struct platform
|
@@ -1159,7 +1159,8 @@ static int i2c_imx_probe(struct platform
|
||||||
goto rpm_disable;
|
goto rpm_disable;
|
||||||
|
|
||||||
/* Request IRQ */
|
/* Request IRQ */
|
||||||
|
@ -15,7 +15,7 @@ Signed-off-by: Vipul Kumar <vipul_kumar@mentor.com>
|
|||||||
|
|
||||||
--- a/drivers/i2c/busses/i2c-imx.c
|
--- a/drivers/i2c/busses/i2c-imx.c
|
||||||
+++ b/drivers/i2c/busses/i2c-imx.c
|
+++ b/drivers/i2c/busses/i2c-imx.c
|
||||||
@@ -1229,7 +1229,8 @@ static int __maybe_unused i2c_imx_runtim
|
@@ -1257,7 +1257,8 @@ static int __maybe_unused i2c_imx_runtim
|
||||||
{
|
{
|
||||||
struct imx_i2c_struct *i2c_imx = dev_get_drvdata(dev);
|
struct imx_i2c_struct *i2c_imx = dev_get_drvdata(dev);
|
||||||
|
|
||||||
@ -25,7 +25,7 @@ Signed-off-by: Vipul Kumar <vipul_kumar@mentor.com>
|
|||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -1239,14 +1240,28 @@ static int __maybe_unused i2c_imx_runtim
|
@@ -1267,14 +1268,28 @@ static int __maybe_unused i2c_imx_runtim
|
||||||
struct imx_i2c_struct *i2c_imx = dev_get_drvdata(dev);
|
struct imx_i2c_struct *i2c_imx = dev_get_drvdata(dev);
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@ Signed-off-by: Vipul Kumar <vipul_kumar@mentor.com>
|
|||||||
|
|
||||||
--- a/drivers/i2c/busses/i2c-imx.c
|
--- a/drivers/i2c/busses/i2c-imx.c
|
||||||
+++ b/drivers/i2c/busses/i2c-imx.c
|
+++ b/drivers/i2c/busses/i2c-imx.c
|
||||||
@@ -896,10 +896,17 @@ static int i2c_imx_xfer(struct i2c_adapt
|
@@ -924,10 +924,17 @@ static int i2c_imx_xfer(struct i2c_adapt
|
||||||
unsigned int i, temp;
|
unsigned int i, temp;
|
||||||
int result;
|
int result;
|
||||||
bool is_lastmsg = false;
|
bool is_lastmsg = false;
|
||||||
@ -37,7 +37,7 @@ Signed-off-by: Vipul Kumar <vipul_kumar@mentor.com>
|
|||||||
result = pm_runtime_get_sync(i2c_imx->adapter.dev.parent);
|
result = pm_runtime_get_sync(i2c_imx->adapter.dev.parent);
|
||||||
if (result < 0)
|
if (result < 0)
|
||||||
goto out;
|
goto out;
|
||||||
@@ -971,6 +978,9 @@ fail0:
|
@@ -999,6 +1006,9 @@ fail0:
|
||||||
pm_runtime_put_autosuspend(i2c_imx->adapter.dev.parent);
|
pm_runtime_put_autosuspend(i2c_imx->adapter.dev.parent);
|
||||||
|
|
||||||
out:
|
out:
|
||||||
@ -47,7 +47,7 @@ Signed-off-by: Vipul Kumar <vipul_kumar@mentor.com>
|
|||||||
dev_dbg(&i2c_imx->adapter.dev, "<%s> exit with: %s: %d\n", __func__,
|
dev_dbg(&i2c_imx->adapter.dev, "<%s> exit with: %s: %d\n", __func__,
|
||||||
(result < 0) ? "error" : "success msg",
|
(result < 0) ? "error" : "success msg",
|
||||||
(result < 0) ? result : num);
|
(result < 0) ? result : num);
|
||||||
@@ -1261,7 +1271,7 @@ static int i2c_imx_resume(struct device
|
@@ -1289,7 +1299,7 @@ static int i2c_imx_resume(struct device
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct dev_pm_ops i2c_imx_pm_ops = {
|
static const struct dev_pm_ops i2c_imx_pm_ops = {
|
||||||
|
@ -77,7 +77,7 @@ Signed-off-by: Clark Wang <xiaoning.wang@nxp.com>
|
|||||||
static inline void imx_i2c_write_reg(unsigned int val,
|
static inline void imx_i2c_write_reg(unsigned int val,
|
||||||
struct imx_i2c_struct *i2c_imx, unsigned int reg)
|
struct imx_i2c_struct *i2c_imx, unsigned int reg)
|
||||||
{
|
{
|
||||||
@@ -1159,6 +1177,14 @@ static int i2c_imx_probe(struct platform
|
@@ -1187,6 +1205,14 @@ static int i2c_imx_probe(struct platform
|
||||||
clk_notifier_register(i2c_imx->clk, &i2c_imx->clk_change_nb);
|
clk_notifier_register(i2c_imx->clk, &i2c_imx->clk_change_nb);
|
||||||
i2c_imx_set_clk(i2c_imx, clk_get_rate(i2c_imx->clk));
|
i2c_imx_set_clk(i2c_imx, clk_get_rate(i2c_imx->clk));
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@ Signed-off-by: Shrikant Bobade <Shrikant_Bobade@mentor.com>
|
|||||||
|
|
||||||
--- a/drivers/i2c/busses/i2c-imx.c
|
--- a/drivers/i2c/busses/i2c-imx.c
|
||||||
+++ b/drivers/i2c/busses/i2c-imx.c
|
+++ b/drivers/i2c/busses/i2c-imx.c
|
||||||
@@ -492,16 +492,24 @@ static int i2c_imx_acked(struct imx_i2c_
|
@@ -514,16 +514,24 @@ static int i2c_imx_acked(struct imx_i2c_
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -47,7 +47,7 @@ Signed-off-by: Shrikant Bobade <Shrikant_Bobade@mentor.com>
|
|||||||
|
|
||||||
i2c_imx->cur_clk = i2c_clk_rate;
|
i2c_imx->cur_clk = i2c_clk_rate;
|
||||||
|
|
||||||
@@ -532,20 +540,23 @@ static void i2c_imx_set_clk(struct imx_i
|
@@ -554,20 +562,23 @@ static void i2c_imx_set_clk(struct imx_i
|
||||||
dev_dbg(&i2c_imx->adapter.dev, "IFDR[IC]=0x%x, REAL DIV=%d\n",
|
dev_dbg(&i2c_imx->adapter.dev, "IFDR[IC]=0x%x, REAL DIV=%d\n",
|
||||||
i2c_clk_div[i].val, i2c_clk_div[i].div);
|
i2c_clk_div[i].val, i2c_clk_div[i].div);
|
||||||
#endif
|
#endif
|
||||||
@ -73,7 +73,7 @@ Signed-off-by: Shrikant Bobade <Shrikant_Bobade@mentor.com>
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int i2c_imx_start(struct imx_i2c_struct *i2c_imx)
|
static int i2c_imx_start(struct imx_i2c_struct *i2c_imx)
|
||||||
@@ -555,6 +566,10 @@ static int i2c_imx_start(struct imx_i2c_
|
@@ -577,6 +588,10 @@ static int i2c_imx_start(struct imx_i2c_
|
||||||
|
|
||||||
dev_dbg(&i2c_imx->adapter.dev, "<%s>\n", __func__);
|
dev_dbg(&i2c_imx->adapter.dev, "<%s>\n", __func__);
|
||||||
|
|
||||||
@ -84,7 +84,7 @@ Signed-off-by: Shrikant Bobade <Shrikant_Bobade@mentor.com>
|
|||||||
imx_i2c_write_reg(i2c_imx->ifdr, i2c_imx, IMX_I2C_IFDR);
|
imx_i2c_write_reg(i2c_imx->ifdr, i2c_imx, IMX_I2C_IFDR);
|
||||||
/* Enable I2C controller */
|
/* Enable I2C controller */
|
||||||
imx_i2c_write_reg(i2c_imx->hwdata->i2sr_clr_opcode, i2c_imx, IMX_I2C_I2SR);
|
imx_i2c_write_reg(i2c_imx->hwdata->i2sr_clr_opcode, i2c_imx, IMX_I2C_I2SR);
|
||||||
@@ -1175,7 +1190,11 @@ static int i2c_imx_probe(struct platform
|
@@ -1203,7 +1218,11 @@ static int i2c_imx_probe(struct platform
|
||||||
i2c_imx->bitrate = pdata->bitrate;
|
i2c_imx->bitrate = pdata->bitrate;
|
||||||
i2c_imx->clk_change_nb.notifier_call = i2c_imx_clk_notifier_call;
|
i2c_imx->clk_change_nb.notifier_call = i2c_imx_clk_notifier_call;
|
||||||
clk_notifier_register(i2c_imx->clk, &i2c_imx->clk_change_nb);
|
clk_notifier_register(i2c_imx->clk, &i2c_imx->clk_change_nb);
|
||||||
|
@ -17,7 +17,7 @@ Signed-off-by: Zhang Ying-22455 <ying.zhang22455@nxp.com>
|
|||||||
|
|
||||||
--- a/drivers/i2c/busses/i2c-imx.c
|
--- a/drivers/i2c/busses/i2c-imx.c
|
||||||
+++ b/drivers/i2c/busses/i2c-imx.c
|
+++ b/drivers/i2c/busses/i2c-imx.c
|
||||||
@@ -940,6 +940,14 @@ static int i2c_imx_xfer(struct i2c_adapt
|
@@ -968,6 +968,14 @@ static int i2c_imx_xfer(struct i2c_adapt
|
||||||
enable_runtime_pm = true;
|
enable_runtime_pm = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -106,7 +106,7 @@ Signed-off-by: Zhang Ying-22455 <ying.zhang22455@nxp.com>
|
|||||||
};
|
};
|
||||||
|
|
||||||
static const struct imx_i2c_hwdata imx1_i2c_hwdata = {
|
static const struct imx_i2c_hwdata imx1_i2c_hwdata = {
|
||||||
@@ -923,6 +983,78 @@ static int i2c_imx_read(struct imx_i2c_s
|
@@ -951,6 +1011,78 @@ static int i2c_imx_read(struct imx_i2c_s
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -185,7 +185,7 @@ Signed-off-by: Zhang Ying-22455 <ying.zhang22455@nxp.com>
|
|||||||
static int i2c_imx_xfer(struct i2c_adapter *adapter,
|
static int i2c_imx_xfer(struct i2c_adapter *adapter,
|
||||||
struct i2c_msg *msgs, int num)
|
struct i2c_msg *msgs, int num)
|
||||||
{
|
{
|
||||||
@@ -945,8 +1077,13 @@ static int i2c_imx_xfer(struct i2c_adapt
|
@@ -973,8 +1105,13 @@ static int i2c_imx_xfer(struct i2c_adapt
|
||||||
* before switching to master mode and attempting a Start cycle
|
* before switching to master mode and attempting a Start cycle
|
||||||
*/
|
*/
|
||||||
result = i2c_imx_bus_busy(i2c_imx, 0);
|
result = i2c_imx_bus_busy(i2c_imx, 0);
|
||||||
@ -201,7 +201,7 @@ Signed-off-by: Zhang Ying-22455 <ying.zhang22455@nxp.com>
|
|||||||
|
|
||||||
result = pm_runtime_get_sync(i2c_imx->adapter.dev.parent);
|
result = pm_runtime_get_sync(i2c_imx->adapter.dev.parent);
|
||||||
if (result < 0)
|
if (result < 0)
|
||||||
@@ -1093,6 +1230,50 @@ static int i2c_imx_init_recovery_info(st
|
@@ -1121,6 +1258,50 @@ static int i2c_imx_init_recovery_info(st
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -252,7 +252,7 @@ Signed-off-by: Zhang Ying-22455 <ying.zhang22455@nxp.com>
|
|||||||
static u32 i2c_imx_func(struct i2c_adapter *adapter)
|
static u32 i2c_imx_func(struct i2c_adapter *adapter)
|
||||||
{
|
{
|
||||||
return I2C_FUNC_I2C | I2C_FUNC_SMBUS_EMUL
|
return I2C_FUNC_I2C | I2C_FUNC_SMBUS_EMUL
|
||||||
@@ -1217,8 +1398,13 @@ static int i2c_imx_probe(struct platform
|
@@ -1245,8 +1426,13 @@ static int i2c_imx_probe(struct platform
|
||||||
i2c_imx, IMX_I2C_I2CR);
|
i2c_imx, IMX_I2C_I2CR);
|
||||||
imx_i2c_write_reg(i2c_imx->hwdata->i2sr_clr_opcode, i2c_imx, IMX_I2C_I2SR);
|
imx_i2c_write_reg(i2c_imx->hwdata->i2sr_clr_opcode, i2c_imx, IMX_I2C_I2SR);
|
||||||
|
|
||||||
|
@ -14,7 +14,7 @@ Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
|
|||||||
|
|
||||||
--- a/drivers/i2c/busses/i2c-imx.c
|
--- a/drivers/i2c/busses/i2c-imx.c
|
||||||
+++ b/drivers/i2c/busses/i2c-imx.c
|
+++ b/drivers/i2c/busses/i2c-imx.c
|
||||||
@@ -1398,13 +1398,12 @@ static int i2c_imx_probe(struct platform
|
@@ -1426,13 +1426,12 @@ static int i2c_imx_probe(struct platform
|
||||||
i2c_imx, IMX_I2C_I2CR);
|
i2c_imx, IMX_I2C_I2CR);
|
||||||
imx_i2c_write_reg(i2c_imx->hwdata->i2sr_clr_opcode, i2c_imx, IMX_I2C_I2SR);
|
imx_i2c_write_reg(i2c_imx->hwdata->i2sr_clr_opcode, i2c_imx, IMX_I2C_I2SR);
|
||||||
|
|
||||||
|
@ -22,7 +22,7 @@ Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
|
|||||||
|
|
||||||
--- a/drivers/i2c/busses/i2c-imx.c
|
--- a/drivers/i2c/busses/i2c-imx.c
|
||||||
+++ b/drivers/i2c/busses/i2c-imx.c
|
+++ b/drivers/i2c/busses/i2c-imx.c
|
||||||
@@ -1066,12 +1066,15 @@ static int i2c_imx_xfer(struct i2c_adapt
|
@@ -1094,12 +1094,15 @@ static int i2c_imx_xfer(struct i2c_adapt
|
||||||
|
|
||||||
dev_dbg(&i2c_imx->adapter.dev, "<%s>\n", __func__);
|
dev_dbg(&i2c_imx->adapter.dev, "<%s>\n", __func__);
|
||||||
|
|
||||||
@ -39,7 +39,7 @@ Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
|
|||||||
/*
|
/*
|
||||||
* workround for ERR010027: ensure that the I2C BUS is idle
|
* workround for ERR010027: ensure that the I2C BUS is idle
|
||||||
* before switching to master mode and attempting a Start cycle
|
* before switching to master mode and attempting a Start cycle
|
||||||
@@ -1085,10 +1088,6 @@ static int i2c_imx_xfer(struct i2c_adapt
|
@@ -1113,10 +1116,6 @@ static int i2c_imx_xfer(struct i2c_adapt
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -38,7 +38,7 @@ Signed-off-by: Biwen Li <biwen.li@nxp.com>
|
|||||||
/* Functions for DMA support */
|
/* Functions for DMA support */
|
||||||
static void i2c_imx_dma_request(struct imx_i2c_struct *i2c_imx,
|
static void i2c_imx_dma_request(struct imx_i2c_struct *i2c_imx,
|
||||||
dma_addr_t phy_addr)
|
dma_addr_t phy_addr)
|
||||||
@@ -681,23 +692,33 @@ static void i2c_imx_stop(struct imx_i2c_
|
@@ -705,21 +716,33 @@ static void i2c_imx_stop(struct imx_i2c_
|
||||||
imx_i2c_write_reg(temp, i2c_imx, IMX_I2C_I2CR);
|
imx_i2c_write_reg(temp, i2c_imx, IMX_I2C_I2CR);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -57,9 +57,7 @@ Signed-off-by: Biwen Li <biwen.li@nxp.com>
|
|||||||
- if (temp & I2SR_IIF) {
|
- if (temp & I2SR_IIF) {
|
||||||
- /* save status register */
|
- /* save status register */
|
||||||
- i2c_imx->i2csr = temp;
|
- i2c_imx->i2csr = temp;
|
||||||
- temp &= ~I2SR_IIF;
|
- i2c_imx_clear_irq(i2c_imx, I2SR_IIF);
|
||||||
- temp |= (i2c_imx->hwdata->i2sr_clr_opcode & I2SR_IIF);
|
|
||||||
- imx_i2c_write_reg(temp, i2c_imx, IMX_I2C_I2SR);
|
|
||||||
- wake_up(&i2c_imx->queue);
|
- wake_up(&i2c_imx->queue);
|
||||||
- return IRQ_HANDLED;
|
- return IRQ_HANDLED;
|
||||||
- }
|
- }
|
||||||
@ -70,8 +68,7 @@ Signed-off-by: Biwen Li <biwen.li@nxp.com>
|
|||||||
+ status |= (i2c_imx->hwdata->i2sr_clr_opcode & I2SR_IAL);
|
+ status |= (i2c_imx->hwdata->i2sr_clr_opcode & I2SR_IAL);
|
||||||
+ imx_i2c_write_reg(status, i2c_imx, IMX_I2C_I2SR);
|
+ imx_i2c_write_reg(status, i2c_imx, IMX_I2C_I2SR);
|
||||||
+}
|
+}
|
||||||
|
+
|
||||||
- return IRQ_NONE;
|
|
||||||
+static irqreturn_t i2c_imx_master_isr(struct imx_i2c_struct *i2c_imx)
|
+static irqreturn_t i2c_imx_master_isr(struct imx_i2c_struct *i2c_imx)
|
||||||
+{
|
+{
|
||||||
+ unsigned int status;
|
+ unsigned int status;
|
||||||
@ -81,12 +78,13 @@ Signed-off-by: Biwen Li <biwen.li@nxp.com>
|
|||||||
+ i2c_imx->i2csr = status | I2SR_IIF;
|
+ i2c_imx->i2csr = status | I2SR_IIF;
|
||||||
+
|
+
|
||||||
+ wake_up(&i2c_imx->queue);
|
+ wake_up(&i2c_imx->queue);
|
||||||
+
|
|
||||||
|
- return IRQ_NONE;
|
||||||
+ return IRQ_HANDLED;
|
+ return IRQ_HANDLED;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int i2c_imx_dma_write(struct imx_i2c_struct *i2c_imx,
|
static int i2c_imx_dma_write(struct imx_i2c_struct *i2c_imx,
|
||||||
@@ -1066,6 +1087,13 @@ static int i2c_imx_xfer(struct i2c_adapt
|
@@ -1094,6 +1117,13 @@ static int i2c_imx_xfer(struct i2c_adapt
|
||||||
|
|
||||||
dev_dbg(&i2c_imx->adapter.dev, "<%s>\n", __func__);
|
dev_dbg(&i2c_imx->adapter.dev, "<%s>\n", __func__);
|
||||||
|
|
||||||
@ -100,7 +98,7 @@ Signed-off-by: Biwen Li <biwen.li@nxp.com>
|
|||||||
if (!pm_runtime_enabled(i2c_imx->adapter.dev.parent)) {
|
if (!pm_runtime_enabled(i2c_imx->adapter.dev.parent)) {
|
||||||
pm_runtime_enable(i2c_imx->adapter.dev.parent);
|
pm_runtime_enable(i2c_imx->adapter.dev.parent);
|
||||||
enable_runtime_pm = true;
|
enable_runtime_pm = true;
|
||||||
@@ -1279,11 +1307,169 @@ static u32 i2c_imx_func(struct i2c_adapt
|
@@ -1307,11 +1337,169 @@ static u32 i2c_imx_func(struct i2c_adapt
|
||||||
| I2C_FUNC_SMBUS_READ_BLOCK_DATA;
|
| I2C_FUNC_SMBUS_READ_BLOCK_DATA;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -270,7 +268,7 @@ Signed-off-by: Biwen Li <biwen.li@nxp.com>
|
|||||||
static int i2c_imx_probe(struct platform_device *pdev)
|
static int i2c_imx_probe(struct platform_device *pdev)
|
||||||
{
|
{
|
||||||
struct imx_i2c_struct *i2c_imx;
|
struct imx_i2c_struct *i2c_imx;
|
||||||
@@ -1392,10 +1578,7 @@ static int i2c_imx_probe(struct platform
|
@@ -1420,10 +1608,7 @@ static int i2c_imx_probe(struct platform
|
||||||
if (is_imx7d_i2c(i2c_imx) && i2c_imx->bitrate > IMX_I2C_MAX_E_BIT_RATE)
|
if (is_imx7d_i2c(i2c_imx) && i2c_imx->bitrate > IMX_I2C_MAX_E_BIT_RATE)
|
||||||
i2c_imx->bitrate = IMX_I2C_MAX_E_BIT_RATE;
|
i2c_imx->bitrate = IMX_I2C_MAX_E_BIT_RATE;
|
||||||
|
|
||||||
|
@ -17,8 +17,8 @@ Signed-off-by: Biwen Li <biwen.li@nxp.com>
|
|||||||
|
|
||||||
--- a/drivers/i2c/busses/i2c-imx.c
|
--- a/drivers/i2c/busses/i2c-imx.c
|
||||||
+++ b/drivers/i2c/busses/i2c-imx.c
|
+++ b/drivers/i2c/busses/i2c-imx.c
|
||||||
@@ -503,6 +503,14 @@ static void i2c_imx_dma_free(struct imx_
|
@@ -516,6 +516,14 @@ static void i2c_imx_clear_irq(struct imx
|
||||||
dma->chan_using = NULL;
|
imx_i2c_write_reg(temp, i2c_imx, IMX_I2C_I2SR);
|
||||||
}
|
}
|
||||||
|
|
||||||
+/* Clear arbitration lost bit */
|
+/* Clear arbitration lost bit */
|
||||||
@ -32,17 +32,16 @@ Signed-off-by: Biwen Li <biwen.li@nxp.com>
|
|||||||
static int i2c_imx_bus_busy(struct imx_i2c_struct *i2c_imx, int for_busy)
|
static int i2c_imx_bus_busy(struct imx_i2c_struct *i2c_imx, int for_busy)
|
||||||
{
|
{
|
||||||
unsigned long orig_jiffies = jiffies;
|
unsigned long orig_jiffies = jiffies;
|
||||||
@@ -515,8 +523,7 @@ static int i2c_imx_bus_busy(struct imx_i
|
@@ -528,7 +536,7 @@ static int i2c_imx_bus_busy(struct imx_i
|
||||||
|
|
||||||
/* check for arbitration lost */
|
/* check for arbitration lost */
|
||||||
if (temp & I2SR_IAL) {
|
if (temp & I2SR_IAL) {
|
||||||
- temp &= ~I2SR_IAL;
|
- i2c_imx_clear_irq(i2c_imx, I2SR_IAL);
|
||||||
- imx_i2c_write_reg(temp, i2c_imx, IMX_I2C_I2SR);
|
|
||||||
+ i2c_imx_clr_al_bit(temp, i2c_imx);
|
+ i2c_imx_clr_al_bit(temp, i2c_imx);
|
||||||
return -EAGAIN;
|
return -EAGAIN;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -700,14 +707,6 @@ static void i2c_imx_clr_if_bit(unsigned
|
@@ -724,14 +732,6 @@ static void i2c_imx_clr_if_bit(unsigned
|
||||||
imx_i2c_write_reg(status, i2c_imx, IMX_I2C_I2SR);
|
imx_i2c_write_reg(status, i2c_imx, IMX_I2C_I2SR);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -57,7 +56,7 @@ Signed-off-by: Biwen Li <biwen.li@nxp.com>
|
|||||||
static irqreturn_t i2c_imx_master_isr(struct imx_i2c_struct *i2c_imx)
|
static irqreturn_t i2c_imx_master_isr(struct imx_i2c_struct *i2c_imx)
|
||||||
{
|
{
|
||||||
unsigned int status;
|
unsigned int status;
|
||||||
@@ -1050,12 +1049,14 @@ static int i2c_imx_recovery_for_layersca
|
@@ -1080,12 +1080,14 @@ static int i2c_imx_recovery_for_layersca
|
||||||
gpio_set_value(i2c_imx->gpio, 1);
|
gpio_set_value(i2c_imx->gpio, 1);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -77,7 +76,7 @@ Signed-off-by: Biwen Li <biwen.li@nxp.com>
|
|||||||
|
|
||||||
/* Restore the saved value of the register SCFG_RCWPMUXCR0 */
|
/* Restore the saved value of the register SCFG_RCWPMUXCR0 */
|
||||||
if (i2c_imx->need_set_pmuxcr == 1) {
|
if (i2c_imx->need_set_pmuxcr == 1) {
|
||||||
@@ -1069,10 +1070,9 @@ static int i2c_imx_recovery_for_layersca
|
@@ -1099,10 +1101,9 @@ static int i2c_imx_recovery_for_layersca
|
||||||
* I2C_IBSR[IBAL] = 1
|
* I2C_IBSR[IBAL] = 1
|
||||||
*/
|
*/
|
||||||
temp = imx_i2c_read_reg(i2c_imx, IMX_I2C_I2SR);
|
temp = imx_i2c_read_reg(i2c_imx, IMX_I2C_I2SR);
|
||||||
|
@ -15,7 +15,7 @@ Signed-off-by: Clark Wang <xiaoning.wang@nxp.com>
|
|||||||
|
|
||||||
--- a/drivers/i2c/busses/i2c-imx.c
|
--- a/drivers/i2c/busses/i2c-imx.c
|
||||||
+++ b/drivers/i2c/busses/i2c-imx.c
|
+++ b/drivers/i2c/busses/i2c-imx.c
|
||||||
@@ -1451,23 +1451,20 @@ static const struct i2c_algorithm i2c_im
|
@@ -1482,23 +1482,20 @@ static const struct i2c_algorithm i2c_im
|
||||||
static irqreturn_t i2c_imx_isr(int irq, void *dev_id)
|
static irqreturn_t i2c_imx_isr(int irq, void *dev_id)
|
||||||
{
|
{
|
||||||
struct imx_i2c_struct *i2c_imx = dev_id;
|
struct imx_i2c_struct *i2c_imx = dev_id;
|
||||||
|
@ -52,7 +52,7 @@ Signed-off-by: Peng Ma <peng.ma@nxp.com>
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void i2c_imx_dma_callback(void *arg)
|
static void i2c_imx_dma_callback(void *arg)
|
||||||
@@ -1602,10 +1604,14 @@ static int i2c_imx_probe(struct platform
|
@@ -1633,10 +1635,14 @@ static int i2c_imx_probe(struct platform
|
||||||
dev_info(&i2c_imx->adapter.dev, "IMX I2C adapter registered\n");
|
dev_info(&i2c_imx->adapter.dev, "IMX I2C adapter registered\n");
|
||||||
|
|
||||||
/* Init DMA config if supported */
|
/* Init DMA config if supported */
|
||||||
|
@ -11,7 +11,7 @@ Signed-off-by: Kuldeep Singh <kuldeep.singh@nxp.com>
|
|||||||
|
|
||||||
--- a/drivers/mtd/spi-nor/spi-nor.c
|
--- a/drivers/mtd/spi-nor/spi-nor.c
|
||||||
+++ b/drivers/mtd/spi-nor/spi-nor.c
|
+++ b/drivers/mtd/spi-nor/spi-nor.c
|
||||||
@@ -2410,7 +2410,7 @@ static const struct flash_info spi_nor_i
|
@@ -2417,7 +2417,7 @@ static const struct flash_info spi_nor_i
|
||||||
{ "s25fl512s", INFO6(0x010220, 0x4d0080, 256 * 1024, 256,
|
{ "s25fl512s", INFO6(0x010220, 0x4d0080, 256 * 1024, 256,
|
||||||
SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ |
|
SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ |
|
||||||
SPI_NOR_HAS_LOCK | USE_CLSR) },
|
SPI_NOR_HAS_LOCK | USE_CLSR) },
|
||||||
|
@ -10,7 +10,7 @@ Signed-off-by: Abhimanyu Vishwakarma <Abhimanyu.Vishwakarma@imgtec.com>
|
|||||||
|
|
||||||
--- a/drivers/mtd/spi-nor/spi-nor.c
|
--- a/drivers/mtd/spi-nor/spi-nor.c
|
||||||
+++ b/drivers/mtd/spi-nor/spi-nor.c
|
+++ b/drivers/mtd/spi-nor/spi-nor.c
|
||||||
@@ -4930,6 +4930,7 @@ int spi_nor_scan(struct spi_nor *nor, co
|
@@ -4937,6 +4937,7 @@ int spi_nor_scan(struct spi_nor *nor, co
|
||||||
struct mtd_info *mtd = &nor->mtd;
|
struct mtd_info *mtd = &nor->mtd;
|
||||||
struct device_node *np = spi_nor_get_flash_node(nor);
|
struct device_node *np = spi_nor_get_flash_node(nor);
|
||||||
struct spi_nor_flash_parameter *params = &nor->params;
|
struct spi_nor_flash_parameter *params = &nor->params;
|
||||||
@ -18,7 +18,7 @@ Signed-off-by: Abhimanyu Vishwakarma <Abhimanyu.Vishwakarma@imgtec.com>
|
|||||||
int ret;
|
int ret;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
@@ -4992,7 +4993,12 @@ int spi_nor_scan(struct spi_nor *nor, co
|
@@ -4999,7 +5000,12 @@ int spi_nor_scan(struct spi_nor *nor, co
|
||||||
/* Init flash parameters based on flash_info struct and SFDP */
|
/* Init flash parameters based on flash_info struct and SFDP */
|
||||||
spi_nor_init_params(nor);
|
spi_nor_init_params(nor);
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
--- a/drivers/mtd/spi-nor/spi-nor.c
|
--- a/drivers/mtd/spi-nor/spi-nor.c
|
||||||
+++ b/drivers/mtd/spi-nor/spi-nor.c
|
+++ b/drivers/mtd/spi-nor/spi-nor.c
|
||||||
@@ -2296,6 +2296,11 @@ static const struct flash_info spi_nor_i
|
@@ -2303,6 +2303,11 @@ static const struct flash_info spi_nor_i
|
||||||
SPI_NOR_4B_OPCODES | SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB)
|
SPI_NOR_4B_OPCODES | SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB)
|
||||||
.fixups = &gd25q256_fixups,
|
.fixups = &gd25q256_fixups,
|
||||||
},
|
},
|
||||||
|
@ -430,7 +430,10 @@ static struct device_info boards[] = {
|
|||||||
"CPE510(TP-LINK|US|N300-5|55530000):3.0\r\n"
|
"CPE510(TP-LINK|US|N300-5|55530000):3.0\r\n"
|
||||||
"CPE510(TP-LINK|UN|N300-5):3.0\r\n"
|
"CPE510(TP-LINK|UN|N300-5):3.0\r\n"
|
||||||
"CPE510(TP-LINK|EU|N300-5):3.0\r\n"
|
"CPE510(TP-LINK|EU|N300-5):3.0\r\n"
|
||||||
"CPE510(TP-LINK|US|N300-5):3.0\r\n",
|
"CPE510(TP-LINK|US|N300-5):3.0\r\n"
|
||||||
|
"CPE510(TP-LINK|UN|N300-5|00000000):3.20\r\n"
|
||||||
|
"CPE510(TP-LINK|US|N300-5|55530000):3.20\r\n"
|
||||||
|
"CPE510(TP-LINK|EU|N300-5|45550000):3.20\r\n",
|
||||||
.part_trail = 0xff,
|
.part_trail = 0xff,
|
||||||
.soft_ver = NULL,
|
.soft_ver = NULL,
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user