Commit Graph

34266 Commits

Author SHA1 Message Date
Markus Stockhausen
8bfb2b4b3f realtek: dsa: fix ingress priority setter
There are two issues with the current setter.

- It is only called for RTL839x
- It unconditionally overwrites the register and not only
  the needed bits.

Fix that by renaming it to the right prefix and using a
register write based on mask.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/22794
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-07 10:14:52 +02:00
Markus Stockhausen
83d5eaa50d realtek: dsa: remove family check from priority settings
Split the existing generic priority setters with family
checks into two dedicated paths.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/22794
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-07 10:14:52 +02:00
Markus Stockhausen
ad087c20b8 realtek: dsa: drop dsa builtin mdio bus
For a long time the dsa driver has been providing a builtin mdio bus
via dsa default attribute user_mii_bus. This simply uses read/write
commands from the standard realtek otto bus (aka parent). The reason
has always been unclear.

Looking around the kernel 6.18 codebase there is only one case where
this is really needed. The only consumer is dsa_user_phy_setup().

ret = phylink_of_phy_connect(dp->pl, port_dn, phy_flags);
if (ret == -ENODEV && ds->user_mii_bus) {
	/* We could not connect to a designated PHY or SFP, so try to
	 * use the switch internal MDIO bus instead
	 */
	ret = dsa_user_phy_connect(user_dev, dp->index, phy_flags);
}

Luckily the phylink_of_phy_connect() works fine and the internal bus
access is not needed at all. No need to keep the bus alive. Drop it.

While we are here fix the error handling issue of this code

if (!of_device_is_available(dn))
	ret = -ENODEV;

Returncode was set to error but never handed back to the caller.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/22799
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-07 10:14:01 +02:00
Rosen Penev
a031f16348 treewide: use -n for fw_[saveprint]env
Using awk and cut to simulate -n is pointless.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22806
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-07 09:51:10 +02:00
Cristian Sloberg
81644d0b86 x86: enable Intel MID serial for Denverton SoCs
Enable CONFIG_SERIAL_8250_MID in the generic x86 configuration.

This enables hardware serial console access on Intel Atom C3000
(Denverton) platforms, which rely on the High-Speed UART driver.
It also benefits other Intel MID platforms across the x86
architecture.

Signed-off-by: Cristian Sloberg <crilleslo@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22739
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-04-07 02:04:55 +02:00
Jonas Köppeler
d19e522ec7 kernel: cake_mq: expose sync_time parameter via debugfs
This patch enables for the configuration of the sync_time parameter.
The value of the sync_time needs to be specified in nanoseconds.
The default value is 200us (200 000 ns).
This is especially helpful to get feedback from users about suitable
values. Once a solid solution is found this patch can be removed.

Signed-off-by: Jonas Köppeler <j.koeppeler@tu-berlin.de>
Link: https://github.com/openwrt/openwrt/pull/22380
[Add patch to kernel 6.18 too]
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-04-07 01:59:03 +02:00
Fil Dunsky
f4c211f635 mediatek: add Huasifei WH3000 Pro NAND support
This commit adds support for Huasifei WH3000 Pro NAND version.
There is an eMMC already supported in OpenWrt. The only difference is NAND chip.
This commit adds common .dtsi and separate .dts
for eMMC and nand versions.

**Huasifei WH3000 Pro NAND**
Portable Wi-Fi 6 travel router based on MediaTek MT7981A SoC. MT7981B+MT7976CN+RTL8221B Dual Core 1.3GHZ with 5G modems module and PWM Fan.

**Specifications**
SoC: Filogic 820 MT7981A (1.3GHz)
RAM: DDR4 1GB
Flash: 256mb Winbond SPI NAND
WiFi: 2.4GHz and 5GHz with 3 antennas
Ethernet:
1x WAN (10/100/1000M)
1x LAN (10/100/1000/2500M)
USB: 1x USB 3.0 port
Two buttons: reset and mode (BTN_0)
LEDS: blue, red, blue+red=pink
UART: 3.3V, TX, RX, GND / 115200 8N1
M.2 (WWAN) slot

**Installation via U-Boot rescue**
1. Set static IP 192.168.1.2 on your computer and default route as 192.168.1.1
2. Connect to the WAN port and hold the reset button while booting the device.
3. Wait for the LED to blink 5 times, and release the reset button.
4. Open U-boot web page on your browser at http://192.168.1.1
5. Select the OpenWRT sysupgrade image, upload it, and start the upgrade.
6. Wait for the router to flash the new firmware.
7. Wait for the router to reboot itself.

**Installation via sysupgrade**
Just flash sysupgrade file via [LuCI upgrade page](http://192.168.1.1/cgi-bin/luci/admin/system/flash) without saving the settings.

**Installation via SSH**
Upload the file to the router `/tmp` directory, `ssh root@192.168.1.1` and issue a command:
```
sysupgrade -n /tmp/openwrt-mediatek-filogic-huasifei_wh3000-pro-nand-squashfs-sysupgrade.bin
```

Signed-off-by: Fil Dunsky <filipp.dunsky@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22694
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-04-06 22:39:41 +02:00
Mieczyslaw Nalewaj
5d7aa6395e ramips: enable 6.18 testing kernel
The ramips now supports 6.18 kernel as testing.

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/21418
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-06 11:26:27 +02:00
Mieczyslaw Nalewaj
10127e2201 ramips: mt7621_nand: fix MODULE_DEVICE_TABLE reference
The MODULE_DEVICE_TABLE macro was using an incorrect parameter 'match'
instead of the actual device table name 'mt7621_nfc_id_table'.

This fixes the reference to use the correct symbol name, ensuring
proper device table registration for module autoloading.

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/21418
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-06 11:26:27 +02:00
Mieczyslaw Nalewaj
f5c0225a48 ramips: mtk_eth_soc: handle frag_cache on Linux >= 6.13
Fix fe_clean_rx to handle the changed frag_cache layout on newer kernels.

For kernels >= 6.13 the fragment cache needs to be converted from its
encoded_page value instead of using the old va field. Add an ifdef
to use frag_cache.encoded_page & PAGE_MASK and virt_to_page for those
kernels, keep the old path for older kernels.

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/21418
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-06 11:26:27 +02:00
Mieczyslaw Nalewaj
eac2a6c404 ramips: 6.18: refresh patches
Refreshed patches for ramips/patches-6.18 by running
make target/linux/refresh

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/21418
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-06 11:26:27 +02:00
Mieczyslaw Nalewaj
6b1da2b9b3 ramips: 6.18: update 802-GPIO-MIPS-ralink patch
Replace previous bgpio_init usage with a full gpio_chip registration so the driver
integrates cleanly with the kernel GPIO core.
Add drivers/gpio/gpio-ralink.c implementing a gpio_chip with:
 - get/set, direction_input/direction_output, get_direction
 - get_multiple/set_multiple to support efficient multi-bit ops
 - DT handling for determining ngpios (reads "ngpios" or falls back to gpio-ranges)
 - MAX_NGPIOS cap and safe defaults

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/21418
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-06 11:26:27 +02:00
Mieczyslaw Nalewaj
b57038804a ramips: 6.18: update 831-03-mmc-mtk-sd patch
Update patch 831-03-mmc-mtk-sd-use-default-PATCH_BIT1-2-values-for-mt762.patch
to a newer version compatible with kernel 6.18.

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/21418
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-06 11:26:27 +02:00
Mieczyslaw Nalewaj
69a4371020 ramips: 6.18: manually rebuild patches
Manually rebuild patches:
 - 102-01-pwm-mediatek-set-mt7628-pwm45_fixup-flag-to-false.patch
 - 102-02-pwm-mediatek-correct-mt7628-clock-source-setting.patch
 - 312-MIPS-ralink-add-cpu-frequency-scaling.patch
 - 810-uvc-add-iPassion-iP2970-support.patch
 - 821-SPI-ralink-add-Ralink-SoC-spi-driver.patch
 - 831-01-mmc-mtk-sd-add-tuning-parameters-for-legacy-MIPS-MT7.patch
 - 831-02-mmc-mtk-sd-disable-auto-CMD23-support-for-mt7620.patch
 - 835-asoc-add-mt7620-support.patch

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/21418
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-06 11:26:27 +02:00
Mieczyslaw Nalewaj
7429b5a8d6 ramips: 6.18: remove obsolete patches
Remove obsolete patches already included in kernel 6.18.
 - 001-v6.13-clocksource-drivers-ralink-Add-Ralink-System-Tick-Co.patch[1]
 - 002-03-v6.13-clk-ralink-mtmips-add-mmc-related-clocks-for-SoCs-MT.patch[2]
 - 003-v6.13-mmc-mtk-sd-Implement-Host-Software-Queue-for-eMMC.patch[3]
 - 004-v6.15-dt-bindings-clock-add-clock-definitions-for-Ralink-S.patch[4]
 - 860-ramips-add-eip93-driver.patch[5]
 - 900-pci-rt2880-static-pcibios_init.patch[6]
 - 931-mips-ralink-add-missing-include.patch[7]

[1] https://web.git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.18.y&id=cd5375610baadd3a0842a9e83ca502684f938be8
[2] https://web.git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.18.y&id=198675bbc03d437fb80a35d781ad13d622d0ff68
[3] https://web.git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.18.y&id=7e9ddd7d45897b15a64c4a3c88f2f7909bf49749
[4] https://web.git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.18.y&id=adb2424d0d05506c2f36fcba66101d34f7409e45
[5] https://web.git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.18.y&id=9739f5f93b7806a684713ba42e6ed2d1df7c8100
[6] https://web.git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.18.y&id=de94259d064814b7eacd6d1f4b26e934eed02590
[7] https://web.git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.18.y&id=f13e645e15f1a4a33f0709844dac1a962b335b16

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/21418
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-06 11:26:27 +02:00
Mieczyslaw Nalewaj
628f46ccb1 ramips: 6.18: update kernel symbols
Remove symbols no longer present in version 6.18,
add new 6.18 kernel symbols.

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/21418
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-06 11:26:27 +02:00
Mieczyslaw Nalewaj
951d884ebf kernel/ramips: restore files for v6.12
This is an automatically generated commit which aids following Kernel patch
history, as git will see the move and copy as a rename thus defeating the
purpose.

For the original discussion see:
https://lists.openwrt.org/pipermail/openwrt-devel/2023-October/041673.html

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/21418
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-06 11:26:27 +02:00
Mieczyslaw Nalewaj
a98d68dc70 kernel/ramips: create files for v6.18 (from v6.12)
This is an automatically generated commit.

When doing `git bisect`, consider `git bisect --skip`.

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/21418
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-06 11:26:27 +02:00
Markus Stockhausen
3ef3fb9db9 realtek: mdio: add phy to port lookup
The Realtek mdio bus operations are based on the port number. As
of now the driver exposes a single bus with a 1:1 mapping between
phy and port. This will change in the future when the driver
exposes multiple busses. This will need a mapping - e.g.

- bus 0, phy 23 -> read/write port 23
- bus 1, phy 0 -> read/write port 24

Provide a rtmdio_phy_to_port() indirection function that will
lookup the port number based on a bus and a phy. For now it
will only run some basic sanity checks and return the given
input address (because of 1:1 mapping).

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/22731
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-06 11:24:23 +02:00
Markus Stockhausen
15de91f1e9 realtek: mdio: add mutex for multiple busses
When the mdio driver gets enhanced for multiple busses it must
snchronize reads/writes to the single controller. Add a lock
to the control structure and guard the critical operations.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/22731
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-06 11:24:23 +02:00
Markus Stockhausen
063223da70 realtek: eth: convert set_rx_mode() to regmap
Make use of regmap in all device specific set_rx_mode() functions.
Adapt the constant prefixes to the rest of the driver. While we
are here:

- align the RTL931x function name with the other targets
- replace constants with GENMASK()
- use new lowercase style for hexadecimal values

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/22757
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-06 11:23:17 +02:00
Markus Stockhausen
99a0cf9c44 realtek: eth: introduce regmap
The ethernet driver currently uses the legacy sw() macros. Add a
regmap to the driver that is derived from the parent mfd (like in
the mdio drivers). As a first consumer make use of that in the IRQ
functions.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/22757
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-06 11:23:17 +02:00
Shiji Yang
6c3c959b1b kernel: 6.18: move CONFIG_CRYPTO_LIB_SHA256 to generic
This symbol is selected by CONFIG_BPF, which was already enabled
on generic config-6.18.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/22730
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-04-06 01:38:41 +02:00
Shiji Yang
c3109a565c kernel: 6.12: move CONFIG_CRYPTO_LIB_SHA1 to generic
This symbol is selected by CONFIG_BPF, which was already enabled
on generic config-6.12.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/22730
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-04-06 01:38:41 +02:00
Shiji Yang
499886de05 kernel: enable CRYPTO_RNG2 and CRYPTO_SIG2 by default
These two symbols are selected by CONFIG_CRYPTO_MANAGER2[1-2], which
was already enabled on generic config-{6.12,6.18}.

[1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.6.y&id=fb28fabfad332a731423ffdd2be122b73ea90f1e
[2] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.6.y&id=6cb8815f41a966b217c0d9826c592254d72dcc31
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/22730
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-04-06 01:38:41 +02:00
Shiji Yang
ac0cb87a45 kernel: 6.18: move CONFIG_PAGE_BLOCK_MAX_ORDER to subtargets
This symbol depends on the specific CPU type, so we should not
set it globally.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/22730
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-04-06 01:38:41 +02:00
Shiji Yang
d899e499ac kernel: 6.18: disable CONFIG_GENERIC_BUILTIN_DTB
This symbol is selected by CONFIG_BUILTIN_DTB. However, we didn't
enable it in generic config-6.18.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/22730
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-04-06 01:38:41 +02:00
Shiji Yang
14e082f16a kernel: reorganize config files
Automatically refreshed by `./scripts/kconfig-reorder.sh`.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/22730
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-04-06 01:38:41 +02:00
William Latter
9e8f96dc79 ramips: add support for wavlink halo base pro
This adds support for the Wavlink "Halo Base Pro".
SOC: MT7621DAT
RAM: 128MiB
Flash: 16MiB NOR
WiFi: MT7603EN + MT7613BEN

Buttons:
- The touch sensor was originally for WPS, but this has been moved to the
pair button which is no longer used to prevent accidental touches

LEDs:
- On original firmware, the status LEDs light up as follows:
- Purple = booting, Blue = working, Red = error

Partitions:
- factory contains unique WiFi EEPROM and default MAC addresses
- vendor partition has an unknown purpose

Stock MAC address allocation:
- LAN1:				xx:xx:xx:xx:xx:80
- LAN2/WAN:		xx:xx:xx:xx:xx:81
- WiFi 2.4G:	xx:xx:xx:xx:xx:82
- WiFi 5G:		xx:xx:xx:xx:xx:83

LAN Ports:
- lan1 is the normal white LAN port
- lan2 is labelled "LAN/Backhaul", which can either be LAN or WAN.
	- Since this device is intended to be part of a mesh, this will usually
		be a LAN port, hence why it's assigned to lan2 here

Notes:
- I've chosen "Halo Base Pro" as the device model, despite the website URL
showing WL-WN535M3, as the label only states "Halo Base Pro".
- Only the 5GHz WiFi address is labelled on the device

Signed-off-by: William Latter <williamlatter77@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22400
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-04-06 01:30:37 +02:00
Shiji Yang
109844e32f ramips: dts: mt7621: use "mediatek,mtk-xhci" compatible
Compared to the "mediatek,mt8173-xhci", this is a more generic and
reasonable compatible string. On the driver side, they are identical.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/22094
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-04-06 01:05:51 +02:00
Shiji Yang
fcbaaddf08 ramips: dts: mt7621: add USB t-phy node
The USB t-phy driver includes some magic register init values. This
should be beneficial for the USB stability and performance.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/22094
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-04-06 01:05:51 +02:00
Shiji Yang
45c818ff10 ramips: mt7621: build MediaTek T-PHY driver
MT7621 USB phys are compatible with the MediaTek T-PHY controller.
The vendor SDK also enabled this driver for MT7621.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/22094
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-04-06 01:05:51 +02:00
Shiji Yang
3d1e703ea3 lantiq: dts: fix PCIe peripheral node name dtc warnings
Remove unit name leading 0s to fix the following dtc warnings:

danube_arcadyan_arv752dpw22.dts:263.11-273.4: Warning (pci_device_reg): /fpi@10000000/pci@e105400/usb@0f,0: PCI unit address format error, expected "f,0"
danube_arcadyan_arv752dpw22.dts:275.11-285.4: Warning (pci_device_reg): /fpi@10000000/pci@e105400/usb@0f,2: PCI unit address format error, expected "f,2"

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18843
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-04-06 00:39:48 +02:00
Shiji Yang
5fd4abf74d lantiq: dts: correct the size of PCIe reg property
Correct PCIe node #address-cells and #size-cells properties to
fix the following dtc warnings:

vr9_avm_fritz3390.dts:297.4-22: Warning (reg_format): /fpi@10000000/pcie@d900000/pcie@0/wifi@0,0:reg: property has invalid length (20 bytes) (#address-cells == 2, #size-cells == 1)
vr9_avm_fritz3390.dts:288.9-300.4: Warning (pci_bridge): /fpi@10000000/pcie@d900000/pcie@0: incorrect #address-cells for PCI bridge
vr9_avm_fritz3390.dts:288.9-300.4: Warning (pci_bridge): /fpi@10000000/pcie@d900000/pcie@0: incorrect #size-cells for PCI bridge
vr9_avm_fritz736x.dtsi:168.4-22: Warning (reg_format): /fpi@10000000/pcie@d900000/pcie@0/wifi@0,0:reg: property has invalid length (20 bytes) (#address-cells == 2, #size-cells == 1)
vr9_avm_fritz736x.dtsi:160.9-170.4: Warning (pci_bridge): /fpi@10000000/pcie@d900000/pcie@0: incorrect #address-cells for PCI bridge
vr9_avm_fritz736x.dtsi:160.9-170.4: Warning (pci_bridge): /fpi@10000000/pcie@d900000/pcie@0: incorrect #size-cells for PCI bridge

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18843
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-04-06 00:39:47 +02:00
Shiji Yang
1ffe67b00f lantiq: dts: rename spi pins node name to spi-pins
The dtc will treat "spi" node as an SPI controller. This resulted
in lots of false warning reports. Workaround it by renaming the
pinctrl node name to "spi-pins". This patch fixes the following
dtc warnings:

vr9.dtsi:326.18-336.6: Warning (spi_bus_bridge): /fpi@10000000/pinmux@e100b10/spi: incorrect #address-cells for SPI bus
vr9.dtsi:326.18-336.6: Warning (spi_bus_bridge): /fpi@10000000/pinmux@e100b10/spi: incorrect #size-cells for SPI bus
ar9.dtsi:286.18-296.6: Warning (spi_bus_bridge): /fpi@10000000/pinmux@e100b10/spi: incorrect #address-cells for SPI bus
ar9.dtsi:286.18-296.6: Warning (spi_bus_bridge): /fpi@10000000/pinmux@e100b10/spi: incorrect #size-cells for SPI bus
amazonse.dtsi:166.18-176.6: Warning (spi_bus_bridge): /fpi@10000000/pinmux@e100b10/spi: incorrect #address-cells for SPI bus
amazonse.dtsi:166.18-176.6: Warning (spi_bus_bridge): /fpi@10000000/pinmux@e100b10/spi: incorrect #size-cells for SPI bus

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18843
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-04-06 00:39:47 +02:00
Sander Vanheule
0d769903dd realtek: Indicate that RTL8231 LED ops can sleep
The RTL8231 LED driver is using the .brightness_set op, which according
to the documentation should not sleep. Since the RTL8231 is controlled
via an MDIO bus, this is not the case.

When using a non-offloaded LED driver such as netdev, this may currently
trigger kernel warnings:
    WARNING: CPU: 0 PID: 14 at kernel/time/timer.c:1754 call_timer_fn.isra.0+0x84/0x8c
    timer: led_timer_function+0x0/0x1d8 preempt leak: 00000100 -> 00000000

Switch to the .brightness_set_blocking op to indicate the operation
might sleep.

Fixes: 6ef6014887 ("realtek: Add pinctrl support for RTL8231")
Signed-off-by: Sander Vanheule <sander@svanheule.net>
2026-04-06 00:03:25 +02:00
Rany Hany
3166710fc9 ramips: mt7621: fix reset hang and re-enable LIST_HARDENED
This reverts commit a2fa1db797.

These patches stop secondary CPUs before restart and wait for them
to go offline, fixing the mt7621 reboot deadlock without needing to
disable CONFIG_LIST_HARDENED.

Signed-off-by: Rany Hany <rany_hany@riseup.net>
Link: https://github.com/openwrt/openwrt/pull/22724
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-04-05 23:26:44 +02:00
air jinkela
14d09b78b5 mediatek: rax3000m: add Airoha AN8855 switch support
This commit adds support for Airoha AN8855 switch to RAX000Me

Fixes: https://github.com/openwrt/openwrt/issues/21230
Signed-off-by: air jinkela <air_jinkela@163.com>
Link: https://github.com/openwrt/openwrt/pull/21171
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-04-05 19:53:46 +02:00
Markus Stockhausen
361c1107cb realtek: eth: merge decode_tag() for RTL93xx
rteth_930x_decode_tag() and rteth_931x_decode_tag() are basically
the same. The only difference is the port bitmask. Luckily on the
RTL930x devices the unused fifth bit is always zero and the mask
can be aligned with RTL931x. Take over the RTL931x reason debugging
for both targets.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/22717
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-05 11:28:51 +02:00
Markus Stockhausen
bff6b3f2d0 realtek: dts: convert D-Link DGS-1250-28X to PHY_C22()
Use the new PHY_C22() macro for this RTL9301 device.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/22721
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-05 11:28:14 +02:00
Jonas Jelonek
0f5015fc5e realtek: pcs: rtl931x: set SerDes to off early
Set the SerDes mode to OFF early in the setup process to have a clear
starting point. This was part of the media handling before as a leftover
from the SDK code import. In the SDK, this function didn't only care
about applying some media settings but was also some kind of mode
setting for fiber modes.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22786
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-05 11:27:06 +02:00
Jonas Jelonek
be10ea16ac realtek: pcs: condense fiber media types
Right now we operate with distinct media types for fiber using different
speeds. This is more of a leftover from the SDK then it really makes
sense design-wise. The set_media function from the SDK did a lot more
than just setting some media-specific parameters. As part of
deconstructing this, also reduce the fiber types to a single media type
and handle the speed-agnostic parts based on the hw_mode for now.

This also drops the check for 100M speed around a block of writes. This
check has it's origin in SDK code where a switch statement just didn't
handle this case. However, the rest of the SDK doesn't handle this case
either. While the explicit 100M support isn't verified yet, there's no
need to keep that check.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22786
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-05 11:27:06 +02:00
Jonas Jelonek
7c7058b66b realtek: pcs: collapse DAC media types
So far we had separate media types for different DAC cable lengths,
equal to how the SDK defines them. However, this seems overengineered.
The types '_50CM' and '_100CM' are always treated equally, same for
'_300CM' and '_500CM'. Not only in the RTL931x code, but also the
RTL930x code usually just makes a distinction between short and long.
Thus, make that a bit cleaner by reducing the DAC type set to '_SHORT'
and '_LONG' with DAC cables < 3m being considered short and those with
>= 3m being considered as long.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22786
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-05 11:27:06 +02:00
Jonas Jelonek
beb57dbc6d realtek: pcs: rename port_media to sds_media
The term 'port media' was chosen due to how the code taken from the SDK
was organized. However, the SDK does a pretty good job at intermixing a
lot of things which cause confusion in the end. This also applies to the
media settings. To be correct, we do not really have port awareness in
the PCS driver (and probably shouldn't have) so we do not really deal
with a port's media. Instead, we set settings depending on what is
attached to the SerDes itself.

To fix this confusion, rename the enum, its fields and all usage from
'port_media' to 'sds_media'.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22786
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-05 11:27:06 +02:00
Roman Pyatikonov
d3a905e0cd rockchip: add reset button support for NanoPi R5S LTS
Backport upstream commit 954f07012794 ("arm64: dts: rockchip:
Add reset button to NanoPi R5S").

The NanoPi R5S LTS variant has a reset button wired to GPIO4_A0,
but the current OpenWrt rockchip 6.12 patch set lacks the
corresponding gpio-keys definition in rk3568-nanopi-r5s.dts.

As a result, pressing the button generates no reset event.
rockchip already includes kmod-gpio-button-hotplug by default,
so backporting the upstream DTS change restores the expected
behavior.

Rename the patch to
011-v6.17-arm64-dts-rockchip-Add-reset-button-to-NanoPi-R5S.patch
to match the upstream source.

The non-LTS NanoPi R5S leaves this pin unconnected, matching the
upstream rationale for using the shared rk3568-nanopi-r5s.dts.

Link: https://lore.kernel.org/r/20250711142138.197445-1-didi.debian@cknow.org
Signed-off-by: Roman Pyatikonov <moyciti.volga.bk.ru92@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22700
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-04-05 02:08:54 +02:00
Markus Stockhausen
8ea46952d6 realtek: dsa: common MSTI initialization
The dsa probing currently disable multiple spanning tree for RTL93xx
and keeps the bootloader setup for RTL83xx untouched. Additionally it
does this by checking for the family id. Refactor this to a common
"disable msti" setup.

To make it clear: From now on RTL83xx will also run in MSTI disabled
state. Tested on Linksys LGS310C.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/22749
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-04-04 20:09:26 +02:00
Markus Stockhausen
e745ee3f13 realtek: dsa: move n_mst/l2_bucket_size out of family check
Another two variables that are not part of the runtime but the
configuration structure. Move them around.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/22749
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-04-04 20:09:26 +02:00
Markus Stockhausen
e7738904d8 realtek: dsa: remove num_lag_ids from family check
num_lag_ids is a device specific constant and must therefore
live in the configuration structure. Avoid dynamic assignment.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/22749
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-04-04 20:09:26 +02:00
Markus Stockhausen
a3442aa95c realtek: dsa: remove ops structures from family check
dsa_switch_ops and phylink_mac_ops do not need to be assigned
by a family check. Instead they can be directly linked in the
configuration structure.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/22749
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-04-04 20:09:26 +02:00
xingchi
d9eb01ad67 ramips: add support for Z-ROUTER ZR-2662
This commit adds support for Z-ROUTER ZR-2662 (also known as Routerich
AX1800 V2) wireless WiFi 6 router.

Hardware specification
---------------------
- SoC       : MediaTek MT7621AT, MIPS, 880 MHz
- RAM       : 256 MiB
- Flash     : NAND 128 MiB (AMD/Spansion S34ML01G2)
- WLAN      :
  - 2.4 GHz : MediaTek MT7905D/MT7975 (14c3:7916), b/g/n/ax, MIMO 2x2
  - 5 GHz   : MediaTek MT7915E (14c3:7915), a/n/ac/ax, MIMO 2x2
- Ethernet  : 10/100/1000 Mbps x4 (1x WAN, 3x LAN)
- USB       : 1x 2.0
- UART      : 3.3V, 115200n8, pins are silkscreened on the pcb
- Buttons   : 1x Reset
- LEDs      : 1x WiFi 2.4 GHz (green)
              1x WiFi 5 GHz (green)
              1x LAN (green)
              1x WAN (green)
              1x WAN no-internet (red)
- Power     : 12 VDC, 1 A

Installation
------------
1. Run tftp server on your PC (IP: 192.168.2.2) and put OpenWrt initramfs
   image (initramfs.bin) to the tftp root dir
2. Open the following link in the browser to enable telnet:
	http://192.168.2.1/cgi-bin/telnet_ssh
3. Connect to the router (default IP: 192.168.2.1) using telnet shell
   (credentials - user:admin)
4. Run the following commands in the telnet shell (this will install
   OpenWrt initramfs image on nand flash):
	cd /tmp
	tftp -g -r initramfs.bin 192.168.2.2
	mtd write initramfs.bin firmware
	mtd erase firmware_backup
	reboot
5. Copy OpenWrt sysupgrade image (sysupgrade.bin) to the /tmp dir of the
   router
6. Connect to the router (IP: 192.168.1.1) using ssh shell and run
   sysupgrade command:
	sysupgrade -n /tmp/sysupgrade.bin

Return to stock
---------------
1. Copy stock firmware (stock.bin) to the /tmp dir of the router using scp
2. Run following command in the router shell:
	cd /tmp
	mtd write stock.bin firmware
	reboot

Recovery
--------
Connect uart (pins are silkscreened on the pcb), interrupt boot process by
pressing any key, use u-boot menu to flash stock firmware image or OpenWrt
initramfs image.

MAC addresses
-------------
+---------+-------------------+-----------+
|         | MAC               | Algorithm |
+---------+-------------------+-----------+
| LAN     | 24:0f:5e:xx:xx:4c | label     |
| WAN     | 24:0f:5e:xx:xx:4d | label+1   |
| WLAN 2g | 24:0f:5e:xx:xx:4e | label+2   |
| WLAN 5g | 24:0f:5e:xx:xx:4f | label+3   |
+---------+-------------------+-----------+
The WLAN 2.4 MAC was found in 'factory', 0x4
The LAN MAC was found in 'factory', 0xfff4
The WAN MAC was found in 'factory', 0xfffa

Note: This device is similar to Z-ROUTER ZR-2660, but with minor hardware
revisions. The firmware and configuration are compatible.

Signed-off-by: xingchi <juncaixingchi2026@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21524
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-04-04 01:23:20 +02:00