diff --git a/board/aarch64/README.md b/board/aarch64/README.md index e1237580..bd1100a5 100644 --- a/board/aarch64/README.md +++ b/board/aarch64/README.md @@ -7,3 +7,48 @@ Board Specific Documentation - [Marvell CN9130-CRB](cn9130-crb/) - [Microchip SparX-5i PCB135 (eMMC)](sparx5-pcb135/) - [NanoPi R2S](r2s/) +- [Raspberry Pi 4 b](#raspberry-pi-4-b) + +# Raspberry Pi 4 b + +## Support level +Full support for base board but not any extension board on the +GPIOs. + +### Touch screen +The [Raspberry Pi touch display v1][RPI-TOUCH] is supported, including +touch functionality. There are multiple touchscreens on the market for +Raspberry Pi, but only the official (first version with 800x480 +resolution) is currently supported. Infix supplies all drivers +required to utilize the hardware, but you need to add the actual +graphical application in a container. + +There are some important considerations you need to know about when +using Infix for graphical applications. The container needs access to +/dev/dri/ to be able to access the graphics card, and it also needs +access to /run/udev to be able to find the input devices. + +Example of running Doom in Infix: + +```cli + admin@example:/> configure + admin@example:/config/> edit container doom + admin@example:/config/container/doom/> set image docker://mattiaswal/alpine-doom:latest + admin@example:/config/container/doom/> set privileged + admin@example:/config/container/doom/> edit mount udev + admin@example:/config/container/doom/mount/udev/> set type bind + admin@example:/config/container/doom/mount/udev/> set target /run/udev/ + admin@example:/config/container/doom/mount/udev/> set source /run/udev/ + admin@example:/config/container/doom/mount/udev/> end + admin@example:/config/container/doom/mount/xorg.conf/> set content U2VjdGlvbiAiU2VydmVyTGF5b3V0IgogICAgSWRlbnRpZmllciAiRGVmYXVsdExheW91dCIKICAgIFNjcmVlbiAwICJTY3JlZW4wIiAwIDAKRW5kU2VjdGlvbgpTZWN0aW9uICJEZXZpY2UiCiAgICBJZGVudGlmaWVyICJpTVggTENEIgogICAgRHJpdmVyICJtb2Rlc2V0dGluZyIKICAgIEJ1c0lEICJwbGF0Zm9ybTozMmZjNjAwMC5kaXNwbGF5LWNvbnRyb2xsZXIiCiAgICBPcHRpb24gImttc2RldiIgIi9kZXYvZHJpL2NhcmQxIgpFbmRTZWN0aW9uCgpTZWN0aW9uICJTY3JlZW4iCiAgICBJZGVudGlmaWVyICJTY3JlZW4wIgogICAgRGV2aWNlICJpTVggTENEIgogICAgRGVmYXVsdERlcHRoIDI0CkVuZFNlY3Rpb24KCg== + admin@example:/config/container/doom/mount/xorg.conf/> set target /etc/X11/xorg.conf + admin@example:/config/container/doom/mount/xorg.conf/> end + admin@example:/config/container/doom/> edit volume var + admin@example:/config/container/doom/volume/var/> set target /var + admin@example:/config/container/doom/volume/var/> leave + admin@example:/> + +``` + + +[RPI-TOUCH]: https://www.raspberrypi.com/products/raspberry-pi-touch-display/ diff --git a/board/common/post-image.sh b/board/common/post-image.sh index efbde642..5e273a88 100755 --- a/board/common/post-image.sh +++ b/board/common/post-image.sh @@ -110,11 +110,3 @@ if [ "$BR2_TARGET_ROOTFS_SQUASHFS" = "y" ]; then # Quick intro for beginners, with links to more information cp "$BR2_EXTERNAL_INFIX_PATH/board/common/README.txt" "$BINARIES_DIR/" fi - -boards=$(${BR2_EXTERNAL_INFIX_PATH}/board/common/selected-boards.sh ${BR2_EXTERNAL_INFIX_PATH} ${O}) -for board in $boards; do - [ ! -f "${BR2_EXTERNAL_INFIX_PATH}/src/board/${board}/post-image.sh" ] && continue - RELEASE=$(ver) - export INFIX_ID RELEASE - ${BR2_EXTERNAL_INFIX_PATH}/src/board/${board}/post-image.sh -done diff --git a/board/common/selected-boards.sh b/board/common/selected-boards.sh deleted file mode 100755 index 78299d82..00000000 --- a/board/common/selected-boards.sh +++ /dev/null @@ -1,61 +0,0 @@ -#!/bin/bash -# -# Check if an infix board is selected - -if [ $# -ne 2 ]; then - echo "usage: $0 " - exit 1 -fi -ROOT=$1 -O=$2 -BOARD_SRC_DIR="${ROOT}/src/board" -BOARD_PACKAGE_DIR="${ROOT}/package/board" -CONFIG_FILE="${O}/.config" - -is_board_enabled() { - local symbol=$1 - - if [ -f "$CONFIG_FILE" ]; then - if grep -q "^${symbol}=y" "$CONFIG_FILE" 2>/dev/null; then - return 0 # enabled - else - return 1 # disabled or not set - fi - else - echo "Warning: No .config file found. Run 'make menuconfig' first." - return 1 - fi -} - -get_actual_config_symbol() { - local board_name=$1 - local config_file="${BOARD_PACKAGE_DIR}/$board_name/Config.in" - - if [ -f "$config_file" ]; then - # Extract the first config symbol from the Config.in file - local symbol=$(grep -m1 "^config " "$config_file" 2>/dev/null | awk '{print $2}') - if [ -n "$symbol" ]; then - echo "$symbol" - return 0 - fi - fi - - # Fallback to predicted symbol if no Config.in found - echo "BR2_PACKAGE_BOARD_$(echo "$board_name" | tr '[:lower:]' '[:upper:]' | tr '-' '_')" - return 1 -} - -boards="" - -for board_path in "$BOARD_SRC_DIR"/*; do - if [ -d "$board_path" ]; then - board_name=$(basename "$board_path") - config_symbol=$(get_actual_config_symbol "$board_name") - - if is_board_enabled "$config_symbol"; then - boards="$boards $board_name" - fi - fi -done - -echo "$boards" diff --git a/doc/ChangeLog.md b/doc/ChangeLog.md index 5ea55409..b8ab0c6c 100644 --- a/doc/ChangeLog.md +++ b/doc/ChangeLog.md @@ -11,11 +11,13 @@ All notable changes to the project are documented in this file. - Upgrade Linux kernel to 6.12.42 (LTS) - Raspberry Pi 4 is now a part of the aarch64 image, as well as a SDcard image for initial deployments. - +- Add support for [Raspberry Pi touch display][RPI-TOUCH] on Raspberry Pi 4 ### Fixes - containers: prune dangling images to reclaim disk space (#1098) +[RPI-TOUCH]: https://www.raspberrypi.com/products/raspberry-pi-touch-display/ + [v25.06.0][] - 2025-07-01 ------------------------- diff --git a/package/board/raspberry-pi-4/Config.in b/package/board/raspberry-pi-4/Config.in index 8fd09de8..a1c24996 100644 --- a/package/board/raspberry-pi-4/Config.in +++ b/package/board/raspberry-pi-4/Config.in @@ -5,10 +5,5 @@ config BR2_PACKAGE_RASPBERRY_PI_4 select BR2_PACKAGE_BRCMFMAC_SDIO_FIRMWARE_RPI select BR2_PACKAGE_BRCMFMAC_SDIO_FIRMWARE_RPI_WIFI - select BR2_PACKAGE_RPI_FIRMWARE - select BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI4 - select BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI4_X - select SDCARD_AUX - select BR2_TARGET_UBOOT_NEEDS_UBOOT_TOOLS help - Raspberry pi 4 + Raspberry Pi 4 diff --git a/package/board/raspberry-pi-4/raspberry-pi-4.mk b/package/board/raspberry-pi-4/raspberry-pi-4.mk index 17c0f08c..0c4f1e3f 100644 --- a/package/board/raspberry-pi-4/raspberry-pi-4.mk +++ b/package/board/raspberry-pi-4/raspberry-pi-4.mk @@ -1,37 +1,28 @@ define RASPBERRY_PI_4_LINUX_CONFIG_FIXUPS + $(call KCONFIG_ENABLE_OPT,CONFIG_SOUND) $(call KCONFIG_ENABLE_OPT,CONFIG_SND) $(call KCONFIG_ENABLE_OPT,CONFIG_SND_SOC) - $(call KCONFIG_ENABLE_OPT,CONFIG_COMMON_CLK_BCM2835) - $(call KCONFIG_ENABLE_OPT,CONFIG_CLK_RASPBERRYPI) - $(call KCONFIG_ENABLE_OPT,CONFIG_DRM) - $(call KCONFIG_SET_OPT,CONFIG_DRM_V3D,m) - $(call KCONFIG_SET_OPT,CONFIG_DRM_VC4,m) - $(call KCONFIG_ENABLE_OPT,CONFIG_DRM_VC4_HDMI_CEC) - $(call KCONFIG_ENABLE_OPT,CONFIG_DRM_LOAD_EDID_FIRMWARE) - - $(call KCONFIG_ENABLE_OPT,CONFIG_FB) - $(call KCONFIG_ENABLE_OPT,CONFIG_DRM_FBDEV_EMULATION) - - + $(call KCONFIG_ENABLE_OPT,CONFIG_INPUT_MOUSE) + $(call KCONFIG_ENABLE_OPT,CONFIG_INPUT_KEYBOARD) $(call KCONFIG_ENABLE_OPT,CONFIG_INPUT_TOUCHSCREEN) - $(call KCONFIG_SET_OPT,CONFIG_TOUCHSCREEN_EDT_FT5X06,m) - $(call KCONFIG_SET_OPT,CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN,m) + $(call KCONFIG_SET_OPT,CONFIG_INPUT_MOUSEDEV,m) + $(call KCONFIG_SET_OPT,CONFIG_HID_GENERIC,m) -# RPI $(call KCONFIG_ENABLE_OPT,CONFIG_ARCH_BCM) $(call KCONFIG_ENABLE_OPT,CONFIG_ARCH_BCM2835) $(call KCONFIG_ENABLE_OPT,CONFIG_ARCH_BRCMSTB) - $(call KCONFIG_ENABLE_OPT,CONFIG_BCM2835_MBOX) + $(call KCONFIG_SET_OPT,CONFIG_BCM2835_MBOX,y) $(call KCONFIG_ENABLE_OPT,CONFIG_BCM2835_WDT) + $(call KCONFIG_ENABLE_OPT,CONFIG_DMA_BCM2835) $(call KCONFIG_ENABLE_OPT,CONFIG_RASPBERRYPI_FIRMWARE) $(call KCONFIG_ENABLE_OPT,CONFIG_PINCTRL_BCM2835) $(call KCONFIG_ENABLE_OPT,CONFIG_GPIO_BCM2835) $(call KCONFIG_SET_OPT,CONFIG_BRCMFMAC,m) $(call KCONFIG_ENABLE_OPT,CONFIG_BRCMFMAC_SDIO) - $(call KCONFIG_ENABLE_OPT,CONFIG_I2C_BCM2835) + $(call KCONFIG_SET_OPT,CONFIG_I2C_BCM2835,m) + $(call KCONFIG_SET_OPT,CONFIG_BCM2711_THERMAL,m) $(call KCONFIG_ENABLE_OPT,CONFIG_MMC_BCM2835) $(call KCONFIG_ENABLE_OPT,CONFIG_MMC_SDHCI_IPROC) - $(call KCONFIG_ENABLE_OPT,CONFIG_BCM2711_THERMAL) $(call KCONFIG_ENABLE_OPT,CONFIG_RASPBERRYPI_POWER) $(call KCONFIG_ENABLE_OPT,CONFIG_SERIAL_8250) $(call KCONFIG_ENABLE_OPT,CONFIG_SERIAL_8250_CONSOLE) @@ -39,8 +30,32 @@ define RASPBERRY_PI_4_LINUX_CONFIG_FIXUPS $(call KCONFIG_ENABLE_OPT,CONFIG_SERIAL_8250_EXTENDED) $(call KCONFIG_ENABLE_OPT,CONFIG_SERIAL_8250_SHARE_IRQ) $(call KCONFIG_ENABLE_OPT,CONFIG_NET_VENDOR_BROADCOM) - $(call KCONFIG_ENABLE_OPT,CONFIG_BCMGENET) -endef + $(call KCONFIG_SET_OPT,CONFIG_BCMGENET,m) + $(call KCONFIG_SET_OPT,CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_ATTINY,m) + $(call KCONFIG_ENABLE_OPT,CONFIG_COMMON_CLK_BCM2835) + $(call KCONFIG_ENABLE_OPT,CONFIG_CLK_RASPBERRYPI) + $(call KCONFIG_ENABLE_OPT,CONFIG_DRM) + $(call KCONFIG_ENABLE_OPT,CONFIG_DRM_KMS_HELPER) + $(call KCONFIG_SET_OPT,CONFIG_DRM_V3D,m) + $(call KCONFIG_SET_OPT,CONFIG_DRM_VC4,m) + $(call KCONFIG_SET_OPT,CONFIG_STAGING,y) + $(call KCONFIG_SET_OPT,CONFIG_SND_BCM2835,m) + $(call KCONFIG_ENABLE_OPT,CONFIG_DRM_VC4_HDMI_CEC) + $(call KCONFIG_ENABLE_OPT,CONFIG_DRM_LOAD_EDID_FIRMWARE) + $(call KCONFIG_ENABLE_OPT,CONFIG_DRM_PANEL_BRIDGE) + $(call KCONFIG_ENABLE_OPT,CONFIG_DRM_BRIDGE) + $(call KCONFIG_SET_OPT,CONFIG_DRM_TOSHIBA_TC358762,m) + $(call KCONFIG_SET_OPT,CONFIG_DRM_PANEL_SIMPLE,m) + + $(call KCONFIG_ENABLE_OPT,CONFIG_FB) + $(call KCONFIG_ENABLE_OPT,CONFIG_FRAMEBUFFER_CONSOLE) + $(call KCONFIG_ENABLE_OPT,CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY) + $(call KCONFIG_ENABLE_OPT,CONFIG_DRM_FBDEV_EMULATION) + + $(call KCONFIG_SET_OPT,CONFIG_TOUCHSCREEN_EDT_FT5X06,m) + + $(call KCONFIG_ENABLE_OPT,CONFIG_BACKLIGHT_CLASS_DEVICE) +endef $(eval $(ix-board)) $(eval $(generic-package)) diff --git a/patches/linux/6.12.42/0001-FIX-net-dsa-mv88e6xxx-Fix-timeout-on-waiting-for-PPU.patch b/patches/linux/6.12.42/0001-FIX-net-dsa-mv88e6xxx-Fix-timeout-on-waiting-for-PPU.patch index b4ceb7d2..748a6ae6 100644 --- a/patches/linux/6.12.42/0001-FIX-net-dsa-mv88e6xxx-Fix-timeout-on-waiting-for-PPU.patch +++ b/patches/linux/6.12.42/0001-FIX-net-dsa-mv88e6xxx-Fix-timeout-on-waiting-for-PPU.patch @@ -1,7 +1,7 @@ From 40a8201087967980260b7424bbbde69fea24a773 Mon Sep 17 00:00:00 2001 From: Tobias Waldekranz Date: Tue, 12 Mar 2024 10:27:24 +0100 -Subject: [PATCH 01/28] [FIX] net: dsa: mv88e6xxx: Fix timeout on waiting for +Subject: [PATCH 01/30] [FIX] net: dsa: mv88e6xxx: Fix timeout on waiting for PPU on 6393X Organization: Wires @@ -13,7 +13,7 @@ register 0, bit 15). Therefore, increase the timeout threshold to 1s. 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/dsa/mv88e6xxx/chip.c b/drivers/net/dsa/mv88e6xxx/chip.c -index 211c219dd52d..d64c3eef4447 100644 +index 211c219dd52db..d64c3eef4447a 100644 --- a/drivers/net/dsa/mv88e6xxx/chip.c +++ b/drivers/net/dsa/mv88e6xxx/chip.c @@ -86,7 +86,7 @@ int mv88e6xxx_write(struct mv88e6xxx_chip *chip, int addr, int reg, u16 val) diff --git a/patches/linux/6.12.42/0002-net-dsa-mv88e6xxx-Improve-indirect-register-access-p.patch b/patches/linux/6.12.42/0002-net-dsa-mv88e6xxx-Improve-indirect-register-access-p.patch index 37425e04..3ece007d 100644 --- a/patches/linux/6.12.42/0002-net-dsa-mv88e6xxx-Improve-indirect-register-access-p.patch +++ b/patches/linux/6.12.42/0002-net-dsa-mv88e6xxx-Improve-indirect-register-access-p.patch @@ -1,7 +1,7 @@ From a6289c5551cdfc4aa715e6ba66c9030e9dbbe9e1 Mon Sep 17 00:00:00 2001 From: Tobias Waldekranz Date: Wed, 27 Mar 2024 15:52:43 +0100 -Subject: [PATCH 02/28] net: dsa: mv88e6xxx: Improve indirect register access +Subject: [PATCH 02/30] net: dsa: mv88e6xxx: Improve indirect register access perf on 6393 Organization: Wires @@ -22,7 +22,7 @@ other accesses use the regular indirect interface. 5 files changed, 119 insertions(+) diff --git a/drivers/net/dsa/mv88e6xxx/chip.c b/drivers/net/dsa/mv88e6xxx/chip.c -index d64c3eef4447..47138492885e 100644 +index d64c3eef4447a..47138492885e6 100644 --- a/drivers/net/dsa/mv88e6xxx/chip.c +++ b/drivers/net/dsa/mv88e6xxx/chip.c @@ -6539,6 +6539,13 @@ static int mv88e6xxx_detect(struct mv88e6xxx_chip *chip) @@ -40,7 +40,7 @@ index d64c3eef4447..47138492885e 100644 chip->info->prod_num, chip->info->name, rev); diff --git a/drivers/net/dsa/mv88e6xxx/global1.h b/drivers/net/dsa/mv88e6xxx/global1.h -index 3dbb7a1b8fe1..5ea956aadecc 100644 +index 3dbb7a1b8fe11..5ea956aadecc9 100644 --- a/drivers/net/dsa/mv88e6xxx/global1.h +++ b/drivers/net/dsa/mv88e6xxx/global1.h @@ -218,6 +218,9 @@ @@ -54,7 +54,7 @@ index 3dbb7a1b8fe1..5ea956aadecc 100644 #define MV88E6XXX_G1_CTL2 0x1c #define MV88E6185_G1_CTL2_CASCADE_PORT_MASK 0xf000 diff --git a/drivers/net/dsa/mv88e6xxx/global2.h b/drivers/net/dsa/mv88e6xxx/global2.h -index 82f9b410de0b..3663645621c9 100644 +index 82f9b410de0b8..3663645621c9d 100644 --- a/drivers/net/dsa/mv88e6xxx/global2.h +++ b/drivers/net/dsa/mv88e6xxx/global2.h @@ -143,6 +143,9 @@ @@ -68,7 +68,7 @@ index 82f9b410de0b..3663645621c9 100644 #define MV88E6XXX_G2_EEPROM_CMD 0x14 #define MV88E6XXX_G2_EEPROM_CMD_BUSY 0x8000 diff --git a/drivers/net/dsa/mv88e6xxx/smi.c b/drivers/net/dsa/mv88e6xxx/smi.c -index a990271b7482..f54bb0e79030 100644 +index a990271b74823..f54bb0e79030c 100644 --- a/drivers/net/dsa/mv88e6xxx/smi.c +++ b/drivers/net/dsa/mv88e6xxx/smi.c @@ -8,6 +8,8 @@ @@ -169,7 +169,7 @@ index a990271b7482..f54bb0e79030 100644 chip->smi_ops = &mv88e6xxx_smi_indirect_ops; else diff --git a/drivers/net/dsa/mv88e6xxx/smi.h b/drivers/net/dsa/mv88e6xxx/smi.h -index c6c71d5757f5..788cf68b7b33 100644 +index c6c71d5757f5d..788cf68b7b334 100644 --- a/drivers/net/dsa/mv88e6xxx/smi.h +++ b/drivers/net/dsa/mv88e6xxx/smi.h @@ -31,6 +31,36 @@ diff --git a/patches/linux/6.12.42/0003-net-dsa-mv88e6xxx-Honor-ports-being-managed-via-in-b.patch b/patches/linux/6.12.42/0003-net-dsa-mv88e6xxx-Honor-ports-being-managed-via-in-b.patch index 5d569538..481bc316 100644 --- a/patches/linux/6.12.42/0003-net-dsa-mv88e6xxx-Honor-ports-being-managed-via-in-b.patch +++ b/patches/linux/6.12.42/0003-net-dsa-mv88e6xxx-Honor-ports-being-managed-via-in-b.patch @@ -1,7 +1,7 @@ From 91a77f0ff1202cd1f7bca0a62b7c1d07209feb7d Mon Sep 17 00:00:00 2001 From: Tobias Waldekranz Date: Mon, 22 Apr 2024 23:18:01 +0200 -Subject: [PATCH 03/28] net: dsa: mv88e6xxx: Honor ports being managed via +Subject: [PATCH 03/30] net: dsa: mv88e6xxx: Honor ports being managed via in-band-status Organization: Wires @@ -18,7 +18,7 @@ when in-band-status is being used. 1 file changed, 6 insertions(+) diff --git a/drivers/net/dsa/mv88e6xxx/chip.c b/drivers/net/dsa/mv88e6xxx/chip.c -index 47138492885e..b96bc12dc6a8 100644 +index 47138492885e6..b96bc12dc6a86 100644 --- a/drivers/net/dsa/mv88e6xxx/chip.c +++ b/drivers/net/dsa/mv88e6xxx/chip.c @@ -964,6 +964,9 @@ static void mv88e6xxx_mac_link_down(struct phylink_config *config, diff --git a/patches/linux/6.12.42/0004-net-dsa-mv88e6xxx-Limit-rsvd2cpu-policy-to-user-port.patch b/patches/linux/6.12.42/0004-net-dsa-mv88e6xxx-Limit-rsvd2cpu-policy-to-user-port.patch index db9619e1..de85f9fa 100644 --- a/patches/linux/6.12.42/0004-net-dsa-mv88e6xxx-Limit-rsvd2cpu-policy-to-user-port.patch +++ b/patches/linux/6.12.42/0004-net-dsa-mv88e6xxx-Limit-rsvd2cpu-policy-to-user-port.patch @@ -1,7 +1,7 @@ From 562c9080217c439d2ce92307ad675ee3e0572d44 Mon Sep 17 00:00:00 2001 From: Tobias Waldekranz Date: Wed, 24 Apr 2024 22:41:04 +0200 -Subject: [PATCH 04/28] net: dsa: mv88e6xxx: Limit rsvd2cpu policy to user +Subject: [PATCH 04/30] net: dsa: mv88e6xxx: Limit rsvd2cpu policy to user ports on 6393X Organization: Wires @@ -34,7 +34,7 @@ forwarded like any other. 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/drivers/net/dsa/mv88e6xxx/port.c b/drivers/net/dsa/mv88e6xxx/port.c -index 04053fdc6489..f25fb3214acb 100644 +index 04053fdc6489a..f25fb3214acb9 100644 --- a/drivers/net/dsa/mv88e6xxx/port.c +++ b/drivers/net/dsa/mv88e6xxx/port.c @@ -1432,6 +1432,23 @@ static int mv88e6393x_port_policy_write_all(struct mv88e6xxx_chip *chip, diff --git a/patches/linux/6.12.42/0005-net-dsa-mv88e6xxx-Add-LED-infrastructure.patch b/patches/linux/6.12.42/0005-net-dsa-mv88e6xxx-Add-LED-infrastructure.patch index d5da502b..850a3555 100644 --- a/patches/linux/6.12.42/0005-net-dsa-mv88e6xxx-Add-LED-infrastructure.patch +++ b/patches/linux/6.12.42/0005-net-dsa-mv88e6xxx-Add-LED-infrastructure.patch @@ -1,7 +1,7 @@ From e3a3a1d5a835028eb83444b809d87bada292a6f0 Mon Sep 17 00:00:00 2001 From: Tobias Waldekranz Date: Thu, 16 Nov 2023 19:44:32 +0100 -Subject: [PATCH 05/28] net: dsa: mv88e6xxx: Add LED infrastructure +Subject: [PATCH 05/30] net: dsa: mv88e6xxx: Add LED infrastructure Organization: Wires Parse DT for LEDs and register them for devices that support it, @@ -17,7 +17,7 @@ though no actual implementations exist yet. create mode 100644 drivers/net/dsa/mv88e6xxx/leds.h diff --git a/drivers/net/dsa/mv88e6xxx/Makefile b/drivers/net/dsa/mv88e6xxx/Makefile -index a9a9651187db..6720d9303914 100644 +index a9a9651187db7..6720d93039148 100644 --- a/drivers/net/dsa/mv88e6xxx/Makefile +++ b/drivers/net/dsa/mv88e6xxx/Makefile @@ -9,6 +9,7 @@ mv88e6xxx-objs += global2.o @@ -29,7 +29,7 @@ index a9a9651187db..6720d9303914 100644 mv88e6xxx-objs += pcs-6352.o mv88e6xxx-objs += pcs-639x.o diff --git a/drivers/net/dsa/mv88e6xxx/chip.c b/drivers/net/dsa/mv88e6xxx/chip.c -index b96bc12dc6a8..f92b7d7d5780 100644 +index b96bc12dc6a86..f92b7d7d57801 100644 --- a/drivers/net/dsa/mv88e6xxx/chip.c +++ b/drivers/net/dsa/mv88e6xxx/chip.c @@ -37,6 +37,7 @@ @@ -52,7 +52,7 @@ index b96bc12dc6a8..f92b7d7d5780 100644 static void mv88e6xxx_port_teardown(struct dsa_switch *ds, int port) diff --git a/drivers/net/dsa/mv88e6xxx/chip.h b/drivers/net/dsa/mv88e6xxx/chip.h -index a54682240839..32c87ab754d1 100644 +index a546822408396..32c87ab754d1f 100644 --- a/drivers/net/dsa/mv88e6xxx/chip.h +++ b/drivers/net/dsa/mv88e6xxx/chip.h @@ -207,6 +207,7 @@ struct mv88e6xxx_avb_ops; @@ -102,7 +102,7 @@ index a54682240839..32c87ab754d1 100644 static inline bool mv88e6xxx_has_stu(struct mv88e6xxx_chip *chip) diff --git a/drivers/net/dsa/mv88e6xxx/leds.c b/drivers/net/dsa/mv88e6xxx/leds.c new file mode 100644 -index 000000000000..e3de10991f29 +index 0000000000000..e3de10991f297 --- /dev/null +++ b/drivers/net/dsa/mv88e6xxx/leds.c @@ -0,0 +1,185 @@ @@ -293,7 +293,7 @@ index 000000000000..e3de10991f29 +} diff --git a/drivers/net/dsa/mv88e6xxx/leds.h b/drivers/net/dsa/mv88e6xxx/leds.h new file mode 100644 -index 000000000000..8afa2a0c0527 +index 0000000000000..8afa2a0c05278 --- /dev/null +++ b/drivers/net/dsa/mv88e6xxx/leds.h @@ -0,0 +1,12 @@ diff --git a/patches/linux/6.12.42/0006-net-dsa-mv88e6xxx-Add-LED-support-for-6393X.patch b/patches/linux/6.12.42/0006-net-dsa-mv88e6xxx-Add-LED-support-for-6393X.patch index 826bde68..8dbd7c0b 100644 --- a/patches/linux/6.12.42/0006-net-dsa-mv88e6xxx-Add-LED-support-for-6393X.patch +++ b/patches/linux/6.12.42/0006-net-dsa-mv88e6xxx-Add-LED-support-for-6393X.patch @@ -1,7 +1,7 @@ From abe5d15c0d04f410c2a2696b5fb2aa895cca3826 Mon Sep 17 00:00:00 2001 From: Tobias Waldekranz Date: Thu, 16 Nov 2023 21:59:35 +0100 -Subject: [PATCH 06/28] net: dsa: mv88e6xxx: Add LED support for 6393X +Subject: [PATCH 06/30] net: dsa: mv88e6xxx: Add LED support for 6393X Organization: Wires Trigger support: @@ -17,7 +17,7 @@ Trigger support: 5 files changed, 272 insertions(+) diff --git a/drivers/net/dsa/mv88e6xxx/chip.c b/drivers/net/dsa/mv88e6xxx/chip.c -index f92b7d7d5780..c833b7e44d8b 100644 +index f92b7d7d57801..c833b7e44d8b4 100644 --- a/drivers/net/dsa/mv88e6xxx/chip.c +++ b/drivers/net/dsa/mv88e6xxx/chip.c @@ -5691,6 +5691,7 @@ static const struct mv88e6xxx_ops mv88e6393x_ops = { @@ -29,7 +29,7 @@ index f92b7d7d5780..c833b7e44d8b 100644 .pcs_ops = &mv88e6393x_pcs_ops, }; diff --git a/drivers/net/dsa/mv88e6xxx/leds.c b/drivers/net/dsa/mv88e6xxx/leds.c -index e3de10991f29..acdb5eca6647 100644 +index e3de10991f297..acdb5eca66472 100644 --- a/drivers/net/dsa/mv88e6xxx/leds.c +++ b/drivers/net/dsa/mv88e6xxx/leds.c @@ -5,6 +5,13 @@ @@ -276,7 +276,7 @@ index e3de10991f29..acdb5eca6647 100644 enum led_brightness brightness) { diff --git a/drivers/net/dsa/mv88e6xxx/leds.h b/drivers/net/dsa/mv88e6xxx/leds.h -index 8afa2a0c0527..542345d23dc5 100644 +index 8afa2a0c05278..542345d23dc5a 100644 --- a/drivers/net/dsa/mv88e6xxx/leds.h +++ b/drivers/net/dsa/mv88e6xxx/leds.h @@ -7,6 +7,8 @@ @@ -289,7 +289,7 @@ index 8afa2a0c0527..542345d23dc5 100644 #endif /* _MV88E6XXX_LEDS_H */ diff --git a/drivers/net/dsa/mv88e6xxx/port.c b/drivers/net/dsa/mv88e6xxx/port.c -index f25fb3214acb..aa5d312d8aa5 100644 +index f25fb3214acb9..aa5d312d8aa5e 100644 --- a/drivers/net/dsa/mv88e6xxx/port.c +++ b/drivers/net/dsa/mv88e6xxx/port.c @@ -1558,6 +1558,39 @@ int mv88e6351_port_set_ether_type(struct mv88e6xxx_chip *chip, int port, @@ -333,7 +333,7 @@ index f25fb3214acb..aa5d312d8aa5 100644 * Offset 0x19: Port IEEE Priority Remapping Registers [4-7] */ diff --git a/drivers/net/dsa/mv88e6xxx/port.h b/drivers/net/dsa/mv88e6xxx/port.h -index ddadeb9bfdae..7157864dc20f 100644 +index ddadeb9bfdaee..7157864dc20fe 100644 --- a/drivers/net/dsa/mv88e6xxx/port.h +++ b/drivers/net/dsa/mv88e6xxx/port.h @@ -309,6 +309,9 @@ diff --git a/patches/linux/6.12.42/0007-net-dsa-tag_dsa-Use-tag-priority-as-initial-skb-prio.patch b/patches/linux/6.12.42/0007-net-dsa-tag_dsa-Use-tag-priority-as-initial-skb-prio.patch index 275a3f92..eea6147b 100644 --- a/patches/linux/6.12.42/0007-net-dsa-tag_dsa-Use-tag-priority-as-initial-skb-prio.patch +++ b/patches/linux/6.12.42/0007-net-dsa-tag_dsa-Use-tag-priority-as-initial-skb-prio.patch @@ -1,7 +1,7 @@ From 2545496357bd22dd5f34ff802ec5e78617949c48 Mon Sep 17 00:00:00 2001 From: Tobias Waldekranz Date: Tue, 28 May 2024 10:38:42 +0200 -Subject: [PATCH 07/28] net: dsa: tag_dsa: Use tag priority as initial +Subject: [PATCH 07/30] net: dsa: tag_dsa: Use tag priority as initial skb->priority Organization: Wires @@ -24,7 +24,7 @@ implemented, support the setup that is likely to be the most common; a 1 file changed, 7 insertions(+) diff --git a/net/dsa/tag_dsa.c b/net/dsa/tag_dsa.c -index 2a2c4fb61a65..a00ae6bf2971 100644 +index 2a2c4fb61a65c..a00ae6bf29717 100644 --- a/net/dsa/tag_dsa.c +++ b/net/dsa/tag_dsa.c @@ -323,6 +323,13 @@ static struct sk_buff *dsa_rcv_ll(struct sk_buff *skb, struct net_device *dev, diff --git a/patches/linux/6.12.42/0008-net-dsa-Support-MDB-memberships-whose-L2-addresses-o.patch b/patches/linux/6.12.42/0008-net-dsa-Support-MDB-memberships-whose-L2-addresses-o.patch index eb2ee06c..d86a56d0 100644 --- a/patches/linux/6.12.42/0008-net-dsa-Support-MDB-memberships-whose-L2-addresses-o.patch +++ b/patches/linux/6.12.42/0008-net-dsa-Support-MDB-memberships-whose-L2-addresses-o.patch @@ -1,7 +1,7 @@ From 03609dd912ed2af88486f958098c7b7440ea27b6 Mon Sep 17 00:00:00 2001 From: Tobias Waldekranz Date: Tue, 16 Jan 2024 16:00:55 +0100 -Subject: [PATCH 08/28] net: dsa: Support MDB memberships whose L2 addresses +Subject: [PATCH 08/30] net: dsa: Support MDB memberships whose L2 addresses overlap Organization: Wires @@ -34,7 +34,7 @@ which previously skipped reference countung on user ports. 1 file changed, 16 deletions(-) diff --git a/net/dsa/switch.c b/net/dsa/switch.c -index 3d2feeea897b..628e8a884dde 100644 +index 3d2feeea897b6..628e8a884dde5 100644 --- a/net/dsa/switch.c +++ b/net/dsa/switch.c @@ -164,14 +164,6 @@ static int dsa_port_do_mdb_add(struct dsa_port *dp, diff --git a/patches/linux/6.12.42/0009-net-dsa-Support-EtherType-based-priority-overrides.patch b/patches/linux/6.12.42/0009-net-dsa-Support-EtherType-based-priority-overrides.patch index f04385cc..06a86911 100644 --- a/patches/linux/6.12.42/0009-net-dsa-Support-EtherType-based-priority-overrides.patch +++ b/patches/linux/6.12.42/0009-net-dsa-Support-EtherType-based-priority-overrides.patch @@ -1,7 +1,7 @@ From 3b5250872088b5f0451608e2f8ea06cd4a00177c Mon Sep 17 00:00:00 2001 From: Tobias Waldekranz Date: Thu, 21 Mar 2024 19:12:15 +0100 -Subject: [PATCH 09/28] net: dsa: Support EtherType based priority overrides +Subject: [PATCH 09/30] net: dsa: Support EtherType based priority overrides Organization: Wires --- @@ -10,7 +10,7 @@ Organization: Wires 2 files changed, 58 insertions(+), 2 deletions(-) diff --git a/include/net/dsa.h b/include/net/dsa.h -index d7a6c2930277..db30c059b3c2 100644 +index d7a6c2930277e..db30c059b3c25 100644 --- a/include/net/dsa.h +++ b/include/net/dsa.h @@ -968,6 +968,10 @@ struct dsa_switch_ops { @@ -25,7 +25,7 @@ index d7a6c2930277..db30c059b3c2 100644 /* * Suspend and resume diff --git a/net/dsa/user.c b/net/dsa/user.c -index 64f660d2334b..e13fb22e2c2b 100644 +index 64f660d2334b7..e13fb22e2c2b6 100644 --- a/net/dsa/user.c +++ b/net/dsa/user.c @@ -2294,6 +2294,34 @@ dsa_user_dcbnl_add_dscp_prio(struct net_device *dev, struct dcb_app *app) diff --git a/patches/linux/6.12.42/0010-net-dsa-mv88e6xxx-Support-EtherType-based-priority-o.patch b/patches/linux/6.12.42/0010-net-dsa-mv88e6xxx-Support-EtherType-based-priority-o.patch index bfc3f7b8..1e83f8ff 100644 --- a/patches/linux/6.12.42/0010-net-dsa-mv88e6xxx-Support-EtherType-based-priority-o.patch +++ b/patches/linux/6.12.42/0010-net-dsa-mv88e6xxx-Support-EtherType-based-priority-o.patch @@ -1,7 +1,7 @@ From 7463f43f815b99764b9783de0dd8f1625443ba49 Mon Sep 17 00:00:00 2001 From: Tobias Waldekranz Date: Fri, 22 Mar 2024 16:15:43 +0100 -Subject: [PATCH 10/28] net: dsa: mv88e6xxx: Support EtherType based priority +Subject: [PATCH 10/30] net: dsa: mv88e6xxx: Support EtherType based priority overrides Organization: Wires @@ -15,7 +15,7 @@ Organization: Wires 6 files changed, 207 insertions(+), 4 deletions(-) diff --git a/drivers/net/dsa/mv88e6xxx/chip.c b/drivers/net/dsa/mv88e6xxx/chip.c -index c833b7e44d8b..c48369663425 100644 +index c833b7e44d8b4..c483696634256 100644 --- a/drivers/net/dsa/mv88e6xxx/chip.c +++ b/drivers/net/dsa/mv88e6xxx/chip.c @@ -1715,6 +1715,11 @@ static int mv88e6xxx_rmu_setup(struct mv88e6xxx_chip *chip) @@ -118,7 +118,7 @@ index c833b7e44d8b..c48369663425 100644 static int mv88e6xxx_register_switch(struct mv88e6xxx_chip *chip) diff --git a/drivers/net/dsa/mv88e6xxx/chip.h b/drivers/net/dsa/mv88e6xxx/chip.h -index 32c87ab754d1..25edc2534979 100644 +index 32c87ab754d1f..25edc25349790 100644 --- a/drivers/net/dsa/mv88e6xxx/chip.h +++ b/drivers/net/dsa/mv88e6xxx/chip.h @@ -293,6 +293,11 @@ struct mv88e6xxx_port { @@ -171,7 +171,7 @@ index 32c87ab754d1..25edc2534979 100644 struct mv88e6xxx_bus_ops { diff --git a/drivers/net/dsa/mv88e6xxx/global2.c b/drivers/net/dsa/mv88e6xxx/global2.c -index b2b5f6ba438f..2c52903e8992 100644 +index b2b5f6ba438f4..2c52903e8992b 100644 --- a/drivers/net/dsa/mv88e6xxx/global2.c +++ b/drivers/net/dsa/mv88e6xxx/global2.c @@ -315,7 +315,7 @@ int mv88e6xxx_g2_atu_stats_get(struct mv88e6xxx_chip *chip, u16 *stats) @@ -245,7 +245,7 @@ index b2b5f6ba438f..2c52903e8992 100644 * Offset 0x15: EEPROM Data (for 16-bit data access) * Offset 0x15: EEPROM Addr (for 8-bit data access) diff --git a/drivers/net/dsa/mv88e6xxx/global2.h b/drivers/net/dsa/mv88e6xxx/global2.h -index 3663645621c9..496269c26c50 100644 +index 3663645621c9d..496269c26c508 100644 --- a/drivers/net/dsa/mv88e6xxx/global2.h +++ b/drivers/net/dsa/mv88e6xxx/global2.h @@ -138,6 +138,7 @@ @@ -267,7 +267,7 @@ index 3663645621c9..496269c26c50 100644 int mv88e6xxx_g2_trunk_mask_write(struct mv88e6xxx_chip *chip, int num, bool hash, u16 mask); diff --git a/drivers/net/dsa/mv88e6xxx/port.c b/drivers/net/dsa/mv88e6xxx/port.c -index aa5d312d8aa5..84900814c456 100644 +index aa5d312d8aa5e..84900814c4562 100644 --- a/drivers/net/dsa/mv88e6xxx/port.c +++ b/drivers/net/dsa/mv88e6xxx/port.c @@ -1558,6 +1558,52 @@ int mv88e6351_port_set_ether_type(struct mv88e6xxx_chip *chip, int port, @@ -324,7 +324,7 @@ index aa5d312d8aa5..84900814c456 100644 int mv88e6393x_port_led_write(struct mv88e6xxx_chip *chip, int port, diff --git a/drivers/net/dsa/mv88e6xxx/port.h b/drivers/net/dsa/mv88e6xxx/port.h -index 7157864dc20f..7edb04c41ac8 100644 +index 7157864dc20fe..7edb04c41ac85 100644 --- a/drivers/net/dsa/mv88e6xxx/port.h +++ b/drivers/net/dsa/mv88e6xxx/port.h @@ -286,7 +286,18 @@ diff --git a/patches/linux/6.12.42/0011-net-dsa-mv88e6xxx-Add-mqprio-qdisc-support.patch b/patches/linux/6.12.42/0011-net-dsa-mv88e6xxx-Add-mqprio-qdisc-support.patch index a765f524..ec1faf78 100644 --- a/patches/linux/6.12.42/0011-net-dsa-mv88e6xxx-Add-mqprio-qdisc-support.patch +++ b/patches/linux/6.12.42/0011-net-dsa-mv88e6xxx-Add-mqprio-qdisc-support.patch @@ -1,7 +1,7 @@ From 38d2973b2137a904b24a63ab1140393d3ccceb9d Mon Sep 17 00:00:00 2001 From: Tobias Waldekranz Date: Tue, 28 May 2024 11:04:22 +0200 -Subject: [PATCH 11/28] net: dsa: mv88e6xxx: Add mqprio qdisc support +Subject: [PATCH 11/30] net: dsa: mv88e6xxx: Add mqprio qdisc support Organization: Wires Add support for attaching mqprio qdisc's to mv88e6xxx ports and use @@ -30,7 +30,7 @@ handle the mapping down to the "real" number. 2 files changed, 73 insertions(+), 1 deletion(-) diff --git a/drivers/net/dsa/mv88e6xxx/chip.c b/drivers/net/dsa/mv88e6xxx/chip.c -index c48369663425..050a89c1b7e1 100644 +index c483696634256..050a89c1b7e13 100644 --- a/drivers/net/dsa/mv88e6xxx/chip.c +++ b/drivers/net/dsa/mv88e6xxx/chip.c @@ -31,6 +31,7 @@ @@ -132,7 +132,7 @@ index c48369663425..050a89c1b7e1 100644 return dsa_register_switch(ds); diff --git a/net/dsa/tag_dsa.c b/net/dsa/tag_dsa.c -index a00ae6bf2971..55c296e0b5b0 100644 +index a00ae6bf29717..55c296e0b5b0e 100644 --- a/net/dsa/tag_dsa.c +++ b/net/dsa/tag_dsa.c @@ -180,8 +180,10 @@ static struct sk_buff *dsa_xmit_ll(struct sk_buff *skb, struct net_device *dev, diff --git a/patches/linux/6.12.42/0012-net-dsa-mv88e6xxx-Use-VLAN-prio-over-IP-when-both-ar.patch b/patches/linux/6.12.42/0012-net-dsa-mv88e6xxx-Use-VLAN-prio-over-IP-when-both-ar.patch index 95ccfc64..3b582147 100644 --- a/patches/linux/6.12.42/0012-net-dsa-mv88e6xxx-Use-VLAN-prio-over-IP-when-both-ar.patch +++ b/patches/linux/6.12.42/0012-net-dsa-mv88e6xxx-Use-VLAN-prio-over-IP-when-both-ar.patch @@ -1,7 +1,7 @@ From dd401d73673b756623ed662620d5a088dca565b6 Mon Sep 17 00:00:00 2001 From: Tobias Waldekranz Date: Wed, 29 May 2024 13:20:41 +0200 -Subject: [PATCH 12/28] net: dsa: mv88e6xxx: Use VLAN prio over IP when both +Subject: [PATCH 12/30] net: dsa: mv88e6xxx: Use VLAN prio over IP when both are available Organization: Wires @@ -27,7 +27,7 @@ main reasons for choosing the new default: 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/drivers/net/dsa/mv88e6xxx/chip.c b/drivers/net/dsa/mv88e6xxx/chip.c -index 050a89c1b7e1..1888ddd9bfa4 100644 +index 050a89c1b7e13..1888ddd9bfa42 100644 --- a/drivers/net/dsa/mv88e6xxx/chip.c +++ b/drivers/net/dsa/mv88e6xxx/chip.c @@ -3443,9 +3443,13 @@ static int mv88e6xxx_setup_port(struct mv88e6xxx_chip *chip, int port) diff --git a/patches/linux/6.12.42/0013-FIX-net-dsa-mv88e6xxx-Trap-locally-terminated-VLANs.patch b/patches/linux/6.12.42/0013-FIX-net-dsa-mv88e6xxx-Trap-locally-terminated-VLANs.patch index 15f29b27..2af49c22 100644 --- a/patches/linux/6.12.42/0013-FIX-net-dsa-mv88e6xxx-Trap-locally-terminated-VLANs.patch +++ b/patches/linux/6.12.42/0013-FIX-net-dsa-mv88e6xxx-Trap-locally-terminated-VLANs.patch @@ -1,7 +1,7 @@ From 5e9b1a8c14a625b3a96fbf84aed8d08b365ca31e Mon Sep 17 00:00:00 2001 From: Tobias Waldekranz Date: Tue, 26 Nov 2024 19:45:59 +0100 -Subject: [PATCH 13/28] [FIX] net: dsa: mv88e6xxx: Trap locally terminated +Subject: [PATCH 13/30] [FIX] net: dsa: mv88e6xxx: Trap locally terminated VLANs Organization: Wires @@ -31,7 +31,7 @@ cause all packets assigned to these VLANs to properly terminated. 3 files changed, 27 insertions(+), 14 deletions(-) diff --git a/drivers/net/dsa/mv88e6xxx/chip.c b/drivers/net/dsa/mv88e6xxx/chip.c -index 1888ddd9bfa4..70eefc1b2140 100644 +index 1888ddd9bfa42..70eefc1b2140b 100644 --- a/drivers/net/dsa/mv88e6xxx/chip.c +++ b/drivers/net/dsa/mv88e6xxx/chip.c @@ -2665,7 +2665,7 @@ static int mv88e6xxx_port_broadcast_sync(struct mv88e6xxx_chip *chip, int port, @@ -118,7 +118,7 @@ index 1888ddd9bfa4..70eefc1b2140 100644 return err; diff --git a/include/net/switchdev.h b/include/net/switchdev.h -index 8346b0d29542..764cd3dd4645 100644 +index 8346b0d29542c..764cd3dd46454 100644 --- a/include/net/switchdev.h +++ b/include/net/switchdev.h @@ -104,6 +104,10 @@ struct switchdev_obj_port_vlan { @@ -133,7 +133,7 @@ index 8346b0d29542..764cd3dd4645 100644 #define SWITCHDEV_OBJ_PORT_VLAN(OBJ) \ diff --git a/net/dsa/user.c b/net/dsa/user.c -index e13fb22e2c2b..f45e313f1dd0 100644 +index e13fb22e2c2b6..f45e313f1dd07 100644 --- a/net/dsa/user.c +++ b/net/dsa/user.c @@ -1754,6 +1754,8 @@ static int dsa_user_vlan_rx_add_vid(struct net_device *dev, __be16 proto, diff --git a/patches/linux/6.12.42/0014-net-phy-marvell10g-Support-firmware-loading-on-88X33.patch b/patches/linux/6.12.42/0014-net-phy-marvell10g-Support-firmware-loading-on-88X33.patch index 6d8051b7..f80e6ab7 100644 --- a/patches/linux/6.12.42/0014-net-phy-marvell10g-Support-firmware-loading-on-88X33.patch +++ b/patches/linux/6.12.42/0014-net-phy-marvell10g-Support-firmware-loading-on-88X33.patch @@ -1,7 +1,7 @@ From 730ca5898365199b50655e797a781cf845e7374f Mon Sep 17 00:00:00 2001 From: Tobias Waldekranz Date: Tue, 19 Sep 2023 18:38:10 +0200 -Subject: [PATCH 14/28] net: phy: marvell10g: Support firmware loading on +Subject: [PATCH 14/30] net: phy: marvell10g: Support firmware loading on 88X3310 Organization: Wires @@ -16,7 +16,7 @@ fall back. 1 file changed, 161 insertions(+) diff --git a/drivers/net/phy/marvell10g.c b/drivers/net/phy/marvell10g.c -index 6642eb642d4b..79d9483419c0 100644 +index 6642eb642d4bd..79d9483419c05 100644 --- a/drivers/net/phy/marvell10g.c +++ b/drivers/net/phy/marvell10g.c @@ -25,6 +25,7 @@ diff --git a/patches/linux/6.12.42/0015-net-phy-marvell10g-Fix-power-up-when-strapped-to-sta.patch b/patches/linux/6.12.42/0015-net-phy-marvell10g-Fix-power-up-when-strapped-to-sta.patch index 66be7892..e1418b6c 100644 --- a/patches/linux/6.12.42/0015-net-phy-marvell10g-Fix-power-up-when-strapped-to-sta.patch +++ b/patches/linux/6.12.42/0015-net-phy-marvell10g-Fix-power-up-when-strapped-to-sta.patch @@ -1,7 +1,7 @@ From 2ec66ebbc94b963893ee003c7a5654f0945b4329 Mon Sep 17 00:00:00 2001 From: Tobias Waldekranz Date: Tue, 21 Nov 2023 20:15:24 +0100 -Subject: [PATCH 15/28] net: phy: marvell10g: Fix power-up when strapped to +Subject: [PATCH 15/30] net: phy: marvell10g: Fix power-up when strapped to start powered down Organization: Wires @@ -13,7 +13,7 @@ affected by this setting. 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/drivers/net/phy/marvell10g.c b/drivers/net/phy/marvell10g.c -index 79d9483419c0..268484092776 100644 +index 79d9483419c05..2684840927769 100644 --- a/drivers/net/phy/marvell10g.c +++ b/drivers/net/phy/marvell10g.c @@ -342,11 +342,23 @@ static int mv3310_power_down(struct phy_device *phydev) diff --git a/patches/linux/6.12.42/0016-net-phy-marvell10g-Add-LED-support-for-88X3310.patch b/patches/linux/6.12.42/0016-net-phy-marvell10g-Add-LED-support-for-88X3310.patch index a46bcc6e..e77ed286 100644 --- a/patches/linux/6.12.42/0016-net-phy-marvell10g-Add-LED-support-for-88X3310.patch +++ b/patches/linux/6.12.42/0016-net-phy-marvell10g-Add-LED-support-for-88X3310.patch @@ -1,7 +1,7 @@ From 3a1e59af27cb5f2d822b857be846e01825f68f5b Mon Sep 17 00:00:00 2001 From: Tobias Waldekranz Date: Wed, 15 Nov 2023 20:58:42 +0100 -Subject: [PATCH 16/28] net: phy: marvell10g: Add LED support for 88X3310 +Subject: [PATCH 16/30] net: phy: marvell10g: Add LED support for 88X3310 Organization: Wires Pickup the LEDs from the state in which the hardware reset or @@ -22,7 +22,7 @@ Trigger support: 1 file changed, 422 insertions(+) diff --git a/drivers/net/phy/marvell10g.c b/drivers/net/phy/marvell10g.c -index 268484092776..9f8475b67ef7 100644 +index 2684840927769..9f8475b67ef74 100644 --- a/drivers/net/phy/marvell10g.c +++ b/drivers/net/phy/marvell10g.c @@ -28,6 +28,7 @@ diff --git a/patches/linux/6.12.42/0017-net-phy-marvell10g-Support-LEDs-tied-to-a-single-med.patch b/patches/linux/6.12.42/0017-net-phy-marvell10g-Support-LEDs-tied-to-a-single-med.patch index ddb1d9ac..90f6ff64 100644 --- a/patches/linux/6.12.42/0017-net-phy-marvell10g-Support-LEDs-tied-to-a-single-med.patch +++ b/patches/linux/6.12.42/0017-net-phy-marvell10g-Support-LEDs-tied-to-a-single-med.patch @@ -1,7 +1,7 @@ From 09ce57976021cd1bcd6c16393ed06d6e74c04394 Mon Sep 17 00:00:00 2001 From: Tobias Waldekranz Date: Tue, 12 Dec 2023 09:51:05 +0100 -Subject: [PATCH 17/28] net: phy: marvell10g: Support LEDs tied to a single +Subject: [PATCH 17/30] net: phy: marvell10g: Support LEDs tied to a single media side Organization: Wires @@ -19,7 +19,7 @@ versa for the SFP cage. 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/drivers/net/phy/marvell10g.c b/drivers/net/phy/marvell10g.c -index 9f8475b67ef7..82b2e9b55b67 100644 +index 9f8475b67ef74..82b2e9b55b673 100644 --- a/drivers/net/phy/marvell10g.c +++ b/drivers/net/phy/marvell10g.c @@ -192,6 +192,9 @@ struct mv3310_chip { diff --git a/patches/linux/6.12.42/0018-net-phy-Do-not-resume-PHY-when-attaching.patch b/patches/linux/6.12.42/0018-net-phy-Do-not-resume-PHY-when-attaching.patch index 567bed7c..973a23ff 100644 --- a/patches/linux/6.12.42/0018-net-phy-Do-not-resume-PHY-when-attaching.patch +++ b/patches/linux/6.12.42/0018-net-phy-Do-not-resume-PHY-when-attaching.patch @@ -1,7 +1,7 @@ From 54ead59e5b54be441ce6507132535873ba262674 Mon Sep 17 00:00:00 2001 From: Tobias Waldekranz Date: Wed, 27 Mar 2024 10:10:19 +0100 -Subject: [PATCH 18/28] net: phy: Do not resume PHY when attaching +Subject: [PATCH 18/30] net: phy: Do not resume PHY when attaching Organization: Wires The PHY should not start negotiating with its link-partner until @@ -20,7 +20,7 @@ administratively down. 1 file changed, 1 deletion(-) diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c -index 834624a61060..d09872e1ac4e 100644 +index 834624a61060e..d09872e1ac4ee 100644 --- a/drivers/net/phy/phy_device.c +++ b/drivers/net/phy/phy_device.c @@ -1661,7 +1661,6 @@ int phy_attach_direct(struct net_device *dev, struct phy_device *phydev, diff --git a/patches/linux/6.12.42/0019-net-bridge-avoid-classifying-unknown-multicast-as-mr.patch b/patches/linux/6.12.42/0019-net-bridge-avoid-classifying-unknown-multicast-as-mr.patch index 80c6ed9a..552f4ce2 100644 --- a/patches/linux/6.12.42/0019-net-bridge-avoid-classifying-unknown-multicast-as-mr.patch +++ b/patches/linux/6.12.42/0019-net-bridge-avoid-classifying-unknown-multicast-as-mr.patch @@ -1,7 +1,7 @@ From 03f21e47910e236ddd6c65429d1a049ddae10e66 Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Mon, 4 Mar 2024 16:47:28 +0100 -Subject: [PATCH 19/28] net: bridge: avoid classifying unknown multicast as +Subject: [PATCH 19/30] net: bridge: avoid classifying unknown multicast as mrouters_only Organization: Wires @@ -27,7 +27,7 @@ Signed-off-by: Joachim Wiberg 7 files changed, 50 insertions(+), 11 deletions(-) diff --git a/include/uapi/linux/if_bridge.h b/include/uapi/linux/if_bridge.h -index a5b743a2f775..3bffc39d7800 100644 +index a5b743a2f7750..3bffc39d78009 100644 --- a/include/uapi/linux/if_bridge.h +++ b/include/uapi/linux/if_bridge.h @@ -830,6 +830,7 @@ enum br_boolopt_id { @@ -39,7 +39,7 @@ index a5b743a2f775..3bffc39d7800 100644 }; diff --git a/net/bridge/br.c b/net/bridge/br.c -index 2cab878e0a39..006fb2e5eafb 100644 +index 2cab878e0a39c..006fb2e5eafbf 100644 --- a/net/bridge/br.c +++ b/net/bridge/br.c @@ -277,6 +277,9 @@ int br_boolopt_toggle(struct net_bridge *br, enum br_boolopt_id opt, bool on, @@ -62,7 +62,7 @@ index 2cab878e0a39..006fb2e5eafb 100644 /* shouldn't be called with unsupported options */ WARN_ON(1); diff --git a/net/bridge/br_device.c b/net/bridge/br_device.c -index 26b79feb385d..f3ecc70a47dc 100644 +index 26b79feb385d2..f3ecc70a47dc3 100644 --- a/net/bridge/br_device.c +++ b/net/bridge/br_device.c @@ -87,10 +87,10 @@ netdev_tx_t br_dev_xmit(struct sk_buff *skb, struct net_device *dev) @@ -102,7 +102,7 @@ index 26b79feb385d..f3ecc70a47dc 100644 br_stp_timer_init(br); br_multicast_init(br); diff --git a/net/bridge/br_forward.c b/net/bridge/br_forward.c -index e19b583ff2c6..1094364d96e0 100644 +index e19b583ff2c6d..1094364d96e0b 100644 --- a/net/bridge/br_forward.c +++ b/net/bridge/br_forward.c @@ -198,14 +198,19 @@ static struct net_bridge_port *maybe_deliver( @@ -140,7 +140,7 @@ index e19b583ff2c6..1094364d96e0 100644 continue; break; diff --git a/net/bridge/br_input.c b/net/bridge/br_input.c -index ceaa5a89b947..e54d648db7de 100644 +index ceaa5a89b947f..e54d648db7de8 100644 --- a/net/bridge/br_input.c +++ b/net/bridge/br_input.c @@ -212,7 +212,7 @@ int br_handle_frame_finish(struct net *net, struct sock *sk, struct sk_buff *skb @@ -153,7 +153,7 @@ index ceaa5a89b947..e54d648db7de 100644 br_multicast_flood(mdst, skb, brmctx, local_rcv, false); } diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c -index 733ff6b758f6..b1799e03403f 100644 +index 733ff6b758f69..b1799e03403ff 100644 --- a/net/bridge/br_multicast.c +++ b/net/bridge/br_multicast.c @@ -3835,6 +3835,11 @@ static void br_multicast_err_count(const struct net_bridge *br, @@ -189,7 +189,7 @@ index 733ff6b758f6..b1799e03403f 100644 ipv6_addr_is_all_snoopers(&ipv6_hdr(skb)->daddr)) br_ip6_multicast_mrd_rcv(brmctx, pmctx, skb); diff --git a/net/bridge/br_private.h b/net/bridge/br_private.h -index 6a1bce8959af..ed5325c6add9 100644 +index 6a1bce8959afa..ed5325c6add97 100644 --- a/net/bridge/br_private.h +++ b/net/bridge/br_private.h @@ -483,6 +483,7 @@ enum net_bridge_opts { diff --git a/patches/linux/6.12.42/0020-net-bridge-Ignore-router-ports-when-forwarding-L2-mu.patch b/patches/linux/6.12.42/0020-net-bridge-Ignore-router-ports-when-forwarding-L2-mu.patch index 18ecbc18..d1198e6f 100644 --- a/patches/linux/6.12.42/0020-net-bridge-Ignore-router-ports-when-forwarding-L2-mu.patch +++ b/patches/linux/6.12.42/0020-net-bridge-Ignore-router-ports-when-forwarding-L2-mu.patch @@ -1,7 +1,7 @@ From 9a4b7a20f0f679bd105645bf6b7cb542ba580ee3 Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Tue, 5 Mar 2024 06:44:41 +0100 -Subject: [PATCH 20/28] net: bridge: Ignore router ports when forwarding L2 +Subject: [PATCH 20/30] net: bridge: Ignore router ports when forwarding L2 multicast Organization: Wires @@ -17,7 +17,7 @@ Signed-off-by: Joachim Wiberg 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/net/bridge/br_private.h b/net/bridge/br_private.h -index ed5325c6add9..0afb886b9a30 100644 +index ed5325c6add97..0afb886b9a303 100644 --- a/net/bridge/br_private.h +++ b/net/bridge/br_private.h @@ -1088,7 +1088,10 @@ br_multicast_get_first_rport_node(struct net_bridge_mcast *brmctx, diff --git a/patches/linux/6.12.42/0021-net-bridge-drop-delay-for-applying-strict-multicast-.patch b/patches/linux/6.12.42/0021-net-bridge-drop-delay-for-applying-strict-multicast-.patch index 8247356e..226fff98 100644 --- a/patches/linux/6.12.42/0021-net-bridge-drop-delay-for-applying-strict-multicast-.patch +++ b/patches/linux/6.12.42/0021-net-bridge-drop-delay-for-applying-strict-multicast-.patch @@ -1,7 +1,7 @@ From fa5c4701d9ee8df41107df81d31683a1b68fa654 Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Thu, 4 Apr 2024 16:36:30 +0200 -Subject: [PATCH 21/28] net: bridge: drop delay for applying strict multicast +Subject: [PATCH 21/30] net: bridge: drop delay for applying strict multicast filtering Organization: Wires @@ -25,7 +25,7 @@ Signed-off-by: Joachim Wiberg 2 files changed, 8 insertions(+), 38 deletions(-) diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c -index b1799e03403f..282105bdca85 100644 +index b1799e03403ff..282105bdca85d 100644 --- a/net/bridge/br_multicast.c +++ b/net/bridge/br_multicast.c @@ -1762,10 +1762,6 @@ static void br_ip6_multicast_querier_expired(struct timer_list *t) @@ -164,7 +164,7 @@ index b1799e03403f..282105bdca85 100644 #endif diff --git a/net/bridge/br_private.h b/net/bridge/br_private.h -index 0afb886b9a30..5b5b2c2442a5 100644 +index 0afb886b9a303..5b5b2c2442a57 100644 --- a/net/bridge/br_private.h +++ b/net/bridge/br_private.h @@ -78,7 +78,6 @@ struct bridge_mcast_own_query { diff --git a/patches/linux/6.12.42/0022-net-bridge-Differentiate-MDB-additions-from-modifica.patch b/patches/linux/6.12.42/0022-net-bridge-Differentiate-MDB-additions-from-modifica.patch index 9407d287..4f0e237e 100644 --- a/patches/linux/6.12.42/0022-net-bridge-Differentiate-MDB-additions-from-modifica.patch +++ b/patches/linux/6.12.42/0022-net-bridge-Differentiate-MDB-additions-from-modifica.patch @@ -1,7 +1,7 @@ From 1e450a2ad39e64de48bea281823311b5fa2d4d53 Mon Sep 17 00:00:00 2001 From: Tobias Waldekranz Date: Thu, 16 May 2024 14:51:54 +0200 -Subject: [PATCH 22/28] net: bridge: Differentiate MDB additions from +Subject: [PATCH 22/30] net: bridge: Differentiate MDB additions from modifications Organization: Wires @@ -28,7 +28,7 @@ introducing a RTM_SETMDB events to be used in the latter scenario. 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/include/uapi/linux/rtnetlink.h b/include/uapi/linux/rtnetlink.h -index db7254d52d93..63508279df47 100644 +index db7254d52d935..63508279df478 100644 --- a/include/uapi/linux/rtnetlink.h +++ b/include/uapi/linux/rtnetlink.h @@ -134,6 +134,8 @@ enum { @@ -41,7 +41,7 @@ index db7254d52d93..63508279df47 100644 RTM_NEWNSID = 88, #define RTM_NEWNSID RTM_NEWNSID diff --git a/net/bridge/br_mdb.c b/net/bridge/br_mdb.c -index 7e1ad229e133..3b1873e7c499 100644 +index 7e1ad229e1330..3b1873e7c499a 100644 --- a/net/bridge/br_mdb.c +++ b/net/bridge/br_mdb.c @@ -734,7 +734,7 @@ static int br_mdb_replace_group_sg(const struct br_mdb_config *cfg, @@ -63,7 +63,7 @@ index 7e1ad229e133..3b1873e7c499 100644 if (br_multicast_should_handle_mode(brmctx, cfg->group.proto)) br_multicast_star_g_handle_mode(pg, cfg->filter_mode); diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c -index 282105bdca85..aa97b07ed528 100644 +index 282105bdca85d..aa97b07ed528e 100644 --- a/net/bridge/br_multicast.c +++ b/net/bridge/br_multicast.c @@ -619,7 +619,7 @@ static void br_multicast_fwd_src_handle(struct net_bridge_group_src *src) diff --git a/patches/linux/6.12.42/0023-nvmem-layouts-onie-tlv-Let-device-probe-even-when-TL.patch b/patches/linux/6.12.42/0023-nvmem-layouts-onie-tlv-Let-device-probe-even-when-TL.patch index 354a7c40..a8d45672 100644 --- a/patches/linux/6.12.42/0023-nvmem-layouts-onie-tlv-Let-device-probe-even-when-TL.patch +++ b/patches/linux/6.12.42/0023-nvmem-layouts-onie-tlv-Let-device-probe-even-when-TL.patch @@ -1,7 +1,7 @@ From 2ea43d917c5e65c7af20ea690adb4b7affc0b3a0 Mon Sep 17 00:00:00 2001 From: Tobias Waldekranz Date: Fri, 24 Nov 2023 23:29:55 +0100 -Subject: [PATCH 23/28] nvmem: layouts: onie-tlv: Let device probe even when +Subject: [PATCH 23/30] nvmem: layouts: onie-tlv: Let device probe even when TLV is invalid Organization: Wires @@ -18,7 +18,7 @@ simply refrain from registering any cells in those cases. 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/nvmem/layouts/onie-tlv.c b/drivers/nvmem/layouts/onie-tlv.c -index 0967a32319a2..48547d5bb502 100644 +index 0967a32319a28..48547d5bb5020 100644 --- a/drivers/nvmem/layouts/onie-tlv.c +++ b/drivers/nvmem/layouts/onie-tlv.c @@ -197,7 +197,7 @@ static int onie_tlv_parse_table(struct nvmem_layout *layout) diff --git a/patches/linux/6.12.42/0024-usb-core-adjust-log-level-for-unauthorized-devices.patch b/patches/linux/6.12.42/0024-usb-core-adjust-log-level-for-unauthorized-devices.patch index 5ecc069b..3566bda5 100644 --- a/patches/linux/6.12.42/0024-usb-core-adjust-log-level-for-unauthorized-devices.patch +++ b/patches/linux/6.12.42/0024-usb-core-adjust-log-level-for-unauthorized-devices.patch @@ -1,7 +1,7 @@ From 81649f0cb80310a46b9e081d198d9607c6b72554 Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Mon, 29 Apr 2024 15:14:51 +0200 -Subject: [PATCH 24/28] usb: core: adjust log level for unauthorized devices +Subject: [PATCH 24/30] usb: core: adjust log level for unauthorized devices Organization: Wires The fact that a USB device currently is not authorized is not an error, @@ -15,7 +15,7 @@ Signed-off-by: Joachim Wiberg 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/usb/core/driver.c b/drivers/usb/core/driver.c -index 0c3f12daac79..037f03aace9f 100644 +index 0c3f12daac79e..037f03aace9f9 100644 --- a/drivers/usb/core/driver.c +++ b/drivers/usb/core/driver.c @@ -335,10 +335,10 @@ static int usb_probe_interface(struct device *dev) @@ -32,7 +32,7 @@ index 0c3f12daac79..037f03aace9f 100644 return error; } diff --git a/drivers/usb/core/generic.c b/drivers/usb/core/generic.c -index b134bff5c3fe..60575a01a810 100644 +index b134bff5c3fe3..60575a01a8104 100644 --- a/drivers/usb/core/generic.c +++ b/drivers/usb/core/generic.c @@ -247,7 +247,7 @@ int usb_generic_driver_probe(struct usb_device *udev) diff --git a/patches/linux/6.12.42/0025-net-dsa-mv88e6xxx-collapse-disabled-state-into-block.patch b/patches/linux/6.12.42/0025-net-dsa-mv88e6xxx-collapse-disabled-state-into-block.patch index 9ff10791..885826eb 100644 --- a/patches/linux/6.12.42/0025-net-dsa-mv88e6xxx-collapse-disabled-state-into-block.patch +++ b/patches/linux/6.12.42/0025-net-dsa-mv88e6xxx-collapse-disabled-state-into-block.patch @@ -1,7 +1,7 @@ From 2d2b8e8cc0affdf1534080ac9bd273bdf177452e Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Thu, 16 Jan 2025 12:35:12 +0100 -Subject: [PATCH 25/28] net: dsa: mv88e6xxx: collapse disabled state into +Subject: [PATCH 25/30] net: dsa: mv88e6xxx: collapse disabled state into blocking Organization: Wires @@ -23,7 +23,7 @@ Signed-off-by: Joachim Wiberg 1 file changed, 2 deletions(-) diff --git a/drivers/net/dsa/mv88e6xxx/port.c b/drivers/net/dsa/mv88e6xxx/port.c -index 84900814c456..91e58297594c 100644 +index 84900814c4562..91e58297594cb 100644 --- a/drivers/net/dsa/mv88e6xxx/port.c +++ b/drivers/net/dsa/mv88e6xxx/port.c @@ -791,8 +791,6 @@ int mv88e6xxx_port_set_state(struct mv88e6xxx_chip *chip, int port, u8 state) diff --git a/patches/linux/6.12.42/0026-net-dsa-mv88e6xxx-Only-activate-LAG-offloading-when-.patch b/patches/linux/6.12.42/0026-net-dsa-mv88e6xxx-Only-activate-LAG-offloading-when-.patch index dc82026d..c19119c7 100644 --- a/patches/linux/6.12.42/0026-net-dsa-mv88e6xxx-Only-activate-LAG-offloading-when-.patch +++ b/patches/linux/6.12.42/0026-net-dsa-mv88e6xxx-Only-activate-LAG-offloading-when-.patch @@ -1,7 +1,7 @@ From 4c254c368564a9cb0a615b5a6c31d2401b07072b Mon Sep 17 00:00:00 2001 From: Tobias Waldekranz Date: Wed, 12 Feb 2025 22:03:14 +0100 -Subject: [PATCH 26/28] net: dsa: mv88e6xxx: Only activate LAG offloading when +Subject: [PATCH 26/30] net: dsa: mv88e6xxx: Only activate LAG offloading when bridged Organization: Wires @@ -51,7 +51,7 @@ CPU; egress traffic always relies on software hashing. 1 file changed, 20 insertions(+), 22 deletions(-) diff --git a/drivers/net/dsa/mv88e6xxx/chip.c b/drivers/net/dsa/mv88e6xxx/chip.c -index 70eefc1b2140..e0db6333e418 100644 +index 70eefc1b2140b..e0db6333e418c 100644 --- a/drivers/net/dsa/mv88e6xxx/chip.c +++ b/drivers/net/dsa/mv88e6xxx/chip.c @@ -3106,6 +3106,7 @@ static int mv88e6xxx_port_bridge_join(struct dsa_switch *ds, int port, diff --git a/patches/linux/6.12.42/0027-net-usb-r8152-add-r8153b-support-for-link-activity-L.patch b/patches/linux/6.12.42/0027-net-usb-r8152-add-r8153b-support-for-link-activity-L.patch index 6c934d25..ea700d81 100644 --- a/patches/linux/6.12.42/0027-net-usb-r8152-add-r8153b-support-for-link-activity-L.patch +++ b/patches/linux/6.12.42/0027-net-usb-r8152-add-r8153b-support-for-link-activity-L.patch @@ -1,7 +1,7 @@ From 4e22ecbdcb6609b9f2d00487ffbc166565261c23 Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Sun, 11 Aug 2024 11:27:35 +0200 -Subject: [PATCH 27/28] net: usb: r8152: add r8153b support for link/activity +Subject: [PATCH 27/30] net: usb: r8152: add r8153b support for link/activity LEDs Organization: Wires @@ -19,7 +19,7 @@ Signed-off-by: Joachim Wiberg 1 file changed, 8 insertions(+) diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c -index 2cab046749a9..c9947ad320ff 100644 +index 2cab046749a92..c9947ad320ff9 100644 --- a/drivers/net/usb/r8152.c +++ b/drivers/net/usb/r8152.c @@ -41,6 +41,11 @@ diff --git a/patches/linux/6.12.42/0028-arm64-dts-mediatek-mt7986a-rename-BPi-R3-ports-to-ma.patch b/patches/linux/6.12.42/0028-arm64-dts-mediatek-mt7986a-rename-BPi-R3-ports-to-ma.patch index 2821530d..ada2987f 100644 --- a/patches/linux/6.12.42/0028-arm64-dts-mediatek-mt7986a-rename-BPi-R3-ports-to-ma.patch +++ b/patches/linux/6.12.42/0028-arm64-dts-mediatek-mt7986a-rename-BPi-R3-ports-to-ma.patch @@ -1,7 +1,7 @@ From 185cdd3a26a9e33c004d7343dc05696ba4d72b10 Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Sun, 10 Aug 2025 18:52:54 +0200 -Subject: [PATCH 28/28] arm64: dts: mediatek: mt7986a: rename BPi R3 ports to +Subject: [PATCH 28/30] arm64: dts: mediatek: mt7986a: rename BPi R3 ports to match case Organization: Wires @@ -16,7 +16,7 @@ Signed-off-by: Joachim Wiberg 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/arch/arm64/boot/dts/mediatek/mt7986a-bananapi-bpi-r3.dts b/arch/arm64/boot/dts/mediatek/mt7986a-bananapi-bpi-r3.dts -index ed79ad1ae871..1c7c666e3173 100644 +index ed79ad1ae8716..1c7c666e3173b 100644 --- a/arch/arm64/boot/dts/mediatek/mt7986a-bananapi-bpi-r3.dts +++ b/arch/arm64/boot/dts/mediatek/mt7986a-bananapi-bpi-r3.dts @@ -46,7 +46,7 @@ fan: pwm-fan { diff --git a/patches/linux/6.12.42/0029-drm-panel-simple-Add-a-timing-for-the-Raspberry-Pi-7.patch b/patches/linux/6.12.42/0029-drm-panel-simple-Add-a-timing-for-the-Raspberry-Pi-7.patch new file mode 100644 index 00000000..99c2dbd4 --- /dev/null +++ b/patches/linux/6.12.42/0029-drm-panel-simple-Add-a-timing-for-the-Raspberry-Pi-7.patch @@ -0,0 +1,104 @@ +From 3b549f8064abc24e7b3c09b10a3d5ab177e649c2 Mon Sep 17 00:00:00 2001 +From: Mattias Walström +Date: Wed, 20 Aug 2025 21:38:24 +0200 +Subject: [PATCH 29/30] drm/panel-simple: Add a timing for the Raspberry Pi 7" + panel +Organization: Wires + +The Raspberry Pi 7" 800x480 panel uses a Toshiba TC358762 DSI +to DPI bridge chip, so there is a requirement for the timings +to be specified for the end panel. Add such a definition. + +Signed-off-by: Dave Stevenson + +drm/panel: simple: Alter the timing for the Pi 7" DSI display + +vc4 has always fixed up the timing, so the values defined have +never actually appeared on the wire. +The display appears to want a slightly longer HFP, so extend +the timings and recompute the clock to give the same frame rate. + +Signed-off-by: Dave Stevenson + +drm/panel-simple: Fix 7inch panel mode for misalignment + +The 7inch panel is one line off the screen both horizontally +and vertically. + +Alter the panel mode to correct this. + +Signed-off-by: Dave Stevenson + +drm/panel-simple: Increase pixel clock on Pi 7inch panel + +The Toshiba bridge is very fussy and doesn't like the CM3 +output when being told to produce a 27.777MHz pixel clock, which +is an almost perfect match to the DSI link integer divider. + +Increasing to 30MHz will switch the DSI link from 333MHz to 400MHz +and makes the bridge happy with the same video timing as works +on Pi4. +(Pi4 will be using a link frequency of 375MHz due to a 3GHz +parent PLL). + +Signed-off-by: Dave Stevenson +--- + drivers/gpu/drm/panel/panel-simple.c | 31 +++++++++++++++++++++++++++- + 1 file changed, 30 insertions(+), 1 deletion(-) + +diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c +index 82db3daf4f81a..3699cef24ea6f 100644 +--- a/drivers/gpu/drm/panel/panel-simple.c ++++ b/drivers/gpu/drm/panel/panel-simple.c +@@ -391,7 +391,8 @@ static int panel_simple_get_modes(struct drm_panel *panel, + * TODO: Remove once all drm drivers call + * drm_connector_set_orientation_from_panel() + */ +- drm_connector_set_panel_orientation(connector, p->orientation); ++ /* RPI Hack */ ++ //drm_connector_set_panel_orientation(connector, p->orientation); + + return num; + } +@@ -3829,6 +3830,31 @@ static const struct panel_desc qishenglong_gopher2b_lcd = { + .connector_type = DRM_MODE_CONNECTOR_DPI, + }; + ++static const struct drm_display_mode raspberrypi_7inch_mode = { ++ .clock = 30000, ++ .hdisplay = 800, ++ .hsync_start = 800 + 131, ++ .hsync_end = 800 + 131 + 2, ++ .htotal = 800 + 131 + 2 + 45, ++ .vdisplay = 480, ++ .vsync_start = 480 + 7, ++ .vsync_end = 480 + 7 + 2, ++ .vtotal = 480 + 7 + 2 + 22, ++ .flags = DRM_MODE_FLAG_NVSYNC | DRM_MODE_FLAG_NHSYNC, ++}; ++ ++static const struct panel_desc raspberrypi_7inch = { ++ .modes = &raspberrypi_7inch_mode, ++ .num_modes = 1, ++ .bpc = 8, ++ .size = { ++ .width = 154, ++ .height = 86, ++ }, ++ .bus_format = MEDIA_BUS_FMT_RGB888_1X24, ++ .connector_type = DRM_MODE_CONNECTOR_DSI, ++}; ++ + static const struct display_timing rocktech_rk043fn48h_timing = { + .pixelclock = { 6000000, 9000000, 12000000 }, + .hactive = { 480, 480, 480 }, +@@ -4977,6 +5003,9 @@ static const struct of_device_id platform_of_match[] = { + .compatible = "qishenglong,gopher2b-lcd", + .data = &qishenglong_gopher2b_lcd, + }, { ++ .compatible = "raspberrypi,7inch-dsi", ++ .data = &raspberrypi_7inch, ++ }, { + .compatible = "rocktech,rk043fn48h", + .data = &rocktech_rk043fn48h, + }, { diff --git a/patches/linux/6.12.42/0030-input-touchscreen-edt-ft5x06-Add-polled-mode.patch b/patches/linux/6.12.42/0030-input-touchscreen-edt-ft5x06-Add-polled-mode.patch new file mode 100644 index 00000000..960a3e1c --- /dev/null +++ b/patches/linux/6.12.42/0030-input-touchscreen-edt-ft5x06-Add-polled-mode.patch @@ -0,0 +1,160 @@ +From 9188aca67f9a00f91de065ce74e8d34381436656 Mon Sep 17 00:00:00 2001 +From: Mattias Walström +Date: Thu, 21 Aug 2025 11:20:23 +0200 +Subject: [PATCH 30/30] input:touchscreen:edt-ft5x06: Add polled mode +Organization: Wires + +Not all hardware has interrupts therefore we need +to poll the touchscreen. +--- + drivers/input/touchscreen/edt-ft5x06.c | 74 ++++++++++++++++++++------ + 1 file changed, 58 insertions(+), 16 deletions(-) + +diff --git a/drivers/input/touchscreen/edt-ft5x06.c b/drivers/input/touchscreen/edt-ft5x06.c +index 85c6d8ce003f3..e615199151375 100644 +--- a/drivers/input/touchscreen/edt-ft5x06.c ++++ b/drivers/input/touchscreen/edt-ft5x06.c +@@ -77,6 +77,9 @@ + #define EDT_DEFAULT_NUM_X 1024 + #define EDT_DEFAULT_NUM_Y 1024 + ++#define FIRST_POLL_DELAY_MS 300 /* in addition to the above */ ++#define POLL_INTERVAL_MS 17 /* 17ms = 60fps */ ++ + #define M06_REG_CMD(factory) ((factory) ? 0xf3 : 0xfc) + #define M06_REG_ADDR(factory, addr) ((factory) ? (addr) & 0x7f : (addr) & 0x3f) + +@@ -139,6 +142,7 @@ struct edt_ft5x06_ts_data { + u8 tdata_cmd; + int tdata_len; + int tdata_offset; ++ int init_td_status; + + char name[EDT_NAME_LEN]; + char fw_version[EDT_NAME_LEN]; +@@ -147,6 +151,9 @@ struct edt_ft5x06_ts_data { + enum edt_ver version; + unsigned int crc_errors; + unsigned int header_errors; ++ ++ struct timer_list timer; ++ struct work_struct work_i2c_poll; + }; + + struct edt_i2c_chip_data { +@@ -582,6 +589,22 @@ static struct attribute *edt_ft5x06_attrs[] = { + }; + ATTRIBUTE_GROUPS(edt_ft5x06); + ++static void edt_ft5x06_ts_irq_poll_timer(struct timer_list *t) ++{ ++ struct edt_ft5x06_ts_data *tsdata = from_timer(tsdata, t, timer); ++ ++ schedule_work(&tsdata->work_i2c_poll); ++ mod_timer(&tsdata->timer, jiffies + msecs_to_jiffies(POLL_INTERVAL_MS)); ++} ++ ++static void edt_ft5x06_ts_work_i2c_poll(struct work_struct *work) ++{ ++ struct edt_ft5x06_ts_data *tsdata = container_of(work, ++ struct edt_ft5x06_ts_data, work_i2c_poll); ++ ++ edt_ft5x06_ts_isr(0, tsdata); ++} ++ + static void edt_ft5x06_restore_reg_parameters(struct edt_ft5x06_ts_data *tsdata) + { + struct edt_reg_addr *reg_addr = &tsdata->reg_addr; +@@ -614,7 +637,9 @@ static int edt_ft5x06_factory_mode(struct edt_ft5x06_ts_data *tsdata) + return -EINVAL; + } + +- disable_irq(client->irq); ++ if (client->irq) { ++ disable_irq(client->irq); ++ } + + if (!tsdata->raw_buffer) { + tsdata->raw_bufsize = tsdata->num_x * tsdata->num_y * +@@ -657,7 +682,8 @@ static int edt_ft5x06_factory_mode(struct edt_ft5x06_ts_data *tsdata) + kfree(tsdata->raw_buffer); + tsdata->raw_buffer = NULL; + tsdata->factory_mode = false; +- enable_irq(client->irq); ++ if (client->irq) ++ enable_irq(client->irq); + + return error; + } +@@ -698,7 +724,8 @@ static int edt_ft5x06_work_mode(struct edt_ft5x06_ts_data *tsdata) + tsdata->raw_buffer = NULL; + + edt_ft5x06_restore_reg_parameters(tsdata); +- enable_irq(client->irq); ++ if (client->irq) ++ enable_irq(client->irq); + + return 0; + } +@@ -1331,18 +1358,27 @@ static int edt_ft5x06_ts_probe(struct i2c_client *client) + dev_err(&client->dev, "Unable to init MT slots.\n"); + return error; + } +- +- irq_flags = irq_get_trigger_type(client->irq); +- if (irq_flags == IRQF_TRIGGER_NONE) +- irq_flags = IRQF_TRIGGER_FALLING; +- irq_flags |= IRQF_ONESHOT; +- +- error = devm_request_threaded_irq(&client->dev, client->irq, +- NULL, edt_ft5x06_ts_isr, irq_flags, +- client->name, tsdata); +- if (error) { +- dev_err(&client->dev, "Unable to request touchscreen IRQ.\n"); +- return error; ++ if (client->irq) { ++ irq_flags = irq_get_trigger_type(client->irq); ++ if (irq_flags == IRQF_TRIGGER_NONE) ++ irq_flags = IRQF_TRIGGER_FALLING; ++ irq_flags |= IRQF_ONESHOT; ++ ++ error = devm_request_threaded_irq(&client->dev, client->irq, ++ NULL, edt_ft5x06_ts_isr, irq_flags, ++ client->name, tsdata); ++ if (error) { ++ dev_err(&client->dev, "Unable to request touchscreen IRQ.\n"); ++ return error; ++ } ++ } else { ++ tsdata->init_td_status = -1; /* filter bogus initial data */ ++ INIT_WORK(&tsdata->work_i2c_poll, ++ edt_ft5x06_ts_work_i2c_poll); ++ timer_setup(&tsdata->timer, edt_ft5x06_ts_irq_poll_timer, 0); ++ tsdata->timer.expires = ++ jiffies + msecs_to_jiffies(FIRST_POLL_DELAY_MS); ++ add_timer(&tsdata->timer); + } + + error = input_register_device(input); +@@ -1364,6 +1400,11 @@ static void edt_ft5x06_ts_remove(struct i2c_client *client) + { + struct edt_ft5x06_ts_data *tsdata = i2c_get_clientdata(client); + ++ if (!client->irq) { ++ del_timer(&tsdata->timer); ++ cancel_work_sync(&tsdata->work_i2c_poll); ++ } ++ + edt_ft5x06_ts_teardown_debugfs(tsdata); + } + +@@ -1395,7 +1436,8 @@ static int edt_ft5x06_ts_suspend(struct device *dev) + * settings. Disable the irq to avoid adjusting each host till the + * device is back in a full functional state. + */ +- disable_irq(tsdata->client->irq); ++ if (tsdata->client->irq) ++ disable_irq(tsdata->client->irq); + + gpiod_set_value_cansleep(reset_gpio, 1); + usleep_range(1000, 2000); diff --git a/src/board/raspberry-pi-4/config.txt b/src/board/raspberry-pi-4/config.txt index af4b9328..32581f24 100644 --- a/src/board/raspberry-pi-4/config.txt +++ b/src/board/raspberry-pi-4/config.txt @@ -13,7 +13,9 @@ device_tree=bcm2711-rpi-4-b.dtb dtoverlay=rpi-env dtoverlay=infix-key dtoverlay=vc4-kms-v3d-pi4 -dtoverlay=vc4-kms-dsi-ili9881-7inch +dtoverlay=vc4-kms-dsi-7inch + +#ignore_lcd=0 # To use an external initramfs file #initramfs rootfs.cpio.gz diff --git a/src/board/raspberry-pi-4/dts/broadcom/bcm2711-rpi-4-b.dts b/src/board/raspberry-pi-4/dts/broadcom/bcm2711-rpi-4-b.dts index ca236bed..bd8bf3ca 100644 --- a/src/board/raspberry-pi-4/dts/broadcom/bcm2711-rpi-4-b.dts +++ b/src/board/raspberry-pi-4/dts/broadcom/bcm2711-rpi-4-b.dts @@ -1,15 +1,42 @@ #include / { - framebuffer@3e402000 { - compatible = "simple-framebuffer"; - reg = <0x3e402000 0x1000>; - width = <800>; - height = <480>; - stride = <1600>; - format = "r5g6b5"; - status = "okay"; + memory@0 { + device_type = "memory"; + reg = <0x0 0x0 0x0 0x30000000>; /* Reserve top 256MB for GPU */ }; + reserved-memory { + #address-cells = <2>; + #size-cells = <2>; + ranges; + gpu_reserved: gpu@30000000 { + reg = <0x0 0x30000000 0x0 0x10000000>; + no-map; + }; + }; + + panel_disp: panel_disp@1 { + reg = <1>; + compatible = "raspberrypi,7inch-dsi", "simple-panel"; + backlight = <®_display>; + power-supply = <®_display>; + rotation = <180>; + port { + panel_in: endpoint { + remote-endpoint = <&bridge_out>; + }; + }; + }; + + reg_bridge: reg_bridge@1 { + reg = <1>; + compatible = "regulator-fixed"; + regulator-name = "bridge_reg"; + gpio = <®_display 0 0>; + vin-supply = <®_display>; + enable-active-high; + }; + chosen { /* 8250 auxiliary UART instead of pl011 */ stdout-path = "serial1:115200n8"; @@ -20,3 +47,73 @@ }; }; }; + + +&vc4 { + status = "okay"; +}; +&i2c0mux { + status = "okay"; +}; + +&i2c0 { + status = "okay"; + reg_display: reg_display@45 { + compatible = "raspberrypi,7inch-touchscreen-panel-regulator"; + reg = <0x45>; + gpio-controller; + #gpio-cells = <2>; + }; + + ft5406: ts@38 { + compatible = "edt,edt-ft5506"; + reg = <0x38>; + touchscreen-size-x = < 800 >; + touchscreen-size-y = < 480 >; + touchscreen-inverted-y; + touchscreen-inverted-x; + vcc-supply = <®_display>; + reset-gpio = <®_display 1 1>; + }; +}; + + +&dsi1 { + status = "okay"; + port { + dsi_out: endpoint { + remote-endpoint = <&bridge_in>; + }; + }; + bridge@0 { + reg = <0>; + compatible = "toshiba,tc358762"; + vddc-supply = <®_bridge>; + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + bridge_in: endpoint { + remote-endpoint = <&dsi_out>; + }; + }; + + port@1 { + reg = <1>; + bridge_out: endpoint { + remote-endpoint = <&panel_in>; + }; + }; + }; + }; +}; + +/* +&hdmi0 { + status = "disabled"; +}; +&hdmi1 { + status = "disabled"; +};*/ diff --git a/src/board/raspberry-pi-4/post-image.sh b/src/board/raspberry-pi-4/mksdcard.sh similarity index 100% rename from src/board/raspberry-pi-4/post-image.sh rename to src/board/raspberry-pi-4/mksdcard.sh