kernel: bump 5.4 to 5.4.95 (#6340)

This commit is contained in:
AmadeusGhost 2021-02-08 17:13:28 +08:00 committed by GitHub
parent fbdca3d67e
commit 5b1838d04d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
45 changed files with 172 additions and 170 deletions

View File

@ -8,11 +8,11 @@ endif
LINUX_VERSION-4.14 = .195
LINUX_VERSION-4.19 = .138
LINUX_VERSION-5.4 = .92
LINUX_VERSION-5.4 = .95
LINUX_KERNEL_HASH-4.14.195 = 394f28798670240baacd9e2cce521fbd79f8da5e1fc191695b0e11381445a021
LINUX_KERNEL_HASH-4.19.138 = d15c27d05f6c527269b75b30cc72972748e55720e7e00ad8abbaa4fe3b1d5e02
LINUX_KERNEL_HASH-5.4.92 = c0937ff98824c4b14cfea68a04340e0beb3c00f1cc02984daf2f3bdf542394fd
LINUX_KERNEL_HASH-5.4.95 = 030ae544f346bfa2ce619dd9e17e93d10ec393632d3b6d6cf5d1fc84b914d449
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))

View File

@ -12,7 +12,7 @@ include $(INCLUDE_DIR)/version.mk
include $(INCLUDE_DIR)/feeds.mk
PKG_NAME:=base-files
PKG_RELEASE:=224
PKG_RELEASE:=225
PKG_FLAGS:=nonshared
PKG_FILE_DEPENDS:=$(PLATFORM_DIR)/ $(GENERIC_PLATFORM_DIR)/base-files/

View File

@ -152,10 +152,26 @@ macaddr_geteui() {
echo ${mac:9:2}$sep${mac:12:2}$sep${mac:15:2}
}
macaddr_setbit_la() {
macaddr_setbit() {
local mac=$1
local bit=${2:-0}
printf "%02x:%s" $((0x${mac%%:*} | 0x02)) ${mac#*:}
[ $bit -gt 0 -a $bit -le 48 ] || return
printf "%012x" $(( 0x${mac//:/} | 2**(48-bit) )) | sed -e 's/\(.\{2\}\)/\1:/g' -e 's/:$//'
}
macaddr_unsetbit() {
local mac=$1
local bit=${2:-0}
[ $bit -gt 0 -a $bit -le 48 ] || return
printf "%012x" $(( 0x${mac//:/} & ~(2**(48-bit)) )) | sed -e 's/\(.\{2\}\)/\1:/g' -e 's/:$//'
}
macaddr_setbit_la() {
macaddr_setbit $1 7
}
macaddr_unsetbit_mc() {

View File

@ -14,6 +14,7 @@ PKG_RELEASE:=2
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/linux4sam/at91bootstrap.git
PKG_MIRROR_HASH:=06753d673756edc9753932db00f4e5b8c1f9fa7708337c4d6ce280573efb86b4
PKG_SOURCE_VERSION:=d96833a4b6680b237708eb4dc9f10708b9e709d8
PKG_BUILD_DIR = \
$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)

View File

@ -12,6 +12,7 @@ PKG_RELEASE:=2
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/linux4sam/u-boot-at91.git
PKG_MIRROR_HASH:=4f106d215c01c4d024c4612bbd3ef189188d19abc1ab2cc316b257d308534feb
PKG_SOURCE_VERSION:=0e1d1b6efb7f8e27c372279a906fcd2524df09da
include $(INCLUDE_DIR)/u-boot.mk

View File

@ -23,6 +23,7 @@ allnet,all-wap02860ac|\
arduino,yun|\
buffalo,bhr-4grv2|\
devolo,magic-2-wifi|\
engenius,eap1200h|\
engenius,eap300-v2|\
engenius,eap350-v1|\
engenius,eap600|\

View File

@ -1,64 +0,0 @@
From patchwork Fri Feb 7 09:53:35 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: 1190470
Date: Fri, 7 Feb 2020 11:53:35 +0200
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>,
Chuanhong Guo <gch981213@gmail.com>,
Eitan Cohen <eitan@neot-semadar.com>,
Ori Gofen <origofen@gmail.com>
Subject: [PATCH] serial: ar933x_uart: set UART_CS_{RX,TX}_READY_ORIDE
Message-ID: <20200207095335.GA179836@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
On AR934x this UART is usually not initialized by the bootloader
as it is only used as a secondary serial port while the primary
UART is a newly introduced NS16550-compatible.
In order to make use of the ar933x-uart on AR934x without RTS/CTS
hardware flow control, one needs to set the
UART_CS_{RX,TX}_READY_ORIDE bits as other than on AR933x where this
UART is used as primary/console, the bootloader on AR934x typically
doesn't set those bits.
Setting them explicitely on AR933x should not do any harm, so just
set them unconditionally.
Tested-by: Chuanhong Guo <gch981213@gmail.com>
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
---
drivers/tty/serial/ar933x_uart.c | 8 ++++++++
1 file changed, 8 insertions(+)
--- a/drivers/tty/serial/ar933x_uart.c
+++ b/drivers/tty/serial/ar933x_uart.c
@@ -290,6 +290,10 @@ static void ar933x_uart_set_termios(stru
ar933x_uart_rmw_set(up, AR933X_UART_CS_REG,
AR933X_UART_CS_TX_READY_ORIDE | AR933X_UART_CS_RX_READY_ORIDE);
+ /* enable RX and TX ready overide */
+ ar933x_uart_rmw_set(up, AR933X_UART_CS_REG,
+ AR933X_UART_CS_TX_READY_ORIDE | AR933X_UART_CS_RX_READY_ORIDE);
+
/* reenable the UART */
ar933x_uart_rmw(up, AR933X_UART_CS_REG,
AR933X_UART_CS_IF_MODE_M << AR933X_UART_CS_IF_MODE_S,
@@ -424,6 +428,10 @@ static int ar933x_uart_startup(struct ua
/* enable RX and TX ready overide */
ar933x_uart_rmw_set(up, AR933X_UART_CS_REG,
+ AR933X_UART_CS_TX_READY_ORIDE | AR933X_UART_CS_RX_READY_ORIDE);
+
+ /* enable RX and TX ready overide */
+ ar933x_uart_rmw_set(up, AR933X_UART_CS_REG,
AR933X_UART_CS_TX_READY_ORIDE | AR933X_UART_CS_RX_READY_ORIDE);
/* Enable RX interrupts */

View File

@ -160,7 +160,7 @@ v2: use bool to indicate ongoing half-duplex send, use it afterwards
}
static void ar933x_uart_break_ctl(struct uart_port *port, int break_state)
@@ -340,11 +397,20 @@ static void ar933x_uart_rx_chars(struct
@@ -336,11 +393,20 @@ static void ar933x_uart_rx_chars(struct
static void ar933x_uart_tx_chars(struct ar933x_uart_port *up)
{
struct circ_buf *xmit = &up->port.state->xmit;
@ -181,7 +181,7 @@ v2: use bool to indicate ongoing half-duplex send, use it afterwards
count = up->port.fifosize;
do {
unsigned int rdata;
@@ -372,8 +438,14 @@ static void ar933x_uart_tx_chars(struct
@@ -368,8 +434,14 @@ static void ar933x_uart_tx_chars(struct
if (uart_circ_chars_pending(xmit) < WAKEUP_CHARS)
uart_write_wakeup(&up->port);
@ -197,7 +197,7 @@ v2: use bool to indicate ongoing half-duplex send, use it afterwards
}
static irqreturn_t ar933x_uart_interrupt(int irq, void *dev_id)
@@ -435,8 +507,7 @@ static int ar933x_uart_startup(struct ua
@@ -427,8 +499,7 @@ static int ar933x_uart_startup(struct ua
AR933X_UART_CS_TX_READY_ORIDE | AR933X_UART_CS_RX_READY_ORIDE);
/* Enable RX interrupts */
@ -207,7 +207,7 @@ v2: use bool to indicate ongoing half-duplex send, use it afterwards
spin_unlock_irqrestore(&up->port.lock, flags);
@@ -519,6 +590,21 @@ static const struct uart_ops ar933x_uart
@@ -511,6 +582,21 @@ static const struct uart_ops ar933x_uart
.verify_port = ar933x_uart_verify_port,
};
@ -229,7 +229,7 @@ v2: use bool to indicate ongoing half-duplex send, use it afterwards
#ifdef CONFIG_SERIAL_AR933X_CONSOLE
static struct ar933x_uart_port *
ar933x_console_ports[CONFIG_SERIAL_AR933X_NR_UARTS];
@@ -688,6 +774,8 @@ static int ar933x_uart_probe(struct plat
@@ -680,6 +766,8 @@ static int ar933x_uart_probe(struct plat
goto err_disable_clk;
}
@ -238,7 +238,7 @@ v2: use bool to indicate ongoing half-duplex send, use it afterwards
port->mapbase = mem_res->start;
port->line = id;
port->irq = irq_res->start;
@@ -698,6 +786,7 @@ static int ar933x_uart_probe(struct plat
@@ -690,6 +778,7 @@ static int ar933x_uart_probe(struct plat
port->regshift = 2;
port->fifosize = AR933X_UART_FIFO_SIZE;
port->ops = &ar933x_uart_ops;
@ -246,7 +246,7 @@ v2: use bool to indicate ongoing half-duplex send, use it afterwards
baud = ar933x_uart_get_baud(port->uartclk, AR933X_UART_MAX_SCALE, 1);
up->min_baud = max_t(unsigned int, baud, AR933X_UART_MIN_BAUD);
@@ -705,6 +794,18 @@ static int ar933x_uart_probe(struct plat
@@ -697,6 +786,18 @@ static int ar933x_uart_probe(struct plat
baud = ar933x_uart_get_baud(port->uartclk, 0, AR933X_UART_MAX_STEP);
up->max_baud = min_t(unsigned int, baud, AR933X_UART_MAX_BAUD);

View File

@ -706,7 +706,7 @@
EXPORT_SYMBOL(xfrm_parse_spi);
--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
@@ -3972,14 +3972,16 @@ static bool tcp_parse_aligned_timestamp(
@@ -3975,14 +3975,16 @@ static bool tcp_parse_aligned_timestamp(
{
const __be32 *ptr = (const __be32 *)(th + 1);

View File

@ -33,7 +33,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
#define USB_VENDOR_ID_BELKIN 0x050d
#define USB_DEVICE_ID_FLIP_KVM 0x3201
@@ -1253,6 +1256,9 @@
@@ -1254,6 +1257,9 @@
#define USB_VENDOR_ID_XAT 0x2505
#define USB_DEVICE_ID_XAT_CSR 0x0220

View File

@ -19,7 +19,7 @@ Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
--- a/arch/arm64/mm/init.c
+++ b/arch/arm64/mm/init.c
@@ -187,7 +187,7 @@ static void __init zone_sizes_init(unsig
@@ -181,7 +181,7 @@ static void __init zone_sizes_init(unsig
unsigned long max_zone_pfns[MAX_NR_ZONES] = {0};
#ifdef CONFIG_ZONE_DMA32

View File

@ -18,16 +18,16 @@ Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
--- a/arch/arm64/mm/init.c
+++ b/arch/arm64/mm/init.c
@@ -56,7 +56,7 @@ EXPORT_SYMBOL(physvirt_offset);
struct page *vmemmap __ro_after_init;
EXPORT_SYMBOL(vmemmap);
@@ -50,7 +50,7 @@
s64 memstart_addr __ro_after_init = -1;
EXPORT_SYMBOL(memstart_addr);
-phys_addr_t arm64_dma_phys_limit __ro_after_init;
+phys_addr_t arm64_dma32_phys_limit __ro_after_init;
#ifdef CONFIG_KEXEC_CORE
/*
@@ -174,7 +174,7 @@ static void __init reserve_elfcorehdr(vo
@@ -168,7 +168,7 @@ static void __init reserve_elfcorehdr(vo
* currently assumes that for memory starting above 4G, 32-bit devices will
* use a DMA offset.
*/
@ -36,7 +36,7 @@ Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
{
phys_addr_t offset = memblock_start_of_DRAM() & GENMASK_ULL(63, 32);
return min(offset + (1ULL << 32), memblock_end_of_DRAM());
@@ -187,7 +187,7 @@ static void __init zone_sizes_init(unsig
@@ -181,7 +181,7 @@ static void __init zone_sizes_init(unsig
unsigned long max_zone_pfns[MAX_NR_ZONES] = {0};
#ifdef CONFIG_ZONE_DMA32
@ -45,7 +45,7 @@ Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
#endif
max_zone_pfns[ZONE_NORMAL] = max;
@@ -200,16 +200,16 @@ static void __init zone_sizes_init(unsig
@@ -194,16 +194,16 @@ static void __init zone_sizes_init(unsig
{
struct memblock_region *reg;
unsigned long zone_size[MAX_NR_ZONES], zhole_size[MAX_NR_ZONES];
@ -66,7 +66,7 @@ Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
memcpy(zhole_size, zone_size, sizeof(zhole_size));
@@ -221,14 +221,14 @@ static void __init zone_sizes_init(unsig
@@ -215,14 +215,14 @@ static void __init zone_sizes_init(unsig
continue;
#ifdef CONFIG_ZONE_DMA32
@ -85,7 +85,7 @@ Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
zhole_size[ZONE_NORMAL] -= normal_end - normal_start;
}
}
@@ -420,9 +420,9 @@ void __init arm64_memblock_init(void)
@@ -410,9 +410,9 @@ void __init arm64_memblock_init(void)
/* 4GB maximum for 32-bit only capable devices */
if (IS_ENABLED(CONFIG_ZONE_DMA32))
@ -97,7 +97,7 @@ Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
reserve_crashkernel();
@@ -430,7 +430,7 @@ void __init arm64_memblock_init(void)
@@ -420,7 +420,7 @@ void __init arm64_memblock_init(void)
high_memory = __va(memblock_end_of_DRAM() - 1) + 1;
@ -106,7 +106,7 @@ Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
}
void __init bootmem_init(void)
@@ -534,7 +534,7 @@ static void __init free_unused_memmap(vo
@@ -524,7 +524,7 @@ static void __init free_unused_memmap(vo
void __init mem_init(void)
{
if (swiotlb_force == SWIOTLB_FORCE ||

View File

@ -51,9 +51,9 @@ Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
#endif
--- a/arch/arm64/mm/init.c
+++ b/arch/arm64/mm/init.c
@@ -56,6 +56,13 @@ EXPORT_SYMBOL(physvirt_offset);
struct page *vmemmap __ro_after_init;
EXPORT_SYMBOL(vmemmap);
@@ -50,6 +50,13 @@
s64 memstart_addr __ro_after_init = -1;
EXPORT_SYMBOL(memstart_addr);
+/*
+ * We create both ZONE_DMA and ZONE_DMA32. ZONE_DMA covers the first 1G of
@ -65,7 +65,7 @@ Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
phys_addr_t arm64_dma32_phys_limit __ro_after_init;
#ifdef CONFIG_KEXEC_CORE
@@ -169,15 +176,16 @@ static void __init reserve_elfcorehdr(vo
@@ -163,15 +170,16 @@ static void __init reserve_elfcorehdr(vo
{
}
#endif /* CONFIG_CRASH_DUMP */
@ -88,7 +88,7 @@ Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
}
#ifdef CONFIG_NUMA
@@ -186,6 +194,9 @@ static void __init zone_sizes_init(unsig
@@ -180,6 +188,9 @@ static void __init zone_sizes_init(unsig
{
unsigned long max_zone_pfns[MAX_NR_ZONES] = {0};
@ -98,7 +98,7 @@ Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
#ifdef CONFIG_ZONE_DMA32
max_zone_pfns[ZONE_DMA32] = PFN_DOWN(arm64_dma32_phys_limit);
#endif
@@ -201,13 +212,18 @@ static void __init zone_sizes_init(unsig
@@ -195,13 +206,18 @@ static void __init zone_sizes_init(unsig
struct memblock_region *reg;
unsigned long zone_size[MAX_NR_ZONES], zhole_size[MAX_NR_ZONES];
unsigned long max_dma32 = min;
@ -119,7 +119,7 @@ Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
#endif
zone_size[ZONE_NORMAL] = max - max_dma32;
@@ -219,11 +235,17 @@ static void __init zone_sizes_init(unsig
@@ -213,11 +229,17 @@ static void __init zone_sizes_init(unsig
if (start >= max)
continue;
@ -140,7 +140,7 @@ Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
}
#endif
if (end > max_dma32) {
@@ -418,9 +440,11 @@ void __init arm64_memblock_init(void)
@@ -408,9 +430,11 @@ void __init arm64_memblock_init(void)
early_init_fdt_scan_reserved_mem();
@ -154,7 +154,7 @@ Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
else
arm64_dma32_phys_limit = PHYS_MASK + 1;
@@ -430,7 +454,7 @@ void __init arm64_memblock_init(void)
@@ -420,7 +444,7 @@ void __init arm64_memblock_init(void)
high_memory = __va(memblock_end_of_DRAM() - 1) + 1;
@ -163,7 +163,7 @@ Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
}
void __init bootmem_init(void)
@@ -534,7 +558,7 @@ static void __init free_unused_memmap(vo
@@ -524,7 +548,7 @@ static void __init free_unused_memmap(vo
void __init mem_init(void)
{
if (swiotlb_force == SWIOTLB_FORCE ||

View File

@ -50,7 +50,7 @@ Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
/*
* We need to be able to catch inadvertent references to memstart_addr
* that occur (potentially in generic code) before arm64_memblock_init()
@@ -440,8 +443,10 @@ void __init arm64_memblock_init(void)
@@ -430,8 +433,10 @@ void __init arm64_memblock_init(void)
early_init_fdt_scan_reserved_mem();

View File

@ -24,7 +24,7 @@ Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
--- a/arch/arm64/mm/init.c
+++ b/arch/arm64/mm/init.c
@@ -91,7 +91,7 @@ static void __init reserve_crashkernel(v
@@ -85,7 +85,7 @@ static void __init reserve_crashkernel(v
if (crash_base == 0) {
/* Current arm64 boot protocol requires 2MB alignment */
@ -33,7 +33,7 @@ Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
crash_size, SZ_2M);
if (crash_base == 0) {
pr_warn("cannot allocate crashkernel (size:0x%llx)\n",
@@ -459,7 +459,7 @@ void __init arm64_memblock_init(void)
@@ -449,7 +449,7 @@ void __init arm64_memblock_init(void)
high_memory = __va(memblock_end_of_DRAM() - 1) + 1;

View File

@ -50,7 +50,7 @@ Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
--- a/arch/arm64/mm/init.c
+++ b/arch/arm64/mm/init.c
@@ -214,15 +214,14 @@ static void __init zone_sizes_init(unsig
@@ -208,15 +208,14 @@ static void __init zone_sizes_init(unsig
{
struct memblock_region *reg;
unsigned long zone_size[MAX_NR_ZONES], zhole_size[MAX_NR_ZONES];
@ -69,7 +69,7 @@ Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
#endif
#ifdef CONFIG_ZONE_DMA32
max_dma32 = PFN_DOWN(arm64_dma32_phys_limit);
@@ -236,25 +235,23 @@ static void __init zone_sizes_init(unsig
@@ -230,25 +229,23 @@ static void __init zone_sizes_init(unsig
unsigned long start = memblock_region_memory_base_pfn(reg);
unsigned long end = memblock_region_memory_end_pfn(reg);

View File

@ -44,7 +44,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
device, it has to decide which ones to send first, which ones to
--- a/net/sched/sch_api.c
+++ b/net/sched/sch_api.c
@@ -2271,7 +2271,7 @@ static int __init pktsched_init(void)
@@ -2272,7 +2272,7 @@ static int __init pktsched_init(void)
return err;
}

View File

@ -136,7 +136,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
#include <net/protocol.h>
#include <net/dst.h>
@@ -545,6 +546,22 @@ skb_fail:
@@ -549,6 +550,22 @@ skb_fail:
}
EXPORT_SYMBOL(__napi_alloc_skb);

View File

@ -17,7 +17,7 @@ Signed-off-by: Florian Fainelli <florian@openwrt.org>
--- a/drivers/usb/host/ehci-hcd.c
+++ b/drivers/usb/host/ehci-hcd.c
@@ -639,7 +639,7 @@ static int ehci_run (struct usb_hcd *hcd
@@ -651,7 +651,7 @@ static int ehci_run (struct usb_hcd *hcd
"USB %x.%x started, EHCI %x.%02x%s\n",
((ehci->sbrn & 0xf0)>>4), (ehci->sbrn & 0x0f),
temp >> 8, temp & 0xff,
@ -28,7 +28,7 @@ Signed-off-by: Florian Fainelli <florian@openwrt.org>
&ehci->regs->intr_enable); /* Turn On Interrupts */
--- a/drivers/usb/host/ehci-hub.c
+++ b/drivers/usb/host/ehci-hub.c
@@ -640,7 +640,7 @@ ehci_hub_status_data (struct usb_hcd *hc
@@ -643,7 +643,7 @@ ehci_hub_status_data (struct usb_hcd *hc
* always set, seem to clear PORT_OCC and PORT_CSC when writing to
* PORT_POWER; that's surprising, but maybe within-spec.
*/
@ -37,7 +37,7 @@ Signed-off-by: Florian Fainelli <florian@openwrt.org>
mask = PORT_CSC | PORT_PEC | PORT_OCC;
else
mask = PORT_CSC | PORT_PEC;
@@ -1010,7 +1010,7 @@ int ehci_hub_control(
@@ -1013,7 +1013,7 @@ int ehci_hub_control(
if (temp & PORT_PEC)
status |= USB_PORT_STAT_C_ENABLE << 16;

View File

@ -267,7 +267,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
/* Some drivers may have called napi_schedule
* prior to exhausting their budget.
@@ -10265,6 +10324,10 @@ static int __init net_dev_init(void)
@@ -10270,6 +10329,10 @@ static int __init net_dev_init(void)
sd->backlog.weight = weight_p;
}

View File

@ -27,10 +27,22 @@ boot() {
;;
zyxel,nsa310b)
path_to_hwmon='/sys/devices/platform/ocp@f1000000/f1011000.i2c/i2c-0/0-002e/hwmon/hwmon0'
echo 2 > "$path_to_hwmon/pwm1_enable" # fan is on pwm1
echo 1 > "$path_to_hwmon/pwm1_auto_channels" # temp1 is the only one that changes
echo 23000 > "$path_to_hwmon/temp1_auto_temp_min"
echo 43000 > "$path_to_hwmon/temp1_auto_temp_max" # next step is 49600 millicelsius, or 50 celsius, 43 celsius is better
# use the max. value of (temp1) OR (temp2) OR (temp3) as an input
# for the PWM of the cooling fan
echo 123 > "$path_to_hwmon/pwm1_auto_channels"
# Temperature sensor #1 placed on mainboard
echo 30000 > "$path_to_hwmon/temp1_auto_temp_min"
echo 49600 > "$path_to_hwmon/temp1_auto_temp_max"
# Temperature sensor #2 placed on mainboard
# range: 0 to 127000 in steps of 1000 [millicelsius]
echo 30000 > "$path_to_hwmon/temp2_auto_temp_min"
# range: 0 to 127000 in steps of ???? [millicelsius]
echo 49600 > "$path_to_hwmon/temp2_auto_temp_max"
# Temperature sensor #3 placed close to a chipset
# range: 0 to 60000 in steps of 1000 [millicelsius]
echo 23000 > "$path_to_hwmon/temp3_auto_temp_min"
# pre-defined steps: 103000, 122000, 143300, 170000 in [millicelsius]
echo 103000 > "$path_to_hwmon/temp3_auto_temp_max"
;;
esac
}

View File

@ -133,12 +133,14 @@ CONFIG_GENERIC_IRQ_SHOW=y
CONFIG_GENERIC_IRQ_SHOW_LEVEL=y
CONFIG_GENERIC_PCI_IOMAP=y
CONFIG_GENERIC_PHY=y
CONFIG_GENERIC_PINCONF=y
CONFIG_GENERIC_SCHED_CLOCK=y
CONFIG_GENERIC_SMP_IDLE_THREAD=y
CONFIG_GENERIC_STRNCPY_FROM_USER=y
CONFIG_GENERIC_STRNLEN_USER=y
CONFIG_GLOB=y
CONFIG_GPIOLIB=y
CONFIG_GPIOLIB_IRQCHIP=y
CONFIG_GPIO_MVEBU=y
CONFIG_GPIO_SYSFS=y
CONFIG_GRO_CELLS=y

View File

@ -24,7 +24,7 @@ Signed-off-by: Madalin Bucur <madalin.bucur@freescale.com>
--- a/net/core/skbuff.c
+++ b/net/core/skbuff.c
@@ -941,6 +941,32 @@ void napi_consume_skb(struct sk_buff *sk
@@ -945,6 +945,32 @@ void napi_consume_skb(struct sk_buff *sk
}
EXPORT_SYMBOL(napi_consume_skb);

View File

@ -32,7 +32,7 @@ Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
+ a specific device.
--- a/drivers/base/core.c
+++ b/drivers/base/core.c
@@ -1318,6 +1318,34 @@ static ssize_t online_store(struct devic
@@ -1333,6 +1333,34 @@ static ssize_t online_store(struct devic
}
static DEVICE_ATTR_RW(online);
@ -67,7 +67,7 @@ Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
int device_add_groups(struct device *dev, const struct attribute_group **groups)
{
return sysfs_create_groups(&dev->kobj, groups);
@@ -1489,8 +1517,20 @@ static int device_add_attrs(struct devic
@@ -1504,8 +1532,20 @@ static int device_add_attrs(struct devic
goto err_remove_dev_groups;
}
@ -88,7 +88,7 @@ Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
err_remove_dev_groups:
device_remove_groups(dev, dev->groups);
err_remove_type_groups:
@@ -1508,6 +1548,8 @@ static void device_remove_attrs(struct d
@@ -1523,6 +1563,8 @@ static void device_remove_attrs(struct d
struct class *class = dev->class;
const struct device_type *type = dev->type;

View File

@ -14,7 +14,7 @@ Signed-off-by: Poonam Aggrwal <poonam.aggrwal@nxp.com>
--- a/arch/arm64/mm/init.c
+++ b/arch/arm64/mm/init.c
@@ -416,6 +416,8 @@ void __init arm64_memblock_init(void)
@@ -406,6 +406,8 @@ void __init arm64_memblock_init(void)
initrd_end = initrd_start + phys_initrd_size;
}
@ -23,7 +23,7 @@ Signed-off-by: Poonam Aggrwal <poonam.aggrwal@nxp.com>
early_init_fdt_scan_reserved_mem();
/* 4GB maximum for 32-bit only capable devices */
@@ -426,8 +428,6 @@ void __init arm64_memblock_init(void)
@@ -416,8 +418,6 @@ void __init arm64_memblock_init(void)
reserve_crashkernel();

View File

@ -287,7 +287,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
}
if (netif_is_lag_master(info->upper_dev)) {
if (info->linking)
@@ -2011,6 +2034,7 @@ int ocelot_probe_port(struct ocelot *oce
@@ -2009,6 +2032,7 @@ int ocelot_probe_port(struct ocelot *oce
{
struct ocelot_port *ocelot_port;
struct net_device *dev;
@ -295,7 +295,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
int err;
dev = alloc_etherdev(sizeof(struct ocelot_port));
@@ -2046,7 +2070,15 @@ int ocelot_probe_port(struct ocelot *oce
@@ -2044,7 +2068,15 @@ int ocelot_probe_port(struct ocelot *oce
}
/* Basic L2 initialization */

View File

@ -231,7 +231,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
info->upper_dev);
}
break;
@@ -2140,7 +2133,7 @@ int ocelot_probe_port(struct ocelot *oce
@@ -2138,7 +2131,7 @@ int ocelot_probe_port(struct ocelot *oce
REW_PORT_VLAN_CFG, port);
/* Enable vcap lookups */

View File

@ -707,7 +707,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
}
if (netif_is_lag_master(info->upper_dev)) {
if (info->linking)
@@ -2084,21 +2110,23 @@ int ocelot_probe_port(struct ocelot *oce
@@ -2082,21 +2108,23 @@ int ocelot_probe_port(struct ocelot *oce
void __iomem *regs,
struct phy_device *phy)
{

View File

@ -15,7 +15,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
--- a/drivers/net/ethernet/mscc/ocelot.c
+++ b/drivers/net/ethernet/mscc/ocelot.c
@@ -2137,6 +2137,28 @@ static int ocelot_init_timestamp(struct
@@ -2135,6 +2135,28 @@ static int ocelot_init_timestamp(struct
return 0;
}
@ -44,7 +44,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
int ocelot_probe_port(struct ocelot *ocelot, u8 port,
void __iomem *regs,
struct phy_device *phy)
@@ -2144,7 +2166,6 @@ int ocelot_probe_port(struct ocelot *oce
@@ -2142,7 +2164,6 @@ int ocelot_probe_port(struct ocelot *oce
struct ocelot_port_private *priv;
struct ocelot_port *ocelot_port;
struct net_device *dev;
@ -52,7 +52,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
int err;
dev = alloc_etherdev(sizeof(struct ocelot_port_private));
@@ -2172,32 +2193,14 @@ int ocelot_probe_port(struct ocelot *oce
@@ -2170,32 +2191,14 @@ int ocelot_probe_port(struct ocelot *oce
ocelot_mact_learn(ocelot, PGID_CPU, dev->dev_addr, ocelot_port->pvid,
ENTRYTYPE_LOCKED);

View File

@ -17,7 +17,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
--- a/drivers/net/ethernet/mscc/ocelot.c
+++ b/drivers/net/ethernet/mscc/ocelot.c
@@ -2247,6 +2247,7 @@ int ocelot_init(struct ocelot *ocelot)
@@ -2245,6 +2245,7 @@ int ocelot_init(struct ocelot *ocelot)
if (!ocelot->stats_queue)
return -ENOMEM;

View File

@ -32,7 +32,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
/* Set vlan ingress filter mask to all ports but the CPU port by
* default.
*/
@@ -2228,11 +2222,52 @@ int ocelot_probe_port(struct ocelot *oce
@@ -2226,11 +2220,52 @@ int ocelot_probe_port(struct ocelot *oce
}
EXPORT_SYMBOL(ocelot_probe_port);
@ -87,7 +87,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
ocelot->lags = devm_kcalloc(ocelot->dev, ocelot->num_phys_ports,
sizeof(u32), GFP_KERNEL);
@@ -2312,13 +2347,6 @@ int ocelot_init(struct ocelot *ocelot)
@@ -2310,13 +2345,6 @@ int ocelot_init(struct ocelot *ocelot)
ocelot_write_rix(ocelot, 0, ANA_PGID_PGID, PGID_SRC + port);
}
@ -101,7 +101,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
/* Allow broadcast MAC frames. */
for (i = ocelot->num_phys_ports + 1; i < PGID_CPU; i++) {
u32 val = ANA_PGID_PGID_PGID(GENMASK(ocelot->num_phys_ports - 1, 0));
@@ -2331,13 +2359,6 @@ int ocelot_init(struct ocelot *ocelot)
@@ -2329,13 +2357,6 @@ int ocelot_init(struct ocelot *ocelot)
ocelot_write_rix(ocelot, 0, ANA_PGID_PGID, PGID_MCIPV4);
ocelot_write_rix(ocelot, 0, ANA_PGID_PGID, PGID_MCIPV6);

View File

@ -98,7 +98,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
}
static void ocelot_port_adjust_link(struct net_device *dev)
@@ -2145,11 +2104,53 @@ static int ocelot_init_timestamp(struct
@@ -2143,11 +2102,53 @@ static int ocelot_init_timestamp(struct
static void ocelot_init_port(struct ocelot *ocelot, int port)
{
struct ocelot_port *ocelot_port = ocelot->ports[port];

View File

@ -20,7 +20,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
--- a/drivers/net/ethernet/mscc/ocelot.c
+++ b/drivers/net/ethernet/mscc/ocelot.c
@@ -2101,11 +2101,32 @@ static int ocelot_init_timestamp(struct
@@ -2099,11 +2099,32 @@ static int ocelot_init_timestamp(struct
return 0;
}
@ -54,7 +54,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
INIT_LIST_HEAD(&ocelot_port->skbs);
/* Basic L2 initialization */
@@ -2126,8 +2147,7 @@ static void ocelot_init_port(struct ocel
@@ -2124,8 +2145,7 @@ static void ocelot_init_port(struct ocel
DEV_MAC_HDX_CFG);
/* Set Max Length and maximum tags allowed */
@ -64,7 +64,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
ocelot_port_writel(ocelot_port, DEV_MAC_TAGS_CFG_TAG_ID(ETH_P_8021AD) |
DEV_MAC_TAGS_CFG_VLAN_AWR_ENA |
DEV_MAC_TAGS_CFG_VLAN_LEN_AWR_ENA,
@@ -2137,20 +2157,6 @@ static void ocelot_init_port(struct ocel
@@ -2135,20 +2155,6 @@ static void ocelot_init_port(struct ocel
ocelot_port_writel(ocelot_port, 0, DEV_MAC_FC_MAC_HIGH_CFG);
ocelot_port_writel(ocelot_port, 0, DEV_MAC_FC_MAC_LOW_CFG);

View File

@ -22,7 +22,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
--- a/drivers/net/ethernet/mscc/ocelot.c
+++ b/drivers/net/ethernet/mscc/ocelot.c
@@ -2234,9 +2234,18 @@ void ocelot_set_cpu_port(struct ocelot *
@@ -2232,9 +2232,18 @@ void ocelot_set_cpu_port(struct ocelot *
* Only one port can be an NPI at the same time.
*/
if (cpu < ocelot->num_phys_ports) {

View File

@ -20,7 +20,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
--- a/drivers/net/ethernet/mscc/ocelot.c
+++ b/drivers/net/ethernet/mscc/ocelot.c
@@ -2273,6 +2273,14 @@ int ocelot_init(struct ocelot *ocelot)
@@ -2271,6 +2271,14 @@ int ocelot_init(struct ocelot *ocelot)
int i, ret;
u32 port;

View File

@ -329,7 +329,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
static void ocelot_set_aggr_pgids(struct ocelot *ocelot)
{
@@ -2123,7 +2136,7 @@ static void ocelot_port_set_mtu(struct o
@@ -2121,7 +2134,7 @@ static void ocelot_port_set_mtu(struct o
ocelot_write(ocelot, ocelot_wm_enc(atop_wm), SYS_ATOP_TOT_CFG);
}
@ -338,7 +338,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
{
struct ocelot_port *ocelot_port = ocelot->ports[port];
@@ -2170,6 +2183,7 @@ static void ocelot_init_port(struct ocel
@@ -2168,6 +2181,7 @@ static void ocelot_init_port(struct ocel
/* Enable vcap lookups */
ocelot_vcap_enable(ocelot, port);
}

View File

@ -96,7 +96,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
}
}
EXPORT_SYMBOL(ocelot_get_txtstamp);
@@ -2210,7 +2201,7 @@ void ocelot_init_port(struct ocelot *oce
@@ -2208,7 +2199,7 @@ void ocelot_init_port(struct ocelot *oce
{
struct ocelot_port *ocelot_port = ocelot->ports[port];
@ -105,7 +105,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
/* Basic L2 initialization */
@@ -2495,9 +2486,7 @@ EXPORT_SYMBOL(ocelot_init);
@@ -2493,9 +2484,7 @@ EXPORT_SYMBOL(ocelot_init);
void ocelot_deinit(struct ocelot *ocelot)
{
@ -115,7 +115,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
int i;
cancel_delayed_work(&ocelot->stats_work);
@@ -2509,14 +2498,7 @@ void ocelot_deinit(struct ocelot *ocelot
@@ -2507,14 +2496,7 @@ void ocelot_deinit(struct ocelot *ocelot
for (i = 0; i < ocelot->num_phys_ports; i++) {
port = ocelot->ports[i];

View File

@ -41,7 +41,7 @@ Signed-off-by: Xiaoliang Yang <xiaoliang.yang_1@nxp.com>
ocelot_write_rix(ocelot, val, ANA_PGID_PGID, i);
__dev_mc_sync(dev, ocelot_mc_sync, ocelot_mc_unsync);
@@ -2412,10 +2412,11 @@ int ocelot_init(struct ocelot *ocelot)
@@ -2410,10 +2410,11 @@ int ocelot_init(struct ocelot *ocelot)
SYS_FRM_AGING_MAX_AGE(307692), SYS_FRM_AGING);
/* Setup flooding PGIDs */

View File

@ -14,7 +14,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
--- a/drivers/net/ethernet/mscc/ocelot.c
+++ b/drivers/net/ethernet/mscc/ocelot.c
@@ -2342,6 +2342,20 @@ void ocelot_set_cpu_port(struct ocelot *
@@ -2340,6 +2340,20 @@ void ocelot_set_cpu_port(struct ocelot *
}
EXPORT_SYMBOL(ocelot_set_cpu_port);
@ -35,7 +35,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
int ocelot_init(struct ocelot *ocelot)
{
char queue_name[32];
@@ -2479,6 +2493,13 @@ int ocelot_init(struct ocelot *ocelot)
@@ -2477,6 +2491,13 @@ int ocelot_init(struct ocelot *ocelot)
"Timestamp initialization failed\n");
return ret;
}
@ -49,7 +49,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
}
return 0;
@@ -2493,6 +2514,8 @@ void ocelot_deinit(struct ocelot *ocelot
@@ -2491,6 +2512,8 @@ void ocelot_deinit(struct ocelot *ocelot
cancel_delayed_work(&ocelot->stats_work);
destroy_workqueue(ocelot->stats_queue);
mutex_destroy(&ocelot->stats_lock);

View File

@ -128,7 +128,7 @@ Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
--- a/drivers/net/ethernet/mscc/ocelot.c
+++ b/drivers/net/ethernet/mscc/ocelot.c
@@ -2296,6 +2296,18 @@ void ocelot_set_cpu_port(struct ocelot *
@@ -2294,6 +2294,18 @@ void ocelot_set_cpu_port(struct ocelot *
enum ocelot_tag_prefix injection,
enum ocelot_tag_prefix extraction)
{

View File

@ -163,7 +163,7 @@ Signed-off-by: Peter Chen <peter.chen@nxp.com>
--- a/drivers/usb/host/ehci-hcd.c
+++ b/drivers/usb/host/ehci-hcd.c
@@ -1233,6 +1233,10 @@ static const struct hc_driver ehci_hc_dr
@@ -1245,6 +1245,10 @@ static const struct hc_driver ehci_hc_dr
* device support
*/
.free_dev = ehci_remove_device,
@ -176,7 +176,7 @@ Signed-off-by: Peter Chen <peter.chen@nxp.com>
void ehci_init_driver(struct hc_driver *drv,
--- a/drivers/usb/host/ehci-hub.c
+++ b/drivers/usb/host/ehci-hub.c
@@ -724,145 +724,6 @@ ehci_hub_descriptor (
@@ -727,145 +727,6 @@ ehci_hub_descriptor (
}
/*-------------------------------------------------------------------------*/

View File

@ -42,7 +42,7 @@ Signed-off-by: Peter Chen <peter.chen@nxp.com>
retval = xhci_enter_test_mode(xhci, test_mode, wIndex,
--- a/drivers/usb/host/xhci-ring.c
+++ b/drivers/usb/host/xhci-ring.c
@@ -3580,6 +3580,129 @@ int xhci_queue_ctrl_tx(struct xhci_hcd *
@@ -3582,6 +3582,129 @@ int xhci_queue_ctrl_tx(struct xhci_hcd *
return 0;
}

View File

@ -50,31 +50,30 @@
};
thermal-zones {
chassis-thermal {
hdd-thermal {
polling-delay = <20000>;
polling-delay-passive = <2000>;
thermal-sensors = <&hdd0_temp>, <&hdd1_temp>;
coefficients = <1 1>;
thermal-sensors = <&hdd0_temp>; /* only one drivetemp sensor is supported */
trips {
chassis_alert1: chassis-alert1 {
hdd_alert1: trip1 {
temperature = <36000>;
hysteresis = <2000>;
type = "active";
};
chassis_alert2: chassis-alert2 {
temperature = <46000>;
hdd_alert2: trip2 {
temperature = <44000>;
hysteresis = <2000>;
type = "active";
};
chassis_alert3: chassis-alert3 {
temperature = <56000>;
hdd_alert3: trip3 {
temperature = <52000>;
hysteresis = <2000>;
type = "passive";
};
chassis_crit: chassis-crit {
temperature = <66000>;
hdd_crit: trip4 {
temperature = <60000>;
hysteresis = <2000>;
type = "critical";
};
@ -82,19 +81,48 @@
cooling-maps {
map1 {
trip = <&chassis_alert1>;
trip = <&hdd_alert1>;
cooling-device = <&system_fan THERMAL_NO_LIMIT 1>;
};
map2 {
trip = <&chassis_alert2>;
trip = <&hdd_alert2>;
cooling-device = <&system_fan 2 2>;
};
map3 {
trip = <&chassis_alert3>;
trip = <&hdd_alert3>;
cooling-device = <&system_fan 3 THERMAL_NO_LIMIT>;
};
};
};
ethphy-thermal {
polling-delay = <20000>;
polling-delay-passive = <2000>;
thermal-sensors = <&ethphy0>;
trips {
ethphy_alert1: trip1 {
temperature = <65000>;
hysteresis = <4000>;
type = "passive";
};
ethphy_crit: trip2 {
temperature = <100000>;
hysteresis = <2000>;
type = "critical";
};
};
cooling-maps {
map1 {
trip = <&ethphy_alert1>;
cooling-device = <&system_fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
};
};
};
};
gpio_keys {
@ -243,6 +271,7 @@
marvell,reg-init = <0x3 0x10 0x1 0x1991>, /* LED function */
<0x3 0x11 0x1 0x4401>, /* LED polarity */
<0x3 0x12 0x1 0x4905>; /* LED timer */
#thermal-sensor-cells = <0>;
};
};

View File

@ -20,7 +20,7 @@ Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
--- a/drivers/gpio/gpio-mvebu.c
+++ b/drivers/gpio/gpio-mvebu.c
@@ -1253,7 +1253,7 @@ static int mvebu_gpio_probe(struct platf
@@ -1248,7 +1248,7 @@ static int mvebu_gpio_probe(struct platf
* pins.
*/
for (i = 0; i < 4; i++) {

View File

@ -19,6 +19,13 @@ rockchip_setup_interfaces()
esac
}
nanopi_generate_mac()
{
local sd_hash=$(sha256sum /sys/devices/platform/*.dwmmc/mmc_host/mmc0/mmc0:*/cid)
local mac_base=$(macaddr_canonicalize "$(echo "${sd_hash}" | dd bs=1 count=12 2>/dev/null)")
echo "$(macaddr_unsetbit_mc "$(macaddr_setbit_la "${mac_base}")")"
}
rockchip_setup_macs()
{
local board="$1"
@ -27,14 +34,11 @@ rockchip_setup_macs()
local label_mac=""
case "$board" in
friendlyarm,nanopi-r2s)
wan_mac=$(macaddr_random)
lan_mac=$(macaddr_add "$wan_mac" +1)
;;
friendlyarm,nanopi-r2s|\
friendlyarm,nanopi-r4s-1gb|\
friendlyarm,nanopi-r4s-4gb)
lan_mac=$(cat /sys/class/net/eth1/address)
wan_mac=$(macaddr_random)
wan_mac=$(nanopi_generate_mac)
lan_mac=$(macaddr_add "$wan_mac" +1)
;;
esac