From 5b1838d04ddee32c140e148de2e33921b2f8aadb Mon Sep 17 00:00:00 2001 From: AmadeusGhost <42570690+AmadeusGhost@users.noreply.github.com> Date: Mon, 8 Feb 2021 17:13:28 +0800 Subject: [PATCH] kernel: bump 5.4 to 5.4.95 (#6340) --- include/kernel-version.mk | 4 +- package/base-files/Makefile | 2 +- .../base-files/files/lib/functions/system.sh | 20 +++++- package/boot/at91bootstrap/Makefile | 1 + package/boot/uboot-at91/Makefile | 1 + package/boot/uboot-envtools/files/ath79 | 1 + ...uart-set-UART_CS_-RX-TX-_READY_ORIDE.patch | 64 ------------------- ...61-tty-serial-ar933x-uart-rs485-gpio.patch | 14 ++-- .../910-unaligned_access_hacks.patch | 2 +- ...ce-quirks-for-Freeway-Airmouse-T3-an.patch | 2 +- ...64_dma_phys_limit-instead-of-calling.patch | 2 +- ...iables-used-to-calculate-ZONE_DMA32-.patch | 20 +++--- ...m64-use-both-ZONE_DMA-and-ZONE_DMA32.patch | 20 +++--- ...n-ARCH_ZONE_DMA_BITS-into-a-variable.patch | 2 +- ...ve-CMA-and-crashkernel-in-ZONE_DMA32.patch | 4 +- ...tialisation-of-DMA-zones-on-non-NUMA.patch | 4 +- .../661-use_fq_codel_by_default.patch | 2 +- .../generic/hack-5.4/721-phy_packets.patch | 2 +- .../pending-5.4/110-ehci_hcd_ignore_oc.patch | 6 +- ...dd-support-for-threaded-NAPI-polling.patch | 2 +- .../base-files/etc/init.d/hwmon_fancontrol | 20 ++++-- target/linux/kirkwood/config-5.4 | 2 + .../303-core-0001-net-readd-skb_recycle.patch | 2 +- ...-sysfs-entries-for-suppliers-and-con.patch | 6 +- ...rehdr-reservation-early-for-crash-du.patch | 4 +- ...t-break-apart-ocelot_vlan_port_apply.patch | 4 +- ...refactor-struct-ocelot_port-out-of-f.patch | 2 +- ...separate-net_device-related-items-ou.patch | 2 +- ...move-port-initialization-into-separa.patch | 6 +- ...initialize-list-of-multicast-address.patch | 2 +- ...split-assignment-of-the-cpu-port-int.patch | 6 +- ...move-invariant-configs-out-of-adjust.patch | 2 +- ...create-a-helper-for-changing-the-por.patch | 6 +- ...adjust-MTU-on-the-CPU-port-in-NPI-mo.patch | 2 +- ...separate-the-implementation-of-switc.patch | 2 +- ...publish-structure-definitions-to-inc.patch | 4 +- ...t-use-skb-queue-instead-of-skbs-list.patch | 6 +- ...scc-ocelot-tsn-configuration-support.patch | 2 +- ...ocelot-add-VCAP-IS2-rule-to-trap-PTP.patch | 6 +- ...Workaround-to-allow-traffic-to-CPU-i.patch | 2 +- ...move-EH-SINGLE_STEP_SET_FEATURE-impl.patch | 4 +- ...host-xhci-add-EH-SINGLE_STEP_SET_FEA.patch | 2 +- .../boot/dts/armada-370-buffalo-ls421de.dts | 55 ++++++++++++---- ...avoid_error_message_for_optional_IRQ.patch | 2 +- .../armv8/base-files/etc/board.d/02_network | 16 +++-- 45 files changed, 172 insertions(+), 170 deletions(-) delete mode 100644 target/linux/ath79/patches-5.4/0060-serial-ar933x_uart-set-UART_CS_-RX-TX-_READY_ORIDE.patch diff --git a/include/kernel-version.mk b/include/kernel-version.mk index 8f9984ce5..e49324093 100644 --- a/include/kernel-version.mk +++ b/include/kernel-version.mk @@ -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))))))) diff --git a/package/base-files/Makefile b/package/base-files/Makefile index d32bae863..7e0d34170 100644 --- a/package/base-files/Makefile +++ b/package/base-files/Makefile @@ -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/ diff --git a/package/base-files/files/lib/functions/system.sh b/package/base-files/files/lib/functions/system.sh index b01e24f0a..d968ec100 100644 --- a/package/base-files/files/lib/functions/system.sh +++ b/package/base-files/files/lib/functions/system.sh @@ -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() { diff --git a/package/boot/at91bootstrap/Makefile b/package/boot/at91bootstrap/Makefile index b0d466f7b..f66472fa9 100644 --- a/package/boot/at91bootstrap/Makefile +++ b/package/boot/at91bootstrap/Makefile @@ -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) diff --git a/package/boot/uboot-at91/Makefile b/package/boot/uboot-at91/Makefile index f2ad9562a..a8a71239a 100644 --- a/package/boot/uboot-at91/Makefile +++ b/package/boot/uboot-at91/Makefile @@ -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 diff --git a/package/boot/uboot-envtools/files/ath79 b/package/boot/uboot-envtools/files/ath79 index 4b8476681..abcb99663 100644 --- a/package/boot/uboot-envtools/files/ath79 +++ b/package/boot/uboot-envtools/files/ath79 @@ -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|\ diff --git a/target/linux/ath79/patches-5.4/0060-serial-ar933x_uart-set-UART_CS_-RX-TX-_READY_ORIDE.patch b/target/linux/ath79/patches-5.4/0060-serial-ar933x_uart-set-UART_CS_-RX-TX-_READY_ORIDE.patch deleted file mode 100644 index 30828d693..000000000 --- a/target/linux/ath79/patches-5.4/0060-serial-ar933x_uart-set-UART_CS_-RX-TX-_READY_ORIDE.patch +++ /dev/null @@ -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 -X-Patchwork-Id: 1190470 -Date: Fri, 7 Feb 2020 11:53:35 +0200 -From: Daniel Golle -To: linux-serial@vger.kernel.org, linux-kernel@vger.kernel.org -Cc: Greg Kroah-Hartman , - Jiri Slaby , - Chuanhong Guo , - Eitan Cohen , - Ori Gofen -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: -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 -Signed-off-by: Daniel Golle ---- - 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 */ diff --git a/target/linux/ath79/patches-5.4/0061-tty-serial-ar933x-uart-rs485-gpio.patch b/target/linux/ath79/patches-5.4/0061-tty-serial-ar933x-uart-rs485-gpio.patch index fda91bfe7..59c46d507 100644 --- a/target/linux/ath79/patches-5.4/0061-tty-serial-ar933x-uart-rs485-gpio.patch +++ b/target/linux/ath79/patches-5.4/0061-tty-serial-ar933x-uart-rs485-gpio.patch @@ -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); diff --git a/target/linux/ath79/patches-5.4/910-unaligned_access_hacks.patch b/target/linux/ath79/patches-5.4/910-unaligned_access_hacks.patch index 923eac92f..c7bcc2937 100644 --- a/target/linux/ath79/patches-5.4/910-unaligned_access_hacks.patch +++ b/target/linux/ath79/patches-5.4/910-unaligned_access_hacks.patch @@ -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); diff --git a/target/linux/bcm27xx/patches-5.4/950-0283-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch b/target/linux/bcm27xx/patches-5.4/950-0283-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch index 2f8964a82..ee886e31a 100644 --- a/target/linux/bcm27xx/patches-5.4/950-0283-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch +++ b/target/linux/bcm27xx/patches-5.4/950-0283-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch @@ -33,7 +33,7 @@ Signed-off-by: Jonathan Bell #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 diff --git a/target/linux/bcm27xx/patches-5.4/950-0440-arm64-mm-use-arm64_dma_phys_limit-instead-of-calling.patch b/target/linux/bcm27xx/patches-5.4/950-0440-arm64-mm-use-arm64_dma_phys_limit-instead-of-calling.patch index a90e7f858..c697494f8 100644 --- a/target/linux/bcm27xx/patches-5.4/950-0440-arm64-mm-use-arm64_dma_phys_limit-instead-of-calling.patch +++ b/target/linux/bcm27xx/patches-5.4/950-0440-arm64-mm-use-arm64_dma_phys_limit-instead-of-calling.patch @@ -19,7 +19,7 @@ Signed-off-by: Catalin Marinas --- 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 diff --git a/target/linux/bcm27xx/patches-5.4/950-0441-arm64-rename-variables-used-to-calculate-ZONE_DMA32-.patch b/target/linux/bcm27xx/patches-5.4/950-0441-arm64-rename-variables-used-to-calculate-ZONE_DMA32-.patch index 3039bfe82..df184f53e 100644 --- a/target/linux/bcm27xx/patches-5.4/950-0441-arm64-rename-variables-used-to-calculate-ZONE_DMA32-.patch +++ b/target/linux/bcm27xx/patches-5.4/950-0441-arm64-rename-variables-used-to-calculate-ZONE_DMA32-.patch @@ -18,16 +18,16 @@ Signed-off-by: Catalin Marinas --- 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 { 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 #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 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 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 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 } 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 || diff --git a/target/linux/bcm27xx/patches-5.4/950-0442-arm64-use-both-ZONE_DMA-and-ZONE_DMA32.patch b/target/linux/bcm27xx/patches-5.4/950-0442-arm64-use-both-ZONE_DMA-and-ZONE_DMA32.patch index 2397c71af..ccb2071f1 100644 --- a/target/linux/bcm27xx/patches-5.4/950-0442-arm64-use-both-ZONE_DMA-and-ZONE_DMA32.patch +++ b/target/linux/bcm27xx/patches-5.4/950-0442-arm64-use-both-ZONE_DMA-and-ZONE_DMA32.patch @@ -51,9 +51,9 @@ Signed-off-by: Catalin Marinas #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 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 } #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 #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 #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 } #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 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 } 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 || diff --git a/target/linux/bcm27xx/patches-5.4/950-0445-dma-direct-turn-ARCH_ZONE_DMA_BITS-into-a-variable.patch b/target/linux/bcm27xx/patches-5.4/950-0445-dma-direct-turn-ARCH_ZONE_DMA_BITS-into-a-variable.patch index c3ae61c99..ab04d64b7 100644 --- a/target/linux/bcm27xx/patches-5.4/950-0445-dma-direct-turn-ARCH_ZONE_DMA_BITS-into-a-variable.patch +++ b/target/linux/bcm27xx/patches-5.4/950-0445-dma-direct-turn-ARCH_ZONE_DMA_BITS-into-a-variable.patch @@ -50,7 +50,7 @@ Signed-off-by: Catalin Marinas /* * 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(); diff --git a/target/linux/bcm27xx/patches-5.4/950-0631-arm64-mm-reserve-CMA-and-crashkernel-in-ZONE_DMA32.patch b/target/linux/bcm27xx/patches-5.4/950-0631-arm64-mm-reserve-CMA-and-crashkernel-in-ZONE_DMA32.patch index 137a2fa4a..e1a340ec9 100644 --- a/target/linux/bcm27xx/patches-5.4/950-0631-arm64-mm-reserve-CMA-and-crashkernel-in-ZONE_DMA32.patch +++ b/target/linux/bcm27xx/patches-5.4/950-0631-arm64-mm-reserve-CMA-and-crashkernel-in-ZONE_DMA32.patch @@ -24,7 +24,7 @@ Signed-off-by: Catalin Marinas --- 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 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; diff --git a/target/linux/bcm27xx/patches-5.4/950-0632-arm64-mm-Fix-initialisation-of-DMA-zones-on-non-NUMA.patch b/target/linux/bcm27xx/patches-5.4/950-0632-arm64-mm-Fix-initialisation-of-DMA-zones-on-non-NUMA.patch index 654864d52..0f4f09ee1 100644 --- a/target/linux/bcm27xx/patches-5.4/950-0632-arm64-mm-Fix-initialisation-of-DMA-zones-on-non-NUMA.patch +++ b/target/linux/bcm27xx/patches-5.4/950-0632-arm64-mm-Fix-initialisation-of-DMA-zones-on-non-NUMA.patch @@ -50,7 +50,7 @@ Signed-off-by: Catalin Marinas --- 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 #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); diff --git a/target/linux/generic/hack-5.4/661-use_fq_codel_by_default.patch b/target/linux/generic/hack-5.4/661-use_fq_codel_by_default.patch index ccedf561e..10197eeb0 100644 --- a/target/linux/generic/hack-5.4/661-use_fq_codel_by_default.patch +++ b/target/linux/generic/hack-5.4/661-use_fq_codel_by_default.patch @@ -44,7 +44,7 @@ Signed-off-by: Felix Fietkau 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; } diff --git a/target/linux/generic/hack-5.4/721-phy_packets.patch b/target/linux/generic/hack-5.4/721-phy_packets.patch index dba648f8e..55233369e 100644 --- a/target/linux/generic/hack-5.4/721-phy_packets.patch +++ b/target/linux/generic/hack-5.4/721-phy_packets.patch @@ -136,7 +136,7 @@ Signed-off-by: Felix Fietkau #include #include -@@ -545,6 +546,22 @@ skb_fail: +@@ -549,6 +550,22 @@ skb_fail: } EXPORT_SYMBOL(__napi_alloc_skb); diff --git a/target/linux/generic/pending-5.4/110-ehci_hcd_ignore_oc.patch b/target/linux/generic/pending-5.4/110-ehci_hcd_ignore_oc.patch index 55a4538f6..ce583ceac 100644 --- a/target/linux/generic/pending-5.4/110-ehci_hcd_ignore_oc.patch +++ b/target/linux/generic/pending-5.4/110-ehci_hcd_ignore_oc.patch @@ -17,7 +17,7 @@ Signed-off-by: Florian Fainelli --- 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 &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 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; diff --git a/target/linux/generic/pending-5.4/690-net-add-support-for-threaded-NAPI-polling.patch b/target/linux/generic/pending-5.4/690-net-add-support-for-threaded-NAPI-polling.patch index dcb3d319d..d80b1ecd0 100644 --- a/target/linux/generic/pending-5.4/690-net-add-support-for-threaded-NAPI-polling.patch +++ b/target/linux/generic/pending-5.4/690-net-add-support-for-threaded-NAPI-polling.patch @@ -267,7 +267,7 @@ Signed-off-by: Felix Fietkau /* 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; } diff --git a/target/linux/kirkwood/base-files/etc/init.d/hwmon_fancontrol b/target/linux/kirkwood/base-files/etc/init.d/hwmon_fancontrol index c64ed1100..334a2a08e 100755 --- a/target/linux/kirkwood/base-files/etc/init.d/hwmon_fancontrol +++ b/target/linux/kirkwood/base-files/etc/init.d/hwmon_fancontrol @@ -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 } diff --git a/target/linux/kirkwood/config-5.4 b/target/linux/kirkwood/config-5.4 index 61efa07d9..4a7489178 100644 --- a/target/linux/kirkwood/config-5.4 +++ b/target/linux/kirkwood/config-5.4 @@ -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 diff --git a/target/linux/layerscape/patches-5.4/303-core-0001-net-readd-skb_recycle.patch b/target/linux/layerscape/patches-5.4/303-core-0001-net-readd-skb_recycle.patch index 7b257bb17..e296df502 100644 --- a/target/linux/layerscape/patches-5.4/303-core-0001-net-readd-skb_recycle.patch +++ b/target/linux/layerscape/patches-5.4/303-core-0001-net-readd-skb_recycle.patch @@ -24,7 +24,7 @@ Signed-off-by: Madalin Bucur --- 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); diff --git a/target/linux/layerscape/patches-5.4/303-core-0002-drivers-base-add-sysfs-entries-for-suppliers-and-con.patch b/target/linux/layerscape/patches-5.4/303-core-0002-drivers-base-add-sysfs-entries-for-suppliers-and-con.patch index 6307ba839..4cad5e2d1 100644 --- a/target/linux/layerscape/patches-5.4/303-core-0002-drivers-base-add-sysfs-entries-for-suppliers-and-con.patch +++ b/target/linux/layerscape/patches-5.4/303-core-0002-drivers-base-add-sysfs-entries-for-suppliers-and-con.patch @@ -32,7 +32,7 @@ Signed-off-by: Ioana Ciornei + 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 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 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; diff --git a/target/linux/layerscape/patches-5.4/303-core-0009-arm64-move-elfcorehdr-reservation-early-for-crash-du.patch b/target/linux/layerscape/patches-5.4/303-core-0009-arm64-move-elfcorehdr-reservation-early-for-crash-du.patch index c6c980114..d41b16036 100644 --- a/target/linux/layerscape/patches-5.4/303-core-0009-arm64-move-elfcorehdr-reservation-early-for-crash-du.patch +++ b/target/linux/layerscape/patches-5.4/303-core-0009-arm64-move-elfcorehdr-reservation-early-for-crash-du.patch @@ -14,7 +14,7 @@ Signed-off-by: Poonam Aggrwal --- 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 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(); diff --git a/target/linux/layerscape/patches-5.4/701-net-0238-net-mscc-ocelot-break-apart-ocelot_vlan_port_apply.patch b/target/linux/layerscape/patches-5.4/701-net-0238-net-mscc-ocelot-break-apart-ocelot_vlan_port_apply.patch index 42ea2851e..bb34e5db2 100644 --- a/target/linux/layerscape/patches-5.4/701-net-0238-net-mscc-ocelot-break-apart-ocelot_vlan_port_apply.patch +++ b/target/linux/layerscape/patches-5.4/701-net-0238-net-mscc-ocelot-break-apart-ocelot_vlan_port_apply.patch @@ -287,7 +287,7 @@ Signed-off-by: David S. Miller } 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 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 */ diff --git a/target/linux/layerscape/patches-5.4/701-net-0243-net-mscc-ocelot-refactor-struct-ocelot_port-out-of-f.patch b/target/linux/layerscape/patches-5.4/701-net-0243-net-mscc-ocelot-refactor-struct-ocelot_port-out-of-f.patch index 5acd5650b..2e05090c7 100644 --- a/target/linux/layerscape/patches-5.4/701-net-0243-net-mscc-ocelot-refactor-struct-ocelot_port-out-of-f.patch +++ b/target/linux/layerscape/patches-5.4/701-net-0243-net-mscc-ocelot-refactor-struct-ocelot_port-out-of-f.patch @@ -231,7 +231,7 @@ Signed-off-by: David S. Miller 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 */ diff --git a/target/linux/layerscape/patches-5.4/701-net-0244-net-mscc-ocelot-separate-net_device-related-items-ou.patch b/target/linux/layerscape/patches-5.4/701-net-0244-net-mscc-ocelot-separate-net_device-related-items-ou.patch index 9338120fd..f582cb43c 100644 --- a/target/linux/layerscape/patches-5.4/701-net-0244-net-mscc-ocelot-separate-net_device-related-items-ou.patch +++ b/target/linux/layerscape/patches-5.4/701-net-0244-net-mscc-ocelot-separate-net_device-related-items-ou.patch @@ -707,7 +707,7 @@ Signed-off-by: David S. Miller } 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) { diff --git a/target/linux/layerscape/patches-5.4/701-net-0247-net-mscc-ocelot-move-port-initialization-into-separa.patch b/target/linux/layerscape/patches-5.4/701-net-0247-net-mscc-ocelot-move-port-initialization-into-separa.patch index 4ac275515..2df6afb20 100644 --- a/target/linux/layerscape/patches-5.4/701-net-0247-net-mscc-ocelot-move-port-initialization-into-separa.patch +++ b/target/linux/layerscape/patches-5.4/701-net-0247-net-mscc-ocelot-move-port-initialization-into-separa.patch @@ -15,7 +15,7 @@ Signed-off-by: David S. Miller --- 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 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 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); diff --git a/target/linux/layerscape/patches-5.4/701-net-0249-net-mscc-ocelot-initialize-list-of-multicast-address.patch b/target/linux/layerscape/patches-5.4/701-net-0249-net-mscc-ocelot-initialize-list-of-multicast-address.patch index 5e4b4331f..ea01c8b54 100644 --- a/target/linux/layerscape/patches-5.4/701-net-0249-net-mscc-ocelot-initialize-list-of-multicast-address.patch +++ b/target/linux/layerscape/patches-5.4/701-net-0249-net-mscc-ocelot-initialize-list-of-multicast-address.patch @@ -17,7 +17,7 @@ Signed-off-by: David S. Miller --- 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; diff --git a/target/linux/layerscape/patches-5.4/701-net-0251-net-mscc-ocelot-split-assignment-of-the-cpu-port-int.patch b/target/linux/layerscape/patches-5.4/701-net-0251-net-mscc-ocelot-split-assignment-of-the-cpu-port-int.patch index 423db441a..4f5ab9ad5 100644 --- a/target/linux/layerscape/patches-5.4/701-net-0251-net-mscc-ocelot-split-assignment-of-the-cpu-port-int.patch +++ b/target/linux/layerscape/patches-5.4/701-net-0251-net-mscc-ocelot-split-assignment-of-the-cpu-port-int.patch @@ -32,7 +32,7 @@ Signed-off-by: David S. Miller /* 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 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 /* 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); diff --git a/target/linux/layerscape/patches-5.4/701-net-0255-net-mscc-ocelot-move-invariant-configs-out-of-adjust.patch b/target/linux/layerscape/patches-5.4/701-net-0255-net-mscc-ocelot-move-invariant-configs-out-of-adjust.patch index 454dd35b9..8cb8a831a 100644 --- a/target/linux/layerscape/patches-5.4/701-net-0255-net-mscc-ocelot-move-invariant-configs-out-of-adjust.patch +++ b/target/linux/layerscape/patches-5.4/701-net-0255-net-mscc-ocelot-move-invariant-configs-out-of-adjust.patch @@ -98,7 +98,7 @@ Signed-off-by: David S. Miller } 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]; diff --git a/target/linux/layerscape/patches-5.4/701-net-0256-net-mscc-ocelot-create-a-helper-for-changing-the-por.patch b/target/linux/layerscape/patches-5.4/701-net-0256-net-mscc-ocelot-create-a-helper-for-changing-the-por.patch index 1aefe3436..0a1299dd3 100644 --- a/target/linux/layerscape/patches-5.4/701-net-0256-net-mscc-ocelot-create-a-helper-for-changing-the-por.patch +++ b/target/linux/layerscape/patches-5.4/701-net-0256-net-mscc-ocelot-create-a-helper-for-changing-the-por.patch @@ -20,7 +20,7 @@ Signed-off-by: David S. Miller --- 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 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 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); diff --git a/target/linux/layerscape/patches-5.4/701-net-0258-net-mscc-ocelot-adjust-MTU-on-the-CPU-port-in-NPI-mo.patch b/target/linux/layerscape/patches-5.4/701-net-0258-net-mscc-ocelot-adjust-MTU-on-the-CPU-port-in-NPI-mo.patch index 9adc0ffff..3c9d0336a 100644 --- a/target/linux/layerscape/patches-5.4/701-net-0258-net-mscc-ocelot-adjust-MTU-on-the-CPU-port-in-NPI-mo.patch +++ b/target/linux/layerscape/patches-5.4/701-net-0258-net-mscc-ocelot-adjust-MTU-on-the-CPU-port-in-NPI-mo.patch @@ -22,7 +22,7 @@ Signed-off-by: David S. Miller --- 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) { diff --git a/target/linux/layerscape/patches-5.4/701-net-0259-net-mscc-ocelot-separate-the-implementation-of-switc.patch b/target/linux/layerscape/patches-5.4/701-net-0259-net-mscc-ocelot-separate-the-implementation-of-switc.patch index 5830dc0fa..50a37e550 100644 --- a/target/linux/layerscape/patches-5.4/701-net-0259-net-mscc-ocelot-separate-the-implementation-of-switc.patch +++ b/target/linux/layerscape/patches-5.4/701-net-0259-net-mscc-ocelot-separate-the-implementation-of-switc.patch @@ -20,7 +20,7 @@ Signed-off-by: David S. Miller --- 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; diff --git a/target/linux/layerscape/patches-5.4/701-net-0260-net-mscc-ocelot-publish-structure-definitions-to-inc.patch b/target/linux/layerscape/patches-5.4/701-net-0260-net-mscc-ocelot-publish-structure-definitions-to-inc.patch index a32b19e06..6fbc09173 100644 --- a/target/linux/layerscape/patches-5.4/701-net-0260-net-mscc-ocelot-publish-structure-definitions-to-inc.patch +++ b/target/linux/layerscape/patches-5.4/701-net-0260-net-mscc-ocelot-publish-structure-definitions-to-inc.patch @@ -329,7 +329,7 @@ Signed-off-by: David S. Miller 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 { 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); } diff --git a/target/linux/layerscape/patches-5.4/701-net-0271-net-mscc-ocelot-use-skb-queue-instead-of-skbs-list.patch b/target/linux/layerscape/patches-5.4/701-net-0271-net-mscc-ocelot-use-skb-queue-instead-of-skbs-list.patch index 6be37fcc7..2163c57ac 100644 --- a/target/linux/layerscape/patches-5.4/701-net-0271-net-mscc-ocelot-use-skb-queue-instead-of-skbs-list.patch +++ b/target/linux/layerscape/patches-5.4/701-net-0271-net-mscc-ocelot-use-skb-queue-instead-of-skbs-list.patch @@ -96,7 +96,7 @@ Signed-off-by: David S. Miller } } 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 /* 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 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]; diff --git a/target/linux/layerscape/patches-5.4/701-net-0272-net-mscc-ocelot-tsn-configuration-support.patch b/target/linux/layerscape/patches-5.4/701-net-0272-net-mscc-ocelot-tsn-configuration-support.patch index e6d3bf79a..2bd7dfbfc 100644 --- a/target/linux/layerscape/patches-5.4/701-net-0272-net-mscc-ocelot-tsn-configuration-support.patch +++ b/target/linux/layerscape/patches-5.4/701-net-0272-net-mscc-ocelot-tsn-configuration-support.patch @@ -41,7 +41,7 @@ Signed-off-by: Xiaoliang Yang 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 */ diff --git a/target/linux/layerscape/patches-5.4/701-net-0341-LF-368-net-mscc-ocelot-add-VCAP-IS2-rule-to-trap-PTP.patch b/target/linux/layerscape/patches-5.4/701-net-0341-LF-368-net-mscc-ocelot-add-VCAP-IS2-rule-to-trap-PTP.patch index 0b4cb9695..18754172a 100644 --- a/target/linux/layerscape/patches-5.4/701-net-0341-LF-368-net-mscc-ocelot-add-VCAP-IS2-rule-to-trap-PTP.patch +++ b/target/linux/layerscape/patches-5.4/701-net-0341-LF-368-net-mscc-ocelot-add-VCAP-IS2-rule-to-trap-PTP.patch @@ -14,7 +14,7 @@ Signed-off-by: Yangbo Lu --- 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 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 } 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); diff --git a/target/linux/layerscape/patches-5.4/701-net-0367-net-mscc-ocelot-Workaround-to-allow-traffic-to-CPU-i.patch b/target/linux/layerscape/patches-5.4/701-net-0367-net-mscc-ocelot-Workaround-to-allow-traffic-to-CPU-i.patch index f2d69b633..4e24fecfd 100644 --- a/target/linux/layerscape/patches-5.4/701-net-0367-net-mscc-ocelot-Workaround-to-allow-traffic-to-CPU-i.patch +++ b/target/linux/layerscape/patches-5.4/701-net-0367-net-mscc-ocelot-Workaround-to-allow-traffic-to-CPU-i.patch @@ -128,7 +128,7 @@ Signed-off-by: Vladimir Oltean --- 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) { diff --git a/target/linux/layerscape/patches-5.4/820-usb-0014-MLK-17380-3-usb-move-EH-SINGLE_STEP_SET_FEATURE-impl.patch b/target/linux/layerscape/patches-5.4/820-usb-0014-MLK-17380-3-usb-move-EH-SINGLE_STEP_SET_FEATURE-impl.patch index fea7921b1..d43626577 100644 --- a/target/linux/layerscape/patches-5.4/820-usb-0014-MLK-17380-3-usb-move-EH-SINGLE_STEP_SET_FEATURE-impl.patch +++ b/target/linux/layerscape/patches-5.4/820-usb-0014-MLK-17380-3-usb-move-EH-SINGLE_STEP_SET_FEATURE-impl.patch @@ -163,7 +163,7 @@ Signed-off-by: Peter Chen --- 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 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 ( } /*-------------------------------------------------------------------------*/ diff --git a/target/linux/layerscape/patches-5.4/820-usb-0015-MLK-17380-4-usb-host-xhci-add-EH-SINGLE_STEP_SET_FEA.patch b/target/linux/layerscape/patches-5.4/820-usb-0015-MLK-17380-4-usb-host-xhci-add-EH-SINGLE_STEP_SET_FEA.patch index d57fb7c01..00706bc41 100644 --- a/target/linux/layerscape/patches-5.4/820-usb-0015-MLK-17380-4-usb-host-xhci-add-EH-SINGLE_STEP_SET_FEA.patch +++ b/target/linux/layerscape/patches-5.4/820-usb-0015-MLK-17380-4-usb-host-xhci-add-EH-SINGLE_STEP_SET_FEA.patch @@ -42,7 +42,7 @@ Signed-off-by: Peter Chen 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; } diff --git a/target/linux/mvebu/files/arch/arm/boot/dts/armada-370-buffalo-ls421de.dts b/target/linux/mvebu/files/arch/arm/boot/dts/armada-370-buffalo-ls421de.dts index dee271541..57f1acf5f 100644 --- a/target/linux/mvebu/files/arch/arm/boot/dts/armada-370-buffalo-ls421de.dts +++ b/target/linux/mvebu/files/arch/arm/boot/dts/armada-370-buffalo-ls421de.dts @@ -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 = <ðphy0>; + + trips { + ethphy_alert1: trip1 { + temperature = <65000>; + hysteresis = <4000>; + type = "passive"; + }; + + ethphy_crit: trip2 { + temperature = <100000>; + hysteresis = <2000>; + type = "critical"; + }; + }; + + cooling-maps { + map1 { + trip = <ðphy_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>; }; }; diff --git a/target/linux/mvebu/patches-5.4/007-gpio-mvebu-avoid_error_message_for_optional_IRQ.patch b/target/linux/mvebu/patches-5.4/007-gpio-mvebu-avoid_error_message_for_optional_IRQ.patch index c680de593..00d2b30d5 100644 --- a/target/linux/mvebu/patches-5.4/007-gpio-mvebu-avoid_error_message_for_optional_IRQ.patch +++ b/target/linux/mvebu/patches-5.4/007-gpio-mvebu-avoid_error_message_for_optional_IRQ.patch @@ -20,7 +20,7 @@ Signed-off-by: Bartosz Golaszewski --- 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++) { diff --git a/target/linux/rockchip/armv8/base-files/etc/board.d/02_network b/target/linux/rockchip/armv8/base-files/etc/board.d/02_network index e70fe3ef8..ab594324c 100755 --- a/target/linux/rockchip/armv8/base-files/etc/board.d/02_network +++ b/target/linux/rockchip/armv8/base-files/etc/board.d/02_network @@ -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