Merge Official Source

This commit is contained in:
CN_SZTL 2020-02-23 15:20:52 +08:00
commit 608d3c70ab
No known key found for this signature in database
GPG Key ID: 6850B6345C862176
156 changed files with 2058 additions and 873 deletions

View File

@ -85,6 +85,126 @@ config KERNEL_PROFILING
Enable the extended profiling support mechanisms used by profilers such
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
bool "Compile the kernel with task resource/io statistics and accounting"
default n
@ -257,6 +377,74 @@ config KERNEL_PROVE_LOCKING
select KERNEL_DEBUG_KERNEL
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
bool "Enable printk timestamps"
default y

View File

@ -9,14 +9,14 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=arm-trusted-firmware-mvebu
PKG_VERSION:=2.2
PKG_RELEASE:=1
PKG_RELEASE:=2
PKG_SOURCE_PROTO:=git
PKG_SOURCE:=$(PKG_NAME)-$(PKG_RELEASE).tar.xz
PKG_SOURCE_URL:=https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git
PKG_SOURCE_DATE:=2019-10-22
PKG_SOURCE_VERSION:=a04808c16cfc126d9fe572ae7c4b5a3d39de5796
PKG_MIRROR_HASH:=ff93aad67227ca96db54e92288f61b4ff3abbaad291fc88ad95c29cd3dd3588c
PKG_SOURCE_DATE:=2020-01-21
PKG_SOURCE_VERSION:=3b3d406ebc6f5dae6b5c9170c674183026e7301b
PKG_MIRROR_HASH:=7c63da237c52808e1fe49458d5a4ac804a8eb4c365e26c6b2b709256e8fc041f
PKG_MAINTAINER:=Vladimir Vid <vladimir.vid@sartura.hr>

View File

@ -8,12 +8,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=linux-firmware
PKG_VERSION:=20191215
PKG_VERSION:=20200122
PKG_RELEASE:=1
PKG_SOURCE_URL:=@KERNEL/linux/kernel/firmware
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_HASH:=c2068ff4a797c0f2c3edbb9488f82a48bca8a995855ea21310a8346195c0ae56
PKG_HASH:=a30e811b3736a72b874ac27e10662f5e5409b1cadf8aab7ba88e8f8bc8083986
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>

View File

@ -181,7 +181,7 @@ PKG_EXTRA_CFLAGS:= \
define Build/Compile
$(MAKE) -C "$(LINUX_DIR)" \
$(KERNEL_MAKE_FLAGS) \
SUBDIRS="$(PKG_BUILD_DIR)" \
M="$(PKG_BUILD_DIR)" \
$(PKG_EXTRA_KCONFIG) \
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 \

View File

@ -112,7 +112,7 @@ endif
define Build/Compile
+$(MAKE) $(CT_MAKEDEFS) $(PKG_JOBS) -C "$(LINUX_DIR)" \
$(KERNEL_MAKE_FLAGS) \
SUBDIRS="$(PKG_BUILD_DIR)/ath10k$(CT_KVER)" \
M="$(PKG_BUILD_DIR)/ath10k$(CT_KVER)" \
NOSTDINC_FLAGS="$(NOSTDINC_FLAGS)" \
modules
endef

View File

@ -102,7 +102,7 @@ endef
MAKE_KMOD := $(MAKE) -C "$(LINUX_DIR)" \
$(KERNEL_MAKE_FLAGS) \
PATH="$(TARGET_PATH)" \
SUBDIRS="$(PKG_BUILD_DIR)/kmod" \
M="$(PKG_BUILD_DIR)/kmod" \
define Build/Prepare
$(call Build/Prepare/Default)
@ -113,18 +113,18 @@ endef
define Build/Compile
# Compile glue driver
$(MAKE_KMOD) -C "$(LINUX_DIR)" \
SUBDIRS="$(PKG_BUILD_DIR)/glue" \
M="$(PKG_BUILD_DIR)/glue" \
modules
# Compile the kernel part
$(MAKE_KMOD) \
SUBDIRS="$(PKG_BUILD_DIR)/driver" \
M="$(PKG_BUILD_DIR)/driver" \
MODFLAGS="-DMODULE -mlong-calls" \
KBUILD_EXTRA_SYMBOLS="$(PKG_BUILD_DIR)/glue/Module.symvers" \
modules
$(MAKE_KMOD) \
SUBDIRS="$(PKG_BUILD_DIR)/driver-mini" \
M="$(PKG_BUILD_DIR)/driver-mini" \
MODFLAGS="-DMODULE -mlong-calls" \
BUILD_TYPE="wl_apsta_mini" \
KBUILD_EXTRA_SYMBOLS="$(PKG_BUILD_DIR)/glue/Module.symvers" \

View File

@ -37,7 +37,7 @@ EXTRA_CFLAGS:= \
MAKE_OPTS:= \
$(KERNEL_MAKE_FLAGS) \
SUBDIRS="$(PKG_BUILD_DIR)" \
M="$(PKG_BUILD_DIR)" \
EXTRA_CFLAGS="$(EXTRA_CFLAGS)" \
$(EXTRA_KCONFIG)

View File

@ -34,7 +34,7 @@ endef
MAKE_OPTS:= \
$(KERNEL_MAKE_FLAGS) \
SUBDIRS="$(PKG_BUILD_DIR)"
M="$(PKG_BUILD_DIR)"
define Build/Compile
$(MAKE) -C "$(LINUX_DIR)" \

View File

@ -38,7 +38,7 @@ EXTRA_CFLAGS:= \
MAKE_OPTS:= \
$(KERNEL_MAKE_FLAGS) \
SUBDIRS="$(PKG_BUILD_DIR)" \
M="$(PKG_BUILD_DIR)" \
EXTRA_CFLAGS="$(EXTRA_CFLAGS)" \
$(EXTRA_KCONFIG)

View File

@ -21,7 +21,7 @@ endef
define Build/Compile
$(MAKE) -C "$(LINUX_DIR)" \
$(KERNEL_MAKE_FLAGS) \
SUBDIRS="$(PKG_BUILD_DIR)" \
M="$(PKG_BUILD_DIR)" \
EXTRA_CFLAGS="$(BUILDFLAGS)" \
modules
endef

View File

@ -34,7 +34,7 @@ EXTRA_CFLAGS:= \
MAKE_OPTS:= \
$(KERNEL_MAKE_FLAGS) \
SUBDIRS="$(PKG_BUILD_DIR)" \
M="$(PKG_BUILD_DIR)" \
EXTRA_CFLAGS="$(EXTRA_CFLAGS)" \
$(EXTRA_KCONFIG)

View File

@ -36,7 +36,7 @@ define KernelPackage/sched-cake/description
endef
define Build/Compile
$(KERNEL_MAKE) SUBDIRS="$(PKG_BUILD_DIR)" modules
$(KERNEL_MAKE) M="$(PKG_BUILD_DIR)" modules
endef
$(eval $(call KernelPackage,sched-cake))

View File

@ -38,7 +38,7 @@ EXTRA_CFLAGS:= \
MAKE_OPTS:= \
$(KERNEL_MAKE_FLAGS) \
SUBDIRS="$(PKG_BUILD_DIR)" \
M="$(PKG_BUILD_DIR)" \
EXTRA_CFLAGS="$(EXTRA_CFLAGS)" \
$(EXTRA_KCONFIG)

View File

@ -84,7 +84,7 @@ endef
$(eval $(call KernelPackage,ath3k))
define KernelPackage/bluetooth_6lowpan
define KernelPackage/bluetooth-6lowpan
SUBMENU:=$(OTHER_MENU)
TITLE:=Bluetooth 6LoWPAN support
DEPENDS:=+kmod-6lowpan +kmod-bluetooth
@ -93,11 +93,11 @@ define KernelPackage/bluetooth_6lowpan
AUTOLOAD:=$(call AutoProbe,bluetooth_6lowpan)
endef
define KernelPackage/bluetooth_6lowpan/description
define KernelPackage/bluetooth-6lowpan/description
Kernel support for 6LoWPAN over Bluetooth Low Energy devices
endef
$(eval $(call KernelPackage,bluetooth_6lowpan))
$(eval $(call KernelPackage,bluetooth-6lowpan))
define KernelPackage/btmrvl

View File

@ -116,7 +116,7 @@ endef
$(eval $(call KernelPackage,cc2520))
define KernelPackage/ieee802154_6lowpan
define KernelPackage/ieee802154-6lowpan
SUBMENU:=$(WPAN_MENU)
TITLE:= 6LoWPAN support over IEEE-802.15.4
DEPENDS:=+kmod-6lowpan +kmod-ieee802154
@ -126,8 +126,8 @@ define KernelPackage/ieee802154_6lowpan
AUTOLOAD:=$(call AutoLoad,91,ieee802154_6lowpan)
endef
define KernelPackage/ieee802154_6lowpan/description
define KernelPackage/ieee802154-6lowpan/description
IPv6 compression over IEEE 802.15.4
endef
$(eval $(call KernelPackage,ieee802154_6lowpan))
$(eval $(call KernelPackage,ieee802154-6lowpan))

View File

@ -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 |

View File

@ -8,9 +8,9 @@ PKG_LICENSE_FILES:=
PKG_SOURCE_URL:=https://github.com/openwrt/mt76
PKG_SOURCE_PROTO:=git
PKG_SOURCE_DATE:=2020-02-02
PKG_SOURCE_VERSION:=721673759d8229a42ab39a9a7cba15261f1dfcf9
PKG_MIRROR_HASH:=67631bbe0ec9af6e4f255841457cde706dbbde21092c9485e7b0cc222e54e6d9
PKG_SOURCE_DATE:=2020-02-20
PKG_SOURCE_VERSION:=fd892bc033fbfad7b1a5bcba1432709a74327a1e
PKG_MIRROR_HASH:=1f73f5be38ec3f8fca07dc54d0e29dd08cfe6c6c82d72b6c489bf0aa8fd19acd
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
PKG_BUILD_PARALLEL:=1
@ -202,7 +202,7 @@ define Build/Compile
+$(MAKE) $(PKG_JOBS) -C "$(LINUX_DIR)" \
$(KERNEL_MAKE_FLAGS) \
$(PKG_MAKE_FLAGS) \
SUBDIRS="$(PKG_BUILD_DIR)" \
M="$(PKG_BUILD_DIR)" \
NOSTDINC_FLAGS="$(NOSTDINC_FLAGS)" \
modules
endef

View File

@ -44,7 +44,7 @@ NOSTDINC_FLAGS = \
define Build/Compile
+$(MAKE) $(PKG_JOBS) -C "$(LINUX_DIR)" \
$(KERNEL_MAKE_FLAGS) \
SUBDIRS="$(PKG_BUILD_DIR)" \
M="$(PKG_BUILD_DIR)" \
NOSTDINC_FLAGS="$(NOSTDINC_FLAGS)" \
modules
endef

View File

@ -26,7 +26,7 @@ endef
include $(INCLUDE_DIR)/kernel-defaults.mk
define Build/Compile
$(KERNEL_MAKE) SUBDIRS="$(PKG_BUILD_DIR)/nat46/modules" \
$(KERNEL_MAKE) M="$(PKG_BUILD_DIR)/nat46/modules" \
MODFLAGS="-DMODULE -mlong-calls" \
EXTRA_CFLAGS="-DNAT46_VERSION=\\\"$(PKG_SOURCE_VERSION)\\\"" \
modules

View File

@ -24,7 +24,7 @@ endef
define Build/Compile
$(MAKE) -C "$(LINUX_DIR)" \
$(KERNEL_MAKE_FLAGS) \
SUBDIRS="$(PKG_BUILD_DIR)" \
M="$(PKG_BUILD_DIR)" \
EXTRA_CFLAGS="$(BUILDFLAGS)" \
modules
endef

View File

@ -45,7 +45,7 @@ NOSTDINC_FLAGS+=-DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT -DBUILD_OPE
define Build/Compile
+$(MAKE) $(PKG_JOBS) -C "$(LINUX_DIR)" \
$(KERNEL_MAKE_FLAGS) \
SUBDIRS="$(PKG_BUILD_DIR)" \
M="$(PKG_BUILD_DIR)" \
NOSTDINC_FLAGS="$(NOSTDINC_FLAGS)" \
modules
endef

View File

@ -34,7 +34,7 @@ EXTRA_CFLAGS:= \
MAKE_OPTS:= \
$(KERNEL_MAKE_FLAGS) \
SUBDIRS="$(PKG_BUILD_DIR)" \
M="$(PKG_BUILD_DIR)" \
EXTRA_CFLAGS="$(EXTRA_CFLAGS)" \
$(EXTRA_KCONFIG)

View File

@ -32,7 +32,7 @@ endef
include $(INCLUDE_DIR)/kernel-defaults.mk
define Build/Compile
$(KERNEL_MAKE) SUBDIRS="$(PKG_BUILD_DIR)" modules
$(KERNEL_MAKE) M="$(PKG_BUILD_DIR)" modules
endef
define KernelPackage/trelay/conffiles

View File

@ -34,7 +34,7 @@ EXTRA_CFLAGS:= \
MAKE_OPTS:= \
$(KERNEL_MAKE_FLAGS) \
SUBDIRS="$(PKG_BUILD_DIR)" \
M="$(PKG_BUILD_DIR)" \
EXTRA_CFLAGS="$(EXTRA_CFLAGS)" \
$(EXTRA_KCONFIG)

View File

@ -1,19 +1,20 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=libbsd
PKG_VERSION:=0.8.7
PKG_RELEASE:=3
PKG_VERSION:=0.10.0
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_HASH:=f548f10e5af5a08b1e22889ce84315b1ebe41505b015c9596bad03fd13a12b31
PKG_SOURCE_URL:=https://libbsd.freedesktop.org/releases
PKG_HASH:=34b8adc726883d0e85b3118fa13605e179a62b31ba51f676136ecb2d0bc1a887
PKG_LICENSE:=BSD-4-Clause
PKG_LICENSE_FILES:=COPYING
include $(INCLUDE_DIR)/package.mk
PKG_INSTALL:=1
PKG_BUILD_PARALLEL:=1
include $(INCLUDE_DIR)/package.mk
define Package/libbsd
SECTION:=libs

View File

@ -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

View File

@ -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_

View File

@ -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

View File

@ -4,3 +4,5 @@
uci set dhcp.@dnsmasq[0].resolvfile="/tmp/resolv.conf.d/resolv.conf.auto"
uci commit dhcp
}
exit 0

View File

@ -8,12 +8,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=lldpd
PKG_VERSION:=1.0.3
PKG_RELEASE:=2
PKG_VERSION:=1.0.5
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://media.luffy.cx/files/lldpd
PKG_HASH:=39fced395168015416bfe78b95414facf066f841f349024433aa20ab54e4c360
PKG_HASH:=2dd3b212f4dbabfcbb2794c0010b245f9f8e74b387984e757be6243a74c6cb99
PKG_MAINTAINER:=Stijn Tintel <stijn@linux-ipv6.be>
PKG_LICENSE:=ISC

View File

@ -1,6 +1,6 @@
--- a/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
lldp_CHECK_LIBEVENT

View File

@ -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>

View File

@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=ppp
PKG_RELEASE:=1
PKG_RELEASE:=2
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/paulusmack/ppp

View File

@ -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);

View File

@ -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';

View File

@ -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),

View File

@ -8,12 +8,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=iw
PKG_VERSION:=5.3
PKG_RELEASE:=2
PKG_VERSION:=5.4
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=@KERNEL/software/network/iw
PKG_HASH:=04afe857bc8dea67e461946de30ae1b012954b6965839c5c3fda7d0ed15505d5
PKG_HASH:=a2469f677088d7b1070a7fbb28f3c747041697e8f6ec70783339cb1bc27a395f
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
PKG_LICENSE:=GPL-2.0

View File

@ -1,116 +1,41 @@
--- a/nl80211.h
+++ b/nl80211.h
@@ -52,6 +52,11 @@
#define NL80211_MULTICAST_GROUP_NAN "nan"
#define NL80211_MULTICAST_GROUP_TESTMODE "testmode"
+#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
@@ -2373,6 +2373,9 @@ enum nl80211_commands {
* the allowed channel bandwidth configurations. (u8 attribute)
* Defined by IEEE P802.11ay/D4.0 section 9.4.2.251, Table 13.
*
@@ -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
+ * transmit power to stay within regulatory limits. u32, dBi.
+ *
* @NUM_NL80211_ATTR: total number of nl80211_attrs available
* @NL80211_ATTR_MAX: highest attribute number currently defined
* @__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,
+
/* add attributes here, update the policy in nl80211.c */
__NL80211_ATTR_AFTER_LAST,
@@ -3201,6 +3221,8 @@ enum nl80211_sta_bss_param {
* sent to the station (u64, usec)
* @NL80211_STA_INFO_AIRTIME_WEIGHT: current airtime weight for station (u16)
* @NL80211_STA_INFO_AIRTIME_LINK_METRIC: airtime link metric for mesh station
+ * @NL80211_STA_INFO_ASSOC_AT_BOOTTIME: Timestamp (CLOCK_BOOTTIME, nanoseconds)
+ * of STA's association
* @__NL80211_STA_INFO_AFTER_LAST: internal
* @NL80211_STA_INFO_MAX: highest possible station info attribute
@@ -5484,6 +5489,10 @@ enum nl80211_feature_flags {
* @NL80211_EXT_FEATURE_SAE_OFFLOAD: Device wants to do SAE authentication in
* station mode (SAE password is passed as part of the connect command).
*
+ * @NL80211_EXT_FEATURE_AQL: The driver supports the Airtime Queue Limit (AQL)
+ * feature, which prevents bufferbloat by using the expected transmission
+ * time to limit the amount of data buffered in the hardware.
+ *
* @NUM_NL80211_EXT_FEATURES: number of extended features.
* @MAX_NL80211_EXT_FEATURES: highest extended feature index.
*/
@@ -3247,6 +3269,7 @@ enum nl80211_sta_info {
NL80211_STA_INFO_TX_DURATION,
NL80211_STA_INFO_AIRTIME_WEIGHT,
NL80211_STA_INFO_AIRTIME_LINK_METRIC,
+ NL80211_STA_INFO_ASSOC_AT_BOOTTIME,
@@ -5529,6 +5538,8 @@ enum nl80211_ext_feature_index {
NL80211_EXT_FEATURE_EXT_KEY_ID,
NL80211_EXT_FEATURE_STA_TX_PWR,
NL80211_EXT_FEATURE_SAE_OFFLOAD,
+ NL80211_EXT_FEATURE_VLAN_OFFLOAD,
+ NL80211_EXT_FEATURE_AQL,
/* keep last */
__NL80211_STA_INFO_AFTER_LAST,
@@ -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,
};
/* add new features before the definition below */
NUM_NL80211_EXT_FEATURES,

View File

@ -150,7 +150,7 @@
{
--- a/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",
ht_secondary_offset[data[1] & 0x3]);
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 * HT protection: %s\n", protection[data[2] & 0x3]);
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[] = {
[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), },
[3] = { "DS Parameter set", print_ds, 1, 1, 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), },
[35] = { "TPC report", print_tpcreport, 2, 2, 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,
@@ -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)) {
print_ie(&ieprinters[ie[0]],
ie[0], ie[1], ie + 2, &ie_buffer);
@ -206,7 +206,7 @@
} else if (ie[0] == 221 /* vendor */) {
print_vendor(ie[1], ie + 2, unknown, ptype);
} 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++)
printf(" %.2x", ie[2+i]);
printf("\n");
@ -214,7 +214,7 @@
}
ielen -= 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");
if (capa & WLAN_CAPABILITY_IBSS)
printf(" IBSS");
@ -222,7 +222,7 @@
if (capa & WLAN_CAPABILITY_CF_POLLABLE)
printf(" CfPollable");
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");
if (capa & WLAN_CAPABILITY_IMM_BACK)
printf(" ImmediateBACK");
@ -230,7 +230,7 @@
}
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]) {
int freq = nla_get_u32(bss[NL80211_BSS_FREQUENCY]);
printf("\tfreq: %d\n", freq);
@ -241,7 +241,7 @@
}
if (bss[NL80211_BSS_BEACON_INTERVAL])
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;
}
@ -249,14 +249,14 @@
COMMAND(scan, sched_start,
SCHED_SCAN_OPTIONS,
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, "",
NL80211_CMD_STOP_SCHED_SCAN, 0, CIB_NETDEV, handle_stop_sched_scan,
"Stop an ongoing scheduled scan.");
+#endif
--- a/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];
@ -264,7 +264,7 @@
const char *command_name(enum nl80211_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);
return cmdbuf;
}
@ -272,7 +272,7 @@
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];
int pos = 0;
@ -299,7 +299,7 @@
ifeq ($(NO_PKG_CONFIG),)
--- a/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:
return -ENOBUFS;
}
@ -312,7 +312,7 @@
static int handle_station_set_vlan(struct nl80211_state *state,
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:
return -ENOBUFS;
}

View File

@ -18,7 +18,7 @@ define Package/rssileds
SECTION:=net
CATEGORY:=Network
TITLE:=RSSI real-time LED indicator
DEPENDS:=+libiwinfo
DEPENDS:=+libiwinfo +libnl-tiny +libubox +libuci
MAINTAINER:=Daniel Golle <dgolle@allnet.de>
endef

View File

@ -8,14 +8,14 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=f2fs-tools
PKG_VERSION:=1.12.0
PKG_RELEASE:=3
PKG_VERSION:=1.13.0
PKG_RELEASE:=1
PKG_LICENSE:=GPL-2.0
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_HASH:=e2124e4dffaba865d41495d817bcb924d096adaec67ff777b8c7da99aa13f696
PKG_HASH:=b39d3ae9224267aab0070b5f17d91d0c5143f6d960166a27f6b11c8c87072c7d
PKG_FIXUP:=autoreconf
PKG_BUILD_PARALLEL:=1
@ -58,6 +58,7 @@ define Package/libf2fs
endef
CONFIGURE_ARGS += \
--disable-static \
--without-selinux \
--without-blkid
@ -77,7 +78,6 @@ endef
define Package/f2fsck/install
$(INSTALL_DIR) $(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/dump.f2fs

View File

@ -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 */

View File

@ -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};

View File

@ -15,7 +15,7 @@ PKG_LICENSE_FILES:=
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_PATH:=usb-modeswitch-data-$(PKG_DATA_VERSION)
PKG_DATA_FILENAME:=$(PKG_DATA_PATH).tar.bz2
@ -26,7 +26,7 @@ include $(INCLUDE_DIR)/cmake.mk
define Download/data
FILE:=$(PKG_DATA_FILENAME)
URL:=$(PKG_DATA_URL)
HASH:=ce413ef2a50e648e9c81bc3ea6110e7324a8bf981034fc9ec4467d3562563c2c
HASH:=3f039b60791c21c7cb15c7986cac89650f076dc274798fa242231b910785eaf9
endef
$(eval $(call Download,data))

View File

@ -8,12 +8,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=util-linux
PKG_VERSION:=2.34
PKG_RELEASE:=2
PKG_VERSION:=2.35.1
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=@KERNEL/linux/utils/$(PKG_NAME)/v2.34
PKG_HASH:=743f9d0c7252b6db246b659c1e1ce0bd45d8d4508b4dfa427bbb4a3e9b9f62b5
PKG_SOURCE_URL:=@KERNEL/linux/utils/$(PKG_NAME)/v2.35
PKG_HASH:=d9de3edd287366cd908e77677514b9387b22bc7b88f45b83e1922c3597f1d7f9
PKG_CPE_ID:=cpe:/a:kernel:util-linux
PKG_LICENSE:=GPL-2.0

View File

@ -10,7 +10,7 @@
endif # BUILD_LIBUUID
--- a/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([
Makefile

View File

@ -1,6 +1,6 @@
--- a/lib/randutils.c
+++ b/lib/randutils.c
@@ -25,6 +25,11 @@
@@ -26,6 +26,11 @@
#define THREAD_LOCAL static
#endif

View File

@ -165,15 +165,12 @@ CONFIG_NO_BOOTMEM=y
CONFIG_NVMEM=y
CONFIG_OF=y
CONFIG_OF_ADDRESS=y
CONFIG_OF_ADDRESS_PCI=y
CONFIG_OF_EARLY_FLATTREE=y
CONFIG_OF_FLATTREE=y
CONFIG_OF_GPIO=y
CONFIG_OF_IRQ=y
CONFIG_OF_KOBJ=y
CONFIG_OF_NET=y
CONFIG_OF_PCI=y
CONFIG_OF_PCI_IRQ=y
CONFIG_OF_RESERVED_MEM=y
CONFIG_OLD_SIGSUSPEND3=y
CONFIG_PADATA=y

View 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";
};

View 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";
};

View 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";
};

View 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";
};

View 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";
};
&eth1 {
compatible = "syscon", "simple-mfd";
};

View 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";
};
&eth1 {
compatible = "syscon", "simple-mfd";
};

View File

@ -1,9 +1,6 @@
// 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 "ar9342_ubnt_xw.dtsi"
/ {

View File

@ -1,8 +1,6 @@
// SPDX-License-Identifier: GPL-2.0
/dts-v1/;
#include <dt-bindings/input/input.h>
#include "ar9342_ubnt_wa.dtsi"
/ {

View File

@ -1,9 +1,6 @@
// SPDX-License-Identifier: GPL-2.0
/dts-v1/;
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include "ar9342_ubnt_wa.dtsi"
/ {

View File

@ -1,9 +1,6 @@
// SPDX-License-Identifier: GPL-2.0
/dts-v1/;
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include "ar9342_ubnt_wa.dtsi"
/ {

View File

@ -1,9 +1,6 @@
// SPDX-License-Identifier: GPL-2.0
/dts-v1/;
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include "ar9342_ubnt_wa.dtsi"
/ {

View File

@ -1,9 +1,6 @@
// SPDX-License-Identifier: GPL-2.0
/dts-v1/;
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include "ar9342_ubnt_wa.dtsi"
/ {

View File

@ -1,9 +1,6 @@
// 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 "ar9342_ubnt_xw.dtsi"
/ {

View File

@ -1,9 +1,6 @@
// 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 "ar9342_ubnt_xw.dtsi"
/ {

View 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 = &eth1;
};
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>;
};
&eth0 {
status = "okay";
phy-handle = <&swphy4>;
mtd-mac-address = <&config 0x0>;
mtd-mac-address-increment = <1>;
};
&eth1 {
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>;
};
};

View File

@ -1,9 +1,6 @@
// 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 "qca9557_iodata_wn-ac-dgr.dtsi"
/ {

View File

@ -1,9 +1,6 @@
// 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 "qca9557_iodata_wn-ac-dgr.dtsi"
/ {

View File

@ -1,9 +1,6 @@
// 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 "qca9557_iodata_wn-ac-dgr.dtsi"
/ {

View File

@ -1,9 +1,6 @@
// 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 "qca9558_comfast_cf-wr650ac.dtsi"
/ {

View File

@ -1,9 +1,6 @@
// 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 "qca9558_comfast_cf-wr650ac.dtsi"
/ {

View File

@ -1,9 +1,6 @@
// 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 "qca9558_tplink_tl-wr1043nd.dtsi"
/ {

View File

@ -1,9 +1,6 @@
// 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 "qca9558_tplink_tl-wr1043nd.dtsi"
/ {

View File

@ -1,9 +1,6 @@
// 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 "qca9563_elecom_wrc-ghbk2-i.dtsi"
/ {

View File

@ -1,9 +1,6 @@
// 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 "qca9563_elecom_wrc-ghbk2-i.dtsi"
/ {

View File

@ -244,9 +244,11 @@ trendnet,tew-823dru)
;;
ubnt,bullet-m|\
ubnt,bullet-m-xw|\
ubnt,nanostation-loco-m|\
ubnt,nanostation-loco-m-xw|\
ubnt,nanostation-m|\
ubnt,nanostation-m-xw|\
ubnt,picostation-m|\
ubnt,rocket-m)
ucidef_set_rssimon "wlan0" "200000" "1"
ucidef_set_led_rssi "rssilow" "RSSILOW" "ubnt:red:link1" "wlan0" "1" "100"

View File

@ -47,7 +47,9 @@ ath79_setup_interfaces()
ubnt,litebeam-ac-gen2|\
ubnt,nanobeam-ac|\
ubnt,nanostation-ac-loco|\
ubnt,nanostation-loco-m|\
ubnt,nanostation-loco-m-xw|\
ubnt,picostation-m|\
ubnt,rocket-m|\
ubnt,unifiac-lite|\
ubnt,unifiac-lr|\
@ -218,6 +220,11 @@ ath79_setup_interfaces()
ucidef_add_switch "switch0" \
"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-c6-v2|\
tplink,archer-c6-v2-us|\
@ -426,7 +433,9 @@ ath79_setup_macs()
;;
ubnt,airrouter|\
ubnt,bullet-m|\
ubnt,nanostation-loco-m|\
ubnt,nanostation-m|\
ubnt,picostation-m|\
ubnt,rocket-m|\
ubnt,unifi)
label_mac=$(cat /sys/class/ieee80211/phy0/macaddress)

View File

@ -38,6 +38,14 @@ dlink,dir-835-a1)
librerouter,librerouter-v1)
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)
ucidef_add_gpio_switch "led_control" "LED control" "21" "0"
ucidef_add_gpio_switch "led_reset" "LED reset" "19" "1"

View File

@ -90,7 +90,9 @@ case "$FIRMWARE" in
tplink,tl-wr842n-v1|\
ubnt,airrouter|\
ubnt,bullet-m|\
ubnt,nanostation-loco-m|\
ubnt,nanostation-m|\
ubnt,picostation-m|\
ubnt,rocket-m)
caldata_extract "art" 0x1000 0x1000
;;

View File

@ -11,6 +11,7 @@ endef
define Device/tplink-v1
DEVICE_VENDOR := TP-Link
TPLINK_HWID := 0x0
TPLINK_HWREV := 0x1
TPLINK_HEADER_VERSION := 1
LOADER_TYPE := gz
@ -23,6 +24,7 @@ endef
define Device/tplink-v2
DEVICE_VENDOR := TP-Link
TPLINK_HWID := 0x0
TPLINK_HWREV := 0x1
TPLINK_HWREVADD := 0x0
TPLINK_HVERSION := 3
@ -74,9 +76,10 @@ endef
define Device/tplink-safeloader
$(Device/tplink-v1)
TPLINK_HWREV := 0x0
KERNEL := kernel-bin | append-dtb | lzma | tplink-v1-header -O
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
endef

View File

@ -320,8 +320,6 @@ define Device/tplink_re350k-v1
DEVICE_VARIANT := v1
DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca988x-ct
TPLINK_BOARD_ID := RE350K-V1
TPLINK_HWID := 0x0
TPLINK_HWREV := 0
endef
TARGET_DEVICES += tplink_re350k-v1
@ -330,8 +328,6 @@ define Device/tplink_rex5x-v1
SOC := qca9558
IMAGE_SIZE := 6016k
DEVICE_PACKAGES := kmod-ath10k-ct-smallbuffers ath10k-firmware-qca988x-ct
TPLINK_HWID := 0x0
TPLINK_HWREV := 0
endef
define Device/tplink_re355-v1
@ -359,8 +355,6 @@ define Device/tplink_re450-v2
DEVICE_MODEL := RE450
DEVICE_VARIANT := v2
DEVICE_PACKAGES := kmod-ath10k-ct-smallbuffers ath10k-firmware-qca988x-ct
TPLINK_HWID := 0x0
TPLINK_HWREV := 0
TPLINK_BOARD_ID := RE450-V2
LOADER_TYPE := elf
endef
@ -585,8 +579,6 @@ define Device/tplink_tl-wr902ac-v1
-swconfig -uboot-envtools
TPLINK_BOARD_ID := TL-WR902AC-V1
IMAGE_SIZE := 7360k
TPLINK_HWID := 0x0
TPLINK_HWREV := 0
SUPPORTED_DEVICES += tl-wr902ac-v1
endef
TARGET_DEVICES += tplink_tl-wr902ac-v1

View File

@ -179,6 +179,14 @@ define Device/ubnt_nanostation-ac-loco
endef
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
$(Device/ubnt-xw)
DEVICE_MODEL := Nanostation Loco M
@ -203,6 +211,14 @@ define Device/ubnt_nanostation-m-xw
endef
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
$(Device/ubnt-xm)
DEVICE_MODEL := Rocket-M

View File

@ -36,6 +36,11 @@ define Build/addpattern
-mv "$@.new" "$@"
endef
define Build/append-md5sum-bin
$(STAGING_DIR_HOST)/bin/mkhash md5 $@ | sed 's/../\\\\x&/g' |\
xargs echo -ne >> $@
endef
define Build/cybertan-trx
@echo -n '' > $@-empty.bin
-$(STAGING_DIR_HOST)/bin/trx -o $@.new \
@ -73,6 +78,17 @@ define Build/pisen_wmb001n-factory
rm -rf "$@.tmp"
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
KERNEL := kernel-bin | append-dtb | relocate-kernel | lzma
KERNEL_INITRAMFS := $$(KERNEL) | seama
@ -1046,6 +1062,7 @@ define Device/siemens_ws-ap3610
DEVICE_VENDOR := Siemens
DEVICE_MODEL := WS-AP3610
IMAGE_SIZE := 14336k
BLOCKSIZE := 256k
LOADER_TYPE := bin
LOADER_FLASH_OFFS := 0x82000
COMPILE := loader-$(1).bin
@ -1069,6 +1086,28 @@ define Device/sitecom_wlr-7100
endef
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
SOC := qca9558
DEVICE_VENDOR := Trendnet

View File

@ -66,6 +66,36 @@ define Device/tplink_tl-mr3420-v2
endef
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
$(Device/tplink-4m)
SOC := ar7240
@ -95,12 +125,21 @@ define Device/tplink_tl-wa850re-v2
DEVICE_VARIANT := v2
TPLINK_BOARD_ID := TLWA850REV2
TPLINK_HWID := 0x08500002
TPLINK_HWREV := 0x0
DEVICE_PACKAGES := rssileds
SUPPORTED_DEVICES += tl-wa850re-v2
endef
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
$(Device/tplink-4m)
SOC := ar9132

View File

@ -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

View File

@ -42,7 +42,11 @@ on,n150r)
;;
tplink,tl-mr3020-v1|\
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"
;;
tplink,tl-mr3420-v2|\

View File

@ -32,9 +32,13 @@ ath79_setup_interfaces()
tplink,tl-mr10u|\
tplink,tl-mr3020-v1|\
tplink,tl-mr3040-v2|\
tplink,tl-wa701nd-v1|\
tplink,tl-wa730re-v1|\
tplink,tl-wa801nd-v1|\
tplink,tl-wa830re-v1|\
tplink,tl-wa850re-v1|\
tplink,tl-wa850re-v2|\
tplink,tl-wa901nd-v1|\
tplink,tl-wa901nd-v2|\
tplink,tl-wr703n)
ucidef_set_interface_lan "eth0"

View File

@ -10,7 +10,11 @@ case "$FIRMWARE" in
"ath9k-eeprom-pci-0000:00:00.0.bin")
case $board in
buffalo,whr-g301n|\
tplink,tl-wa701nd-v1|\
tplink,tl-wa730re-v1|\
tplink,tl-wa801nd-v1|\
tplink,tl-wa830re-v1|\
tplink,tl-wa901nd-v1|\
tplink,tl-wr841-v5|\
tplink,tl-wr941-v4)
caldata_extract "art" 0x1000 0xeb8

View File

@ -76,7 +76,6 @@ CONFIG_CSRC_R4K=y
CONFIG_DMA_NONCOHERENT=y
CONFIG_DTC=y
CONFIG_EARLY_PRINTK=y
CONFIG_FIRMWARE_IN_KERNEL=y
CONFIG_FIXED_PHY=y
CONFIG_GENERIC_ATOMIC64=y
CONFIG_GENERIC_CLOCKEVENTS=y
@ -197,15 +196,12 @@ CONFIG_NO_GENERIC_PCI_IOPORT_MAP=y
# CONFIG_NO_IOPORT_MAP is not set
CONFIG_OF=y
CONFIG_OF_ADDRESS=y
CONFIG_OF_ADDRESS_PCI=y
CONFIG_OF_EARLY_FLATTREE=y
CONFIG_OF_FLATTREE=y
CONFIG_OF_GPIO=y
CONFIG_OF_IRQ=y
CONFIG_OF_MDIO=y
CONFIG_OF_NET=y
CONFIG_OF_PCI=y
CONFIG_OF_PCI_IRQ=y
CONFIG_PCI=y
# CONFIG_PCIEAER is not set
CONFIG_PCIEPORTBUS=y

View File

@ -594,6 +594,7 @@ CONFIG_BLOCK=y
# CONFIG_BONDING is not set
# CONFIG_BOOKE_WDT is not set
CONFIG_BOOKE_WDT_DEFAULT_TIMEOUT=3
# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
# CONFIG_BOOT_PRINTK_DELAY is not set
CONFIG_BOOT_RAW=y
CONFIG_BPF=y
@ -1073,6 +1074,9 @@ CONFIG_DEBUG_KERNEL=y
# CONFIG_DEBUG_UART_BCM63XX is not set
# CONFIG_DEBUG_VIRTUAL 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_WW_MUTEX_SLOWPATH is not set
# CONFIG_DEBUG_WX is not set
@ -1081,6 +1085,7 @@ CONFIG_DEBUG_KERNEL=y
CONFIG_DEFAULT_CUBIC=y
CONFIG_DEFAULT_DEADLINE=y
CONFIG_DEFAULT_HOSTNAME="(none)"
CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
CONFIG_DEFAULT_IOSCHED="deadline"
CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
# CONFIG_DEFAULT_NOOP is not set
@ -1516,6 +1521,10 @@ CONFIG_GACT_PROB=y
# CONFIG_GAMEPORT is not set
# CONFIG_GATEWORKS_GW16083 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_KERNEL 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_HASH is not set
# CONFIG_TEST_HEXDUMP is not set
# CONFIG_TEST_KASAN is not set
# CONFIG_TEST_KMOD is not set
# CONFIG_TEST_KSTRTOX is not set
# CONFIG_TEST_LIST_SORT is not set

View File

@ -617,6 +617,7 @@ CONFIG_BLOCK=y
# CONFIG_BONDING is not set
# CONFIG_BOOKE_WDT is not set
CONFIG_BOOKE_WDT_DEFAULT_TIMEOUT=3
# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
# CONFIG_BOOT_PRINTK_DELAY is not set
CONFIG_BOOT_RAW=y
CONFIG_BPF=y
@ -1131,6 +1132,9 @@ CONFIG_DEBUG_KERNEL=y
# CONFIG_DEBUG_UART_BCM63XX is not set
# CONFIG_DEBUG_VIRTUAL 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_WW_MUTEX_SLOWPATH is not set
# CONFIG_DEBUG_WX is not set
@ -1139,6 +1143,7 @@ CONFIG_DEBUG_KERNEL=y
CONFIG_DEFAULT_CUBIC=y
CONFIG_DEFAULT_DEADLINE=y
CONFIG_DEFAULT_HOSTNAME="(none)"
CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
CONFIG_DEFAULT_IOSCHED="deadline"
CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
# CONFIG_DEFAULT_NOOP is not set
@ -1549,7 +1554,6 @@ CONFIG_FILE_LOCKING=y
# CONFIG_FIREWIRE_NOSY is not set
# CONFIG_FIREWIRE_SERIAL is not set
# CONFIG_FIRMWARE_EDID is not set
# CONFIG_FIRMWARE_IN_KERNEL is not set
# CONFIG_FIRMWARE_MEMMAP is not set
# CONFIG_FIXED_PHY is not set
CONFIG_FLATMEM=y
@ -1605,6 +1609,8 @@ CONFIG_GACT_PROB=y
# CONFIG_GAMEPORT is not set
# CONFIG_GATEWORKS_GW16083 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_KERNEL 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_HEXDUMP is not set
# CONFIG_TEST_IDA is not set
# CONFIG_TEST_KASAN is not set
# CONFIG_TEST_KMOD is not set
# CONFIG_TEST_KSTRTOX 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_STRING_HELPERS is not set
# CONFIG_TEST_SYSCTL is not set
# CONFIG_TEST_UBSAN is not set
# CONFIG_TEST_UDELAY is not set
# CONFIG_TEST_USER_COPY is not set
# CONFIG_TEST_UUID is not set

View File

@ -87,8 +87,8 @@ Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
};
enum {
+ XT_CONNMARK_VALUE = BIT(0),
+ XT_CONNMARK_DSCP = BIT(1)
+ XT_CONNMARK_VALUE = (1 << 0),
+ XT_CONNMARK_DSCP = (1 << 1)
+};
+
+enum {

View File

@ -8,22 +8,17 @@ 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) },
@@ -976,6 +976,11 @@ static const struct flash_info spi_nor_i
/* 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
SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB)

View File

@ -8,22 +8,17 @@ 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) },
@@ -1017,6 +1017,11 @@ static const struct flash_info spi_nor_i
/* 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
SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB)

View File

@ -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

View File

@ -10,41 +10,18 @@ board_config_update
board=$(board_name)
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")
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")
ucidef_set_led_default "health" "health" "viper:white:health" "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")
ucidef_set_led_default "health" "health" "nsa310:green:sys" "1"
ucidef_set_led_usbhost "usb" "USB" "nsa310:green:usb"
ucidef_set_led_ataport "hdd" "HDD" "nsa310:green:hdd" "1"
ucidef_set_led_ataport "esata" "eSata" "nsa310:green:esata" "2"
;;
"zyxel,nsa325")
ucidef_set_led_default "health" "health" "nsa325:green:sys" "1"
ucidef_set_led_usbhost "usb" "USB" "nsa325:green:usb"
ucidef_set_led_ataport "hdd1" "HDD1" "nsa325:green:hdd1" "1"
ucidef_set_led_ataport "hdd2" "HDD2" "nsa325:green:hdd2" "2"

View File

@ -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
}

View File

@ -1,15 +1,38 @@
--- a/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)";
- 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";
+
+ aliases {
+ led-boot = &led_green_os;
+ led-failsafe = &led_red_os;
+ led-running = &led_green_os;
+ led-upgrade = &led_red_os;
+ };
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 {

View File

@ -1,6 +1,20 @@
--- a/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 {
bootargs = "console=ttyS0,115200n8 earlyprintk";
stdout-path = &uart0;
@ -9,7 +23,23 @@
};
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";
partition@0 {

View File

@ -1,6 +1,36 @@
--- a/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 {
label = "u-boot";

View File

@ -1,6 +1,40 @@
--- a/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 {
@ -22,7 +56,7 @@
reg = <0x400000 0x1C00000>;
};
};
@@ -211,7 +211,7 @@
@@ -211,7 +218,7 @@
};
&eth0 {

View File

@ -10,7 +10,7 @@
kirkwood-lsxhl.dtb \
--- /dev/null
+++ 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
+ *
@ -39,6 +39,10 @@
+ };
+
+ aliases {
+ led-boot = &led_power;
+ led-failsafe = &led_power;
+ led-running = &led_power;
+ led-upgrade = &led_power;
+ serial0 = &uart0;
+ };
+
@ -71,9 +75,10 @@
+ pinctrl-0 = < &pmx_led_green_power >;
+ pinctrl-names = "default";
+
+ green-power {
+ led_power: power {
+ label = "audi:green:power";
+ gpios = <&gpio0 7 GPIO_ACTIVE_HIGH>;
+ default-state = "on";
+ };
+ };
+

View File

@ -1,6 +1,29 @@
--- a/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";
#address-cells = <2>;
#size-cells = <0>;
@@ -163,22 +172,22 @@
@@ -163,22 +177,22 @@
};
partition@200000 {
@ -48,7 +71,7 @@
reg = <0x1EA0000 0x1760000>;
};
@@ -209,53 +218,6 @@
@@ -209,53 +223,6 @@
&mdio {
status = "okay";
@ -102,7 +125,7 @@
};
&uart0 {
@@ -274,10 +236,14 @@
@@ -274,10 +241,14 @@
};
/* 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