Merge Official Source
This commit is contained in:
commit
608d3c70ab
@ -85,6 +85,126 @@ config KERNEL_PROFILING
|
|||||||
Enable the extended profiling support mechanisms used by profilers such
|
Enable the extended profiling support mechanisms used by profilers such
|
||||||
as OProfile.
|
as OProfile.
|
||||||
|
|
||||||
|
config KERNEL_UBSAN
|
||||||
|
bool "Compile the kernel with undefined behaviour sanity checker"
|
||||||
|
help
|
||||||
|
This option enables undefined behaviour sanity checker
|
||||||
|
Compile-time instrumentation is used to detect various undefined
|
||||||
|
behaviours in runtime. Various types of checks may be enabled
|
||||||
|
via boot parameter ubsan_handle
|
||||||
|
(see: Documentation/dev-tools/ubsan.rst).
|
||||||
|
|
||||||
|
config KERNEL_UBSAN_SANITIZE_ALL
|
||||||
|
bool "Enable instrumentation for the entire kernel"
|
||||||
|
depends on KERNEL_UBSAN
|
||||||
|
default y
|
||||||
|
help
|
||||||
|
This option activates instrumentation for the entire kernel.
|
||||||
|
If you don't enable this option, you have to explicitly specify
|
||||||
|
UBSAN_SANITIZE := y for the files/directories you want to check for UB.
|
||||||
|
Enabling this option will get kernel image size increased
|
||||||
|
significantly.
|
||||||
|
|
||||||
|
config KERNEL_UBSAN_ALIGNMENT
|
||||||
|
bool "Enable checking of pointers alignment"
|
||||||
|
depends on KERNEL_UBSAN
|
||||||
|
help
|
||||||
|
This option enables detection of unaligned memory accesses.
|
||||||
|
Enabling this option on architectures that support unaligned
|
||||||
|
accesses may produce a lot of false positives.
|
||||||
|
|
||||||
|
config KERNEL_UBSAN_NULL
|
||||||
|
bool "Enable checking of null pointers"
|
||||||
|
depends on KERNEL_UBSAN
|
||||||
|
help
|
||||||
|
This option enables detection of memory accesses via a
|
||||||
|
null pointer.
|
||||||
|
|
||||||
|
config KERNEL_KASAN
|
||||||
|
bool "Compile the kernel with KASan: runtime memory debugger"
|
||||||
|
select KERNEL_SLUB_DEBUG
|
||||||
|
depends on (x86_64 || aarch64)
|
||||||
|
help
|
||||||
|
Enables kernel address sanitizer - runtime memory debugger,
|
||||||
|
designed to find out-of-bounds accesses and use-after-free bugs.
|
||||||
|
This is strictly a debugging feature and it requires a gcc version
|
||||||
|
of 4.9.2 or later. Detection of out of bounds accesses to stack or
|
||||||
|
global variables requires gcc 5.0 or later.
|
||||||
|
This feature consumes about 1/8 of available memory and brings about
|
||||||
|
~x3 performance slowdown.
|
||||||
|
For better error detection enable CONFIG_STACKTRACE.
|
||||||
|
Currently CONFIG_KASAN doesn't work with CONFIG_DEBUG_SLAB
|
||||||
|
(the resulting kernel does not boot).
|
||||||
|
|
||||||
|
config KERNEL_KASAN_EXTRA
|
||||||
|
bool "KAsan: extra checks"
|
||||||
|
depends on KERNEL_KASAN && KERNEL_DEBUG_KERNEL
|
||||||
|
help
|
||||||
|
This enables further checks in the kernel address sanitizer, for now
|
||||||
|
it only includes the address-use-after-scope check that can lead
|
||||||
|
to excessive kernel stack usage, frame size warnings and longer
|
||||||
|
compile time.
|
||||||
|
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81715 has more
|
||||||
|
|
||||||
|
|
||||||
|
choice
|
||||||
|
prompt "Instrumentation type"
|
||||||
|
depends on KERNEL_KASAN
|
||||||
|
default KERNEL_KASAN_OUTLINE
|
||||||
|
|
||||||
|
config KERNEL_KASAN_OUTLINE
|
||||||
|
bool "Outline instrumentation"
|
||||||
|
help
|
||||||
|
Before every memory access compiler insert function call
|
||||||
|
__asan_load*/__asan_store*. These functions performs check
|
||||||
|
of shadow memory. This is slower than inline instrumentation,
|
||||||
|
however it doesn't bloat size of kernel's .text section so
|
||||||
|
much as inline does.
|
||||||
|
|
||||||
|
config KERNEL_KASAN_INLINE
|
||||||
|
bool "Inline instrumentation"
|
||||||
|
help
|
||||||
|
Compiler directly inserts code checking shadow memory before
|
||||||
|
memory accesses. This is faster than outline (in some workloads
|
||||||
|
it gives about x2 boost over outline instrumentation), but
|
||||||
|
make kernel's .text size much bigger.
|
||||||
|
This requires a gcc version of 5.0 or later.
|
||||||
|
|
||||||
|
endchoice
|
||||||
|
|
||||||
|
config KERNEL_KCOV
|
||||||
|
bool "Compile the kernel with code coverage for fuzzing"
|
||||||
|
select KERNEL_DEBUG_FS
|
||||||
|
help
|
||||||
|
KCOV exposes kernel code coverage information in a form suitable
|
||||||
|
for coverage-guided fuzzing (randomized testing).
|
||||||
|
|
||||||
|
If RANDOMIZE_BASE is enabled, PC values will not be stable across
|
||||||
|
different machines and across reboots. If you need stable PC values,
|
||||||
|
disable RANDOMIZE_BASE.
|
||||||
|
|
||||||
|
For more details, see Documentation/kcov.txt.
|
||||||
|
|
||||||
|
config KERNEL_KCOV_ENABLE_COMPARISONS
|
||||||
|
bool "Enable comparison operands collection by KCOV"
|
||||||
|
depends on KERNEL_KCOV
|
||||||
|
help
|
||||||
|
KCOV also exposes operands of every comparison in the instrumented
|
||||||
|
code along with operand sizes and PCs of the comparison instructions.
|
||||||
|
These operands can be used by fuzzing engines to improve the quality
|
||||||
|
of fuzzing coverage.
|
||||||
|
|
||||||
|
config KERNEL_KCOV_INSTRUMENT_ALL
|
||||||
|
bool "Instrument all code by default"
|
||||||
|
depends on KERNEL_KCOV
|
||||||
|
default y if KERNEL_KCOV
|
||||||
|
help
|
||||||
|
If you are doing generic system call fuzzing (like e.g. syzkaller),
|
||||||
|
then you will want to instrument the whole kernel and you should
|
||||||
|
say y here. If you are doing more targeted fuzzing (like e.g.
|
||||||
|
filesystem fuzzing with AFL) then you will want to enable coverage
|
||||||
|
for more specific subsets of files, and should say n here.
|
||||||
|
|
||||||
config KERNEL_TASKSTATS
|
config KERNEL_TASKSTATS
|
||||||
bool "Compile the kernel with task resource/io statistics and accounting"
|
bool "Compile the kernel with task resource/io statistics and accounting"
|
||||||
default n
|
default n
|
||||||
@ -257,6 +377,74 @@ config KERNEL_PROVE_LOCKING
|
|||||||
select KERNEL_DEBUG_KERNEL
|
select KERNEL_DEBUG_KERNEL
|
||||||
default n
|
default n
|
||||||
|
|
||||||
|
config KERNEL_LOCKUP_DETECTOR
|
||||||
|
bool "Compile the kernel with detect Hard and Soft Lockups"
|
||||||
|
depends on KERNEL_DEBUG_KERNEL
|
||||||
|
help
|
||||||
|
Say Y here to enable the kernel to act as a watchdog to detect
|
||||||
|
hard and soft lockups.
|
||||||
|
|
||||||
|
Softlockups are bugs that cause the kernel to loop in kernel
|
||||||
|
mode for more than 20 seconds, without giving other tasks a
|
||||||
|
chance to run. The current stack trace is displayed upon
|
||||||
|
detection and the system will stay locked up.
|
||||||
|
|
||||||
|
Hardlockups are bugs that cause the CPU to loop in kernel mode
|
||||||
|
for more than 10 seconds, without letting other interrupts have a
|
||||||
|
chance to run. The current stack trace is displayed upon detection
|
||||||
|
and the system will stay locked up.
|
||||||
|
|
||||||
|
The overhead should be minimal. A periodic hrtimer runs to
|
||||||
|
generate interrupts and kick the watchdog task every 4 seconds.
|
||||||
|
An NMI is generated every 10 seconds or so to check for hardlockups.
|
||||||
|
|
||||||
|
The frequency of hrtimer and NMI events and the soft and hard lockup
|
||||||
|
thresholds can be controlled through the sysctl watchdog_thresh.
|
||||||
|
|
||||||
|
config KERNEL_DETECT_HUNG_TASK
|
||||||
|
bool "Compile the kernel with detect Hung Tasks"
|
||||||
|
depends on KERNEL_DEBUG_KERNEL
|
||||||
|
default KERNEL_LOCKUP_DETECTOR
|
||||||
|
help
|
||||||
|
Say Y here to enable the kernel to detect "hung tasks",
|
||||||
|
which are bugs that cause the task to be stuck in
|
||||||
|
uninterruptible "D" state indefinitely.
|
||||||
|
|
||||||
|
When a hung task is detected, the kernel will print the
|
||||||
|
current stack trace (which you should report), but the
|
||||||
|
task will stay in uninterruptible state. If lockdep is
|
||||||
|
enabled then all held locks will also be reported. This
|
||||||
|
feature has negligible overhead.
|
||||||
|
|
||||||
|
config KERNEL_WQ_WATCHDOG
|
||||||
|
bool "Compile the kernel with detect Workqueue Stalls"
|
||||||
|
depends on KERNEL_DEBUG_KERNEL
|
||||||
|
help
|
||||||
|
Say Y here to enable stall detection on workqueues. If a
|
||||||
|
worker pool doesn't make forward progress on a pending work
|
||||||
|
item for over a given amount of time, 30s by default, a
|
||||||
|
warning message is printed along with dump of workqueue
|
||||||
|
state. This can be configured through kernel parameter
|
||||||
|
"workqueue.watchdog_thresh" and its sysfs counterpart.
|
||||||
|
|
||||||
|
config KERNEL_DEBUG_ATOMIC_SLEEP
|
||||||
|
bool "Compile the kernel with sleep inside atomic section checking"
|
||||||
|
depends on KERNEL_DEBUG_KERNEL
|
||||||
|
help
|
||||||
|
If you say Y here, various routines which may sleep will become very
|
||||||
|
noisy if they are called inside atomic sections: when a spinlock is
|
||||||
|
held, inside an rcu read side critical section, inside preempt disabled
|
||||||
|
sections, inside an interrupt, etc...
|
||||||
|
|
||||||
|
config KERNEL_DEBUG_VM
|
||||||
|
bool "Compile the kernel with debug VM"
|
||||||
|
depends on KERNEL_DEBUG_KERNEL
|
||||||
|
help
|
||||||
|
Enable this to turn on extended checks in the virtual-memory system
|
||||||
|
that may impact performance.
|
||||||
|
|
||||||
|
If unsure, say N.
|
||||||
|
|
||||||
config KERNEL_PRINTK_TIME
|
config KERNEL_PRINTK_TIME
|
||||||
bool "Enable printk timestamps"
|
bool "Enable printk timestamps"
|
||||||
default y
|
default y
|
||||||
|
|||||||
@ -9,14 +9,14 @@ include $(TOPDIR)/rules.mk
|
|||||||
|
|
||||||
PKG_NAME:=arm-trusted-firmware-mvebu
|
PKG_NAME:=arm-trusted-firmware-mvebu
|
||||||
PKG_VERSION:=2.2
|
PKG_VERSION:=2.2
|
||||||
PKG_RELEASE:=1
|
PKG_RELEASE:=2
|
||||||
|
|
||||||
PKG_SOURCE_PROTO:=git
|
PKG_SOURCE_PROTO:=git
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_RELEASE).tar.xz
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_RELEASE).tar.xz
|
||||||
PKG_SOURCE_URL:=https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git
|
PKG_SOURCE_URL:=https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git
|
||||||
PKG_SOURCE_DATE:=2019-10-22
|
PKG_SOURCE_DATE:=2020-01-21
|
||||||
PKG_SOURCE_VERSION:=a04808c16cfc126d9fe572ae7c4b5a3d39de5796
|
PKG_SOURCE_VERSION:=3b3d406ebc6f5dae6b5c9170c674183026e7301b
|
||||||
PKG_MIRROR_HASH:=ff93aad67227ca96db54e92288f61b4ff3abbaad291fc88ad95c29cd3dd3588c
|
PKG_MIRROR_HASH:=7c63da237c52808e1fe49458d5a4ac804a8eb4c365e26c6b2b709256e8fc041f
|
||||||
|
|
||||||
PKG_MAINTAINER:=Vladimir Vid <vladimir.vid@sartura.hr>
|
PKG_MAINTAINER:=Vladimir Vid <vladimir.vid@sartura.hr>
|
||||||
|
|
||||||
|
|||||||
@ -8,12 +8,12 @@
|
|||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=linux-firmware
|
PKG_NAME:=linux-firmware
|
||||||
PKG_VERSION:=20191215
|
PKG_VERSION:=20200122
|
||||||
PKG_RELEASE:=1
|
PKG_RELEASE:=1
|
||||||
|
|
||||||
PKG_SOURCE_URL:=@KERNEL/linux/kernel/firmware
|
PKG_SOURCE_URL:=@KERNEL/linux/kernel/firmware
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
||||||
PKG_HASH:=c2068ff4a797c0f2c3edbb9488f82a48bca8a995855ea21310a8346195c0ae56
|
PKG_HASH:=a30e811b3736a72b874ac27e10662f5e5409b1cadf8aab7ba88e8f8bc8083986
|
||||||
|
|
||||||
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
|
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
|
||||||
|
|
||||||
|
|||||||
@ -181,7 +181,7 @@ PKG_EXTRA_CFLAGS:= \
|
|||||||
define Build/Compile
|
define Build/Compile
|
||||||
$(MAKE) -C "$(LINUX_DIR)" \
|
$(MAKE) -C "$(LINUX_DIR)" \
|
||||||
$(KERNEL_MAKE_FLAGS) \
|
$(KERNEL_MAKE_FLAGS) \
|
||||||
SUBDIRS="$(PKG_BUILD_DIR)" \
|
M="$(PKG_BUILD_DIR)" \
|
||||||
$(PKG_EXTRA_KCONFIG) \
|
$(PKG_EXTRA_KCONFIG) \
|
||||||
EXTRA_CFLAGS="$(PKG_EXTRA_CFLAGS) -DCONFIG_ACX_MAC80211_VERSION=\"KERNEL_VERSION(4,2,0)\"" \
|
EXTRA_CFLAGS="$(PKG_EXTRA_CFLAGS) -DCONFIG_ACX_MAC80211_VERSION=\"KERNEL_VERSION(4,2,0)\"" \
|
||||||
LINUXINCLUDE="-I$(STAGING_DIR)/usr/include/mac80211-backport/uapi -I$(STAGING_DIR)/usr/include/mac80211-backport \
|
LINUXINCLUDE="-I$(STAGING_DIR)/usr/include/mac80211-backport/uapi -I$(STAGING_DIR)/usr/include/mac80211-backport \
|
||||||
|
|||||||
@ -112,7 +112,7 @@ endif
|
|||||||
define Build/Compile
|
define Build/Compile
|
||||||
+$(MAKE) $(CT_MAKEDEFS) $(PKG_JOBS) -C "$(LINUX_DIR)" \
|
+$(MAKE) $(CT_MAKEDEFS) $(PKG_JOBS) -C "$(LINUX_DIR)" \
|
||||||
$(KERNEL_MAKE_FLAGS) \
|
$(KERNEL_MAKE_FLAGS) \
|
||||||
SUBDIRS="$(PKG_BUILD_DIR)/ath10k$(CT_KVER)" \
|
M="$(PKG_BUILD_DIR)/ath10k$(CT_KVER)" \
|
||||||
NOSTDINC_FLAGS="$(NOSTDINC_FLAGS)" \
|
NOSTDINC_FLAGS="$(NOSTDINC_FLAGS)" \
|
||||||
modules
|
modules
|
||||||
endef
|
endef
|
||||||
|
|||||||
@ -102,7 +102,7 @@ endef
|
|||||||
MAKE_KMOD := $(MAKE) -C "$(LINUX_DIR)" \
|
MAKE_KMOD := $(MAKE) -C "$(LINUX_DIR)" \
|
||||||
$(KERNEL_MAKE_FLAGS) \
|
$(KERNEL_MAKE_FLAGS) \
|
||||||
PATH="$(TARGET_PATH)" \
|
PATH="$(TARGET_PATH)" \
|
||||||
SUBDIRS="$(PKG_BUILD_DIR)/kmod" \
|
M="$(PKG_BUILD_DIR)/kmod" \
|
||||||
|
|
||||||
define Build/Prepare
|
define Build/Prepare
|
||||||
$(call Build/Prepare/Default)
|
$(call Build/Prepare/Default)
|
||||||
@ -113,18 +113,18 @@ endef
|
|||||||
define Build/Compile
|
define Build/Compile
|
||||||
# Compile glue driver
|
# Compile glue driver
|
||||||
$(MAKE_KMOD) -C "$(LINUX_DIR)" \
|
$(MAKE_KMOD) -C "$(LINUX_DIR)" \
|
||||||
SUBDIRS="$(PKG_BUILD_DIR)/glue" \
|
M="$(PKG_BUILD_DIR)/glue" \
|
||||||
modules
|
modules
|
||||||
|
|
||||||
# Compile the kernel part
|
# Compile the kernel part
|
||||||
$(MAKE_KMOD) \
|
$(MAKE_KMOD) \
|
||||||
SUBDIRS="$(PKG_BUILD_DIR)/driver" \
|
M="$(PKG_BUILD_DIR)/driver" \
|
||||||
MODFLAGS="-DMODULE -mlong-calls" \
|
MODFLAGS="-DMODULE -mlong-calls" \
|
||||||
KBUILD_EXTRA_SYMBOLS="$(PKG_BUILD_DIR)/glue/Module.symvers" \
|
KBUILD_EXTRA_SYMBOLS="$(PKG_BUILD_DIR)/glue/Module.symvers" \
|
||||||
modules
|
modules
|
||||||
|
|
||||||
$(MAKE_KMOD) \
|
$(MAKE_KMOD) \
|
||||||
SUBDIRS="$(PKG_BUILD_DIR)/driver-mini" \
|
M="$(PKG_BUILD_DIR)/driver-mini" \
|
||||||
MODFLAGS="-DMODULE -mlong-calls" \
|
MODFLAGS="-DMODULE -mlong-calls" \
|
||||||
BUILD_TYPE="wl_apsta_mini" \
|
BUILD_TYPE="wl_apsta_mini" \
|
||||||
KBUILD_EXTRA_SYMBOLS="$(PKG_BUILD_DIR)/glue/Module.symvers" \
|
KBUILD_EXTRA_SYMBOLS="$(PKG_BUILD_DIR)/glue/Module.symvers" \
|
||||||
|
|||||||
@ -37,7 +37,7 @@ EXTRA_CFLAGS:= \
|
|||||||
|
|
||||||
MAKE_OPTS:= \
|
MAKE_OPTS:= \
|
||||||
$(KERNEL_MAKE_FLAGS) \
|
$(KERNEL_MAKE_FLAGS) \
|
||||||
SUBDIRS="$(PKG_BUILD_DIR)" \
|
M="$(PKG_BUILD_DIR)" \
|
||||||
EXTRA_CFLAGS="$(EXTRA_CFLAGS)" \
|
EXTRA_CFLAGS="$(EXTRA_CFLAGS)" \
|
||||||
$(EXTRA_KCONFIG)
|
$(EXTRA_KCONFIG)
|
||||||
|
|
||||||
|
|||||||
@ -34,7 +34,7 @@ endef
|
|||||||
|
|
||||||
MAKE_OPTS:= \
|
MAKE_OPTS:= \
|
||||||
$(KERNEL_MAKE_FLAGS) \
|
$(KERNEL_MAKE_FLAGS) \
|
||||||
SUBDIRS="$(PKG_BUILD_DIR)"
|
M="$(PKG_BUILD_DIR)"
|
||||||
|
|
||||||
define Build/Compile
|
define Build/Compile
|
||||||
$(MAKE) -C "$(LINUX_DIR)" \
|
$(MAKE) -C "$(LINUX_DIR)" \
|
||||||
|
|||||||
@ -38,7 +38,7 @@ EXTRA_CFLAGS:= \
|
|||||||
|
|
||||||
MAKE_OPTS:= \
|
MAKE_OPTS:= \
|
||||||
$(KERNEL_MAKE_FLAGS) \
|
$(KERNEL_MAKE_FLAGS) \
|
||||||
SUBDIRS="$(PKG_BUILD_DIR)" \
|
M="$(PKG_BUILD_DIR)" \
|
||||||
EXTRA_CFLAGS="$(EXTRA_CFLAGS)" \
|
EXTRA_CFLAGS="$(EXTRA_CFLAGS)" \
|
||||||
$(EXTRA_KCONFIG)
|
$(EXTRA_KCONFIG)
|
||||||
|
|
||||||
|
|||||||
@ -21,7 +21,7 @@ endef
|
|||||||
define Build/Compile
|
define Build/Compile
|
||||||
$(MAKE) -C "$(LINUX_DIR)" \
|
$(MAKE) -C "$(LINUX_DIR)" \
|
||||||
$(KERNEL_MAKE_FLAGS) \
|
$(KERNEL_MAKE_FLAGS) \
|
||||||
SUBDIRS="$(PKG_BUILD_DIR)" \
|
M="$(PKG_BUILD_DIR)" \
|
||||||
EXTRA_CFLAGS="$(BUILDFLAGS)" \
|
EXTRA_CFLAGS="$(BUILDFLAGS)" \
|
||||||
modules
|
modules
|
||||||
endef
|
endef
|
||||||
|
|||||||
@ -34,7 +34,7 @@ EXTRA_CFLAGS:= \
|
|||||||
|
|
||||||
MAKE_OPTS:= \
|
MAKE_OPTS:= \
|
||||||
$(KERNEL_MAKE_FLAGS) \
|
$(KERNEL_MAKE_FLAGS) \
|
||||||
SUBDIRS="$(PKG_BUILD_DIR)" \
|
M="$(PKG_BUILD_DIR)" \
|
||||||
EXTRA_CFLAGS="$(EXTRA_CFLAGS)" \
|
EXTRA_CFLAGS="$(EXTRA_CFLAGS)" \
|
||||||
$(EXTRA_KCONFIG)
|
$(EXTRA_KCONFIG)
|
||||||
|
|
||||||
|
|||||||
@ -36,7 +36,7 @@ define KernelPackage/sched-cake/description
|
|||||||
endef
|
endef
|
||||||
|
|
||||||
define Build/Compile
|
define Build/Compile
|
||||||
$(KERNEL_MAKE) SUBDIRS="$(PKG_BUILD_DIR)" modules
|
$(KERNEL_MAKE) M="$(PKG_BUILD_DIR)" modules
|
||||||
endef
|
endef
|
||||||
|
|
||||||
$(eval $(call KernelPackage,sched-cake))
|
$(eval $(call KernelPackage,sched-cake))
|
||||||
|
|||||||
@ -38,7 +38,7 @@ EXTRA_CFLAGS:= \
|
|||||||
|
|
||||||
MAKE_OPTS:= \
|
MAKE_OPTS:= \
|
||||||
$(KERNEL_MAKE_FLAGS) \
|
$(KERNEL_MAKE_FLAGS) \
|
||||||
SUBDIRS="$(PKG_BUILD_DIR)" \
|
M="$(PKG_BUILD_DIR)" \
|
||||||
EXTRA_CFLAGS="$(EXTRA_CFLAGS)" \
|
EXTRA_CFLAGS="$(EXTRA_CFLAGS)" \
|
||||||
$(EXTRA_KCONFIG)
|
$(EXTRA_KCONFIG)
|
||||||
|
|
||||||
|
|||||||
@ -84,7 +84,7 @@ endef
|
|||||||
$(eval $(call KernelPackage,ath3k))
|
$(eval $(call KernelPackage,ath3k))
|
||||||
|
|
||||||
|
|
||||||
define KernelPackage/bluetooth_6lowpan
|
define KernelPackage/bluetooth-6lowpan
|
||||||
SUBMENU:=$(OTHER_MENU)
|
SUBMENU:=$(OTHER_MENU)
|
||||||
TITLE:=Bluetooth 6LoWPAN support
|
TITLE:=Bluetooth 6LoWPAN support
|
||||||
DEPENDS:=+kmod-6lowpan +kmod-bluetooth
|
DEPENDS:=+kmod-6lowpan +kmod-bluetooth
|
||||||
@ -93,11 +93,11 @@ define KernelPackage/bluetooth_6lowpan
|
|||||||
AUTOLOAD:=$(call AutoProbe,bluetooth_6lowpan)
|
AUTOLOAD:=$(call AutoProbe,bluetooth_6lowpan)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define KernelPackage/bluetooth_6lowpan/description
|
define KernelPackage/bluetooth-6lowpan/description
|
||||||
Kernel support for 6LoWPAN over Bluetooth Low Energy devices
|
Kernel support for 6LoWPAN over Bluetooth Low Energy devices
|
||||||
endef
|
endef
|
||||||
|
|
||||||
$(eval $(call KernelPackage,bluetooth_6lowpan))
|
$(eval $(call KernelPackage,bluetooth-6lowpan))
|
||||||
|
|
||||||
|
|
||||||
define KernelPackage/btmrvl
|
define KernelPackage/btmrvl
|
||||||
|
|||||||
@ -116,7 +116,7 @@ endef
|
|||||||
|
|
||||||
$(eval $(call KernelPackage,cc2520))
|
$(eval $(call KernelPackage,cc2520))
|
||||||
|
|
||||||
define KernelPackage/ieee802154_6lowpan
|
define KernelPackage/ieee802154-6lowpan
|
||||||
SUBMENU:=$(WPAN_MENU)
|
SUBMENU:=$(WPAN_MENU)
|
||||||
TITLE:= 6LoWPAN support over IEEE-802.15.4
|
TITLE:= 6LoWPAN support over IEEE-802.15.4
|
||||||
DEPENDS:=+kmod-6lowpan +kmod-ieee802154
|
DEPENDS:=+kmod-6lowpan +kmod-ieee802154
|
||||||
@ -126,8 +126,8 @@ define KernelPackage/ieee802154_6lowpan
|
|||||||
AUTOLOAD:=$(call AutoLoad,91,ieee802154_6lowpan)
|
AUTOLOAD:=$(call AutoLoad,91,ieee802154_6lowpan)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define KernelPackage/ieee802154_6lowpan/description
|
define KernelPackage/ieee802154-6lowpan/description
|
||||||
IPv6 compression over IEEE 802.15.4
|
IPv6 compression over IEEE 802.15.4
|
||||||
endef
|
endef
|
||||||
|
|
||||||
$(eval $(call KernelPackage,ieee802154_6lowpan))
|
$(eval $(call KernelPackage,ieee802154-6lowpan))
|
||||||
|
|||||||
@ -0,0 +1,45 @@
|
|||||||
|
commit 753ffad3d6243303994227854d951ff5c70fa9e0
|
||||||
|
Author: Fredrik Olofsson <fredrik.olofsson@anyfinetworks.com>
|
||||||
|
Date: Tue Nov 19 14:34:51 2019 +0100
|
||||||
|
|
||||||
|
mac80211: fix TID field in monitor mode transmit
|
||||||
|
|
||||||
|
Fix overwriting of the qos_ctrl.tid field for encrypted frames injected on
|
||||||
|
a monitor interface. While qos_ctrl.tid is not encrypted, it's used as an
|
||||||
|
input into the encryption algorithm so it's protected, and thus cannot be
|
||||||
|
modified after encryption. For injected frames, the encryption may already
|
||||||
|
have been done in userspace, so we cannot change any fields.
|
||||||
|
|
||||||
|
Before passing the frame to the driver, the qos_ctrl.tid field is updated
|
||||||
|
from skb->priority. Prior to dbd50a851c50 skb->priority was updated in
|
||||||
|
ieee80211_select_queue_80211(), but this function is no longer always
|
||||||
|
called.
|
||||||
|
|
||||||
|
Update skb->priority in ieee80211_monitor_start_xmit() so that the value
|
||||||
|
is stored, and when later code 'modifies' the TID it really sets it to
|
||||||
|
the same value as before, preserving the encryption.
|
||||||
|
|
||||||
|
Fixes: dbd50a851c50 ("mac80211: only allocate one queue when using iTXQs")
|
||||||
|
Signed-off-by: Fredrik Olofsson <fredrik.olofsson@anyfinetworks.com>
|
||||||
|
Link: https://lore.kernel.org/r/20191119133451.14711-1-fredrik.olofsson@anyfinetworks.com
|
||||||
|
[rewrite commit message based on our discussion]
|
||||||
|
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||||
|
|
||||||
|
--- a/net/mac80211/tx.c
|
||||||
|
+++ b/net/mac80211/tx.c
|
||||||
|
@@ -2269,6 +2269,15 @@ netdev_tx_t ieee80211_monitor_start_xmit
|
||||||
|
payload[7]);
|
||||||
|
}
|
||||||
|
|
||||||
|
+ /*
|
||||||
|
+ * Initialize skb->priority for QoS frames. This is put in the TID field
|
||||||
|
+ * of the frame before passing it to the driver.
|
||||||
|
+ */
|
||||||
|
+ if (ieee80211_is_data_qos(hdr->frame_control)) {
|
||||||
|
+ u8 *p = ieee80211_get_qos_ctl(hdr);
|
||||||
|
+ skb->priority = *p & IEEE80211_QOS_CTL_TAG1D_MASK;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
memset(info, 0, sizeof(*info));
|
||||||
|
|
||||||
|
info->flags = IEEE80211_TX_CTL_REQ_TX_STATUS |
|
||||||
@ -8,9 +8,9 @@ PKG_LICENSE_FILES:=
|
|||||||
|
|
||||||
PKG_SOURCE_URL:=https://github.com/openwrt/mt76
|
PKG_SOURCE_URL:=https://github.com/openwrt/mt76
|
||||||
PKG_SOURCE_PROTO:=git
|
PKG_SOURCE_PROTO:=git
|
||||||
PKG_SOURCE_DATE:=2020-02-02
|
PKG_SOURCE_DATE:=2020-02-20
|
||||||
PKG_SOURCE_VERSION:=721673759d8229a42ab39a9a7cba15261f1dfcf9
|
PKG_SOURCE_VERSION:=fd892bc033fbfad7b1a5bcba1432709a74327a1e
|
||||||
PKG_MIRROR_HASH:=67631bbe0ec9af6e4f255841457cde706dbbde21092c9485e7b0cc222e54e6d9
|
PKG_MIRROR_HASH:=1f73f5be38ec3f8fca07dc54d0e29dd08cfe6c6c82d72b6c489bf0aa8fd19acd
|
||||||
|
|
||||||
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
|
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
|
||||||
PKG_BUILD_PARALLEL:=1
|
PKG_BUILD_PARALLEL:=1
|
||||||
@ -202,7 +202,7 @@ define Build/Compile
|
|||||||
+$(MAKE) $(PKG_JOBS) -C "$(LINUX_DIR)" \
|
+$(MAKE) $(PKG_JOBS) -C "$(LINUX_DIR)" \
|
||||||
$(KERNEL_MAKE_FLAGS) \
|
$(KERNEL_MAKE_FLAGS) \
|
||||||
$(PKG_MAKE_FLAGS) \
|
$(PKG_MAKE_FLAGS) \
|
||||||
SUBDIRS="$(PKG_BUILD_DIR)" \
|
M="$(PKG_BUILD_DIR)" \
|
||||||
NOSTDINC_FLAGS="$(NOSTDINC_FLAGS)" \
|
NOSTDINC_FLAGS="$(NOSTDINC_FLAGS)" \
|
||||||
modules
|
modules
|
||||||
endef
|
endef
|
||||||
|
|||||||
@ -44,7 +44,7 @@ NOSTDINC_FLAGS = \
|
|||||||
define Build/Compile
|
define Build/Compile
|
||||||
+$(MAKE) $(PKG_JOBS) -C "$(LINUX_DIR)" \
|
+$(MAKE) $(PKG_JOBS) -C "$(LINUX_DIR)" \
|
||||||
$(KERNEL_MAKE_FLAGS) \
|
$(KERNEL_MAKE_FLAGS) \
|
||||||
SUBDIRS="$(PKG_BUILD_DIR)" \
|
M="$(PKG_BUILD_DIR)" \
|
||||||
NOSTDINC_FLAGS="$(NOSTDINC_FLAGS)" \
|
NOSTDINC_FLAGS="$(NOSTDINC_FLAGS)" \
|
||||||
modules
|
modules
|
||||||
endef
|
endef
|
||||||
|
|||||||
@ -26,7 +26,7 @@ endef
|
|||||||
include $(INCLUDE_DIR)/kernel-defaults.mk
|
include $(INCLUDE_DIR)/kernel-defaults.mk
|
||||||
|
|
||||||
define Build/Compile
|
define Build/Compile
|
||||||
$(KERNEL_MAKE) SUBDIRS="$(PKG_BUILD_DIR)/nat46/modules" \
|
$(KERNEL_MAKE) M="$(PKG_BUILD_DIR)/nat46/modules" \
|
||||||
MODFLAGS="-DMODULE -mlong-calls" \
|
MODFLAGS="-DMODULE -mlong-calls" \
|
||||||
EXTRA_CFLAGS="-DNAT46_VERSION=\\\"$(PKG_SOURCE_VERSION)\\\"" \
|
EXTRA_CFLAGS="-DNAT46_VERSION=\\\"$(PKG_SOURCE_VERSION)\\\"" \
|
||||||
modules
|
modules
|
||||||
|
|||||||
@ -24,7 +24,7 @@ endef
|
|||||||
define Build/Compile
|
define Build/Compile
|
||||||
$(MAKE) -C "$(LINUX_DIR)" \
|
$(MAKE) -C "$(LINUX_DIR)" \
|
||||||
$(KERNEL_MAKE_FLAGS) \
|
$(KERNEL_MAKE_FLAGS) \
|
||||||
SUBDIRS="$(PKG_BUILD_DIR)" \
|
M="$(PKG_BUILD_DIR)" \
|
||||||
EXTRA_CFLAGS="$(BUILDFLAGS)" \
|
EXTRA_CFLAGS="$(BUILDFLAGS)" \
|
||||||
modules
|
modules
|
||||||
endef
|
endef
|
||||||
|
|||||||
@ -45,7 +45,7 @@ NOSTDINC_FLAGS+=-DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT -DBUILD_OPE
|
|||||||
define Build/Compile
|
define Build/Compile
|
||||||
+$(MAKE) $(PKG_JOBS) -C "$(LINUX_DIR)" \
|
+$(MAKE) $(PKG_JOBS) -C "$(LINUX_DIR)" \
|
||||||
$(KERNEL_MAKE_FLAGS) \
|
$(KERNEL_MAKE_FLAGS) \
|
||||||
SUBDIRS="$(PKG_BUILD_DIR)" \
|
M="$(PKG_BUILD_DIR)" \
|
||||||
NOSTDINC_FLAGS="$(NOSTDINC_FLAGS)" \
|
NOSTDINC_FLAGS="$(NOSTDINC_FLAGS)" \
|
||||||
modules
|
modules
|
||||||
endef
|
endef
|
||||||
|
|||||||
@ -34,7 +34,7 @@ EXTRA_CFLAGS:= \
|
|||||||
|
|
||||||
MAKE_OPTS:= \
|
MAKE_OPTS:= \
|
||||||
$(KERNEL_MAKE_FLAGS) \
|
$(KERNEL_MAKE_FLAGS) \
|
||||||
SUBDIRS="$(PKG_BUILD_DIR)" \
|
M="$(PKG_BUILD_DIR)" \
|
||||||
EXTRA_CFLAGS="$(EXTRA_CFLAGS)" \
|
EXTRA_CFLAGS="$(EXTRA_CFLAGS)" \
|
||||||
$(EXTRA_KCONFIG)
|
$(EXTRA_KCONFIG)
|
||||||
|
|
||||||
|
|||||||
@ -32,7 +32,7 @@ endef
|
|||||||
include $(INCLUDE_DIR)/kernel-defaults.mk
|
include $(INCLUDE_DIR)/kernel-defaults.mk
|
||||||
|
|
||||||
define Build/Compile
|
define Build/Compile
|
||||||
$(KERNEL_MAKE) SUBDIRS="$(PKG_BUILD_DIR)" modules
|
$(KERNEL_MAKE) M="$(PKG_BUILD_DIR)" modules
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define KernelPackage/trelay/conffiles
|
define KernelPackage/trelay/conffiles
|
||||||
|
|||||||
@ -34,7 +34,7 @@ EXTRA_CFLAGS:= \
|
|||||||
|
|
||||||
MAKE_OPTS:= \
|
MAKE_OPTS:= \
|
||||||
$(KERNEL_MAKE_FLAGS) \
|
$(KERNEL_MAKE_FLAGS) \
|
||||||
SUBDIRS="$(PKG_BUILD_DIR)" \
|
M="$(PKG_BUILD_DIR)" \
|
||||||
EXTRA_CFLAGS="$(EXTRA_CFLAGS)" \
|
EXTRA_CFLAGS="$(EXTRA_CFLAGS)" \
|
||||||
$(EXTRA_KCONFIG)
|
$(EXTRA_KCONFIG)
|
||||||
|
|
||||||
|
|||||||
@ -1,19 +1,20 @@
|
|||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=libbsd
|
PKG_NAME:=libbsd
|
||||||
PKG_VERSION:=0.8.7
|
PKG_VERSION:=0.10.0
|
||||||
PKG_RELEASE:=3
|
PKG_RELEASE:=1
|
||||||
|
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
||||||
PKG_HASH:=f548f10e5af5a08b1e22889ce84315b1ebe41505b015c9596bad03fd13a12b31
|
|
||||||
PKG_SOURCE_URL:=https://libbsd.freedesktop.org/releases
|
PKG_SOURCE_URL:=https://libbsd.freedesktop.org/releases
|
||||||
|
PKG_HASH:=34b8adc726883d0e85b3118fa13605e179a62b31ba51f676136ecb2d0bc1a887
|
||||||
|
|
||||||
PKG_LICENSE:=BSD-4-Clause
|
PKG_LICENSE:=BSD-4-Clause
|
||||||
PKG_LICENSE_FILES:=COPYING
|
PKG_LICENSE_FILES:=COPYING
|
||||||
|
|
||||||
include $(INCLUDE_DIR)/package.mk
|
|
||||||
|
|
||||||
PKG_INSTALL:=1
|
PKG_INSTALL:=1
|
||||||
|
PKG_BUILD_PARALLEL:=1
|
||||||
|
|
||||||
|
include $(INCLUDE_DIR)/package.mk
|
||||||
|
|
||||||
define Package/libbsd
|
define Package/libbsd
|
||||||
SECTION:=libs
|
SECTION:=libs
|
||||||
|
|||||||
@ -1,195 +0,0 @@
|
|||||||
From 11ec8f1e5dfa1c10e0c9fb94879b6f5b96ba52dd Mon Sep 17 00:00:00 2001
|
|
||||||
From: Guillem Jover <guillem@hadrons.org>
|
|
||||||
Date: Tue, 6 Mar 2018 01:41:35 +0100
|
|
||||||
Subject: Handle systems missing <sys/cdefs.h>
|
|
||||||
|
|
||||||
This is a non-portable header, and we cannot expect it to be provided by
|
|
||||||
the system libc (e.g. musl). We just need and rely on declaration that
|
|
||||||
we have defined ourselves in our own <bsd/sys/cdefs.h>. So we switch to
|
|
||||||
only ever assume that.
|
|
||||||
|
|
||||||
Fixes: https://bugs.freedesktop.org/105281
|
|
||||||
---
|
|
||||||
include/bsd/libutil.h | 4 ++++
|
|
||||||
include/bsd/md5.h | 4 ++++
|
|
||||||
include/bsd/nlist.h | 4 ++++
|
|
||||||
include/bsd/readpassphrase.h | 4 ++++
|
|
||||||
include/bsd/stdlib.h | 4 ++++
|
|
||||||
include/bsd/string.h | 4 ++++
|
|
||||||
include/bsd/stringlist.h | 5 +++++
|
|
||||||
include/bsd/sys/queue.h | 4 ++++
|
|
||||||
include/bsd/sys/tree.h | 4 ++++
|
|
||||||
include/bsd/timeconv.h | 4 ++++
|
|
||||||
include/bsd/vis.h | 4 ++++
|
|
||||||
include/bsd/wchar.h | 4 ++++
|
|
||||||
12 files changed, 49 insertions(+)
|
|
||||||
|
|
||||||
--- a/include/bsd/libutil.h
|
|
||||||
+++ b/include/bsd/libutil.h
|
|
||||||
@@ -40,7 +40,11 @@
|
|
||||||
#define LIBBSD_LIBUTIL_H
|
|
||||||
|
|
||||||
#include <features.h>
|
|
||||||
+#ifdef LIBBSD_OVERLAY
|
|
||||||
#include <sys/cdefs.h>
|
|
||||||
+#else
|
|
||||||
+#include <bsd/sys/cdefs.h>
|
|
||||||
+#endif
|
|
||||||
#include <sys/types.h>
|
|
||||||
#include <stdint.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
--- a/include/bsd/md5.h
|
|
||||||
+++ b/include/bsd/md5.h
|
|
||||||
@@ -27,7 +27,11 @@ typedef struct MD5Context {
|
|
||||||
uint8_t buffer[MD5_BLOCK_LENGTH]; /* input buffer */
|
|
||||||
} MD5_CTX;
|
|
||||||
|
|
||||||
+#ifdef LIBBSD_OVERLAY
|
|
||||||
#include <sys/cdefs.h>
|
|
||||||
+#else
|
|
||||||
+#include <bsd/sys/cdefs.h>
|
|
||||||
+#endif
|
|
||||||
#include <sys/types.h>
|
|
||||||
|
|
||||||
__BEGIN_DECLS
|
|
||||||
--- a/include/bsd/nlist.h
|
|
||||||
+++ b/include/bsd/nlist.h
|
|
||||||
@@ -27,7 +27,11 @@
|
|
||||||
#ifndef LIBBSD_NLIST_H
|
|
||||||
#define LIBBSD_NLIST_H
|
|
||||||
|
|
||||||
+#ifdef LIBBSD_OVERLAY
|
|
||||||
#include <sys/cdefs.h>
|
|
||||||
+#else
|
|
||||||
+#include <bsd/sys/cdefs.h>
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
struct nlist {
|
|
||||||
union {
|
|
||||||
--- a/include/bsd/readpassphrase.h
|
|
||||||
+++ b/include/bsd/readpassphrase.h
|
|
||||||
@@ -31,7 +31,11 @@
|
|
||||||
#define RPP_SEVENBIT 0x10 /* Strip the high bit from input. */
|
|
||||||
#define RPP_STDIN 0x20 /* Read from stdin, not /dev/tty */
|
|
||||||
|
|
||||||
+#ifdef LIBBSD_OVERLAY
|
|
||||||
#include <sys/cdefs.h>
|
|
||||||
+#else
|
|
||||||
+#include <bsd/sys/cdefs.h>
|
|
||||||
+#endif
|
|
||||||
#include <sys/types.h>
|
|
||||||
|
|
||||||
__BEGIN_DECLS
|
|
||||||
--- a/include/bsd/stdlib.h
|
|
||||||
+++ b/include/bsd/stdlib.h
|
|
||||||
@@ -42,7 +42,11 @@
|
|
||||||
#ifndef LIBBSD_STDLIB_H
|
|
||||||
#define LIBBSD_STDLIB_H
|
|
||||||
|
|
||||||
+#ifdef LIBBSD_OVERLAY
|
|
||||||
#include <sys/cdefs.h>
|
|
||||||
+#else
|
|
||||||
+#include <bsd/sys/cdefs.h>
|
|
||||||
+#endif
|
|
||||||
#include <sys/stat.h>
|
|
||||||
#include <stdint.h>
|
|
||||||
|
|
||||||
--- a/include/bsd/string.h
|
|
||||||
+++ b/include/bsd/string.h
|
|
||||||
@@ -33,7 +33,11 @@
|
|
||||||
#ifndef LIBBSD_STRING_H
|
|
||||||
#define LIBBSD_STRING_H
|
|
||||||
|
|
||||||
+#ifdef LIBBSD_OVERLAY
|
|
||||||
#include <sys/cdefs.h>
|
|
||||||
+#else
|
|
||||||
+#include <bsd/sys/cdefs.h>
|
|
||||||
+#endif
|
|
||||||
#include <sys/types.h>
|
|
||||||
|
|
||||||
__BEGIN_DECLS
|
|
||||||
--- a/include/bsd/stringlist.h
|
|
||||||
+++ b/include/bsd/stringlist.h
|
|
||||||
@@ -31,7 +31,12 @@
|
|
||||||
|
|
||||||
#ifndef LIBBSD_STRINGLIST_H
|
|
||||||
#define LIBBSD_STRINGLIST_H
|
|
||||||
+
|
|
||||||
+#ifdef LIBBSD_OVERLAY
|
|
||||||
#include <sys/cdefs.h>
|
|
||||||
+#else
|
|
||||||
+#include <bsd/sys/cdefs.h>
|
|
||||||
+#endif
|
|
||||||
#include <sys/types.h>
|
|
||||||
|
|
||||||
/*
|
|
||||||
--- a/include/bsd/sys/queue.h
|
|
||||||
+++ b/include/bsd/sys/queue.h
|
|
||||||
@@ -33,7 +33,11 @@
|
|
||||||
#ifndef LIBBSD_SYS_QUEUE_H
|
|
||||||
#define LIBBSD_SYS_QUEUE_H
|
|
||||||
|
|
||||||
+#ifdef LIBBSD_OVERLAY
|
|
||||||
#include <sys/cdefs.h>
|
|
||||||
+#else
|
|
||||||
+#include <bsd/sys/cdefs.h>
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
/*
|
|
||||||
* This file defines four types of data structures: singly-linked lists,
|
|
||||||
--- a/include/bsd/sys/tree.h
|
|
||||||
+++ b/include/bsd/sys/tree.h
|
|
||||||
@@ -30,7 +30,11 @@
|
|
||||||
#ifndef LIBBSD_SYS_TREE_H
|
|
||||||
#define LIBBSD_SYS_TREE_H
|
|
||||||
|
|
||||||
+#ifdef LIBBSD_OVERLAY
|
|
||||||
#include <sys/cdefs.h>
|
|
||||||
+#else
|
|
||||||
+#include <bsd/sys/cdefs.h>
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
/*
|
|
||||||
* This file defines data structures for different types of trees:
|
|
||||||
--- a/include/bsd/timeconv.h
|
|
||||||
+++ b/include/bsd/timeconv.h
|
|
||||||
@@ -41,7 +41,11 @@
|
|
||||||
#ifndef LIBBSD_TIMECONV_H
|
|
||||||
#define LIBBSD_TIMECONV_H
|
|
||||||
|
|
||||||
+#ifdef LIBBSD_OVERLAY
|
|
||||||
#include <sys/cdefs.h>
|
|
||||||
+#else
|
|
||||||
+#include <bsd/sys/cdefs.h>
|
|
||||||
+#endif
|
|
||||||
#include <stdint.h>
|
|
||||||
#include <time.h>
|
|
||||||
|
|
||||||
--- a/include/bsd/vis.h
|
|
||||||
+++ b/include/bsd/vis.h
|
|
||||||
@@ -72,7 +72,11 @@
|
|
||||||
*/
|
|
||||||
#define UNVIS_END 1 /* no more characters */
|
|
||||||
|
|
||||||
+#ifdef LIBBSD_OVERLAY
|
|
||||||
#include <sys/cdefs.h>
|
|
||||||
+#else
|
|
||||||
+#include <bsd/sys/cdefs.h>
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
__BEGIN_DECLS
|
|
||||||
char *vis(char *, int, int, int);
|
|
||||||
--- a/include/bsd/wchar.h
|
|
||||||
+++ b/include/bsd/wchar.h
|
|
||||||
@@ -40,7 +40,11 @@
|
|
||||||
#define LIBBSD_WCHAR_H
|
|
||||||
|
|
||||||
#include <stddef.h>
|
|
||||||
+#ifdef LIBBSD_OVERLAY
|
|
||||||
#include <sys/cdefs.h>
|
|
||||||
+#else
|
|
||||||
+#include <bsd/sys/cdefs.h>
|
|
||||||
+#endif
|
|
||||||
#include <sys/types.h>
|
|
||||||
|
|
||||||
__BEGIN_DECLS
|
|
||||||
@ -1,65 +0,0 @@
|
|||||||
From 1f8a3f7bccfc84b195218ad0086ebd57049c3490 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Guillem Jover <guillem@hadrons.org>
|
|
||||||
Date: Tue, 6 Mar 2018 01:39:45 +0100
|
|
||||||
Subject: Fix function declaration protection for glibc already providing them
|
|
||||||
MIME-Version: 1.0
|
|
||||||
Content-Type: text/plain; charset=UTF-8
|
|
||||||
Content-Transfer-Encoding: 8bit
|
|
||||||
|
|
||||||
On non-glibc based systems we cannot unconditionally use the
|
|
||||||
__GLIBC_PREREQ macro as it gets expanded before evaluation. Instead,
|
|
||||||
if it is undefined, define it to 0.
|
|
||||||
|
|
||||||
We should also always declare these functions on non-glibc based
|
|
||||||
systems. And on systems with a new enough glibc, which provides these
|
|
||||||
functions, we should still provide the declarations if _GNU_SOURCE
|
|
||||||
is *not* defined.
|
|
||||||
|
|
||||||
Reported-by: Jörg Krause <joerg.krause@embedded.rocks>
|
|
||||||
---
|
|
||||||
include/bsd/stdlib.h | 3 ++-
|
|
||||||
include/bsd/string.h | 3 ++-
|
|
||||||
include/bsd/sys/cdefs.h | 8 ++++++++
|
|
||||||
3 files changed, 12 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
--- a/include/bsd/stdlib.h
|
|
||||||
+++ b/include/bsd/stdlib.h
|
|
||||||
@@ -71,7 +71,8 @@ int sradixsort(const unsigned char **bas
|
|
||||||
const unsigned char *table, unsigned endbyte);
|
|
||||||
|
|
||||||
void *reallocf(void *ptr, size_t size);
|
|
||||||
-#if defined(_GNU_SOURCE) && defined(__GLIBC__) && !__GLIBC_PREREQ(2, 26)
|
|
||||||
+#if !defined(__GLIBC__) || \
|
|
||||||
+ (defined(__GLIBC__) && (!__GLIBC_PREREQ(2, 26) || !defined(_GNU_SOURCE)))
|
|
||||||
void *reallocarray(void *ptr, size_t nmemb, size_t size);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
--- a/include/bsd/string.h
|
|
||||||
+++ b/include/bsd/string.h
|
|
||||||
@@ -46,7 +46,8 @@ size_t strlcat(char *dst, const char *sr
|
|
||||||
char *strnstr(const char *str, const char *find, size_t str_len);
|
|
||||||
void strmode(mode_t mode, char *str);
|
|
||||||
|
|
||||||
-#if defined(_GNU_SOURCE) && defined(__GLIBC__) && !__GLIBC_PREREQ(2, 25)
|
|
||||||
+#if !defined(__GLIBC__) || \
|
|
||||||
+ (defined(__GLIBC__) && (!__GLIBC_PREREQ(2, 25) || !defined(_GNU_SOURCE)))
|
|
||||||
void explicit_bzero(void *buf, size_t len);
|
|
||||||
#endif
|
|
||||||
__END_DECLS
|
|
||||||
--- a/include/bsd/sys/cdefs.h
|
|
||||||
+++ b/include/bsd/sys/cdefs.h
|
|
||||||
@@ -59,6 +59,14 @@
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
|
||||||
+ * On non-glibc based systems, we cannot unconditionally use the
|
|
||||||
+ * __GLIBC_PREREQ macro as it gets expanded before evaluation.
|
|
||||||
+ */
|
|
||||||
+#ifndef __GLIBC_PREREQ
|
|
||||||
+#define __GLIBC_PREREQ(maj, min) 0
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+/*
|
|
||||||
* Some kFreeBSD headers expect those macros to be set for sanity checks.
|
|
||||||
*/
|
|
||||||
#ifndef _SYS_CDEFS_H_
|
|
||||||
@ -1,30 +0,0 @@
|
|||||||
From f60b6777cc2047f9845de2c88cf092b045c160c0 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Rosen Penev <rosenp@gmail.com>
|
|
||||||
Date: Fri, 17 May 2019 01:44:56 +0000
|
|
||||||
Subject: [PATCH] local-elf: Add ARC support
|
|
||||||
|
|
||||||
Signed-off-by: Rosen Penev <rosenp@gmail.com>
|
|
||||||
---
|
|
||||||
src/local-elf.h | 6 ++++++
|
|
||||||
1 file changed, 6 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/src/local-elf.h b/src/local-elf.h
|
|
||||||
index 83ca253..b90baf3 100644
|
|
||||||
--- a/src/local-elf.h
|
|
||||||
+++ b/src/local-elf.h
|
|
||||||
@@ -53,6 +53,12 @@
|
|
||||||
#endif
|
|
||||||
#define ELF_TARG_DATA ELFDATA2LSB
|
|
||||||
|
|
||||||
+#elif defined (__arc__)
|
|
||||||
+
|
|
||||||
+#define ELF_TARG_MACH EM_ARC
|
|
||||||
+#define ELF_TARG_CLASS ELFCLASS32
|
|
||||||
+#define ELF_TARG_DATA ELFDATA2LSB
|
|
||||||
+
|
|
||||||
#elif defined(__arm__)
|
|
||||||
|
|
||||||
#define ELF_TARG_MACH EM_ARM
|
|
||||||
--
|
|
||||||
2.18.1
|
|
||||||
|
|
||||||
@ -4,3 +4,5 @@
|
|||||||
uci set dhcp.@dnsmasq[0].resolvfile="/tmp/resolv.conf.d/resolv.conf.auto"
|
uci set dhcp.@dnsmasq[0].resolvfile="/tmp/resolv.conf.d/resolv.conf.auto"
|
||||||
uci commit dhcp
|
uci commit dhcp
|
||||||
}
|
}
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
|||||||
@ -8,12 +8,12 @@
|
|||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=lldpd
|
PKG_NAME:=lldpd
|
||||||
PKG_VERSION:=1.0.3
|
PKG_VERSION:=1.0.5
|
||||||
PKG_RELEASE:=2
|
PKG_RELEASE:=1
|
||||||
|
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||||
PKG_SOURCE_URL:=https://media.luffy.cx/files/lldpd
|
PKG_SOURCE_URL:=https://media.luffy.cx/files/lldpd
|
||||||
PKG_HASH:=39fced395168015416bfe78b95414facf066f841f349024433aa20ab54e4c360
|
PKG_HASH:=2dd3b212f4dbabfcbb2794c0010b245f9f8e74b387984e757be6243a74c6cb99
|
||||||
|
|
||||||
PKG_MAINTAINER:=Stijn Tintel <stijn@linux-ipv6.be>
|
PKG_MAINTAINER:=Stijn Tintel <stijn@linux-ipv6.be>
|
||||||
PKG_LICENSE:=ISC
|
PKG_LICENSE:=ISC
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
--- a/configure.ac
|
--- a/configure.ac
|
||||||
+++ b/configure.ac
|
+++ b/configure.ac
|
||||||
@@ -244,7 +244,13 @@ PKG_CHECK_MODULES([check], [check >= 0.9
|
@@ -246,7 +246,13 @@ PKG_CHECK_MODULES([check], [check >= 0.9
|
||||||
|
|
||||||
# Third-party libraries
|
# Third-party libraries
|
||||||
lldp_CHECK_LIBEVENT
|
lldp_CHECK_LIBEVENT
|
||||||
|
|||||||
@ -1,19 +0,0 @@
|
|||||||
From b2eebb31fc21b5ce12ef8944b50088119f1b9427 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
|
|
||||||
Date: Mon, 25 Mar 2019 18:43:03 +0100
|
|
||||||
Subject: [PATCH] priv: include limits.h for PATH_MAX
|
|
||||||
|
|
||||||
---
|
|
||||||
src/daemon/priv.c | 1 +
|
|
||||||
1 file changed, 1 insertion(+)
|
|
||||||
|
|
||||||
--- a/src/daemon/priv.c
|
|
||||||
+++ b/src/daemon/priv.c
|
|
||||||
@@ -27,6 +27,7 @@
|
|
||||||
#include <unistd.h>
|
|
||||||
#include <signal.h>
|
|
||||||
#include <errno.h>
|
|
||||||
+#include <limits.h>
|
|
||||||
#include <sys/wait.h>
|
|
||||||
#include <sys/stat.h>
|
|
||||||
#include <sys/socket.h>
|
|
||||||
@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
|
|||||||
include $(INCLUDE_DIR)/kernel.mk
|
include $(INCLUDE_DIR)/kernel.mk
|
||||||
|
|
||||||
PKG_NAME:=ppp
|
PKG_NAME:=ppp
|
||||||
PKG_RELEASE:=1
|
PKG_RELEASE:=2
|
||||||
|
|
||||||
PKG_SOURCE_PROTO:=git
|
PKG_SOURCE_PROTO:=git
|
||||||
PKG_SOURCE_URL:=https://github.com/paulusmack/ppp
|
PKG_SOURCE_URL:=https://github.com/paulusmack/ppp
|
||||||
|
|||||||
@ -0,0 +1,30 @@
|
|||||||
|
From 858976b1fc3107f1261aae337831959b511b83c2 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Paul Mackerras <paulus@ozlabs.org>
|
||||||
|
Date: Sat, 4 Jan 2020 12:01:32 +1100
|
||||||
|
Subject: [PATCH] radius: Prevent buffer overflow in rc_mksid()
|
||||||
|
|
||||||
|
On some systems getpid() can return a value greater than 65535.
|
||||||
|
Increase the size of buf[] to allow for this, and use slprintf()
|
||||||
|
to make sure we never overflow it.
|
||||||
|
|
||||||
|
Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
|
||||||
|
---
|
||||||
|
pppd/plugins/radius/util.c | 4 ++--
|
||||||
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/pppd/plugins/radius/util.c b/pppd/plugins/radius/util.c
|
||||||
|
index 6f976a712951..740131e8377c 100644
|
||||||
|
--- a/pppd/plugins/radius/util.c
|
||||||
|
+++ b/pppd/plugins/radius/util.c
|
||||||
|
@@ -73,9 +73,9 @@ void rc_mdelay(int msecs)
|
||||||
|
char *
|
||||||
|
rc_mksid (void)
|
||||||
|
{
|
||||||
|
- static char buf[15];
|
||||||
|
+ static char buf[32];
|
||||||
|
static unsigned short int cnt = 0;
|
||||||
|
- sprintf (buf, "%08lX%04X%02hX",
|
||||||
|
+ slprintf(buf, sizeof(buf), "%08lX%04X%02hX",
|
||||||
|
(unsigned long int) time (NULL),
|
||||||
|
(unsigned int) getpid (),
|
||||||
|
cnt & 0xFF);
|
||||||
@ -0,0 +1,37 @@
|
|||||||
|
From 8d7970b8f3db727fe798b65f3377fe6787575426 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Paul Mackerras <paulus@ozlabs.org>
|
||||||
|
Date: Mon, 3 Feb 2020 15:53:28 +1100
|
||||||
|
Subject: [PATCH] pppd: Fix bounds check in EAP code
|
||||||
|
|
||||||
|
Given that we have just checked vallen < len, it can never be the case
|
||||||
|
that vallen >= len + sizeof(rhostname). This fixes the check so we
|
||||||
|
actually avoid overflowing the rhostname array.
|
||||||
|
|
||||||
|
Reported-by: Ilja Van Sprundel <ivansprundel@ioactive.com>
|
||||||
|
Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
|
||||||
|
---
|
||||||
|
pppd/eap.c | 4 ++--
|
||||||
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/pppd/eap.c b/pppd/eap.c
|
||||||
|
index 94407f56a336..1b93db01aebd 100644
|
||||||
|
--- a/pppd/eap.c
|
||||||
|
+++ b/pppd/eap.c
|
||||||
|
@@ -1420,7 +1420,7 @@ int len;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Not so likely to happen. */
|
||||||
|
- if (vallen >= len + sizeof (rhostname)) {
|
||||||
|
+ if (len - vallen >= sizeof (rhostname)) {
|
||||||
|
dbglog("EAP: trimming really long peer name down");
|
||||||
|
BCOPY(inp + vallen, rhostname, sizeof (rhostname) - 1);
|
||||||
|
rhostname[sizeof (rhostname) - 1] = '\0';
|
||||||
|
@@ -1846,7 +1846,7 @@ int len;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Not so likely to happen. */
|
||||||
|
- if (vallen >= len + sizeof (rhostname)) {
|
||||||
|
+ if (len - vallen >= sizeof (rhostname)) {
|
||||||
|
dbglog("EAP: trimming really long peer name down");
|
||||||
|
BCOPY(inp + vallen, rhostname, sizeof (rhostname) - 1);
|
||||||
|
rhostname[sizeof (rhostname) - 1] = '\0';
|
||||||
@ -0,0 +1,61 @@
|
|||||||
|
From 8d45443bb5c9372b4c6a362ba2f443d41c5636af Mon Sep 17 00:00:00 2001
|
||||||
|
From: Paul Mackerras <paulus@ozlabs.org>
|
||||||
|
Date: Mon, 3 Feb 2020 16:31:42 +1100
|
||||||
|
Subject: [PATCH] pppd: Ignore received EAP messages when not doing EAP
|
||||||
|
|
||||||
|
This adds some basic checks to the subroutines of eap_input to check
|
||||||
|
that we have requested or agreed to doing EAP authentication before
|
||||||
|
doing any processing on the received packet. The motivation is to
|
||||||
|
make it harder for a malicious peer to disrupt the operation of pppd
|
||||||
|
by sending unsolicited EAP packets. Note that eap_success() already
|
||||||
|
has a check that the EAP client state is reasonable, and does nothing
|
||||||
|
(apart from possibly printing a debug message) if not.
|
||||||
|
|
||||||
|
Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
|
||||||
|
---
|
||||||
|
pppd/eap.c | 18 ++++++++++++++++++
|
||||||
|
1 file changed, 18 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/pppd/eap.c b/pppd/eap.c
|
||||||
|
index 1b93db01aebd..082e95343120 100644
|
||||||
|
--- a/pppd/eap.c
|
||||||
|
+++ b/pppd/eap.c
|
||||||
|
@@ -1328,6 +1328,12 @@ int len;
|
||||||
|
int fd;
|
||||||
|
#endif /* USE_SRP */
|
||||||
|
|
||||||
|
+ /*
|
||||||
|
+ * Ignore requests if we're not open
|
||||||
|
+ */
|
||||||
|
+ if (esp->es_client.ea_state <= eapClosed)
|
||||||
|
+ return;
|
||||||
|
+
|
||||||
|
/*
|
||||||
|
* Note: we update es_client.ea_id *only if* a Response
|
||||||
|
* message is being generated. Otherwise, we leave it the
|
||||||
|
@@ -1736,6 +1742,12 @@ int len;
|
||||||
|
u_char dig[SHA_DIGESTSIZE];
|
||||||
|
#endif /* USE_SRP */
|
||||||
|
|
||||||
|
+ /*
|
||||||
|
+ * Ignore responses if we're not open
|
||||||
|
+ */
|
||||||
|
+ if (esp->es_server.ea_state <= eapClosed)
|
||||||
|
+ return;
|
||||||
|
+
|
||||||
|
if (esp->es_server.ea_id != id) {
|
||||||
|
dbglog("EAP: discarding Response %d; expected ID %d", id,
|
||||||
|
esp->es_server.ea_id);
|
||||||
|
@@ -2047,6 +2059,12 @@ u_char *inp;
|
||||||
|
int id;
|
||||||
|
int len;
|
||||||
|
{
|
||||||
|
+ /*
|
||||||
|
+ * Ignore failure messages if we're not open
|
||||||
|
+ */
|
||||||
|
+ if (esp->es_client.ea_state <= eapClosed)
|
||||||
|
+ return;
|
||||||
|
+
|
||||||
|
if (!eap_client_active(esp)) {
|
||||||
|
dbglog("EAP unexpected failure message in state %s (%d)",
|
||||||
|
eap_state_name(esp->es_client.ea_state),
|
||||||
@ -8,12 +8,12 @@
|
|||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=iw
|
PKG_NAME:=iw
|
||||||
PKG_VERSION:=5.3
|
PKG_VERSION:=5.4
|
||||||
PKG_RELEASE:=2
|
PKG_RELEASE:=1
|
||||||
|
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
||||||
PKG_SOURCE_URL:=@KERNEL/software/network/iw
|
PKG_SOURCE_URL:=@KERNEL/software/network/iw
|
||||||
PKG_HASH:=04afe857bc8dea67e461946de30ae1b012954b6965839c5c3fda7d0ed15505d5
|
PKG_HASH:=a2469f677088d7b1070a7fbb28f3c747041697e8f6ec70783339cb1bc27a395f
|
||||||
|
|
||||||
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
|
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
|
||||||
PKG_LICENSE:=GPL-2.0
|
PKG_LICENSE:=GPL-2.0
|
||||||
|
|||||||
@ -1,116 +1,41 @@
|
|||||||
--- a/nl80211.h
|
--- a/nl80211.h
|
||||||
+++ b/nl80211.h
|
+++ b/nl80211.h
|
||||||
@@ -52,6 +52,11 @@
|
@@ -2373,6 +2373,9 @@ enum nl80211_commands {
|
||||||
#define NL80211_MULTICAST_GROUP_NAN "nan"
|
* the allowed channel bandwidth configurations. (u8 attribute)
|
||||||
#define NL80211_MULTICAST_GROUP_TESTMODE "testmode"
|
* Defined by IEEE P802.11ay/D4.0 section 9.4.2.251, Table 13.
|
||||||
|
|
||||||
+#define NL80211_EDMG_BW_CONFIG_MIN 4
|
|
||||||
+#define NL80211_EDMG_BW_CONFIG_MAX 15
|
|
||||||
+#define NL80211_EDMG_CHANNELS_MIN 1
|
|
||||||
+#define NL80211_EDMG_CHANNELS_MAX 0x3c /* 0b00111100 */
|
|
||||||
+
|
|
||||||
/**
|
|
||||||
* DOC: Station handling
|
|
||||||
*
|
*
|
||||||
@@ -2361,6 +2366,16 @@ enum nl80211_commands {
|
|
||||||
* @NL80211_ATTR_HE_OBSS_PD: nested attribute for OBSS Packet Detection
|
|
||||||
* functionality.
|
|
||||||
*
|
|
||||||
+ * @NL80211_ATTR_WIPHY_EDMG_CHANNELS: bitmap that indicates the 2.16 GHz
|
|
||||||
+ * channel(s) that are allowed to be used for EDMG transmissions.
|
|
||||||
+ * Defined by IEEE P802.11ay/D4.0 section 9.4.2.251. (u8 attribute)
|
|
||||||
+ * @NL80211_ATTR_WIPHY_EDMG_BW_CONFIG: Channel BW Configuration subfield encodes
|
|
||||||
+ * the allowed channel bandwidth configurations. (u8 attribute)
|
|
||||||
+ * Defined by IEEE P802.11ay/D4.0 section 9.4.2.251, Table 13.
|
|
||||||
+ *
|
|
||||||
+ * @NL80211_ATTR_WIPHY_ANTENNA_GAIN: Configured antenna gain. Used to reduce
|
+ * @NL80211_ATTR_WIPHY_ANTENNA_GAIN: Configured antenna gain. Used to reduce
|
||||||
+ * transmit power to stay within regulatory limits. u32, dBi.
|
+ * transmit power to stay within regulatory limits. u32, dBi.
|
||||||
+ *
|
+ *
|
||||||
* @NUM_NL80211_ATTR: total number of nl80211_attrs available
|
* @NUM_NL80211_ATTR: total number of nl80211_attrs available
|
||||||
* @NL80211_ATTR_MAX: highest attribute number currently defined
|
* @NL80211_ATTR_MAX: highest attribute number currently defined
|
||||||
* @__NL80211_ATTR_AFTER_LAST: internal use
|
* @__NL80211_ATTR_AFTER_LAST: internal use
|
||||||
@@ -2820,6 +2835,11 @@ enum nl80211_attrs {
|
@@ -2835,6 +2838,8 @@ enum nl80211_attrs {
|
||||||
|
NL80211_ATTR_WIPHY_EDMG_CHANNELS,
|
||||||
|
NL80211_ATTR_WIPHY_EDMG_BW_CONFIG,
|
||||||
|
|
||||||
NL80211_ATTR_HE_OBSS_PD,
|
|
||||||
|
|
||||||
+ NL80211_ATTR_WIPHY_EDMG_CHANNELS,
|
|
||||||
+ NL80211_ATTR_WIPHY_EDMG_BW_CONFIG,
|
|
||||||
+
|
|
||||||
+ NL80211_ATTR_WIPHY_ANTENNA_GAIN,
|
+ NL80211_ATTR_WIPHY_ANTENNA_GAIN,
|
||||||
+
|
+
|
||||||
/* add attributes here, update the policy in nl80211.c */
|
/* add attributes here, update the policy in nl80211.c */
|
||||||
|
|
||||||
__NL80211_ATTR_AFTER_LAST,
|
__NL80211_ATTR_AFTER_LAST,
|
||||||
@@ -3201,6 +3221,8 @@ enum nl80211_sta_bss_param {
|
@@ -5484,6 +5489,10 @@ enum nl80211_feature_flags {
|
||||||
* sent to the station (u64, usec)
|
* @NL80211_EXT_FEATURE_SAE_OFFLOAD: Device wants to do SAE authentication in
|
||||||
* @NL80211_STA_INFO_AIRTIME_WEIGHT: current airtime weight for station (u16)
|
* station mode (SAE password is passed as part of the connect command).
|
||||||
* @NL80211_STA_INFO_AIRTIME_LINK_METRIC: airtime link metric for mesh station
|
*
|
||||||
+ * @NL80211_STA_INFO_ASSOC_AT_BOOTTIME: Timestamp (CLOCK_BOOTTIME, nanoseconds)
|
+ * @NL80211_EXT_FEATURE_AQL: The driver supports the Airtime Queue Limit (AQL)
|
||||||
+ * of STA's association
|
+ * feature, which prevents bufferbloat by using the expected transmission
|
||||||
* @__NL80211_STA_INFO_AFTER_LAST: internal
|
+ * time to limit the amount of data buffered in the hardware.
|
||||||
* @NL80211_STA_INFO_MAX: highest possible station info attribute
|
+ *
|
||||||
|
* @NUM_NL80211_EXT_FEATURES: number of extended features.
|
||||||
|
* @MAX_NL80211_EXT_FEATURES: highest extended feature index.
|
||||||
*/
|
*/
|
||||||
@@ -3247,6 +3269,7 @@ enum nl80211_sta_info {
|
@@ -5529,6 +5538,8 @@ enum nl80211_ext_feature_index {
|
||||||
NL80211_STA_INFO_TX_DURATION,
|
NL80211_EXT_FEATURE_EXT_KEY_ID,
|
||||||
NL80211_STA_INFO_AIRTIME_WEIGHT,
|
NL80211_EXT_FEATURE_STA_TX_PWR,
|
||||||
NL80211_STA_INFO_AIRTIME_LINK_METRIC,
|
NL80211_EXT_FEATURE_SAE_OFFLOAD,
|
||||||
+ NL80211_STA_INFO_ASSOC_AT_BOOTTIME,
|
+ NL80211_EXT_FEATURE_VLAN_OFFLOAD,
|
||||||
|
+ NL80211_EXT_FEATURE_AQL,
|
||||||
|
|
||||||
/* keep last */
|
/* add new features before the definition below */
|
||||||
__NL80211_STA_INFO_AFTER_LAST,
|
NUM_NL80211_EXT_FEATURES,
|
||||||
@@ -3428,6 +3451,12 @@ enum nl80211_band_iftype_attr {
|
|
||||||
* @NL80211_BAND_ATTR_VHT_CAPA: VHT capabilities, as in the HT information IE
|
|
||||||
* @NL80211_BAND_ATTR_IFTYPE_DATA: nested array attribute, with each entry using
|
|
||||||
* attributes from &enum nl80211_band_iftype_attr
|
|
||||||
+ * @NL80211_BAND_ATTR_EDMG_CHANNELS: bitmap that indicates the 2.16 GHz
|
|
||||||
+ * channel(s) that are allowed to be used for EDMG transmissions.
|
|
||||||
+ * Defined by IEEE P802.11ay/D4.0 section 9.4.2.251.
|
|
||||||
+ * @NL80211_BAND_ATTR_EDMG_BW_CONFIG: Channel BW Configuration subfield encodes
|
|
||||||
+ * the allowed channel bandwidth configurations.
|
|
||||||
+ * Defined by IEEE P802.11ay/D4.0 section 9.4.2.251, Table 13.
|
|
||||||
* @NL80211_BAND_ATTR_MAX: highest band attribute currently defined
|
|
||||||
* @__NL80211_BAND_ATTR_AFTER_LAST: internal use
|
|
||||||
*/
|
|
||||||
@@ -3445,6 +3474,9 @@ enum nl80211_band_attr {
|
|
||||||
NL80211_BAND_ATTR_VHT_CAPA,
|
|
||||||
NL80211_BAND_ATTR_IFTYPE_DATA,
|
|
||||||
|
|
||||||
+ NL80211_BAND_ATTR_EDMG_CHANNELS,
|
|
||||||
+ NL80211_BAND_ATTR_EDMG_BW_CONFIG,
|
|
||||||
+
|
|
||||||
/* keep last */
|
|
||||||
__NL80211_BAND_ATTR_AFTER_LAST,
|
|
||||||
NL80211_BAND_ATTR_MAX = __NL80211_BAND_ATTR_AFTER_LAST - 1
|
|
||||||
@@ -3843,6 +3875,8 @@ enum nl80211_user_reg_hint_type {
|
|
||||||
* @NL80211_SURVEY_INFO_TIME_SCAN: time the radio spent for scan
|
|
||||||
* (on this channel or globally)
|
|
||||||
* @NL80211_SURVEY_INFO_PAD: attribute used for padding for 64-bit alignment
|
|
||||||
+ * @NL80211_SURVEY_INFO_TIME_BSS_RX: amount of time the radio spent
|
|
||||||
+ * receiving frames destined to the local BSS
|
|
||||||
* @NL80211_SURVEY_INFO_MAX: highest survey info attribute number
|
|
||||||
* currently defined
|
|
||||||
* @__NL80211_SURVEY_INFO_AFTER_LAST: internal use
|
|
||||||
@@ -3859,6 +3893,7 @@ enum nl80211_survey_info {
|
|
||||||
NL80211_SURVEY_INFO_TIME_TX,
|
|
||||||
NL80211_SURVEY_INFO_TIME_SCAN,
|
|
||||||
NL80211_SURVEY_INFO_PAD,
|
|
||||||
+ NL80211_SURVEY_INFO_TIME_BSS_RX,
|
|
||||||
|
|
||||||
/* keep last */
|
|
||||||
__NL80211_SURVEY_INFO_AFTER_LAST,
|
|
||||||
@@ -4543,6 +4578,7 @@ enum nl80211_txrate_gi {
|
|
||||||
* @NL80211_BAND_2GHZ: 2.4 GHz ISM band
|
|
||||||
* @NL80211_BAND_5GHZ: around 5 GHz band (4.9 - 5.7 GHz)
|
|
||||||
* @NL80211_BAND_60GHZ: around 60 GHz band (58.32 - 69.12 GHz)
|
|
||||||
+ * @NL80211_BAND_6GHZ: around 6 GHz band (5.9 - 7.2 GHz)
|
|
||||||
* @NUM_NL80211_BANDS: number of bands, avoid using this in userspace
|
|
||||||
* since newer kernel versions may support more bands
|
|
||||||
*/
|
|
||||||
@@ -4550,6 +4586,7 @@ enum nl80211_band {
|
|
||||||
NL80211_BAND_2GHZ,
|
|
||||||
NL80211_BAND_5GHZ,
|
|
||||||
NL80211_BAND_60GHZ,
|
|
||||||
+ NL80211_BAND_6GHZ,
|
|
||||||
|
|
||||||
NUM_NL80211_BANDS,
|
|
||||||
};
|
|
||||||
|
|||||||
@ -150,7 +150,7 @@
|
|||||||
{
|
{
|
||||||
--- a/scan.c
|
--- a/scan.c
|
||||||
+++ b/scan.c
|
+++ b/scan.c
|
||||||
@@ -1197,6 +1197,9 @@ static void print_ht_op(const uint8_t ty
|
@@ -1195,6 +1195,9 @@ static void print_ht_op(const uint8_t ty
|
||||||
printf("\t\t * secondary channel offset: %s\n",
|
printf("\t\t * secondary channel offset: %s\n",
|
||||||
ht_secondary_offset[data[1] & 0x3]);
|
ht_secondary_offset[data[1] & 0x3]);
|
||||||
printf("\t\t * STA channel width: %s\n", sta_chan_width[(data[1] & 0x4)>>2]);
|
printf("\t\t * STA channel width: %s\n", sta_chan_width[(data[1] & 0x4)>>2]);
|
||||||
@ -160,7 +160,7 @@
|
|||||||
printf("\t\t * RIFS: %d\n", (data[1] & 0x8)>>3);
|
printf("\t\t * RIFS: %d\n", (data[1] & 0x8)>>3);
|
||||||
printf("\t\t * HT protection: %s\n", protection[data[2] & 0x3]);
|
printf("\t\t * HT protection: %s\n", protection[data[2] & 0x3]);
|
||||||
printf("\t\t * non-GF present: %d\n", (data[2] & 0x4) >> 2);
|
printf("\t\t * non-GF present: %d\n", (data[2] & 0x4) >> 2);
|
||||||
@@ -1524,6 +1527,14 @@ static void print_ie(const struct ie_pri
|
@@ -1522,6 +1525,14 @@ static void print_ie(const struct ie_pri
|
||||||
|
|
||||||
static const struct ie_print ieprinters[] = {
|
static const struct ie_print ieprinters[] = {
|
||||||
[0] = { "SSID", print_ssid, 0, 32, BIT(PRINT_SCAN) | BIT(PRINT_LINK), },
|
[0] = { "SSID", print_ssid, 0, 32, BIT(PRINT_SCAN) | BIT(PRINT_LINK), },
|
||||||
@ -175,7 +175,7 @@
|
|||||||
[1] = { "Supported rates", print_supprates, 0, 255, BIT(PRINT_SCAN), },
|
[1] = { "Supported rates", print_supprates, 0, 255, BIT(PRINT_SCAN), },
|
||||||
[3] = { "DS Parameter set", print_ds, 1, 1, BIT(PRINT_SCAN), },
|
[3] = { "DS Parameter set", print_ds, 1, 1, BIT(PRINT_SCAN), },
|
||||||
[5] = { "TIM", print_tim, 4, 255, BIT(PRINT_SCAN), },
|
[5] = { "TIM", print_tim, 4, 255, BIT(PRINT_SCAN), },
|
||||||
@@ -1533,21 +1544,15 @@ static const struct ie_print ieprinters[
|
@@ -1531,21 +1542,15 @@ static const struct ie_print ieprinters[
|
||||||
[32] = { "Power constraint", print_powerconstraint, 1, 1, BIT(PRINT_SCAN), },
|
[32] = { "Power constraint", print_powerconstraint, 1, 1, BIT(PRINT_SCAN), },
|
||||||
[35] = { "TPC report", print_tpcreport, 2, 2, BIT(PRINT_SCAN), },
|
[35] = { "TPC report", print_tpcreport, 2, 2, BIT(PRINT_SCAN), },
|
||||||
[42] = { "ERP", print_erp, 1, 255, BIT(PRINT_SCAN), },
|
[42] = { "ERP", print_erp, 1, 255, BIT(PRINT_SCAN), },
|
||||||
@ -198,7 +198,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
static void print_wifi_wpa(const uint8_t type, uint8_t len, const uint8_t *data,
|
static void print_wifi_wpa(const uint8_t type, uint8_t len, const uint8_t *data,
|
||||||
@@ -2026,6 +2031,7 @@ void print_ies(unsigned char *ie, int ie
|
@@ -2024,6 +2029,7 @@ void print_ies(unsigned char *ie, int ie
|
||||||
ieprinters[ie[0]].flags & BIT(ptype)) {
|
ieprinters[ie[0]].flags & BIT(ptype)) {
|
||||||
print_ie(&ieprinters[ie[0]],
|
print_ie(&ieprinters[ie[0]],
|
||||||
ie[0], ie[1], ie + 2, &ie_buffer);
|
ie[0], ie[1], ie + 2, &ie_buffer);
|
||||||
@ -206,7 +206,7 @@
|
|||||||
} else if (ie[0] == 221 /* vendor */) {
|
} else if (ie[0] == 221 /* vendor */) {
|
||||||
print_vendor(ie[1], ie + 2, unknown, ptype);
|
print_vendor(ie[1], ie + 2, unknown, ptype);
|
||||||
} else if (unknown) {
|
} else if (unknown) {
|
||||||
@@ -2035,6 +2041,7 @@ void print_ies(unsigned char *ie, int ie
|
@@ -2033,6 +2039,7 @@ void print_ies(unsigned char *ie, int ie
|
||||||
for (i=0; i<ie[1]; i++)
|
for (i=0; i<ie[1]; i++)
|
||||||
printf(" %.2x", ie[2+i]);
|
printf(" %.2x", ie[2+i]);
|
||||||
printf("\n");
|
printf("\n");
|
||||||
@ -214,7 +214,7 @@
|
|||||||
}
|
}
|
||||||
ielen -= ie[1] + 2;
|
ielen -= ie[1] + 2;
|
||||||
ie += ie[1] + 2;
|
ie += ie[1] + 2;
|
||||||
@@ -2075,6 +2082,7 @@ static void print_capa_non_dmg(__u16 cap
|
@@ -2073,6 +2080,7 @@ static void print_capa_non_dmg(__u16 cap
|
||||||
printf(" ESS");
|
printf(" ESS");
|
||||||
if (capa & WLAN_CAPABILITY_IBSS)
|
if (capa & WLAN_CAPABILITY_IBSS)
|
||||||
printf(" IBSS");
|
printf(" IBSS");
|
||||||
@ -222,7 +222,7 @@
|
|||||||
if (capa & WLAN_CAPABILITY_CF_POLLABLE)
|
if (capa & WLAN_CAPABILITY_CF_POLLABLE)
|
||||||
printf(" CfPollable");
|
printf(" CfPollable");
|
||||||
if (capa & WLAN_CAPABILITY_CF_POLL_REQUEST)
|
if (capa & WLAN_CAPABILITY_CF_POLL_REQUEST)
|
||||||
@@ -2103,6 +2111,7 @@ static void print_capa_non_dmg(__u16 cap
|
@@ -2101,6 +2109,7 @@ static void print_capa_non_dmg(__u16 cap
|
||||||
printf(" DelayedBACK");
|
printf(" DelayedBACK");
|
||||||
if (capa & WLAN_CAPABILITY_IMM_BACK)
|
if (capa & WLAN_CAPABILITY_IMM_BACK)
|
||||||
printf(" ImmediateBACK");
|
printf(" ImmediateBACK");
|
||||||
@ -230,7 +230,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int print_bss_handler(struct nl_msg *msg, void *arg)
|
static int print_bss_handler(struct nl_msg *msg, void *arg)
|
||||||
@@ -2187,8 +2196,10 @@ static int print_bss_handler(struct nl_m
|
@@ -2185,8 +2194,10 @@ static int print_bss_handler(struct nl_m
|
||||||
if (bss[NL80211_BSS_FREQUENCY]) {
|
if (bss[NL80211_BSS_FREQUENCY]) {
|
||||||
int freq = nla_get_u32(bss[NL80211_BSS_FREQUENCY]);
|
int freq = nla_get_u32(bss[NL80211_BSS_FREQUENCY]);
|
||||||
printf("\tfreq: %d\n", freq);
|
printf("\tfreq: %d\n", freq);
|
||||||
@ -241,7 +241,7 @@
|
|||||||
}
|
}
|
||||||
if (bss[NL80211_BSS_BEACON_INTERVAL])
|
if (bss[NL80211_BSS_BEACON_INTERVAL])
|
||||||
printf("\tbeacon interval: %d TUs\n",
|
printf("\tbeacon interval: %d TUs\n",
|
||||||
@@ -2382,6 +2393,7 @@ static int handle_stop_sched_scan(struct
|
@@ -2380,6 +2391,7 @@ static int handle_stop_sched_scan(struct
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -249,14 +249,14 @@
|
|||||||
COMMAND(scan, sched_start,
|
COMMAND(scan, sched_start,
|
||||||
SCHED_SCAN_OPTIONS,
|
SCHED_SCAN_OPTIONS,
|
||||||
NL80211_CMD_START_SCHED_SCAN, 0, CIB_NETDEV, handle_start_sched_scan,
|
NL80211_CMD_START_SCHED_SCAN, 0, CIB_NETDEV, handle_start_sched_scan,
|
||||||
@@ -2392,3 +2404,4 @@ COMMAND(scan, sched_start,
|
@@ -2390,3 +2402,4 @@ COMMAND(scan, sched_start,
|
||||||
COMMAND(scan, sched_stop, "",
|
COMMAND(scan, sched_stop, "",
|
||||||
NL80211_CMD_STOP_SCHED_SCAN, 0, CIB_NETDEV, handle_stop_sched_scan,
|
NL80211_CMD_STOP_SCHED_SCAN, 0, CIB_NETDEV, handle_stop_sched_scan,
|
||||||
"Stop an ongoing scheduled scan.");
|
"Stop an ongoing scheduled scan.");
|
||||||
+#endif
|
+#endif
|
||||||
--- a/util.c
|
--- a/util.c
|
||||||
+++ b/util.c
|
+++ b/util.c
|
||||||
@@ -291,6 +291,7 @@ static const char *commands[NL80211_CMD_
|
@@ -153,6 +153,7 @@ static const char *commands[NL80211_CMD_
|
||||||
|
|
||||||
static char cmdbuf[100];
|
static char cmdbuf[100];
|
||||||
|
|
||||||
@ -264,7 +264,7 @@
|
|||||||
const char *command_name(enum nl80211_commands cmd)
|
const char *command_name(enum nl80211_commands cmd)
|
||||||
{
|
{
|
||||||
if (cmd <= NL80211_CMD_MAX && commands[cmd])
|
if (cmd <= NL80211_CMD_MAX && commands[cmd])
|
||||||
@@ -298,6 +299,7 @@ const char *command_name(enum nl80211_co
|
@@ -160,6 +161,7 @@ const char *command_name(enum nl80211_co
|
||||||
sprintf(cmdbuf, "Unknown command (%d)", cmd);
|
sprintf(cmdbuf, "Unknown command (%d)", cmd);
|
||||||
return cmdbuf;
|
return cmdbuf;
|
||||||
}
|
}
|
||||||
@ -272,7 +272,7 @@
|
|||||||
|
|
||||||
int ieee80211_channel_to_frequency(int chan, enum nl80211_band band)
|
int ieee80211_channel_to_frequency(int chan, enum nl80211_band band)
|
||||||
{
|
{
|
||||||
@@ -436,6 +438,9 @@ int parse_keys(struct nl_msg *msg, char
|
@@ -298,6 +300,9 @@ int parse_keys(struct nl_msg *msg, char
|
||||||
char keybuf[13];
|
char keybuf[13];
|
||||||
int pos = 0;
|
int pos = 0;
|
||||||
|
|
||||||
@ -299,7 +299,7 @@
|
|||||||
ifeq ($(NO_PKG_CONFIG),)
|
ifeq ($(NO_PKG_CONFIG),)
|
||||||
--- a/station.c
|
--- a/station.c
|
||||||
+++ b/station.c
|
+++ b/station.c
|
||||||
@@ -736,10 +736,12 @@ static int handle_station_set_plink(stru
|
@@ -759,10 +759,12 @@ static int handle_station_set_plink(stru
|
||||||
nla_put_failure:
|
nla_put_failure:
|
||||||
return -ENOBUFS;
|
return -ENOBUFS;
|
||||||
}
|
}
|
||||||
@ -312,7 +312,7 @@
|
|||||||
|
|
||||||
static int handle_station_set_vlan(struct nl80211_state *state,
|
static int handle_station_set_vlan(struct nl80211_state *state,
|
||||||
struct nl_msg *msg,
|
struct nl_msg *msg,
|
||||||
@@ -834,11 +836,13 @@ static int handle_station_set_mesh_power
|
@@ -857,11 +859,13 @@ static int handle_station_set_mesh_power
|
||||||
nla_put_failure:
|
nla_put_failure:
|
||||||
return -ENOBUFS;
|
return -ENOBUFS;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -18,7 +18,7 @@ define Package/rssileds
|
|||||||
SECTION:=net
|
SECTION:=net
|
||||||
CATEGORY:=Network
|
CATEGORY:=Network
|
||||||
TITLE:=RSSI real-time LED indicator
|
TITLE:=RSSI real-time LED indicator
|
||||||
DEPENDS:=+libiwinfo
|
DEPENDS:=+libiwinfo +libnl-tiny +libubox +libuci
|
||||||
MAINTAINER:=Daniel Golle <dgolle@allnet.de>
|
MAINTAINER:=Daniel Golle <dgolle@allnet.de>
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
|||||||
@ -8,14 +8,14 @@
|
|||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=f2fs-tools
|
PKG_NAME:=f2fs-tools
|
||||||
PKG_VERSION:=1.12.0
|
PKG_VERSION:=1.13.0
|
||||||
PKG_RELEASE:=3
|
PKG_RELEASE:=1
|
||||||
|
|
||||||
PKG_LICENSE:=GPL-2.0
|
PKG_LICENSE:=GPL-2.0
|
||||||
|
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
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/
|
PKG_SOURCE_URL:=https://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs-tools.git/snapshot/
|
||||||
PKG_HASH:=e2124e4dffaba865d41495d817bcb924d096adaec67ff777b8c7da99aa13f696
|
PKG_HASH:=b39d3ae9224267aab0070b5f17d91d0c5143f6d960166a27f6b11c8c87072c7d
|
||||||
|
|
||||||
PKG_FIXUP:=autoreconf
|
PKG_FIXUP:=autoreconf
|
||||||
PKG_BUILD_PARALLEL:=1
|
PKG_BUILD_PARALLEL:=1
|
||||||
@ -58,6 +58,7 @@ define Package/libf2fs
|
|||||||
endef
|
endef
|
||||||
|
|
||||||
CONFIGURE_ARGS += \
|
CONFIGURE_ARGS += \
|
||||||
|
--disable-static \
|
||||||
--without-selinux \
|
--without-selinux \
|
||||||
--without-blkid
|
--without-blkid
|
||||||
|
|
||||||
@ -77,7 +78,6 @@ endef
|
|||||||
|
|
||||||
define Package/f2fsck/install
|
define Package/f2fsck/install
|
||||||
$(INSTALL_DIR) $(1)/usr/sbin
|
$(INSTALL_DIR) $(1)/usr/sbin
|
||||||
|
|
||||||
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/fsck.f2fs $(1)/usr/sbin
|
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/fsck.f2fs $(1)/usr/sbin
|
||||||
ln -s /usr/sbin/fsck.f2fs $(1)/usr/sbin/defrag.f2fs
|
ln -s /usr/sbin/fsck.f2fs $(1)/usr/sbin/defrag.f2fs
|
||||||
ln -s /usr/sbin/fsck.f2fs $(1)/usr/sbin/dump.f2fs
|
ln -s /usr/sbin/fsck.f2fs $(1)/usr/sbin/dump.f2fs
|
||||||
|
|||||||
@ -1,35 +0,0 @@
|
|||||||
From 46772bbf0d978512423923da461ceb6b6e791c91 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Rosen Penev <rosenp@gmail.com>
|
|
||||||
Date: Fri, 7 Dec 2018 17:39:03 -0800
|
|
||||||
Subject: [PATCH] fsck: Fix big endian platforms
|
|
||||||
|
|
||||||
Since "fsck.f2fs: integrate sanity_check_inode to __check_inode_mode",
|
|
||||||
big endian platforms have been broken due to an endianness bug.
|
|
||||||
|
|
||||||
More info: https://github.com/openwrt/openwrt/pull/1575
|
|
||||||
|
|
||||||
Signed-off-by: Rosen Penev <rosenp@gmail.com>
|
|
||||||
---
|
|
||||||
fsck/fsck.c | 4 ++--
|
|
||||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
--- a/fsck/fsck.c
|
|
||||||
+++ b/fsck/fsck.c
|
|
||||||
@@ -339,7 +339,7 @@ out:
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
-static int __check_inode_mode(u32 nid, enum FILE_TYPE ftype, u32 mode)
|
|
||||||
+static int __check_inode_mode(u32 nid, enum FILE_TYPE ftype, u16 mode)
|
|
||||||
{
|
|
||||||
if (ftype >= F2FS_FT_MAX)
|
|
||||||
return 0;
|
|
||||||
@@ -457,7 +457,7 @@ static int sanity_check_nid(struct f2fs_
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
if (ntype == TYPE_INODE &&
|
|
||||||
- __check_inode_mode(nid, ftype, le32_to_cpu(node_blk->i.i_mode)))
|
|
||||||
+ __check_inode_mode(nid, ftype, le16_to_cpu(node_blk->i.i_mode)))
|
|
||||||
return -EINVAL;
|
|
||||||
|
|
||||||
/* workaround to fix later */
|
|
||||||
@ -1,24 +0,0 @@
|
|||||||
From a1241763f50d20efc42910e922b9c8845814f024 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Chao Yu <yuchao0@huawei.com>
|
|
||||||
Date: Sun, 9 Dec 2018 19:41:52 -0800
|
|
||||||
Subject: [PATCH] dump.f2fs: fix incorrect endian conversion
|
|
||||||
|
|
||||||
f2fs_inode.i_mode is variable of __le16 type, during endian converison,
|
|
||||||
it should to use le16_to_cpu instead of le32_to_cpu, fix it.
|
|
||||||
|
|
||||||
Signed-off-by: Chao Yu <yuchao0@huawei.com>
|
|
||||||
---
|
|
||||||
fsck/dump.c | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
--- a/fsck/dump.c
|
|
||||||
+++ b/fsck/dump.c
|
|
||||||
@@ -407,7 +407,7 @@ static void dump_file(struct f2fs_sb_inf
|
|
||||||
struct f2fs_node *node_blk, int force)
|
|
||||||
{
|
|
||||||
struct f2fs_inode *inode = &node_blk->i;
|
|
||||||
- u32 imode = le32_to_cpu(inode->i_mode);
|
|
||||||
+ u32 imode = le16_to_cpu(inode->i_mode);
|
|
||||||
u32 namelen = le32_to_cpu(inode->i_namelen);
|
|
||||||
char name[F2FS_NAME_LEN + 1] = {0};
|
|
||||||
char path[1024] = {0};
|
|
||||||
@ -15,7 +15,7 @@ PKG_LICENSE_FILES:=
|
|||||||
|
|
||||||
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
|
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
|
||||||
|
|
||||||
PKG_DATA_VERSION:=20170806
|
PKG_DATA_VERSION:=20191128
|
||||||
PKG_DATA_URL:=http://www.draisberghof.de/usb_modeswitch
|
PKG_DATA_URL:=http://www.draisberghof.de/usb_modeswitch
|
||||||
PKG_DATA_PATH:=usb-modeswitch-data-$(PKG_DATA_VERSION)
|
PKG_DATA_PATH:=usb-modeswitch-data-$(PKG_DATA_VERSION)
|
||||||
PKG_DATA_FILENAME:=$(PKG_DATA_PATH).tar.bz2
|
PKG_DATA_FILENAME:=$(PKG_DATA_PATH).tar.bz2
|
||||||
@ -26,7 +26,7 @@ include $(INCLUDE_DIR)/cmake.mk
|
|||||||
define Download/data
|
define Download/data
|
||||||
FILE:=$(PKG_DATA_FILENAME)
|
FILE:=$(PKG_DATA_FILENAME)
|
||||||
URL:=$(PKG_DATA_URL)
|
URL:=$(PKG_DATA_URL)
|
||||||
HASH:=ce413ef2a50e648e9c81bc3ea6110e7324a8bf981034fc9ec4467d3562563c2c
|
HASH:=3f039b60791c21c7cb15c7986cac89650f076dc274798fa242231b910785eaf9
|
||||||
endef
|
endef
|
||||||
$(eval $(call Download,data))
|
$(eval $(call Download,data))
|
||||||
|
|
||||||
|
|||||||
@ -8,12 +8,12 @@
|
|||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=util-linux
|
PKG_NAME:=util-linux
|
||||||
PKG_VERSION:=2.34
|
PKG_VERSION:=2.35.1
|
||||||
PKG_RELEASE:=2
|
PKG_RELEASE:=1
|
||||||
|
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
||||||
PKG_SOURCE_URL:=@KERNEL/linux/utils/$(PKG_NAME)/v2.34
|
PKG_SOURCE_URL:=@KERNEL/linux/utils/$(PKG_NAME)/v2.35
|
||||||
PKG_HASH:=743f9d0c7252b6db246b659c1e1ce0bd45d8d4508b4dfa427bbb4a3e9b9f62b5
|
PKG_HASH:=d9de3edd287366cd908e77677514b9387b22bc7b88f45b83e1922c3597f1d7f9
|
||||||
PKG_CPE_ID:=cpe:/a:kernel:util-linux
|
PKG_CPE_ID:=cpe:/a:kernel:util-linux
|
||||||
|
|
||||||
PKG_LICENSE:=GPL-2.0
|
PKG_LICENSE:=GPL-2.0
|
||||||
|
|||||||
@ -10,7 +10,7 @@
|
|||||||
endif # BUILD_LIBUUID
|
endif # BUILD_LIBUUID
|
||||||
--- a/configure.ac
|
--- a/configure.ac
|
||||||
+++ b/configure.ac
|
+++ b/configure.ac
|
||||||
@@ -2416,18 +2416,23 @@ AC_CONFIG_HEADERS([config.h])
|
@@ -2496,18 +2496,23 @@ AC_CONFIG_HEADERS([config.h])
|
||||||
#
|
#
|
||||||
AC_CONFIG_FILES([
|
AC_CONFIG_FILES([
|
||||||
Makefile
|
Makefile
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
--- a/lib/randutils.c
|
--- a/lib/randutils.c
|
||||||
+++ b/lib/randutils.c
|
+++ b/lib/randutils.c
|
||||||
@@ -25,6 +25,11 @@
|
@@ -26,6 +26,11 @@
|
||||||
#define THREAD_LOCAL static
|
#define THREAD_LOCAL static
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
@ -165,15 +165,12 @@ CONFIG_NO_BOOTMEM=y
|
|||||||
CONFIG_NVMEM=y
|
CONFIG_NVMEM=y
|
||||||
CONFIG_OF=y
|
CONFIG_OF=y
|
||||||
CONFIG_OF_ADDRESS=y
|
CONFIG_OF_ADDRESS=y
|
||||||
CONFIG_OF_ADDRESS_PCI=y
|
|
||||||
CONFIG_OF_EARLY_FLATTREE=y
|
CONFIG_OF_EARLY_FLATTREE=y
|
||||||
CONFIG_OF_FLATTREE=y
|
CONFIG_OF_FLATTREE=y
|
||||||
CONFIG_OF_GPIO=y
|
CONFIG_OF_GPIO=y
|
||||||
CONFIG_OF_IRQ=y
|
CONFIG_OF_IRQ=y
|
||||||
CONFIG_OF_KOBJ=y
|
CONFIG_OF_KOBJ=y
|
||||||
CONFIG_OF_NET=y
|
CONFIG_OF_NET=y
|
||||||
CONFIG_OF_PCI=y
|
|
||||||
CONFIG_OF_PCI_IRQ=y
|
|
||||||
CONFIG_OF_RESERVED_MEM=y
|
CONFIG_OF_RESERVED_MEM=y
|
||||||
CONFIG_OLD_SIGSUSPEND3=y
|
CONFIG_OLD_SIGSUSPEND3=y
|
||||||
CONFIG_PADATA=y
|
CONFIG_PADATA=y
|
||||||
|
|||||||
9
target/linux/ath79/dts/ar7240_tplink_tl-wa701nd-v1.dts
Normal file
9
target/linux/ath79/dts/ar7240_tplink_tl-wa701nd-v1.dts
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||||
|
/dts-v1/;
|
||||||
|
|
||||||
|
#include "ar7240_tplink_tl-wa.dtsi"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "TP-Link TL-WA701ND v1";
|
||||||
|
compatible = "tplink,tl-wa701nd-v1", "qca,ar7240";
|
||||||
|
};
|
||||||
9
target/linux/ath79/dts/ar7240_tplink_tl-wa730re-v1.dts
Normal file
9
target/linux/ath79/dts/ar7240_tplink_tl-wa730re-v1.dts
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||||
|
/dts-v1/;
|
||||||
|
|
||||||
|
#include "ar7240_tplink_tl-wa.dtsi"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "TP-Link TL-WA730RE v1";
|
||||||
|
compatible = "tplink,tl-wa730re-v1", "qca,ar7240";
|
||||||
|
};
|
||||||
9
target/linux/ath79/dts/ar7240_tplink_tl-wa801nd-v1.dts
Normal file
9
target/linux/ath79/dts/ar7240_tplink_tl-wa801nd-v1.dts
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||||
|
/dts-v1/;
|
||||||
|
|
||||||
|
#include "ar7240_tplink_tl-wa.dtsi"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "TP-Link TL-WA801ND v1";
|
||||||
|
compatible = "tplink,tl-wa801nd-v1", "qca,ar7240";
|
||||||
|
};
|
||||||
9
target/linux/ath79/dts/ar7240_tplink_tl-wa901nd-v1.dts
Normal file
9
target/linux/ath79/dts/ar7240_tplink_tl-wa901nd-v1.dts
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||||
|
/dts-v1/;
|
||||||
|
|
||||||
|
#include "ar7240_tplink_tl-wa.dtsi"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "TP-Link TL-WA901ND v1";
|
||||||
|
compatible = "tplink,tl-wa901nd-v1", "qca,ar7240";
|
||||||
|
};
|
||||||
13
target/linux/ath79/dts/ar7241_ubnt_nanostation-loco-m.dts
Normal file
13
target/linux/ath79/dts/ar7241_ubnt_nanostation-loco-m.dts
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||||
|
/dts-v1/;
|
||||||
|
|
||||||
|
#include "ar7241_ubnt_xm_outdoor.dtsi"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
compatible = "ubnt,nanostation-loco-m", "ubnt,xm", "qca,ar7241";
|
||||||
|
model = "Ubiquiti Nanostation Loco M";
|
||||||
|
};
|
||||||
|
|
||||||
|
ð1 {
|
||||||
|
compatible = "syscon", "simple-mfd";
|
||||||
|
};
|
||||||
13
target/linux/ath79/dts/ar7241_ubnt_picostation-m.dts
Normal file
13
target/linux/ath79/dts/ar7241_ubnt_picostation-m.dts
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||||
|
/dts-v1/;
|
||||||
|
|
||||||
|
#include "ar7241_ubnt_xm_outdoor.dtsi"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
compatible = "ubnt,picostation-m", "ubnt,xm", "qca,ar7241";
|
||||||
|
model = "Ubiquiti Picostation M";
|
||||||
|
};
|
||||||
|
|
||||||
|
ð1 {
|
||||||
|
compatible = "syscon", "simple-mfd";
|
||||||
|
};
|
||||||
@ -1,9 +1,6 @@
|
|||||||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||||
/dts-v1/;
|
/dts-v1/;
|
||||||
|
|
||||||
#include <dt-bindings/gpio/gpio.h>
|
|
||||||
#include <dt-bindings/input/input.h>
|
|
||||||
|
|
||||||
#include "ar9342_ubnt_xw.dtsi"
|
#include "ar9342_ubnt_xw.dtsi"
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
|
|||||||
@ -1,8 +1,6 @@
|
|||||||
// SPDX-License-Identifier: GPL-2.0
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
/dts-v1/;
|
/dts-v1/;
|
||||||
|
|
||||||
#include <dt-bindings/input/input.h>
|
|
||||||
|
|
||||||
#include "ar9342_ubnt_wa.dtsi"
|
#include "ar9342_ubnt_wa.dtsi"
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
|
|||||||
@ -1,9 +1,6 @@
|
|||||||
// SPDX-License-Identifier: GPL-2.0
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
/dts-v1/;
|
/dts-v1/;
|
||||||
|
|
||||||
#include <dt-bindings/gpio/gpio.h>
|
|
||||||
#include <dt-bindings/input/input.h>
|
|
||||||
|
|
||||||
#include "ar9342_ubnt_wa.dtsi"
|
#include "ar9342_ubnt_wa.dtsi"
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
|
|||||||
@ -1,9 +1,6 @@
|
|||||||
// SPDX-License-Identifier: GPL-2.0
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
/dts-v1/;
|
/dts-v1/;
|
||||||
|
|
||||||
#include <dt-bindings/gpio/gpio.h>
|
|
||||||
#include <dt-bindings/input/input.h>
|
|
||||||
|
|
||||||
#include "ar9342_ubnt_wa.dtsi"
|
#include "ar9342_ubnt_wa.dtsi"
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
|
|||||||
@ -1,9 +1,6 @@
|
|||||||
// SPDX-License-Identifier: GPL-2.0
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
/dts-v1/;
|
/dts-v1/;
|
||||||
|
|
||||||
#include <dt-bindings/gpio/gpio.h>
|
|
||||||
#include <dt-bindings/input/input.h>
|
|
||||||
|
|
||||||
#include "ar9342_ubnt_wa.dtsi"
|
#include "ar9342_ubnt_wa.dtsi"
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
|
|||||||
@ -1,9 +1,6 @@
|
|||||||
// SPDX-License-Identifier: GPL-2.0
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
/dts-v1/;
|
/dts-v1/;
|
||||||
|
|
||||||
#include <dt-bindings/gpio/gpio.h>
|
|
||||||
#include <dt-bindings/input/input.h>
|
|
||||||
|
|
||||||
#include "ar9342_ubnt_wa.dtsi"
|
#include "ar9342_ubnt_wa.dtsi"
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
|
|||||||
@ -1,9 +1,6 @@
|
|||||||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||||
/dts-v1/;
|
/dts-v1/;
|
||||||
|
|
||||||
#include <dt-bindings/gpio/gpio.h>
|
|
||||||
#include <dt-bindings/input/input.h>
|
|
||||||
|
|
||||||
#include "ar9342_ubnt_xw.dtsi"
|
#include "ar9342_ubnt_xw.dtsi"
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
|
|||||||
@ -1,9 +1,6 @@
|
|||||||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||||
/dts-v1/;
|
/dts-v1/;
|
||||||
|
|
||||||
#include <dt-bindings/gpio/gpio.h>
|
|
||||||
#include <dt-bindings/input/input.h>
|
|
||||||
|
|
||||||
#include "ar9342_ubnt_xw.dtsi"
|
#include "ar9342_ubnt_xw.dtsi"
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
|
|||||||
346
target/linux/ath79/dts/ar9344_teltonika_rut955.dts
Normal file
346
target/linux/ath79/dts/ar9344_teltonika_rut955.dts
Normal file
@ -0,0 +1,346 @@
|
|||||||
|
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||||
|
/dts-v1/;
|
||||||
|
|
||||||
|
#include <dt-bindings/gpio/gpio.h>
|
||||||
|
#include <dt-bindings/input/input.h>
|
||||||
|
|
||||||
|
#include "ar9344.dtsi"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "Teltonika RUT955";
|
||||||
|
compatible = "teltonika,rut955", "qca,ar9344";
|
||||||
|
|
||||||
|
aliases {
|
||||||
|
serial0 = &uart;
|
||||||
|
serial1 = &hs_uart;
|
||||||
|
led-boot = &led_system_green;
|
||||||
|
led-failsafe = &led_system_red;
|
||||||
|
led-running = &led_system_green;
|
||||||
|
led-upgrade = &led_system_red;
|
||||||
|
label-mac-device = ð1;
|
||||||
|
};
|
||||||
|
|
||||||
|
i2c {
|
||||||
|
compatible = "i2c-gpio";
|
||||||
|
scl-gpios = <&gpio 16 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
|
||||||
|
sda-gpios = <&gpio 17 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
|
||||||
|
hwmon@4d {
|
||||||
|
compatible = "microchip,mcp3221";
|
||||||
|
reg = <0x4d>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
leds {
|
||||||
|
compatible = "gpio-leds";
|
||||||
|
|
||||||
|
signal1 {
|
||||||
|
label = "rut955:green:signal1";
|
||||||
|
gpios = <&gpio_ext 0 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
|
||||||
|
signal2 {
|
||||||
|
label = "rut955:green:signal2";
|
||||||
|
gpios = <&gpio_ext 1 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
|
||||||
|
signal3 {
|
||||||
|
label = "rut955:green:signal3";
|
||||||
|
gpios = <&gpio_ext 2 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
|
||||||
|
signal4 {
|
||||||
|
label = "rut955:green:signal4";
|
||||||
|
gpios = <&gpio_ext 3 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
|
||||||
|
signal5 {
|
||||||
|
label = "rut955:green:signal5";
|
||||||
|
gpios = <&gpio_ext 4 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
|
||||||
|
led_system_red: system_red {
|
||||||
|
label = "rut955:red:system";
|
||||||
|
gpios = <&gpio_ext 5 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
|
||||||
|
led_system_green: system_green {
|
||||||
|
label = "rut955:green:system";
|
||||||
|
gpios = <&gpio_ext 6 GPIO_ACTIVE_HIGH>;
|
||||||
|
default-state = "on";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
keys {
|
||||||
|
compatible = "gpio-keys";
|
||||||
|
|
||||||
|
reset {
|
||||||
|
label = "reset";
|
||||||
|
linux,code = <KEY_RESTART>;
|
||||||
|
gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
|
||||||
|
debounce-interval = <60>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&gpio {
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&jtag_disable_pins>;
|
||||||
|
|
||||||
|
gpio-line-names = "RS485_D", "led_wan", "DIN3", "mmc_cs",
|
||||||
|
"ext_sck", "", "", "",
|
||||||
|
"", "", "", "",
|
||||||
|
"ext_mosi", "led_lan2", "led_lan1", "",
|
||||||
|
"i2c_scl", "i2c_sda", "", "DIN2",
|
||||||
|
"ext_cs", "DIN1", "led_lan3", "",
|
||||||
|
"", "", "", "",
|
||||||
|
"", "", "", "";
|
||||||
|
|
||||||
|
ext_sck {
|
||||||
|
gpio-hog;
|
||||||
|
gpios = <4 GPIO_ACTIVE_HIGH>;
|
||||||
|
output-high;
|
||||||
|
line-name = "rut955:ext:sck";
|
||||||
|
};
|
||||||
|
|
||||||
|
ext_mosi {
|
||||||
|
gpio-hog;
|
||||||
|
gpios = <12 GPIO_ACTIVE_HIGH>;
|
||||||
|
output-high;
|
||||||
|
line-name = "rut955:ext:mosi";
|
||||||
|
};
|
||||||
|
|
||||||
|
ext_cs {
|
||||||
|
gpio-hog;
|
||||||
|
gpios = <20 GPIO_ACTIVE_HIGH>;
|
||||||
|
output-low;
|
||||||
|
line-name = "rut955:ext:cs";
|
||||||
|
};
|
||||||
|
|
||||||
|
mmc_cs {
|
||||||
|
gpio-hog;
|
||||||
|
gpios = <3 GPIO_ACTIVE_HIGH>;
|
||||||
|
output-high;
|
||||||
|
line-name = "rut955:mmc:cs";
|
||||||
|
};
|
||||||
|
|
||||||
|
uart1_td {
|
||||||
|
gpio-hog;
|
||||||
|
gpios = <18 GPIO_ACTIVE_HIGH>;
|
||||||
|
output-high;
|
||||||
|
line-name = "rut955:uart1:td";
|
||||||
|
};
|
||||||
|
|
||||||
|
uart1_rd {
|
||||||
|
gpio-hog;
|
||||||
|
gpios = <11 GPIO_ACTIVE_LOW>;
|
||||||
|
input;
|
||||||
|
line-name = "rut955:uart1:rd";
|
||||||
|
};
|
||||||
|
|
||||||
|
led_wan {
|
||||||
|
gpio-hog;
|
||||||
|
gpios = <1 GPIO_ACTIVE_HIGH>;
|
||||||
|
output-high;
|
||||||
|
line-name = "rut955:led:wan";
|
||||||
|
};
|
||||||
|
|
||||||
|
led_lan2 {
|
||||||
|
gpio-hog;
|
||||||
|
gpios = <13 GPIO_ACTIVE_HIGH>;
|
||||||
|
output-high;
|
||||||
|
line-name = "rut955:led:lan2";
|
||||||
|
};
|
||||||
|
|
||||||
|
led_lan1 {
|
||||||
|
gpio-hog;
|
||||||
|
gpios = <14 GPIO_ACTIVE_HIGH>;
|
||||||
|
output-high;
|
||||||
|
line-name = "rut955:led:lan1";
|
||||||
|
};
|
||||||
|
|
||||||
|
led_lan3 {
|
||||||
|
gpio-hog;
|
||||||
|
gpios = <22 GPIO_ACTIVE_HIGH>;
|
||||||
|
output-high;
|
||||||
|
line-name = "rut955:led:lan3";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&ref {
|
||||||
|
clock-frequency = <40000000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&uart {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&hs_uart {
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&pmx_uart2>;
|
||||||
|
|
||||||
|
rts-gpios = <&gpio 0 GPIO_ACTIVE_HIGH>;
|
||||||
|
rs485-rts-active-low;
|
||||||
|
linux,rs485-enabled-at-boot-time;
|
||||||
|
};
|
||||||
|
|
||||||
|
&spi {
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
num-cs = <3>;
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&pmx_spi>;
|
||||||
|
|
||||||
|
flash@0 {
|
||||||
|
compatible = "jedec,spi-nor";
|
||||||
|
reg = <0>;
|
||||||
|
spi-max-frequency = <25000000>;
|
||||||
|
|
||||||
|
partitions {
|
||||||
|
compatible = "fixed-partitions";
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
|
||||||
|
partition@0 {
|
||||||
|
label = "u-boot";
|
||||||
|
reg = <0x0 0x20000>;
|
||||||
|
read-only;
|
||||||
|
};
|
||||||
|
|
||||||
|
config: partition@20000 {
|
||||||
|
label = "config";
|
||||||
|
reg = <0x20000 0x10000>;
|
||||||
|
read-only;
|
||||||
|
};
|
||||||
|
|
||||||
|
art: partition@30000 {
|
||||||
|
label = "art";
|
||||||
|
reg = <0x30000 0x10000>;
|
||||||
|
read-only;
|
||||||
|
};
|
||||||
|
|
||||||
|
partition@40000 {
|
||||||
|
label = "firmware";
|
||||||
|
reg = <0x40000 0xf30000>;
|
||||||
|
compatible = "tplink,firmware";
|
||||||
|
};
|
||||||
|
|
||||||
|
partition@f70000 {
|
||||||
|
label = "event-log";
|
||||||
|
reg = <0xf70000 0x90000>;
|
||||||
|
read-only;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
microsd@1 {
|
||||||
|
status = "disabled";
|
||||||
|
|
||||||
|
compatible = "mmc-spi-slot";
|
||||||
|
spi-max-frequency = <25000000>;
|
||||||
|
reg = <1>;
|
||||||
|
voltage-ranges = <3200 3400>;
|
||||||
|
broken-cd;
|
||||||
|
};
|
||||||
|
|
||||||
|
gpio_ext: gpio_ext@2 {
|
||||||
|
compatible = "fairchild,74hc595";
|
||||||
|
reg = <2>;
|
||||||
|
gpio-controller;
|
||||||
|
#gpio-cells = <2>;
|
||||||
|
registers-number = <2>;
|
||||||
|
spi-max-frequency = <10000000>;
|
||||||
|
gpio-line-names = "led_signal_bar1", "led_signal_bar2", "led_signal_bar3", "led_signal_bar4",
|
||||||
|
"led_signal_bar5", "led_status_red", "led_status_green", "sim_sel",
|
||||||
|
"DOUT1", "DOUT2", "modem_vbus", "modem_rst",
|
||||||
|
"DOUT3", "RS485_R", "SDCS", "HWRST";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&usb {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
port@1 {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
reg = <1>;
|
||||||
|
|
||||||
|
port@1 {
|
||||||
|
compatible = "usb-a-connector";
|
||||||
|
reg = <1>;
|
||||||
|
};
|
||||||
|
|
||||||
|
port@3 {
|
||||||
|
label = "RS-232 serial adapter";
|
||||||
|
reg = <3>;
|
||||||
|
};
|
||||||
|
|
||||||
|
port@4 {
|
||||||
|
label = "internal wwan modem";
|
||||||
|
reg = <4>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&usb_phy {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&wmac {
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
mtd-cal-data = <&art 0x1000>;
|
||||||
|
mtd-mac-address = <&config 0x0>;
|
||||||
|
mtd-mac-address-increment = <2>;
|
||||||
|
};
|
||||||
|
|
||||||
|
ð0 {
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
phy-handle = <&swphy4>;
|
||||||
|
|
||||||
|
mtd-mac-address = <&config 0x0>;
|
||||||
|
mtd-mac-address-increment = <1>;
|
||||||
|
};
|
||||||
|
|
||||||
|
ð1 {
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
mtd-mac-address = <&config 0x0>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&builtin_switch {
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&pmx_leds_switch>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&pinmux {
|
||||||
|
pmx_spi: spi {
|
||||||
|
// SPI_CS1 on GPIO 3, 2nd SCK on GPIO 4
|
||||||
|
// 2nd MOSI on GPIO 12, SPI_CS2 on GPIO 20
|
||||||
|
pinctrl-single,bits = <0x0 0x07000000 0xff000000>,
|
||||||
|
<0x4 0x0a 0xff>,
|
||||||
|
<0xc 0x0b 0xff>,
|
||||||
|
<0x14 0x08 0xff>;
|
||||||
|
};
|
||||||
|
|
||||||
|
pmx_leds_switch: leds_switch {
|
||||||
|
// switch port LEDs on GPIO 1, GPIO 13, GPIO 14 and GPIO 22
|
||||||
|
pinctrl-single,bits = <0x0 0x00002d00 0x0000ff00>,
|
||||||
|
<0xc 0x002c2b00 0x00ffff00>,
|
||||||
|
<0x14 0x002a0000 0x00ff0000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
pmx_uart2: uart2 {
|
||||||
|
// UART1_DTR on GPIO 0, UART1_RD on GPIO 11, UART1_TD on GPIO 18
|
||||||
|
pinctrl-single,bits = <0x0 0x0 0xff>,
|
||||||
|
<0x10 0x4f000000 0xff000000>,
|
||||||
|
<0x3c 0x000b0000 0x00ff0000>;
|
||||||
|
};
|
||||||
|
};
|
||||||
@ -1,9 +1,6 @@
|
|||||||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||||
/dts-v1/;
|
/dts-v1/;
|
||||||
|
|
||||||
#include <dt-bindings/gpio/gpio.h>
|
|
||||||
#include <dt-bindings/input/input.h>
|
|
||||||
|
|
||||||
#include "qca9557_iodata_wn-ac-dgr.dtsi"
|
#include "qca9557_iodata_wn-ac-dgr.dtsi"
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
|
|||||||
@ -1,9 +1,6 @@
|
|||||||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||||
/dts-v1/;
|
/dts-v1/;
|
||||||
|
|
||||||
#include <dt-bindings/gpio/gpio.h>
|
|
||||||
#include <dt-bindings/input/input.h>
|
|
||||||
|
|
||||||
#include "qca9557_iodata_wn-ac-dgr.dtsi"
|
#include "qca9557_iodata_wn-ac-dgr.dtsi"
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
|
|||||||
@ -1,9 +1,6 @@
|
|||||||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||||
/dts-v1/;
|
/dts-v1/;
|
||||||
|
|
||||||
#include <dt-bindings/gpio/gpio.h>
|
|
||||||
#include <dt-bindings/input/input.h>
|
|
||||||
|
|
||||||
#include "qca9557_iodata_wn-ac-dgr.dtsi"
|
#include "qca9557_iodata_wn-ac-dgr.dtsi"
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
|
|||||||
@ -1,9 +1,6 @@
|
|||||||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||||
/dts-v1/;
|
/dts-v1/;
|
||||||
|
|
||||||
#include <dt-bindings/gpio/gpio.h>
|
|
||||||
#include <dt-bindings/input/input.h>
|
|
||||||
|
|
||||||
#include "qca9558_comfast_cf-wr650ac.dtsi"
|
#include "qca9558_comfast_cf-wr650ac.dtsi"
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
|
|||||||
@ -1,9 +1,6 @@
|
|||||||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||||
/dts-v1/;
|
/dts-v1/;
|
||||||
|
|
||||||
#include <dt-bindings/gpio/gpio.h>
|
|
||||||
#include <dt-bindings/input/input.h>
|
|
||||||
|
|
||||||
#include "qca9558_comfast_cf-wr650ac.dtsi"
|
#include "qca9558_comfast_cf-wr650ac.dtsi"
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
|
|||||||
@ -1,9 +1,6 @@
|
|||||||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||||
/dts-v1/;
|
/dts-v1/;
|
||||||
|
|
||||||
#include <dt-bindings/gpio/gpio.h>
|
|
||||||
#include <dt-bindings/input/input.h>
|
|
||||||
|
|
||||||
#include "qca9558_tplink_tl-wr1043nd.dtsi"
|
#include "qca9558_tplink_tl-wr1043nd.dtsi"
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
|
|||||||
@ -1,9 +1,6 @@
|
|||||||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||||
/dts-v1/;
|
/dts-v1/;
|
||||||
|
|
||||||
#include <dt-bindings/gpio/gpio.h>
|
|
||||||
#include <dt-bindings/input/input.h>
|
|
||||||
|
|
||||||
#include "qca9558_tplink_tl-wr1043nd.dtsi"
|
#include "qca9558_tplink_tl-wr1043nd.dtsi"
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
|
|||||||
@ -1,9 +1,6 @@
|
|||||||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||||
/dts-v1/;
|
/dts-v1/;
|
||||||
|
|
||||||
#include <dt-bindings/gpio/gpio.h>
|
|
||||||
#include <dt-bindings/input/input.h>
|
|
||||||
|
|
||||||
#include "qca9563_elecom_wrc-ghbk2-i.dtsi"
|
#include "qca9563_elecom_wrc-ghbk2-i.dtsi"
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
|
|||||||
@ -1,9 +1,6 @@
|
|||||||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||||
/dts-v1/;
|
/dts-v1/;
|
||||||
|
|
||||||
#include <dt-bindings/gpio/gpio.h>
|
|
||||||
#include <dt-bindings/input/input.h>
|
|
||||||
|
|
||||||
#include "qca9563_elecom_wrc-ghbk2-i.dtsi"
|
#include "qca9563_elecom_wrc-ghbk2-i.dtsi"
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
|
|||||||
@ -244,9 +244,11 @@ trendnet,tew-823dru)
|
|||||||
;;
|
;;
|
||||||
ubnt,bullet-m|\
|
ubnt,bullet-m|\
|
||||||
ubnt,bullet-m-xw|\
|
ubnt,bullet-m-xw|\
|
||||||
|
ubnt,nanostation-loco-m|\
|
||||||
ubnt,nanostation-loco-m-xw|\
|
ubnt,nanostation-loco-m-xw|\
|
||||||
ubnt,nanostation-m|\
|
ubnt,nanostation-m|\
|
||||||
ubnt,nanostation-m-xw|\
|
ubnt,nanostation-m-xw|\
|
||||||
|
ubnt,picostation-m|\
|
||||||
ubnt,rocket-m)
|
ubnt,rocket-m)
|
||||||
ucidef_set_rssimon "wlan0" "200000" "1"
|
ucidef_set_rssimon "wlan0" "200000" "1"
|
||||||
ucidef_set_led_rssi "rssilow" "RSSILOW" "ubnt:red:link1" "wlan0" "1" "100"
|
ucidef_set_led_rssi "rssilow" "RSSILOW" "ubnt:red:link1" "wlan0" "1" "100"
|
||||||
|
|||||||
@ -47,7 +47,9 @@ ath79_setup_interfaces()
|
|||||||
ubnt,litebeam-ac-gen2|\
|
ubnt,litebeam-ac-gen2|\
|
||||||
ubnt,nanobeam-ac|\
|
ubnt,nanobeam-ac|\
|
||||||
ubnt,nanostation-ac-loco|\
|
ubnt,nanostation-ac-loco|\
|
||||||
|
ubnt,nanostation-loco-m|\
|
||||||
ubnt,nanostation-loco-m-xw|\
|
ubnt,nanostation-loco-m-xw|\
|
||||||
|
ubnt,picostation-m|\
|
||||||
ubnt,rocket-m|\
|
ubnt,rocket-m|\
|
||||||
ubnt,unifiac-lite|\
|
ubnt,unifiac-lite|\
|
||||||
ubnt,unifiac-lr|\
|
ubnt,unifiac-lr|\
|
||||||
@ -218,6 +220,11 @@ ath79_setup_interfaces()
|
|||||||
ucidef_add_switch "switch0" \
|
ucidef_add_switch "switch0" \
|
||||||
"0@eth0" "1:lan" "2:lan" "3:wan"
|
"0@eth0" "1:lan" "2:lan" "3:wan"
|
||||||
;;
|
;;
|
||||||
|
teltonika,rut955)
|
||||||
|
ucidef_set_interface_wan "eth1"
|
||||||
|
ucidef_add_switch "switch0" \
|
||||||
|
"0@eth0" "2:lan:3" "3:lan:2" "4:lan:1"
|
||||||
|
;;
|
||||||
tplink,archer-a7-v5|\
|
tplink,archer-a7-v5|\
|
||||||
tplink,archer-c6-v2|\
|
tplink,archer-c6-v2|\
|
||||||
tplink,archer-c6-v2-us|\
|
tplink,archer-c6-v2-us|\
|
||||||
@ -426,7 +433,9 @@ ath79_setup_macs()
|
|||||||
;;
|
;;
|
||||||
ubnt,airrouter|\
|
ubnt,airrouter|\
|
||||||
ubnt,bullet-m|\
|
ubnt,bullet-m|\
|
||||||
|
ubnt,nanostation-loco-m|\
|
||||||
ubnt,nanostation-m|\
|
ubnt,nanostation-m|\
|
||||||
|
ubnt,picostation-m|\
|
||||||
ubnt,rocket-m|\
|
ubnt,rocket-m|\
|
||||||
ubnt,unifi)
|
ubnt,unifi)
|
||||||
label_mac=$(cat /sys/class/ieee80211/phy0/macaddress)
|
label_mac=$(cat /sys/class/ieee80211/phy0/macaddress)
|
||||||
|
|||||||
@ -38,6 +38,14 @@ dlink,dir-835-a1)
|
|||||||
librerouter,librerouter-v1)
|
librerouter,librerouter-v1)
|
||||||
ucidef_add_gpio_switch "poe_passthrough" "PoE Passthrough" "1" "0"
|
ucidef_add_gpio_switch "poe_passthrough" "PoE Passthrough" "1" "0"
|
||||||
;;
|
;;
|
||||||
|
teltonika,rut955)
|
||||||
|
ucidef_add_gpio_switch "sim_sel" "SIM select" "503" "1"
|
||||||
|
ucidef_add_gpio_switch "DOUT1" "DOUT1 (OC)" "504" "0"
|
||||||
|
ucidef_add_gpio_switch "DOUT2" "DOUT2 (Relay)" "505" "0"
|
||||||
|
ucidef_add_gpio_switch "modem_vbus" "Modem enable" "506" "1"
|
||||||
|
ucidef_add_gpio_switch "modem_rst" "Modem reset" "507" "0"
|
||||||
|
ucidef_add_gpio_switch "DOUT3" "DOUT3" "508" "0"
|
||||||
|
;;
|
||||||
tplink,archer-c25-v1)
|
tplink,archer-c25-v1)
|
||||||
ucidef_add_gpio_switch "led_control" "LED control" "21" "0"
|
ucidef_add_gpio_switch "led_control" "LED control" "21" "0"
|
||||||
ucidef_add_gpio_switch "led_reset" "LED reset" "19" "1"
|
ucidef_add_gpio_switch "led_reset" "LED reset" "19" "1"
|
||||||
|
|||||||
@ -90,7 +90,9 @@ case "$FIRMWARE" in
|
|||||||
tplink,tl-wr842n-v1|\
|
tplink,tl-wr842n-v1|\
|
||||||
ubnt,airrouter|\
|
ubnt,airrouter|\
|
||||||
ubnt,bullet-m|\
|
ubnt,bullet-m|\
|
||||||
|
ubnt,nanostation-loco-m|\
|
||||||
ubnt,nanostation-m|\
|
ubnt,nanostation-m|\
|
||||||
|
ubnt,picostation-m|\
|
||||||
ubnt,rocket-m)
|
ubnt,rocket-m)
|
||||||
caldata_extract "art" 0x1000 0x1000
|
caldata_extract "art" 0x1000 0x1000
|
||||||
;;
|
;;
|
||||||
|
|||||||
@ -11,6 +11,7 @@ endef
|
|||||||
|
|
||||||
define Device/tplink-v1
|
define Device/tplink-v1
|
||||||
DEVICE_VENDOR := TP-Link
|
DEVICE_VENDOR := TP-Link
|
||||||
|
TPLINK_HWID := 0x0
|
||||||
TPLINK_HWREV := 0x1
|
TPLINK_HWREV := 0x1
|
||||||
TPLINK_HEADER_VERSION := 1
|
TPLINK_HEADER_VERSION := 1
|
||||||
LOADER_TYPE := gz
|
LOADER_TYPE := gz
|
||||||
@ -23,6 +24,7 @@ endef
|
|||||||
|
|
||||||
define Device/tplink-v2
|
define Device/tplink-v2
|
||||||
DEVICE_VENDOR := TP-Link
|
DEVICE_VENDOR := TP-Link
|
||||||
|
TPLINK_HWID := 0x0
|
||||||
TPLINK_HWREV := 0x1
|
TPLINK_HWREV := 0x1
|
||||||
TPLINK_HWREVADD := 0x0
|
TPLINK_HWREVADD := 0x0
|
||||||
TPLINK_HVERSION := 3
|
TPLINK_HVERSION := 3
|
||||||
@ -74,9 +76,10 @@ endef
|
|||||||
|
|
||||||
define Device/tplink-safeloader
|
define Device/tplink-safeloader
|
||||||
$(Device/tplink-v1)
|
$(Device/tplink-v1)
|
||||||
|
TPLINK_HWREV := 0x0
|
||||||
KERNEL := kernel-bin | append-dtb | lzma | tplink-v1-header -O
|
KERNEL := kernel-bin | append-dtb | lzma | tplink-v1-header -O
|
||||||
IMAGE/sysupgrade.bin := append-rootfs | tplink-safeloader sysupgrade | \
|
IMAGE/sysupgrade.bin := append-rootfs | tplink-safeloader sysupgrade | \
|
||||||
append-metadata | check-size $$$$(IMAGE_SIZE)
|
append-metadata | check-size $$$$(IMAGE_SIZE)
|
||||||
IMAGE/factory.bin := append-rootfs | tplink-safeloader factory
|
IMAGE/factory.bin := append-rootfs | tplink-safeloader factory
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
|||||||
@ -320,8 +320,6 @@ define Device/tplink_re350k-v1
|
|||||||
DEVICE_VARIANT := v1
|
DEVICE_VARIANT := v1
|
||||||
DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca988x-ct
|
DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca988x-ct
|
||||||
TPLINK_BOARD_ID := RE350K-V1
|
TPLINK_BOARD_ID := RE350K-V1
|
||||||
TPLINK_HWID := 0x0
|
|
||||||
TPLINK_HWREV := 0
|
|
||||||
endef
|
endef
|
||||||
TARGET_DEVICES += tplink_re350k-v1
|
TARGET_DEVICES += tplink_re350k-v1
|
||||||
|
|
||||||
@ -330,8 +328,6 @@ define Device/tplink_rex5x-v1
|
|||||||
SOC := qca9558
|
SOC := qca9558
|
||||||
IMAGE_SIZE := 6016k
|
IMAGE_SIZE := 6016k
|
||||||
DEVICE_PACKAGES := kmod-ath10k-ct-smallbuffers ath10k-firmware-qca988x-ct
|
DEVICE_PACKAGES := kmod-ath10k-ct-smallbuffers ath10k-firmware-qca988x-ct
|
||||||
TPLINK_HWID := 0x0
|
|
||||||
TPLINK_HWREV := 0
|
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Device/tplink_re355-v1
|
define Device/tplink_re355-v1
|
||||||
@ -359,8 +355,6 @@ define Device/tplink_re450-v2
|
|||||||
DEVICE_MODEL := RE450
|
DEVICE_MODEL := RE450
|
||||||
DEVICE_VARIANT := v2
|
DEVICE_VARIANT := v2
|
||||||
DEVICE_PACKAGES := kmod-ath10k-ct-smallbuffers ath10k-firmware-qca988x-ct
|
DEVICE_PACKAGES := kmod-ath10k-ct-smallbuffers ath10k-firmware-qca988x-ct
|
||||||
TPLINK_HWID := 0x0
|
|
||||||
TPLINK_HWREV := 0
|
|
||||||
TPLINK_BOARD_ID := RE450-V2
|
TPLINK_BOARD_ID := RE450-V2
|
||||||
LOADER_TYPE := elf
|
LOADER_TYPE := elf
|
||||||
endef
|
endef
|
||||||
@ -585,8 +579,6 @@ define Device/tplink_tl-wr902ac-v1
|
|||||||
-swconfig -uboot-envtools
|
-swconfig -uboot-envtools
|
||||||
TPLINK_BOARD_ID := TL-WR902AC-V1
|
TPLINK_BOARD_ID := TL-WR902AC-V1
|
||||||
IMAGE_SIZE := 7360k
|
IMAGE_SIZE := 7360k
|
||||||
TPLINK_HWID := 0x0
|
|
||||||
TPLINK_HWREV := 0
|
|
||||||
SUPPORTED_DEVICES += tl-wr902ac-v1
|
SUPPORTED_DEVICES += tl-wr902ac-v1
|
||||||
endef
|
endef
|
||||||
TARGET_DEVICES += tplink_tl-wr902ac-v1
|
TARGET_DEVICES += tplink_tl-wr902ac-v1
|
||||||
|
|||||||
@ -179,6 +179,14 @@ define Device/ubnt_nanostation-ac-loco
|
|||||||
endef
|
endef
|
||||||
TARGET_DEVICES += ubnt_nanostation-ac-loco
|
TARGET_DEVICES += ubnt_nanostation-ac-loco
|
||||||
|
|
||||||
|
define Device/ubnt_nanostation-loco-m
|
||||||
|
$(Device/ubnt-xm)
|
||||||
|
DEVICE_MODEL := Nanostation Loco M
|
||||||
|
DEVICE_PACKAGES += rssileds
|
||||||
|
SUPPORTED_DEVICES += bullet-m
|
||||||
|
endef
|
||||||
|
TARGET_DEVICES += ubnt_nanostation-loco-m
|
||||||
|
|
||||||
define Device/ubnt_nanostation-loco-m-xw
|
define Device/ubnt_nanostation-loco-m-xw
|
||||||
$(Device/ubnt-xw)
|
$(Device/ubnt-xw)
|
||||||
DEVICE_MODEL := Nanostation Loco M
|
DEVICE_MODEL := Nanostation Loco M
|
||||||
@ -203,6 +211,14 @@ define Device/ubnt_nanostation-m-xw
|
|||||||
endef
|
endef
|
||||||
TARGET_DEVICES += ubnt_nanostation-m-xw
|
TARGET_DEVICES += ubnt_nanostation-m-xw
|
||||||
|
|
||||||
|
define Device/ubnt_picostation-m
|
||||||
|
$(Device/ubnt-xm)
|
||||||
|
DEVICE_MODEL := Picostation M
|
||||||
|
DEVICE_PACKAGES += rssileds
|
||||||
|
SUPPORTED_DEVICES += bullet-m
|
||||||
|
endef
|
||||||
|
TARGET_DEVICES += ubnt_picostation-m
|
||||||
|
|
||||||
define Device/ubnt_rocket-m
|
define Device/ubnt_rocket-m
|
||||||
$(Device/ubnt-xm)
|
$(Device/ubnt-xm)
|
||||||
DEVICE_MODEL := Rocket-M
|
DEVICE_MODEL := Rocket-M
|
||||||
|
|||||||
@ -36,6 +36,11 @@ define Build/addpattern
|
|||||||
-mv "$@.new" "$@"
|
-mv "$@.new" "$@"
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
define Build/append-md5sum-bin
|
||||||
|
$(STAGING_DIR_HOST)/bin/mkhash md5 $@ | sed 's/../\\\\x&/g' |\
|
||||||
|
xargs echo -ne >> $@
|
||||||
|
endef
|
||||||
|
|
||||||
define Build/cybertan-trx
|
define Build/cybertan-trx
|
||||||
@echo -n '' > $@-empty.bin
|
@echo -n '' > $@-empty.bin
|
||||||
-$(STAGING_DIR_HOST)/bin/trx -o $@.new \
|
-$(STAGING_DIR_HOST)/bin/trx -o $@.new \
|
||||||
@ -73,6 +78,17 @@ define Build/pisen_wmb001n-factory
|
|||||||
rm -rf "$@.tmp"
|
rm -rf "$@.tmp"
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
define Build/teltonika-fw-fake-checksum
|
||||||
|
# Teltonika U-Boot web based firmware upgrade/recovery routine compares
|
||||||
|
# 16 bytes from md5sum1[16] field in TP-Link v1 header (offset: 76 bytes
|
||||||
|
# from begin of the firmware file) with 16 bytes stored just before
|
||||||
|
# 0xdeadc0de marker. Values are only compared, MD5 sum is not verified.
|
||||||
|
let \
|
||||||
|
offs="$$(stat -c%s $@) - 20"; \
|
||||||
|
dd if=$@ bs=1 count=16 skip=76 |\
|
||||||
|
dd of=$@ bs=1 count=16 seek=$$offs conv=notrunc
|
||||||
|
endef
|
||||||
|
|
||||||
define Device/seama
|
define Device/seama
|
||||||
KERNEL := kernel-bin | append-dtb | relocate-kernel | lzma
|
KERNEL := kernel-bin | append-dtb | relocate-kernel | lzma
|
||||||
KERNEL_INITRAMFS := $$(KERNEL) | seama
|
KERNEL_INITRAMFS := $$(KERNEL) | seama
|
||||||
@ -1046,6 +1062,7 @@ define Device/siemens_ws-ap3610
|
|||||||
DEVICE_VENDOR := Siemens
|
DEVICE_VENDOR := Siemens
|
||||||
DEVICE_MODEL := WS-AP3610
|
DEVICE_MODEL := WS-AP3610
|
||||||
IMAGE_SIZE := 14336k
|
IMAGE_SIZE := 14336k
|
||||||
|
BLOCKSIZE := 256k
|
||||||
LOADER_TYPE := bin
|
LOADER_TYPE := bin
|
||||||
LOADER_FLASH_OFFS := 0x82000
|
LOADER_FLASH_OFFS := 0x82000
|
||||||
COMPILE := loader-$(1).bin
|
COMPILE := loader-$(1).bin
|
||||||
@ -1069,6 +1086,28 @@ define Device/sitecom_wlr-7100
|
|||||||
endef
|
endef
|
||||||
TARGET_DEVICES += sitecom_wlr-7100
|
TARGET_DEVICES += sitecom_wlr-7100
|
||||||
|
|
||||||
|
define Device/teltonika_rut955
|
||||||
|
SOC := ar9344
|
||||||
|
DEVICE_VENDOR := Teltonika
|
||||||
|
DEVICE_MODEL := RUT955
|
||||||
|
DEVICE_PACKAGES := kmod-usb2 kmod-usb-acm kmod-usb-net-qmi-wwan \
|
||||||
|
kmod-usb-serial-option kmod-hwmon-mcp3021 uqmi -uboot-envtools
|
||||||
|
IMAGE_SIZE := 15552k
|
||||||
|
TPLINK_HWID := 0x35000001
|
||||||
|
TPLINK_HWREV := 0x1
|
||||||
|
TPLINK_HEADER_VERSION := 1
|
||||||
|
KERNEL := kernel-bin | append-dtb | lzma | tplink-v1-header
|
||||||
|
KERNEL_INITRAMFS := kernel-bin | append-dtb | lzma | uImage lzma
|
||||||
|
IMAGES += factory.bin
|
||||||
|
IMAGE/factory.bin := append-kernel | pad-to $$$$(BLOCKSIZE) | append-rootfs |\
|
||||||
|
pad-rootfs | teltonika-fw-fake-checksum | append-string master |\
|
||||||
|
append-md5sum-bin | check-size $$$$(IMAGE_SIZE)
|
||||||
|
IMAGE/sysupgrade.bin := append-kernel | pad-to $$$$(BLOCKSIZE) |\
|
||||||
|
append-rootfs | pad-rootfs | append-metadata |\
|
||||||
|
check-size $$$$(IMAGE_SIZE)
|
||||||
|
endef
|
||||||
|
TARGET_DEVICES += teltonika_rut955
|
||||||
|
|
||||||
define Device/trendnet_tew-823dru
|
define Device/trendnet_tew-823dru
|
||||||
SOC := qca9558
|
SOC := qca9558
|
||||||
DEVICE_VENDOR := Trendnet
|
DEVICE_VENDOR := Trendnet
|
||||||
|
|||||||
@ -66,6 +66,36 @@ define Device/tplink_tl-mr3420-v2
|
|||||||
endef
|
endef
|
||||||
TARGET_DEVICES += tplink_tl-mr3420-v2
|
TARGET_DEVICES += tplink_tl-mr3420-v2
|
||||||
|
|
||||||
|
define Device/tplink_tl-wa701nd-v1
|
||||||
|
$(Device/tplink-4m)
|
||||||
|
SOC := ar7240
|
||||||
|
DEVICE_MODEL := TL-WA701ND
|
||||||
|
DEVICE_VARIANT := v1
|
||||||
|
TPLINK_HWID := 0x07010001
|
||||||
|
SUPPORTED_DEVICES += tl-wa901nd
|
||||||
|
endef
|
||||||
|
TARGET_DEVICES += tplink_tl-wa701nd-v1
|
||||||
|
|
||||||
|
define Device/tplink_tl-wa730re-v1
|
||||||
|
$(Device/tplink-4m)
|
||||||
|
SOC := ar7240
|
||||||
|
DEVICE_MODEL := TL-WA730RE
|
||||||
|
DEVICE_VARIANT := v1
|
||||||
|
TPLINK_HWID := 0x07300001
|
||||||
|
SUPPORTED_DEVICES += tl-wa901nd
|
||||||
|
endef
|
||||||
|
TARGET_DEVICES += tplink_tl-wa730re-v1
|
||||||
|
|
||||||
|
define Device/tplink_tl-wa801nd-v1
|
||||||
|
$(Device/tplink-4m)
|
||||||
|
SOC := ar7240
|
||||||
|
DEVICE_MODEL := TL-WA801ND
|
||||||
|
DEVICE_VARIANT := v1
|
||||||
|
TPLINK_HWID := 0x08010001
|
||||||
|
SUPPORTED_DEVICES += tl-wa901nd
|
||||||
|
endef
|
||||||
|
TARGET_DEVICES += tplink_tl-wa801nd-v1
|
||||||
|
|
||||||
define Device/tplink_tl-wa830re-v1
|
define Device/tplink_tl-wa830re-v1
|
||||||
$(Device/tplink-4m)
|
$(Device/tplink-4m)
|
||||||
SOC := ar7240
|
SOC := ar7240
|
||||||
@ -95,12 +125,21 @@ define Device/tplink_tl-wa850re-v2
|
|||||||
DEVICE_VARIANT := v2
|
DEVICE_VARIANT := v2
|
||||||
TPLINK_BOARD_ID := TLWA850REV2
|
TPLINK_BOARD_ID := TLWA850REV2
|
||||||
TPLINK_HWID := 0x08500002
|
TPLINK_HWID := 0x08500002
|
||||||
TPLINK_HWREV := 0x0
|
|
||||||
DEVICE_PACKAGES := rssileds
|
DEVICE_PACKAGES := rssileds
|
||||||
SUPPORTED_DEVICES += tl-wa850re-v2
|
SUPPORTED_DEVICES += tl-wa850re-v2
|
||||||
endef
|
endef
|
||||||
TARGET_DEVICES += tplink_tl-wa850re-v2
|
TARGET_DEVICES += tplink_tl-wa850re-v2
|
||||||
|
|
||||||
|
define Device/tplink_tl-wa901nd-v1
|
||||||
|
$(Device/tplink-4m)
|
||||||
|
SOC := ar7240
|
||||||
|
DEVICE_MODEL := TL-WA901ND
|
||||||
|
DEVICE_VARIANT := v1
|
||||||
|
TPLINK_HWID := 0x09010001
|
||||||
|
SUPPORTED_DEVICES += tl-wa901nd
|
||||||
|
endef
|
||||||
|
TARGET_DEVICES += tplink_tl-wa901nd-v1
|
||||||
|
|
||||||
define Device/tplink_tl-wa901nd-v2
|
define Device/tplink_tl-wa901nd-v2
|
||||||
$(Device/tplink-4m)
|
$(Device/tplink-4m)
|
||||||
SOC := ar9132
|
SOC := ar9132
|
||||||
|
|||||||
@ -0,0 +1,271 @@
|
|||||||
|
From patchwork Fri Feb 21 21:23:31 2020
|
||||||
|
Content-Type: text/plain; charset="utf-8"
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Transfer-Encoding: 7bit
|
||||||
|
X-Patchwork-Submitter: Daniel Golle <daniel@makrotopia.org>
|
||||||
|
X-Patchwork-Id: 1198835
|
||||||
|
Date: Fri, 21 Feb 2020 22:23:31 +0100
|
||||||
|
From: Daniel Golle <daniel@makrotopia.org>
|
||||||
|
To: linux-serial@vger.kernel.org, linux-kernel@vger.kernel.org
|
||||||
|
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
|
||||||
|
Jiri Slaby <jslaby@suse.com>, Petr =?utf-8?q?=C5=A0tetiar?= <ynezz@true.cz>,
|
||||||
|
Chuanhong Guo <gch981213@gmail.com>, Piotr Dymacz <pepe2k@gmail.com>
|
||||||
|
Subject: [PATCH v2] serial: ar933x_uart: add RS485 support
|
||||||
|
Message-ID: <20200221212331.GA21467@makrotopia.org>
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Disposition: inline
|
||||||
|
Sender: linux-kernel-owner@vger.kernel.org
|
||||||
|
Precedence: bulk
|
||||||
|
List-ID: <linux-kernel.vger.kernel.org>
|
||||||
|
X-Mailing-List: linux-kernel@vger.kernel.org
|
||||||
|
|
||||||
|
Emulate half-duplex operation and use mctrl_gpio to add support for
|
||||||
|
RS485 tranceiver with transmit/receive switch hooked to RTS GPIO line.
|
||||||
|
This is needed to make use of the RS485 port found on Teltonika RUT955.
|
||||||
|
|
||||||
|
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||||
|
---
|
||||||
|
v2: use bool to indicate ongoing half-duplex send, use it afterwards
|
||||||
|
to decide whether we've just been in a send operation.
|
||||||
|
|
||||||
|
drivers/tty/serial/Kconfig | 1 +
|
||||||
|
drivers/tty/serial/ar933x_uart.c | 113 +++++++++++++++++++++++++++++--
|
||||||
|
2 files changed, 108 insertions(+), 6 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/tty/serial/Kconfig b/drivers/tty/serial/Kconfig
|
||||||
|
index 52eaac21ff9f..b675924138e0 100644
|
||||||
|
--- a/drivers/tty/serial/Kconfig
|
||||||
|
+++ b/drivers/tty/serial/Kconfig
|
||||||
|
@@ -1279,6 +1279,7 @@ config SERIAL_AR933X
|
||||||
|
tristate "AR933X serial port support"
|
||||||
|
depends on HAVE_CLK && ATH79
|
||||||
|
select SERIAL_CORE
|
||||||
|
+ select SERIAL_MCTRL_GPIO if GPIOLIB
|
||||||
|
help
|
||||||
|
If you have an Atheros AR933X SOC based board and want to use the
|
||||||
|
built-in UART of the SoC, say Y to this option.
|
||||||
|
diff --git a/drivers/tty/serial/ar933x_uart.c b/drivers/tty/serial/ar933x_uart.c
|
||||||
|
index ea12f10610b6..7e7f1398019f 100644
|
||||||
|
--- a/drivers/tty/serial/ar933x_uart.c
|
||||||
|
+++ b/drivers/tty/serial/ar933x_uart.c
|
||||||
|
@@ -13,6 +13,7 @@
|
||||||
|
#include <linux/console.h>
|
||||||
|
#include <linux/sysrq.h>
|
||||||
|
#include <linux/delay.h>
|
||||||
|
+#include <linux/gpio/consumer.h>
|
||||||
|
#include <linux/platform_device.h>
|
||||||
|
#include <linux/of.h>
|
||||||
|
#include <linux/of_platform.h>
|
||||||
|
@@ -29,6 +30,8 @@
|
||||||
|
|
||||||
|
#include <asm/mach-ath79/ar933x_uart.h>
|
||||||
|
|
||||||
|
+#include "serial_mctrl_gpio.h"
|
||||||
|
+
|
||||||
|
#define DRIVER_NAME "ar933x-uart"
|
||||||
|
|
||||||
|
#define AR933X_UART_MAX_SCALE 0xff
|
||||||
|
@@ -47,6 +50,8 @@ struct ar933x_uart_port {
|
||||||
|
unsigned int min_baud;
|
||||||
|
unsigned int max_baud;
|
||||||
|
struct clk *clk;
|
||||||
|
+ struct mctrl_gpios *gpios;
|
||||||
|
+ struct gpio_desc *rts_gpiod;
|
||||||
|
};
|
||||||
|
|
||||||
|
static inline unsigned int ar933x_uart_read(struct ar933x_uart_port *up,
|
||||||
|
@@ -100,6 +105,18 @@ static inline void ar933x_uart_stop_tx_interrupt(struct ar933x_uart_port *up)
|
||||||
|
ar933x_uart_write(up, AR933X_UART_INT_EN_REG, up->ier);
|
||||||
|
}
|
||||||
|
|
||||||
|
+static inline void ar933x_uart_start_rx_interrupt(struct ar933x_uart_port *up)
|
||||||
|
+{
|
||||||
|
+ up->ier |= AR933X_UART_INT_RX_VALID;
|
||||||
|
+ ar933x_uart_write(up, AR933X_UART_INT_EN_REG, up->ier);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static inline void ar933x_uart_stop_rx_interrupt(struct ar933x_uart_port *up)
|
||||||
|
+{
|
||||||
|
+ up->ier &= ~AR933X_UART_INT_RX_VALID;
|
||||||
|
+ ar933x_uart_write(up, AR933X_UART_INT_EN_REG, up->ier);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
static inline void ar933x_uart_putc(struct ar933x_uart_port *up, int ch)
|
||||||
|
{
|
||||||
|
unsigned int rdata;
|
||||||
|
@@ -125,11 +142,21 @@ static unsigned int ar933x_uart_tx_empty(struct uart_port *port)
|
||||||
|
|
||||||
|
static unsigned int ar933x_uart_get_mctrl(struct uart_port *port)
|
||||||
|
{
|
||||||
|
- return TIOCM_CAR;
|
||||||
|
+ struct ar933x_uart_port *up =
|
||||||
|
+ container_of(port, struct ar933x_uart_port, port);
|
||||||
|
+ int ret = TIOCM_CTS | TIOCM_DSR | TIOCM_CAR;
|
||||||
|
+
|
||||||
|
+ mctrl_gpio_get(up->gpios, &ret);
|
||||||
|
+
|
||||||
|
+ return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void ar933x_uart_set_mctrl(struct uart_port *port, unsigned int mctrl)
|
||||||
|
{
|
||||||
|
+ struct ar933x_uart_port *up =
|
||||||
|
+ container_of(port, struct ar933x_uart_port, port);
|
||||||
|
+
|
||||||
|
+ mctrl_gpio_set(up->gpios, mctrl);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void ar933x_uart_start_tx(struct uart_port *port)
|
||||||
|
@@ -140,6 +167,37 @@ static void ar933x_uart_start_tx(struct uart_port *port)
|
||||||
|
ar933x_uart_start_tx_interrupt(up);
|
||||||
|
}
|
||||||
|
|
||||||
|
+static void ar933x_uart_wait_tx_complete(struct ar933x_uart_port *up)
|
||||||
|
+{
|
||||||
|
+ unsigned int status;
|
||||||
|
+ unsigned int timeout = 60000;
|
||||||
|
+
|
||||||
|
+ /* Wait up to 60ms for the character(s) to be sent. */
|
||||||
|
+ do {
|
||||||
|
+ status = ar933x_uart_read(up, AR933X_UART_CS_REG);
|
||||||
|
+ if (--timeout == 0)
|
||||||
|
+ break;
|
||||||
|
+ udelay(1);
|
||||||
|
+ } while (status & AR933X_UART_CS_TX_BUSY);
|
||||||
|
+
|
||||||
|
+ if (timeout == 0)
|
||||||
|
+ dev_err(up->port.dev, "waiting for TX timed out\n");
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static void ar933x_uart_rx_flush(struct ar933x_uart_port *up)
|
||||||
|
+{
|
||||||
|
+ unsigned int status;
|
||||||
|
+
|
||||||
|
+ /* clear RX_VALID interrupt */
|
||||||
|
+ ar933x_uart_write(up, AR933X_UART_INT_REG, AR933X_UART_INT_RX_VALID);
|
||||||
|
+
|
||||||
|
+ /* remove characters from the RX FIFO */
|
||||||
|
+ do {
|
||||||
|
+ ar933x_uart_write(up, AR933X_UART_DATA_REG, AR933X_UART_DATA_RX_CSR);
|
||||||
|
+ status = ar933x_uart_read(up, AR933X_UART_DATA_REG);
|
||||||
|
+ } while (status & AR933X_UART_DATA_RX_CSR);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
static void ar933x_uart_stop_tx(struct uart_port *port)
|
||||||
|
{
|
||||||
|
struct ar933x_uart_port *up =
|
||||||
|
@@ -153,8 +211,7 @@ static void ar933x_uart_stop_rx(struct uart_port *port)
|
||||||
|
struct ar933x_uart_port *up =
|
||||||
|
container_of(port, struct ar933x_uart_port, port);
|
||||||
|
|
||||||
|
- up->ier &= ~AR933X_UART_INT_RX_VALID;
|
||||||
|
- ar933x_uart_write(up, AR933X_UART_INT_EN_REG, up->ier);
|
||||||
|
+ ar933x_uart_stop_rx_interrupt(up);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void ar933x_uart_break_ctl(struct uart_port *port, int break_state)
|
||||||
|
@@ -336,11 +393,20 @@ static void ar933x_uart_rx_chars(struct ar933x_uart_port *up)
|
||||||
|
static void ar933x_uart_tx_chars(struct ar933x_uart_port *up)
|
||||||
|
{
|
||||||
|
struct circ_buf *xmit = &up->port.state->xmit;
|
||||||
|
+ struct serial_rs485 *rs485conf = &up->port.rs485;
|
||||||
|
int count;
|
||||||
|
+ bool half_duplex_send = false;
|
||||||
|
|
||||||
|
if (uart_tx_stopped(&up->port))
|
||||||
|
return;
|
||||||
|
|
||||||
|
+ if ((rs485conf->flags & SER_RS485_ENABLED) &&
|
||||||
|
+ (up->port.x_char || !uart_circ_empty(xmit))) {
|
||||||
|
+ ar933x_uart_stop_rx_interrupt(up);
|
||||||
|
+ gpiod_set_value(up->rts_gpiod, !!(rs485conf->flags & SER_RS485_RTS_ON_SEND));
|
||||||
|
+ half_duplex_send = true;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
count = up->port.fifosize;
|
||||||
|
do {
|
||||||
|
unsigned int rdata;
|
||||||
|
@@ -368,8 +434,14 @@ static void ar933x_uart_tx_chars(struct ar933x_uart_port *up)
|
||||||
|
if (uart_circ_chars_pending(xmit) < WAKEUP_CHARS)
|
||||||
|
uart_write_wakeup(&up->port);
|
||||||
|
|
||||||
|
- if (!uart_circ_empty(xmit))
|
||||||
|
+ if (!uart_circ_empty(xmit)) {
|
||||||
|
ar933x_uart_start_tx_interrupt(up);
|
||||||
|
+ } else if (half_duplex_send) {
|
||||||
|
+ ar933x_uart_wait_tx_complete(up);
|
||||||
|
+ ar933x_uart_rx_flush(up);
|
||||||
|
+ ar933x_uart_start_rx_interrupt(up);
|
||||||
|
+ gpiod_set_value(up->rts_gpiod, !!(rs485conf->flags & SER_RS485_RTS_AFTER_SEND));
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
|
||||||
|
static irqreturn_t ar933x_uart_interrupt(int irq, void *dev_id)
|
||||||
|
@@ -427,8 +499,7 @@ static int ar933x_uart_startup(struct uart_port *port)
|
||||||
|
AR933X_UART_CS_TX_READY_ORIDE | AR933X_UART_CS_RX_READY_ORIDE);
|
||||||
|
|
||||||
|
/* Enable RX interrupts */
|
||||||
|
- up->ier = AR933X_UART_INT_RX_VALID;
|
||||||
|
- ar933x_uart_write(up, AR933X_UART_INT_EN_REG, up->ier);
|
||||||
|
+ ar933x_uart_start_rx_interrupt(up);
|
||||||
|
|
||||||
|
spin_unlock_irqrestore(&up->port.lock, flags);
|
||||||
|
|
||||||
|
@@ -511,6 +582,21 @@ static const struct uart_ops ar933x_uart_ops = {
|
||||||
|
.verify_port = ar933x_uart_verify_port,
|
||||||
|
};
|
||||||
|
|
||||||
|
+static int ar933x_config_rs485(struct uart_port *port,
|
||||||
|
+ struct serial_rs485 *rs485conf)
|
||||||
|
+{
|
||||||
|
+ struct ar933x_uart_port *up =
|
||||||
|
+ container_of(port, struct ar933x_uart_port, port);
|
||||||
|
+
|
||||||
|
+ if ((rs485conf->flags & SER_RS485_ENABLED) &&
|
||||||
|
+ !up->rts_gpiod) {
|
||||||
|
+ dev_err(port->dev, "RS485 needs rts-gpio\n");
|
||||||
|
+ return 1;
|
||||||
|
+ }
|
||||||
|
+ port->rs485 = *rs485conf;
|
||||||
|
+ return 0;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
#ifdef CONFIG_SERIAL_AR933X_CONSOLE
|
||||||
|
static struct ar933x_uart_port *
|
||||||
|
ar933x_console_ports[CONFIG_SERIAL_AR933X_NR_UARTS];
|
||||||
|
@@ -680,6 +766,8 @@ static int ar933x_uart_probe(struct platform_device *pdev)
|
||||||
|
goto err_disable_clk;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ uart_get_rs485_mode(&pdev->dev, &port->rs485);
|
||||||
|
+
|
||||||
|
port->mapbase = mem_res->start;
|
||||||
|
port->line = id;
|
||||||
|
port->irq = irq_res->start;
|
||||||
|
@@ -690,6 +778,7 @@ static int ar933x_uart_probe(struct platform_device *pdev)
|
||||||
|
port->regshift = 2;
|
||||||
|
port->fifosize = AR933X_UART_FIFO_SIZE;
|
||||||
|
port->ops = &ar933x_uart_ops;
|
||||||
|
+ port->rs485_config = ar933x_config_rs485;
|
||||||
|
|
||||||
|
baud = ar933x_uart_get_baud(port->uartclk, AR933X_UART_MAX_SCALE, 1);
|
||||||
|
up->min_baud = max_t(unsigned int, baud, AR933X_UART_MIN_BAUD);
|
||||||
|
@@ -697,6 +786,18 @@ static int ar933x_uart_probe(struct platform_device *pdev)
|
||||||
|
baud = ar933x_uart_get_baud(port->uartclk, 0, AR933X_UART_MAX_STEP);
|
||||||
|
up->max_baud = min_t(unsigned int, baud, AR933X_UART_MAX_BAUD);
|
||||||
|
|
||||||
|
+ up->gpios = mctrl_gpio_init(port, 0);
|
||||||
|
+ if (IS_ERR(up->gpios) && PTR_ERR(up->gpios) != -ENOSYS)
|
||||||
|
+ return PTR_ERR(up->gpios);
|
||||||
|
+
|
||||||
|
+ up->rts_gpiod = mctrl_gpio_to_gpiod(up->gpios, UART_GPIO_RTS);
|
||||||
|
+
|
||||||
|
+ if ((port->rs485.flags & SER_RS485_ENABLED) &&
|
||||||
|
+ !up->rts_gpiod) {
|
||||||
|
+ dev_err(&pdev->dev, "lacking rts-gpio, disabling RS485\n");
|
||||||
|
+ port->rs485.flags &= ~SER_RS485_ENABLED;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
#ifdef CONFIG_SERIAL_AR933X_CONSOLE
|
||||||
|
ar933x_console_ports[up->port.line] = up;
|
||||||
|
#endif
|
||||||
@ -42,7 +42,11 @@ on,n150r)
|
|||||||
;;
|
;;
|
||||||
tplink,tl-mr3020-v1|\
|
tplink,tl-mr3020-v1|\
|
||||||
tplink,tl-mr3040-v2|\
|
tplink,tl-mr3040-v2|\
|
||||||
tplink,tl-wa830re-v1)
|
tplink,tl-wa701nd-v1|\
|
||||||
|
tplink,tl-wa730re-v1|\
|
||||||
|
tplink,tl-wa801nd-v1|\
|
||||||
|
tplink,tl-wa830re-v1|\
|
||||||
|
tplink,tl-wa901nd-v1)
|
||||||
ucidef_set_led_netdev "lan" "LAN" "tp-link:green:lan" "eth0"
|
ucidef_set_led_netdev "lan" "LAN" "tp-link:green:lan" "eth0"
|
||||||
;;
|
;;
|
||||||
tplink,tl-mr3420-v2|\
|
tplink,tl-mr3420-v2|\
|
||||||
|
|||||||
@ -32,9 +32,13 @@ ath79_setup_interfaces()
|
|||||||
tplink,tl-mr10u|\
|
tplink,tl-mr10u|\
|
||||||
tplink,tl-mr3020-v1|\
|
tplink,tl-mr3020-v1|\
|
||||||
tplink,tl-mr3040-v2|\
|
tplink,tl-mr3040-v2|\
|
||||||
|
tplink,tl-wa701nd-v1|\
|
||||||
|
tplink,tl-wa730re-v1|\
|
||||||
|
tplink,tl-wa801nd-v1|\
|
||||||
tplink,tl-wa830re-v1|\
|
tplink,tl-wa830re-v1|\
|
||||||
tplink,tl-wa850re-v1|\
|
tplink,tl-wa850re-v1|\
|
||||||
tplink,tl-wa850re-v2|\
|
tplink,tl-wa850re-v2|\
|
||||||
|
tplink,tl-wa901nd-v1|\
|
||||||
tplink,tl-wa901nd-v2|\
|
tplink,tl-wa901nd-v2|\
|
||||||
tplink,tl-wr703n)
|
tplink,tl-wr703n)
|
||||||
ucidef_set_interface_lan "eth0"
|
ucidef_set_interface_lan "eth0"
|
||||||
|
|||||||
@ -10,7 +10,11 @@ case "$FIRMWARE" in
|
|||||||
"ath9k-eeprom-pci-0000:00:00.0.bin")
|
"ath9k-eeprom-pci-0000:00:00.0.bin")
|
||||||
case $board in
|
case $board in
|
||||||
buffalo,whr-g301n|\
|
buffalo,whr-g301n|\
|
||||||
|
tplink,tl-wa701nd-v1|\
|
||||||
|
tplink,tl-wa730re-v1|\
|
||||||
|
tplink,tl-wa801nd-v1|\
|
||||||
tplink,tl-wa830re-v1|\
|
tplink,tl-wa830re-v1|\
|
||||||
|
tplink,tl-wa901nd-v1|\
|
||||||
tplink,tl-wr841-v5|\
|
tplink,tl-wr841-v5|\
|
||||||
tplink,tl-wr941-v4)
|
tplink,tl-wr941-v4)
|
||||||
caldata_extract "art" 0x1000 0xeb8
|
caldata_extract "art" 0x1000 0xeb8
|
||||||
|
|||||||
@ -76,7 +76,6 @@ CONFIG_CSRC_R4K=y
|
|||||||
CONFIG_DMA_NONCOHERENT=y
|
CONFIG_DMA_NONCOHERENT=y
|
||||||
CONFIG_DTC=y
|
CONFIG_DTC=y
|
||||||
CONFIG_EARLY_PRINTK=y
|
CONFIG_EARLY_PRINTK=y
|
||||||
CONFIG_FIRMWARE_IN_KERNEL=y
|
|
||||||
CONFIG_FIXED_PHY=y
|
CONFIG_FIXED_PHY=y
|
||||||
CONFIG_GENERIC_ATOMIC64=y
|
CONFIG_GENERIC_ATOMIC64=y
|
||||||
CONFIG_GENERIC_CLOCKEVENTS=y
|
CONFIG_GENERIC_CLOCKEVENTS=y
|
||||||
@ -197,15 +196,12 @@ CONFIG_NO_GENERIC_PCI_IOPORT_MAP=y
|
|||||||
# CONFIG_NO_IOPORT_MAP is not set
|
# CONFIG_NO_IOPORT_MAP is not set
|
||||||
CONFIG_OF=y
|
CONFIG_OF=y
|
||||||
CONFIG_OF_ADDRESS=y
|
CONFIG_OF_ADDRESS=y
|
||||||
CONFIG_OF_ADDRESS_PCI=y
|
|
||||||
CONFIG_OF_EARLY_FLATTREE=y
|
CONFIG_OF_EARLY_FLATTREE=y
|
||||||
CONFIG_OF_FLATTREE=y
|
CONFIG_OF_FLATTREE=y
|
||||||
CONFIG_OF_GPIO=y
|
CONFIG_OF_GPIO=y
|
||||||
CONFIG_OF_IRQ=y
|
CONFIG_OF_IRQ=y
|
||||||
CONFIG_OF_MDIO=y
|
CONFIG_OF_MDIO=y
|
||||||
CONFIG_OF_NET=y
|
CONFIG_OF_NET=y
|
||||||
CONFIG_OF_PCI=y
|
|
||||||
CONFIG_OF_PCI_IRQ=y
|
|
||||||
CONFIG_PCI=y
|
CONFIG_PCI=y
|
||||||
# CONFIG_PCIEAER is not set
|
# CONFIG_PCIEAER is not set
|
||||||
CONFIG_PCIEPORTBUS=y
|
CONFIG_PCIEPORTBUS=y
|
||||||
|
|||||||
@ -594,6 +594,7 @@ CONFIG_BLOCK=y
|
|||||||
# CONFIG_BONDING is not set
|
# CONFIG_BONDING is not set
|
||||||
# CONFIG_BOOKE_WDT is not set
|
# CONFIG_BOOKE_WDT is not set
|
||||||
CONFIG_BOOKE_WDT_DEFAULT_TIMEOUT=3
|
CONFIG_BOOKE_WDT_DEFAULT_TIMEOUT=3
|
||||||
|
# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
|
||||||
# CONFIG_BOOT_PRINTK_DELAY is not set
|
# CONFIG_BOOT_PRINTK_DELAY is not set
|
||||||
CONFIG_BOOT_RAW=y
|
CONFIG_BOOT_RAW=y
|
||||||
CONFIG_BPF=y
|
CONFIG_BPF=y
|
||||||
@ -1073,6 +1074,9 @@ CONFIG_DEBUG_KERNEL=y
|
|||||||
# CONFIG_DEBUG_UART_BCM63XX is not set
|
# CONFIG_DEBUG_UART_BCM63XX is not set
|
||||||
# CONFIG_DEBUG_VIRTUAL is not set
|
# CONFIG_DEBUG_VIRTUAL is not set
|
||||||
# CONFIG_DEBUG_VM is not set
|
# CONFIG_DEBUG_VM is not set
|
||||||
|
# CONFIG_DEBUG_VM_PGFLAGS is not set
|
||||||
|
# CONFIG_DEBUG_VM_RB is not set
|
||||||
|
# CONFIG_DEBUG_VM_VMACACHE is not set
|
||||||
# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set
|
# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set
|
||||||
# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set
|
# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set
|
||||||
# CONFIG_DEBUG_WX is not set
|
# CONFIG_DEBUG_WX is not set
|
||||||
@ -1081,6 +1085,7 @@ CONFIG_DEBUG_KERNEL=y
|
|||||||
CONFIG_DEFAULT_CUBIC=y
|
CONFIG_DEFAULT_CUBIC=y
|
||||||
CONFIG_DEFAULT_DEADLINE=y
|
CONFIG_DEFAULT_DEADLINE=y
|
||||||
CONFIG_DEFAULT_HOSTNAME="(none)"
|
CONFIG_DEFAULT_HOSTNAME="(none)"
|
||||||
|
CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
|
||||||
CONFIG_DEFAULT_IOSCHED="deadline"
|
CONFIG_DEFAULT_IOSCHED="deadline"
|
||||||
CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
|
CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
|
||||||
# CONFIG_DEFAULT_NOOP is not set
|
# CONFIG_DEFAULT_NOOP is not set
|
||||||
@ -1516,6 +1521,10 @@ CONFIG_GACT_PROB=y
|
|||||||
# CONFIG_GAMEPORT is not set
|
# CONFIG_GAMEPORT is not set
|
||||||
# CONFIG_GATEWORKS_GW16083 is not set
|
# CONFIG_GATEWORKS_GW16083 is not set
|
||||||
# CONFIG_GCC_PLUGINS is not set
|
# CONFIG_GCC_PLUGINS is not set
|
||||||
|
# CONFIG_GCC_PLUGIN_CYC_COMPLEXITY is not set
|
||||||
|
# CONFIG_GCC_PLUGIN_LATENT_ENTROPY is not set
|
||||||
|
# CONFIG_GCC_PLUGIN_RANDSTRUCT is not set
|
||||||
|
# CONFIG_GCC_PLUGIN_STRUCTLEAK is not set
|
||||||
# CONFIG_GCOV is not set
|
# CONFIG_GCOV is not set
|
||||||
# CONFIG_GCOV_KERNEL is not set
|
# CONFIG_GCOV_KERNEL is not set
|
||||||
# CONFIG_GDB_SCRIPTS is not set
|
# CONFIG_GDB_SCRIPTS is not set
|
||||||
@ -4923,6 +4932,7 @@ CONFIG_TCP_CONG_CUBIC=y
|
|||||||
# CONFIG_TEST_FIRMWARE is not set
|
# CONFIG_TEST_FIRMWARE is not set
|
||||||
# CONFIG_TEST_HASH is not set
|
# CONFIG_TEST_HASH is not set
|
||||||
# CONFIG_TEST_HEXDUMP is not set
|
# CONFIG_TEST_HEXDUMP is not set
|
||||||
|
# CONFIG_TEST_KASAN is not set
|
||||||
# CONFIG_TEST_KMOD is not set
|
# CONFIG_TEST_KMOD is not set
|
||||||
# CONFIG_TEST_KSTRTOX is not set
|
# CONFIG_TEST_KSTRTOX is not set
|
||||||
# CONFIG_TEST_LIST_SORT is not set
|
# CONFIG_TEST_LIST_SORT is not set
|
||||||
|
|||||||
@ -617,6 +617,7 @@ CONFIG_BLOCK=y
|
|||||||
# CONFIG_BONDING is not set
|
# CONFIG_BONDING is not set
|
||||||
# CONFIG_BOOKE_WDT is not set
|
# CONFIG_BOOKE_WDT is not set
|
||||||
CONFIG_BOOKE_WDT_DEFAULT_TIMEOUT=3
|
CONFIG_BOOKE_WDT_DEFAULT_TIMEOUT=3
|
||||||
|
# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
|
||||||
# CONFIG_BOOT_PRINTK_DELAY is not set
|
# CONFIG_BOOT_PRINTK_DELAY is not set
|
||||||
CONFIG_BOOT_RAW=y
|
CONFIG_BOOT_RAW=y
|
||||||
CONFIG_BPF=y
|
CONFIG_BPF=y
|
||||||
@ -1131,6 +1132,9 @@ CONFIG_DEBUG_KERNEL=y
|
|||||||
# CONFIG_DEBUG_UART_BCM63XX is not set
|
# CONFIG_DEBUG_UART_BCM63XX is not set
|
||||||
# CONFIG_DEBUG_VIRTUAL is not set
|
# CONFIG_DEBUG_VIRTUAL is not set
|
||||||
# CONFIG_DEBUG_VM is not set
|
# CONFIG_DEBUG_VM is not set
|
||||||
|
# CONFIG_DEBUG_VM_PGFLAGS is not set
|
||||||
|
# CONFIG_DEBUG_VM_RB is not set
|
||||||
|
# CONFIG_DEBUG_VM_VMACACHE is not set
|
||||||
# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set
|
# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set
|
||||||
# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set
|
# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set
|
||||||
# CONFIG_DEBUG_WX is not set
|
# CONFIG_DEBUG_WX is not set
|
||||||
@ -1139,6 +1143,7 @@ CONFIG_DEBUG_KERNEL=y
|
|||||||
CONFIG_DEFAULT_CUBIC=y
|
CONFIG_DEFAULT_CUBIC=y
|
||||||
CONFIG_DEFAULT_DEADLINE=y
|
CONFIG_DEFAULT_DEADLINE=y
|
||||||
CONFIG_DEFAULT_HOSTNAME="(none)"
|
CONFIG_DEFAULT_HOSTNAME="(none)"
|
||||||
|
CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
|
||||||
CONFIG_DEFAULT_IOSCHED="deadline"
|
CONFIG_DEFAULT_IOSCHED="deadline"
|
||||||
CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
|
CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
|
||||||
# CONFIG_DEFAULT_NOOP is not set
|
# CONFIG_DEFAULT_NOOP is not set
|
||||||
@ -1549,7 +1554,6 @@ CONFIG_FILE_LOCKING=y
|
|||||||
# CONFIG_FIREWIRE_NOSY is not set
|
# CONFIG_FIREWIRE_NOSY is not set
|
||||||
# CONFIG_FIREWIRE_SERIAL is not set
|
# CONFIG_FIREWIRE_SERIAL is not set
|
||||||
# CONFIG_FIRMWARE_EDID is not set
|
# CONFIG_FIRMWARE_EDID is not set
|
||||||
# CONFIG_FIRMWARE_IN_KERNEL is not set
|
|
||||||
# CONFIG_FIRMWARE_MEMMAP is not set
|
# CONFIG_FIRMWARE_MEMMAP is not set
|
||||||
# CONFIG_FIXED_PHY is not set
|
# CONFIG_FIXED_PHY is not set
|
||||||
CONFIG_FLATMEM=y
|
CONFIG_FLATMEM=y
|
||||||
@ -1605,6 +1609,8 @@ CONFIG_GACT_PROB=y
|
|||||||
# CONFIG_GAMEPORT is not set
|
# CONFIG_GAMEPORT is not set
|
||||||
# CONFIG_GATEWORKS_GW16083 is not set
|
# CONFIG_GATEWORKS_GW16083 is not set
|
||||||
# CONFIG_GCC_PLUGINS is not set
|
# CONFIG_GCC_PLUGINS is not set
|
||||||
|
# CONFIG_GCC_PLUGIN_CYC_COMPLEXITY is not set
|
||||||
|
# CONFIG_GCC_PLUGIN_LATENT_ENTROPY is not set
|
||||||
# CONFIG_GCOV is not set
|
# CONFIG_GCOV is not set
|
||||||
# CONFIG_GCOV_KERNEL is not set
|
# CONFIG_GCOV_KERNEL is not set
|
||||||
# CONFIG_GDB_SCRIPTS is not set
|
# CONFIG_GDB_SCRIPTS is not set
|
||||||
@ -5185,6 +5191,7 @@ CONFIG_TCP_CONG_CUBIC=y
|
|||||||
# CONFIG_TEST_HASH is not set
|
# CONFIG_TEST_HASH is not set
|
||||||
# CONFIG_TEST_HEXDUMP is not set
|
# CONFIG_TEST_HEXDUMP is not set
|
||||||
# CONFIG_TEST_IDA is not set
|
# CONFIG_TEST_IDA is not set
|
||||||
|
# CONFIG_TEST_KASAN is not set
|
||||||
# CONFIG_TEST_KMOD is not set
|
# CONFIG_TEST_KMOD is not set
|
||||||
# CONFIG_TEST_KSTRTOX is not set
|
# CONFIG_TEST_KSTRTOX is not set
|
||||||
# CONFIG_TEST_LIST_SORT is not set
|
# CONFIG_TEST_LIST_SORT is not set
|
||||||
@ -5197,6 +5204,7 @@ CONFIG_TCP_CONG_CUBIC=y
|
|||||||
# CONFIG_TEST_STATIC_KEYS is not set
|
# CONFIG_TEST_STATIC_KEYS is not set
|
||||||
# CONFIG_TEST_STRING_HELPERS is not set
|
# CONFIG_TEST_STRING_HELPERS is not set
|
||||||
# CONFIG_TEST_SYSCTL is not set
|
# CONFIG_TEST_SYSCTL is not set
|
||||||
|
# CONFIG_TEST_UBSAN is not set
|
||||||
# CONFIG_TEST_UDELAY is not set
|
# CONFIG_TEST_UDELAY is not set
|
||||||
# CONFIG_TEST_USER_COPY is not set
|
# CONFIG_TEST_USER_COPY is not set
|
||||||
# CONFIG_TEST_UUID is not set
|
# CONFIG_TEST_UUID is not set
|
||||||
|
|||||||
@ -87,8 +87,8 @@ Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
|
|||||||
};
|
};
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
+ XT_CONNMARK_VALUE = BIT(0),
|
+ XT_CONNMARK_VALUE = (1 << 0),
|
||||||
+ XT_CONNMARK_DSCP = BIT(1)
|
+ XT_CONNMARK_DSCP = (1 << 1)
|
||||||
+};
|
+};
|
||||||
+
|
+
|
||||||
+enum {
|
+enum {
|
||||||
|
|||||||
@ -8,22 +8,17 @@ Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
|
|||||||
drivers/mtd/spi-nor/spi-nor.c | 5 +++++
|
drivers/mtd/spi-nor/spi-nor.c | 5 +++++
|
||||||
1 file changed, 5 insertions(+)
|
1 file changed, 5 insertions(+)
|
||||||
|
|
||||||
diff --git a/drivers/mtd/spi-nor/spi-nor.c b/drivers/mtd/spi-nor/spi-nor.c
|
|
||||||
index f4afe123e9dc..a34fa42d47a2 100644
|
|
||||||
--- 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
|
||||||
@@ -2346,6 +2346,11 @@ static const struct flash_info spi_nor_ids[] = {
|
@@ -976,6 +976,11 @@ static const struct flash_info spi_nor_i
|
||||||
{ "mb85rs1mt", INFO(0x047f27, 0, 128 * 1024, 1, SPI_NOR_NO_ERASE) },
|
|
||||||
|
|
||||||
/* GigaDevice */
|
/* GigaDevice */
|
||||||
+ {
|
{
|
||||||
+ "gd25d05", INFO(0xc84010, 0, 64 * 1024, 1,
|
+ "gd25d05", INFO(0xc84010, 0, 64 * 1024, 1,
|
||||||
+ SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ |
|
+ SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ |
|
||||||
+ SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB)
|
+ SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB)
|
||||||
+ },
|
+ },
|
||||||
{
|
+ {
|
||||||
"gd25q16", INFO(0xc84015, 0, 64 * 1024, 32,
|
"gd25q16", INFO(0xc84015, 0, 64 * 1024, 32,
|
||||||
SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ |
|
SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ |
|
||||||
--
|
SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB)
|
||||||
2.17.1
|
|
||||||
|
|
||||||
|
|||||||
@ -8,22 +8,17 @@ Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
|
|||||||
drivers/mtd/spi-nor/spi-nor.c | 5 +++++
|
drivers/mtd/spi-nor/spi-nor.c | 5 +++++
|
||||||
1 file changed, 5 insertions(+)
|
1 file changed, 5 insertions(+)
|
||||||
|
|
||||||
diff --git a/drivers/mtd/spi-nor/spi-nor.c b/drivers/mtd/spi-nor/spi-nor.c
|
|
||||||
index f4afe123e9dc..a34fa42d47a2 100644
|
|
||||||
--- 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
|
||||||
@@ -2346,6 +2346,11 @@ static const struct flash_info spi_nor_ids[] = {
|
@@ -1017,6 +1017,11 @@ static const struct flash_info spi_nor_i
|
||||||
{ "mb85rs1mt", INFO(0x047f27, 0, 128 * 1024, 1, SPI_NOR_NO_ERASE) },
|
|
||||||
|
|
||||||
/* GigaDevice */
|
/* GigaDevice */
|
||||||
+ {
|
{
|
||||||
+ "gd25d05", INFO(0xc84010, 0, 64 * 1024, 1,
|
+ "gd25d05", INFO(0xc84010, 0, 64 * 1024, 1,
|
||||||
+ SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ |
|
+ SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ |
|
||||||
+ SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB)
|
+ SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB)
|
||||||
+ },
|
+ },
|
||||||
{
|
+ {
|
||||||
"gd25q16", INFO(0xc84015, 0, 64 * 1024, 32,
|
"gd25q16", INFO(0xc84015, 0, 64 * 1024, 32,
|
||||||
SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ |
|
SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ |
|
||||||
--
|
SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB)
|
||||||
2.17.1
|
|
||||||
|
|
||||||
|
|||||||
@ -1,29 +0,0 @@
|
|||||||
From d68b4aa22e8c625685bfad642dd7337948dc0ad1 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Koen Vandeputte <koen.vandeputte@ncentric.com>
|
|
||||||
Date: Mon, 6 Jan 2020 13:07:56 +0100
|
|
||||||
Subject: [PATCH] mtd: spi-nor: add support for Gigadevice GD25D05
|
|
||||||
|
|
||||||
Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
|
|
||||||
---
|
|
||||||
drivers/mtd/spi-nor/spi-nor.c | 5 +++++
|
|
||||||
1 file changed, 5 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/drivers/mtd/spi-nor/spi-nor.c b/drivers/mtd/spi-nor/spi-nor.c
|
|
||||||
index f4afe123e9dc..a34fa42d47a2 100644
|
|
||||||
--- a/drivers/mtd/spi-nor/spi-nor.c
|
|
||||||
+++ b/drivers/mtd/spi-nor/spi-nor.c
|
|
||||||
@@ -2346,6 +2346,11 @@ static const struct flash_info spi_nor_ids[] = {
|
|
||||||
{ "mb85rs1mt", INFO(0x047f27, 0, 128 * 1024, 1, SPI_NOR_NO_ERASE) },
|
|
||||||
|
|
||||||
/* GigaDevice */
|
|
||||||
+ {
|
|
||||||
+ "gd25d05", INFO(0xc84010, 0, 64 * 1024, 1,
|
|
||||||
+ SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ |
|
|
||||||
+ SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB)
|
|
||||||
+ },
|
|
||||||
{
|
|
||||||
"gd25q16", INFO(0xc84015, 0, 64 * 1024, 32,
|
|
||||||
SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ |
|
|
||||||
--
|
|
||||||
2.17.1
|
|
||||||
|
|
||||||
@ -10,41 +10,18 @@ board_config_update
|
|||||||
board=$(board_name)
|
board=$(board_name)
|
||||||
|
|
||||||
case "$board" in
|
case "$board" in
|
||||||
"cloudengines,pogoe02")
|
|
||||||
ucidef_set_led_default "health" "health" "pogo_e02:green:health" "1"
|
|
||||||
ucidef_set_led_default "fault" "fault" "pogo_e02:orange:fault" "1"
|
|
||||||
;;
|
|
||||||
"iom,ix2-200")
|
"iom,ix2-200")
|
||||||
ucidef_set_led_timer "health" "health" "status:white:rebuild_led" "200" "800"
|
ucidef_set_led_timer "health" "health" "status:white:rebuild_led" "200" "800"
|
||||||
;;
|
;;
|
||||||
"linksys,audi")
|
|
||||||
ucidef_set_led_default "power" "power" "audi:green:power" "1"
|
|
||||||
;;
|
|
||||||
"linksys,viper")
|
"linksys,viper")
|
||||||
ucidef_set_led_default "health" "health" "viper:white:health" "1"
|
|
||||||
ucidef_set_led_default "pulse" "pulse" "viper:white:pulse" "1"
|
ucidef_set_led_default "pulse" "pulse" "viper:white:pulse" "1"
|
||||||
;;
|
;;
|
||||||
"raidsonic,ib-nas62x0")
|
|
||||||
ucidef_set_led_default "health" "health" "ib62x0:green:os" "1"
|
|
||||||
ucidef_set_led_default "fault" "fault" "ib62x0:red:os" "1"
|
|
||||||
;;
|
|
||||||
"seagate,dockstar")
|
|
||||||
ucidef_set_led_default "health" "health" "status:green:health" "1"
|
|
||||||
ucidef_set_led_default "fault" "fault" "status:orange:fault" "1"
|
|
||||||
;;
|
|
||||||
"seagate,goflexhome"|\
|
|
||||||
"seagate,goflexnet")
|
|
||||||
ucidef_set_led_default "health" "health" "status:green:health" "1"
|
|
||||||
ucidef_set_led_default "fault" "fault" "status:orange:fault" "0"
|
|
||||||
;;
|
|
||||||
"zyxel,nsa310b")
|
"zyxel,nsa310b")
|
||||||
ucidef_set_led_default "health" "health" "nsa310:green:sys" "1"
|
|
||||||
ucidef_set_led_usbhost "usb" "USB" "nsa310:green:usb"
|
ucidef_set_led_usbhost "usb" "USB" "nsa310:green:usb"
|
||||||
ucidef_set_led_ataport "hdd" "HDD" "nsa310:green:hdd" "1"
|
ucidef_set_led_ataport "hdd" "HDD" "nsa310:green:hdd" "1"
|
||||||
ucidef_set_led_ataport "esata" "eSata" "nsa310:green:esata" "2"
|
ucidef_set_led_ataport "esata" "eSata" "nsa310:green:esata" "2"
|
||||||
;;
|
;;
|
||||||
"zyxel,nsa325")
|
"zyxel,nsa325")
|
||||||
ucidef_set_led_default "health" "health" "nsa325:green:sys" "1"
|
|
||||||
ucidef_set_led_usbhost "usb" "USB" "nsa325:green:usb"
|
ucidef_set_led_usbhost "usb" "USB" "nsa325:green:usb"
|
||||||
ucidef_set_led_ataport "hdd1" "HDD1" "nsa325:green:hdd1" "1"
|
ucidef_set_led_ataport "hdd1" "HDD1" "nsa325:green:hdd1" "1"
|
||||||
ucidef_set_led_ataport "hdd2" "HDD2" "nsa325:green:hdd2" "2"
|
ucidef_set_led_ataport "hdd2" "HDD2" "nsa325:green:hdd2" "2"
|
||||||
|
|||||||
@ -1,55 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
# Copyright (C) 2014 OpenWrt.org
|
|
||||||
|
|
||||||
. /lib/functions.sh
|
|
||||||
. /lib/functions/leds.sh
|
|
||||||
|
|
||||||
get_status_led() {
|
|
||||||
case $(board_name) in
|
|
||||||
cisco,on100)
|
|
||||||
status_led="on100:green:health"
|
|
||||||
;;
|
|
||||||
cloudengines,pogoe02)
|
|
||||||
status_led="pogo_e02:orange:fault"
|
|
||||||
;;
|
|
||||||
cloudengines,pogoplugv4)
|
|
||||||
status_led="pogoplugv4:green:health"
|
|
||||||
;;
|
|
||||||
iom,ix2-200)
|
|
||||||
status_led="status:white:power_led"
|
|
||||||
;;
|
|
||||||
linksys,audi)
|
|
||||||
status_led="audi:green:power"
|
|
||||||
;;
|
|
||||||
linksys,viper)
|
|
||||||
status_led="viper:white:health"
|
|
||||||
;;
|
|
||||||
seagate,dockstar|\
|
|
||||||
seagate,goflexhome|\
|
|
||||||
seagate,goflexnet)
|
|
||||||
status_led="status:orange:fault"
|
|
||||||
;;
|
|
||||||
zyxel,nsa310b)
|
|
||||||
status_led="nsa310:green:sys"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
set_state() {
|
|
||||||
get_status_led
|
|
||||||
|
|
||||||
case "$1" in
|
|
||||||
preinit)
|
|
||||||
status_led_blink_preinit
|
|
||||||
;;
|
|
||||||
failsafe)
|
|
||||||
status_led_blink_failsafe
|
|
||||||
;;
|
|
||||||
preinit_regular)
|
|
||||||
status_led_blink_preinit_regular
|
|
||||||
;;
|
|
||||||
done)
|
|
||||||
status_led_on
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
@ -1,15 +1,38 @@
|
|||||||
--- a/arch/arm/boot/dts/kirkwood-ib62x0.dts
|
--- a/arch/arm/boot/dts/kirkwood-ib62x0.dts
|
||||||
+++ b/arch/arm/boot/dts/kirkwood-ib62x0.dts
|
+++ b/arch/arm/boot/dts/kirkwood-ib62x0.dts
|
||||||
@@ -6,7 +6,7 @@
|
@@ -6,7 +6,14 @@
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
model = "RaidSonic ICY BOX IB-NAS62x0 (Rev B)";
|
model = "RaidSonic ICY BOX IB-NAS62x0 (Rev B)";
|
||||||
- compatible = "raidsonic,ib-nas6210-b", "raidsonic,ib-nas6220-b", "raidsonic,ib-nas6210", "raidsonic,ib-nas6220", "raidsonic,ib-nas62x0", "marvell,kirkwood-88f6281", "marvell,kirkwood";
|
- compatible = "raidsonic,ib-nas6210-b", "raidsonic,ib-nas6220-b", "raidsonic,ib-nas6210", "raidsonic,ib-nas6220", "raidsonic,ib-nas62x0", "marvell,kirkwood-88f6281", "marvell,kirkwood";
|
||||||
+ compatible = "raidsonic,ib-nas62x0", "marvell,kirkwood-88f6281", "marvell,kirkwood";
|
+ compatible = "raidsonic,ib-nas62x0", "marvell,kirkwood-88f6281", "marvell,kirkwood";
|
||||||
|
+
|
||||||
|
+ aliases {
|
||||||
|
+ led-boot = &led_green_os;
|
||||||
|
+ led-failsafe = &led_red_os;
|
||||||
|
+ led-running = &led_green_os;
|
||||||
|
+ led-upgrade = &led_red_os;
|
||||||
|
+ };
|
||||||
|
|
||||||
memory {
|
memory {
|
||||||
device_type = "memory";
|
device_type = "memory";
|
||||||
@@ -118,13 +118,13 @@
|
@@ -81,12 +88,12 @@
|
||||||
|
&pmx_led_usb_transfer>;
|
||||||
|
pinctrl-names = "default";
|
||||||
|
|
||||||
|
- green-os {
|
||||||
|
+ led_green_os: green-os {
|
||||||
|
label = "ib62x0:green:os";
|
||||||
|
gpios = <&gpio0 25 GPIO_ACTIVE_HIGH>;
|
||||||
|
- default-state = "keep";
|
||||||
|
+ default-state = "on";
|
||||||
|
};
|
||||||
|
- red-os {
|
||||||
|
+ led_red_os: red-os {
|
||||||
|
label = "ib62x0:red:os";
|
||||||
|
gpios = <&gpio0 22 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
@@ -118,13 +125,13 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
partition@100000 {
|
partition@100000 {
|
||||||
|
|||||||
@ -1,6 +1,20 @@
|
|||||||
--- a/arch/arm/boot/dts/kirkwood-iconnect.dts
|
--- a/arch/arm/boot/dts/kirkwood-iconnect.dts
|
||||||
+++ b/arch/arm/boot/dts/kirkwood-iconnect.dts
|
+++ b/arch/arm/boot/dts/kirkwood-iconnect.dts
|
||||||
@@ -16,8 +16,6 @@
|
@@ -8,6 +8,13 @@
|
||||||
|
model = "Iomega Iconnect";
|
||||||
|
compatible = "iom,iconnect-1.1", "iom,iconnect", "marvell,kirkwood-88f6281", "marvell,kirkwood";
|
||||||
|
|
||||||
|
+ aliases {
|
||||||
|
+ led-boot = &led_power_blue;
|
||||||
|
+ led-failsafe = &led_power_red;
|
||||||
|
+ led-running = &led_power_blue;
|
||||||
|
+ led-upgrade = &led_power_red;
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
memory {
|
||||||
|
device_type = "memory";
|
||||||
|
reg = <0x00000000 0x10000000>;
|
||||||
|
@@ -16,8 +23,6 @@
|
||||||
chosen {
|
chosen {
|
||||||
bootargs = "console=ttyS0,115200n8 earlyprintk";
|
bootargs = "console=ttyS0,115200n8 earlyprintk";
|
||||||
stdout-path = &uart0;
|
stdout-path = &uart0;
|
||||||
@ -9,7 +23,23 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
ocp@f1000000 {
|
ocp@f1000000 {
|
||||||
@@ -146,28 +144,23 @@
|
@@ -89,12 +94,12 @@
|
||||||
|
gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
|
||||||
|
default-state = "on";
|
||||||
|
};
|
||||||
|
- power-blue {
|
||||||
|
+ led_power_blue: power-blue {
|
||||||
|
label = "power:blue";
|
||||||
|
gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>;
|
||||||
|
- default-state = "keep";
|
||||||
|
+ default-state = "on";
|
||||||
|
};
|
||||||
|
- power-red {
|
||||||
|
+ led_power_red: power-red {
|
||||||
|
label = "power:red";
|
||||||
|
gpios = <&gpio1 11 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
@@ -146,28 +151,23 @@
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
|
||||||
partition@0 {
|
partition@0 {
|
||||||
|
|||||||
@ -1,6 +1,36 @@
|
|||||||
--- a/arch/arm/boot/dts/kirkwood-dockstar.dts
|
--- a/arch/arm/boot/dts/kirkwood-dockstar.dts
|
||||||
+++ b/arch/arm/boot/dts/kirkwood-dockstar.dts
|
+++ b/arch/arm/boot/dts/kirkwood-dockstar.dts
|
||||||
@@ -78,18 +78,22 @@
|
@@ -8,6 +8,13 @@
|
||||||
|
model = "Seagate FreeAgent Dockstar";
|
||||||
|
compatible = "seagate,dockstar", "marvell,kirkwood-88f6281", "marvell,kirkwood";
|
||||||
|
|
||||||
|
+ aliases {
|
||||||
|
+ led-boot = &led_health;
|
||||||
|
+ led-failsafe = &led_fault;
|
||||||
|
+ led-running = &led_health;
|
||||||
|
+ led-upgrade = &led_fault;
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
memory {
|
||||||
|
device_type = "memory";
|
||||||
|
reg = <0x00000000 0x8000000>;
|
||||||
|
@@ -42,12 +49,12 @@
|
||||||
|
pinctrl-0 = <&pmx_led_green &pmx_led_orange>;
|
||||||
|
pinctrl-names = "default";
|
||||||
|
|
||||||
|
- health {
|
||||||
|
+ led_health: health {
|
||||||
|
label = "status:green:health";
|
||||||
|
gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;
|
||||||
|
- default-state = "keep";
|
||||||
|
+ default-state = "on";
|
||||||
|
};
|
||||||
|
- fault {
|
||||||
|
+ led_fault: fault {
|
||||||
|
label = "status:orange:fault";
|
||||||
|
gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
|
||||||
|
};
|
||||||
|
@@ -78,18 +85,22 @@
|
||||||
|
|
||||||
partition@0 {
|
partition@0 {
|
||||||
label = "u-boot";
|
label = "u-boot";
|
||||||
|
|||||||
@ -1,6 +1,40 @@
|
|||||||
--- a/arch/arm/boot/dts/kirkwood-iomega_ix2_200.dts
|
--- a/arch/arm/boot/dts/kirkwood-iomega_ix2_200.dts
|
||||||
+++ b/arch/arm/boot/dts/kirkwood-iomega_ix2_200.dts
|
+++ b/arch/arm/boot/dts/kirkwood-iomega_ix2_200.dts
|
||||||
@@ -186,18 +186,18 @@
|
@@ -8,6 +8,13 @@
|
||||||
|
model = "Iomega StorCenter ix2-200";
|
||||||
|
compatible = "iom,ix2-200", "marvell,kirkwood-88f6281", "marvell,kirkwood";
|
||||||
|
|
||||||
|
+ aliases {
|
||||||
|
+ led-boot = &led_power;
|
||||||
|
+ led-failsafe = &led_health;
|
||||||
|
+ led-running = &led_power;
|
||||||
|
+ led-upgrade = &led_health;
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
memory {
|
||||||
|
device_type = "memory";
|
||||||
|
reg = <0x00000000 0x10000000>;
|
||||||
|
@@ -127,16 +134,16 @@
|
||||||
|
&pmx_led_rebuild &pmx_led_health >;
|
||||||
|
pinctrl-names = "default";
|
||||||
|
|
||||||
|
- power_led {
|
||||||
|
+ led_power: power_led {
|
||||||
|
label = "status:white:power_led";
|
||||||
|
gpios = <&gpio0 16 GPIO_ACTIVE_HIGH>;
|
||||||
|
- default-state = "keep";
|
||||||
|
+ default-state = "on";
|
||||||
|
};
|
||||||
|
rebuild_led {
|
||||||
|
label = "status:white:rebuild_led";
|
||||||
|
gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
- health_led {
|
||||||
|
+ led_health: health_led {
|
||||||
|
label = "status:red:health_led";
|
||||||
|
gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
@@ -186,18 +193,18 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
partition@a0000 {
|
partition@a0000 {
|
||||||
@ -22,7 +56,7 @@
|
|||||||
reg = <0x400000 0x1C00000>;
|
reg = <0x400000 0x1C00000>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@@ -211,7 +211,7 @@
|
@@ -211,7 +218,7 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
ð0 {
|
ð0 {
|
||||||
|
|||||||
@ -10,7 +10,7 @@
|
|||||||
kirkwood-lsxhl.dtb \
|
kirkwood-lsxhl.dtb \
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/arch/arm/boot/dts/kirkwood-linksys-audi.dts
|
+++ b/arch/arm/boot/dts/kirkwood-linksys-audi.dts
|
||||||
@@ -0,0 +1,245 @@
|
@@ -0,0 +1,250 @@
|
||||||
+/*
|
+/*
|
||||||
+ * kirkwood-linksys-audi.dts - Device Tree file for Linksys EA3500
|
+ * kirkwood-linksys-audi.dts - Device Tree file for Linksys EA3500
|
||||||
+ *
|
+ *
|
||||||
@ -39,6 +39,10 @@
|
|||||||
+ };
|
+ };
|
||||||
+
|
+
|
||||||
+ aliases {
|
+ aliases {
|
||||||
|
+ led-boot = &led_power;
|
||||||
|
+ led-failsafe = &led_power;
|
||||||
|
+ led-running = &led_power;
|
||||||
|
+ led-upgrade = &led_power;
|
||||||
+ serial0 = &uart0;
|
+ serial0 = &uart0;
|
||||||
+ };
|
+ };
|
||||||
+
|
+
|
||||||
@ -71,9 +75,10 @@
|
|||||||
+ pinctrl-0 = < &pmx_led_green_power >;
|
+ pinctrl-0 = < &pmx_led_green_power >;
|
||||||
+ pinctrl-names = "default";
|
+ pinctrl-names = "default";
|
||||||
+
|
+
|
||||||
+ green-power {
|
+ led_power: power {
|
||||||
+ label = "audi:green:power";
|
+ label = "audi:green:power";
|
||||||
+ gpios = <&gpio0 7 GPIO_ACTIVE_HIGH>;
|
+ gpios = <&gpio0 7 GPIO_ACTIVE_HIGH>;
|
||||||
|
+ default-state = "on";
|
||||||
+ };
|
+ };
|
||||||
+ };
|
+ };
|
||||||
+
|
+
|
||||||
|
|||||||
@ -1,6 +1,29 @@
|
|||||||
--- a/arch/arm/boot/dts/kirkwood-linksys-viper.dts
|
--- a/arch/arm/boot/dts/kirkwood-linksys-viper.dts
|
||||||
+++ b/arch/arm/boot/dts/kirkwood-linksys-viper.dts
|
+++ b/arch/arm/boot/dts/kirkwood-linksys-viper.dts
|
||||||
@@ -69,9 +69,18 @@
|
@@ -26,6 +26,10 @@
|
||||||
|
};
|
||||||
|
|
||||||
|
aliases {
|
||||||
|
+ led-boot = &led_white_health;
|
||||||
|
+ led-failsafe = &led_white_health;
|
||||||
|
+ led-running = &led_white_health;
|
||||||
|
+ led-upgrade = &led_white_health;
|
||||||
|
serial0 = &uart0;
|
||||||
|
};
|
||||||
|
|
||||||
|
@@ -58,9 +62,10 @@
|
||||||
|
pinctrl-0 = < &pmx_led_white_health &pmx_led_white_pulse >;
|
||||||
|
pinctrl-names = "default";
|
||||||
|
|
||||||
|
- white-health {
|
||||||
|
+ led_white_health: white-health {
|
||||||
|
label = "viper:white:health";
|
||||||
|
gpios = <&gpio0 7 GPIO_ACTIVE_HIGH>;
|
||||||
|
+ default-state = "on";
|
||||||
|
};
|
||||||
|
|
||||||
|
white-pulse {
|
||||||
|
@@ -69,9 +74,18 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -21,7 +44,7 @@
|
|||||||
compatible = "marvell,dsa";
|
compatible = "marvell,dsa";
|
||||||
#address-cells = <2>;
|
#address-cells = <2>;
|
||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
@@ -163,22 +172,22 @@
|
@@ -163,22 +177,22 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
partition@200000 {
|
partition@200000 {
|
||||||
@ -48,7 +71,7 @@
|
|||||||
reg = <0x1EA0000 0x1760000>;
|
reg = <0x1EA0000 0x1760000>;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -209,53 +218,6 @@
|
@@ -209,53 +223,6 @@
|
||||||
|
|
||||||
&mdio {
|
&mdio {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
@ -102,7 +125,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&uart0 {
|
&uart0 {
|
||||||
@@ -274,10 +236,14 @@
|
@@ -274,10 +241,14 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
/* eth1 is connected to the switch at port 6. However DSA only supports a
|
/* eth1 is connected to the switch at port 6. However DSA only supports a
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user