]> git.ipfire.org Git - thirdparty/openwrt.git/log
thirdparty/openwrt.git
12 hours agorealtek: mdio: drop driver lock 21529/head
Markus Stockhausen [Tue, 13 Jan 2026 21:15:15 +0000 (22:15 +0100)] 
realtek: mdio: drop driver lock

The Realtek mdio driver does not need to track a separate lock.
Rely on the default kernel mdio bus lock instead.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/21529
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
12 hours agorealtek: mdio: use generic bus command function for RTL931x
Markus Stockhausen [Tue, 13 Jan 2026 21:06:27 +0000 (22:06 +0100)] 
realtek: mdio: use generic bus command function for RTL931x

Refactor RTL931x mdio commands to use the new helper function.
Remove unneeded goto and debug statements.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/21529
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
12 hours agorealtek: mdio: use generic bus command function for RTL930x
Markus Stockhausen [Tue, 13 Jan 2026 20:36:13 +0000 (21:36 +0100)] 
realtek: mdio: use generic bus command function for RTL930x

Refactor RTL930x mdio commands to use the new helper function.
Remove unneeded goto and debug statements.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/21529
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
12 hours agorealtek: mdio: use generic bus command function for RTL839x
Markus Stockhausen [Tue, 13 Jan 2026 16:41:55 +0000 (17:41 +0100)] 
realtek: mdio: use generic bus command function for RTL839x

Refactor RTL839x mdio commands to use the new helper function.
Remove unneeded goto and debug statements.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/21529
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
12 hours agorealtek: mdio: use generic bus command function for RTL838x
Markus Stockhausen [Tue, 13 Jan 2026 19:45:39 +0000 (20:45 +0100)] 
realtek: mdio: use generic bus command function for RTL838x

The Realtek mdio bus works similar for all devices with only
minor family specific differences. Basically command issuing
follows a generic style. Write command type and a trigger.
Afterwards wait until the trigger flag goes back to zero (aka
"command complete"). Unify this sequence in a central helper.

RTL838x read/write callers of this helper use a strange style of
error handling by issuing goto statements. Refactor this for better
readability. Additionally remove all debug prints. These are not
needed as the central read/write handlers provide a common logging
mechanism.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/21529
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
13 hours agokernel: add TIMERLAT_TRACER kernel config option 21413/head
Thomas Richard [Mon, 5 Jan 2026 15:32:44 +0000 (16:32 +0100)] 
kernel: add TIMERLAT_TRACER kernel config option

This adds the TIMERLAT_TRACER kernel configuration option. The timelat
tracer helps to find sources of wakeup latencies of real-time threads.

Signed-off-by: Thomas Richard <thomas.richard@bootlin.com>
Link: https://github.com/openwrt/openwrt/pull/21413
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
13 hours agokernel: add OSNOISE_TRACER kernel config option
Thomas Richard [Mon, 5 Jan 2026 15:31:36 +0000 (16:31 +0100)] 
kernel: add OSNOISE_TRACER kernel config option

This adds the OSNOISE_TRACER kernel configuration option. The osnoise
tracer allows to track interference experienced by an application due to
activities inside the operating system (like NMIs, IRQs ...).

Signed-off-by: Thomas Richard <thomas.richard@bootlin.com>
Link: https://github.com/openwrt/openwrt/pull/21413
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
13 hours agokernel: add HWLAT_TRACER kernel config option
Thomas Richard [Mon, 5 Jan 2026 12:54:42 +0000 (13:54 +0100)] 
kernel: add HWLAT_TRACER kernel config option

This adds the HWLAT_TRACER kernel configuration option. The hwlat tracer
allows to detect hardware latencies.

Signed-off-by: Thomas Richard <thomas.richard@bootlin.com>
Link: https://github.com/openwrt/openwrt/pull/21413
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
13 hours agoloongarch64: set PREEMPT_NONE as default preemption model
Thomas Richard [Wed, 21 Jan 2026 12:49:32 +0000 (13:49 +0100)] 
loongarch64: set PREEMPT_NONE as default preemption model

Loongarch64 currently uses the PREEMPT_VOLUNTARY model, which is not
aligned with OpenWrt's default. Switch to PREEMPT_NONE for consistency with
OpenWrt's default configuration. Preemption model selection is now
available via menuconfig for further customization.

Signed-off-by: Thomas Richard <thomas.richard@bootlin.com>
Link: https://github.com/openwrt/openwrt/pull/21413
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
13 hours agomediatek: mt7623: set PREEMPT_NONE as default model
Thomas Richard [Wed, 21 Jan 2026 12:34:33 +0000 (13:34 +0100)] 
mediatek: mt7623: set PREEMPT_NONE as default model

Mediatek/mt7623 currently uses the PREEMPT model, which is not aligned with
OpenWrt's default. Switch to PREEMPT_NONE for consistency with OpenWrt's
default configuration. Preemption model selection is now available via
menuconfig for further customization.

Signed-off-by: Thomas Richard <thomas.richard@bootlin.com>
Link: https://github.com/openwrt/openwrt/pull/21413
[Added some config options again]
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
13 hours agogemini: set PREEMPT_NONE as default preemption model
Thomas Richard [Wed, 21 Jan 2026 12:08:23 +0000 (13:08 +0100)] 
gemini: set PREEMPT_NONE as default preemption model

Gemini currently uses the PREEMPT model, which is not aligned with
OpenWrt's default. Switch to PREEMPT_NONE for consistency with OpenWrt's
default configuration. Preemption model selection is now available via
menuconfig for further customization.

Signed-off-by: Thomas Richard <thomas.richard@bootlin.com>
Link: https://github.com/openwrt/openwrt/pull/21413
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
13 hours agolayerscape: set PREEMPT_NONE as default preemption model
Thomas Richard [Wed, 21 Jan 2026 10:54:14 +0000 (11:54 +0100)] 
layerscape: set PREEMPT_NONE as default preemption model

Layerscape currently uses the PREEMPT model, which is not aligned with
OpenWrt's default. Switch to PREEMPT_NONE for consistency with
OpenWrt's default configuration. Preemption model selection is now
available via menuconfig for further customization.

Signed-off-by: Thomas Richard <thomas.richard@bootlin.com>
Link: https://github.com/openwrt/openwrt/pull/21413
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
13 hours agokernel: add preemption models
Thomas Richard [Mon, 5 Jan 2026 12:46:52 +0000 (13:46 +0100)] 
kernel: add preemption models

Introduce preemption model selection with PREEMPT_NONE as the default.
PREEMPT_NONE is the traditional Linux preemption model and also the best
choice for servers.

Signed-off-by: Thomas Richard <thomas.richard@bootlin.com>
Link: https://github.com/openwrt/openwrt/pull/21413
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
14 hours agouboot-mediatek: add 8g check to bpi-r4 environment for bl2 21437/head
Frank Wunderlich [Sat, 17 Jan 2026 20:25:19 +0000 (21:25 +0100)] 
uboot-mediatek: add 8g check to bpi-r4 environment for bl2

Add check for 8g and replace filename for bl2 to install the right file.

Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
Link: https://github.com/openwrt/openwrt/pull/21437
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
14 hours agouboot-mediatek: add command for getting size of ram
Frank Wunderlich [Sat, 17 Jan 2026 18:00:56 +0000 (19:00 +0100)] 
uboot-mediatek: add command for getting size of ram

Add command which gets ramsize and write it to env variable.

Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
Link: https://github.com/openwrt/openwrt/pull/21437
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
14 hours agomediatek: filogic: add 8GB builds for BPI-R4
Frank Wunderlich [Tue, 6 Jan 2026 22:17:08 +0000 (23:17 +0100)] 
mediatek: filogic: add 8GB builds for BPI-R4

Add builds for Bananapi R4 with 8GB RAM.

Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
Link: https://github.com/openwrt/openwrt/pull/21437
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
14 hours agouboot-mediatek: add mt7988 4bg builds
Frank Wunderlich [Tue, 6 Jan 2026 22:16:14 +0000 (23:16 +0100)] 
uboot-mediatek: add mt7988 4bg builds

This allows builds for Bananapi R4 (Pro) with 8GB RAM.

Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
Link: https://github.com/openwrt/openwrt/pull/21437
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
14 hours agoarm-trusted-firmware-mediatek: add mt7988 4bg build
Frank Wunderlich [Tue, 6 Jan 2026 22:15:32 +0000 (23:15 +0100)] 
arm-trusted-firmware-mediatek: add mt7988 4bg build

This allows builds for Bananapi R4 (Pro) with 8GB RAM.

Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
Link: https://github.com/openwrt/openwrt/pull/21437
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
14 hours agokernel: bump 6.12 to 6.12.67 21629/head
John Audia [Fri, 23 Jan 2026 21:22:18 +0000 (16:22 -0500)] 
kernel: bump 6.12 to 6.12.67

Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.67

Manually rebased:
  rockchip/patches-6.12/160-01-phy-rockchip-inno-usb2-Simplify-rockchip-usbgrf-handling.patch

Build system: x86/64
Build-tested: flogic/glinet_gl-mt6000
Run-tested: flogic/glinet_gl-mt6000

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/21629
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
14 hours agofirewall: change synflood_protect option name 21642/head
Hauke Mehrtens [Thu, 22 Jan 2026 22:54:33 +0000 (23:54 +0100)] 
firewall: change synflood_protect option name

The `syn_flood` option name is deprecated, `synflood_protect` should
be used instead. firewall3 and firewall4 both support this option since
a long time. LuCI already replaces the option name.
https://github.com/openwrt/luci/commit/0abcb39b623f0eff0fbcdfb99fca8f3224701e86

Suggested-by: rparge in OpenWrt forum
Link: https://github.com/openwrt/openwrt/pull/21642
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
15 hours agoiproute2: add dcb utility 21606/head
David Yang [Mon, 19 Jan 2026 17:51:02 +0000 (01:51 +0800)] 
iproute2: add dcb utility

KERNEL_DCB was introduced in 40f1db9cb11d, however the dcb utility is not
enabled for iproute2. Although DCB is not generally available among
Ethernet cards, not having the dcb utility renders it completely
unchangeable.

On aarch64, it takes ~85.3KiB.

Signed-off-by: David Yang <mmyangfl@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21606
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
15 hours agomediatek: enable wan led for Keenetic KN-(3711/3811) 21635/head
Maxim Anisimov [Thu, 22 Jan 2026 08:17:49 +0000 (11:17 +0300)] 
mediatek: enable wan led for Keenetic KN-(3711/3811)

The indicator is unused by default and not associated
with the wan port. So let’s fix this.

Signed-off-by: Maxim Anisimov <maxim.anisimov.ua@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21635
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
15 hours agomediatek: simplify nvmem mac for Keenetic KN-(3811/3911)
Maxim Anisimov [Thu, 22 Jan 2026 08:09:26 +0000 (11:09 +0300)] 
mediatek: simplify nvmem mac for Keenetic KN-(3811/3911)

This is a cosmetic change. There is no need to use mac
address increment/decrement in the dts on these devices,
so this can be simplified.

Signed-off-by: Maxim Anisimov <maxim.anisimov.ua@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21635
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
15 hours agomediatek: drop spi cal for Keenetic KN-(3711/3811/3911)
Maxim Anisimov [Thu, 22 Jan 2026 08:04:44 +0000 (11:04 +0300)] 
mediatek: drop spi cal for Keenetic KN-(3711/3811/3911)

In the original DTS from the device firmware, there are
no entries that enable SPI calibration. Therefore, it
should be disabled.

Signed-off-by: Maxim Anisimov <maxim.anisimov.ua@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21635
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
15 hours agomediatek: fix label mac for Keenetic KN-(3711/3811/3911)
Maxim Anisimov [Thu, 22 Jan 2026 08:00:35 +0000 (11:00 +0300)] 
mediatek: fix label mac for Keenetic KN-(3711/3811/3911)

Keenetic devices always use the WAN port MAC address as
the MAC address printed on the label.

Signed-off-by: Maxim Anisimov <maxim.anisimov.ua@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21635
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
15 hours agobase-files: remove ftp user and group 19418/head
John Audia [Tue, 15 Jul 2025 09:46:52 +0000 (05:46 -0400)] 
base-files: remove ftp user and group

Any ftpd package such as vsftpd or atftpd (are there others?) should
create their own unprivileged user. Both of the aforementioned
packages do not even use this ftp user and run as root. That should be
addressed in separate commits.

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/19418
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
19 hours agogemini: support upgrade on reference designs
Linus Walleij [Wed, 21 Jan 2026 21:24:46 +0000 (22:24 +0100)] 
gemini: support upgrade on reference designs

The Gemini reference design-derived devices uses a partition
format which is predictable and we can exploit this to offer
some proper upgrade path.

The kernel for these contains a hack to use this partition
format unaltered by combining the partitions "Kern" and "Ramdisk"
to one image with all of the kernel+ramdisk in memory.

Then the "Application" which is used for the rootfs go into its
own partition.

Standard flash layout:
Kern         2048k |
Ramdisk      6144k | = 9216k
Application  6144k | = 15360k

Following the pattern of the factory image we create three
images named zImage, rd.gz and hddapp.tgz (these filenames
are misleading! They are just required by the old firmware.)
and flash each individually with "mtd" during upgrades.

Since the IB-4220-V has a different layout with a bigger kernel
space we parameterize this so we can handle this too. (More
fixes are needed for that device though.)

A way to upgrade older OpenWrt on these platforms to the latest
and greatest will be to copy the file
target/linux/gemini/base-files/lib/upgrade/platform.sh
to /lib/upgrade/platform.sh
on your running system and then run sysupgrade from the image
produced after this patch.

The script is picky to sanity check the partitions before
commencing upgrade.

This was tested with a full sysupgrade on the iTian SQ201.

Link: https://github.com/openwrt/openwrt/pull/21680
Signed-off-by: Linus Walleij <linusw@kernel.org>
24 hours agorealtek: phy: fix RTL8214FC fibre/copper initialization 21582/head
Markus Stockhausen [Sun, 18 Jan 2026 21:09:00 +0000 (22:09 +0100)] 
realtek: phy: fix RTL8214FC fibre/copper initialization

A phy is configured in two stages

- phy_probe() for setup of structures
- config_init() for device setup (after reset)

RTL8214FC is a combo phy and the currently active port can be switched
with the SFP helper functions that are triggered during SFP insertion
and removal. In case a fibre SFP is inserted while booting the SFP
trigger is run between the above mentioned stages. During the final
setup in config_init() the phy is reset to the copper port. Thus no
link is available on fibre and the SFP must be reinserted for normal
operation.

For a consistent behaviour the fibre/copper port setup must run before
the SFP probing and not afterwards. Move the setup code from config_init()
into phy_probe().

Fixes: 10ae743 ("realtek: phy: simplify RTL8214FC configuration")
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/21582
Signed-off-by: Robert Marko <robimarko@gmail.com>
24 hours agorealtek: phy: optimize RTL8214FC register usage during media set
Markus Stockhausen [Sun, 18 Jan 2026 12:05:30 +0000 (13:05 +0100)] 
realtek: phy: optimize RTL8214FC register usage during media set

There are some shortcomings in rtl8214fc_media_set()

- It always uses the mdio raw page (4095) of RTL838x for writes.
  That is wrong when the phy is attached to an RTL839x (raw = 8191)
- It uses the internal write only extended page companion (29)
- The extended page content is not preserved

Fix the three issues.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/21582
Signed-off-by: Robert Marko <robimarko@gmail.com>
24 hours agorealtek: phy: save RTL8214FC extended page during power set
Markus Stockhausen [Sun, 18 Jan 2026 11:58:51 +0000 (12:58 +0100)] 
realtek: phy: save RTL8214FC extended page during power set

Changing the fibre/copper power of a RTL8214FC changes the
extended page via register 29. This is the write only companion
of register 30. The register is afterwards overwritten to 0.

Use the proper extended page register 30 and preserve its content
during the operation.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/21582
Signed-off-by: Robert Marko <robimarko@gmail.com>
24 hours agorealtek: phy: convert confusing BMCR_PDOWN usage for RTL8214FC
Markus Stockhausen [Sat, 17 Jan 2026 18:50:32 +0000 (19:50 +0100)] 
realtek: phy: convert confusing BMCR_PDOWN usage for RTL8214FC

Bit 11 of registers 16, 19, 20, 21 in page 0x266 denotes if a port
of a RTL8214FC is set/favoured to fibre (0) or copper (1). For unknown
reasons the bit was mixed with BMCR_PDOWN. Convert this to a meaningful
define.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/21582
Signed-off-by: Robert Marko <robimarko@gmail.com>
25 hours agorealtek: mdio: rtl838x: activate combo PHY media detection 21653/head
Markus Stockhausen [Fri, 23 Jan 2026 12:36:06 +0000 (13:36 +0100)] 
realtek: mdio: rtl838x: activate combo PHY media detection

There is a misunderstanding about BIT(7) aka EX_PHY_MAN_24_27 in
SMI_GLB_CTRL register. The SDK sets/clears it at different places and
it is not clear what it is for. Observation shows that it is essential
for a working MAC_LINK_MEDIA_STS register.

A RTL838x device has usally two configurations

- port 24/26 are 2 serdes driven fiber ports
- port 24-27 are 4 PHY driven combo ports

In the combo case the above bit must be set so that a switch between
copper and fiber can be detected. Cleanup the MDIO initialization
and remove the unneeded bit handling in the DSA driver.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/21653
Signed-off-by: Robert Marko <robimarko@gmail.com>
25 hours agobuild: purge DESCRIPTION 21668/head
George Sapkin [Sat, 24 Jan 2026 02:30:48 +0000 (04:30 +0200)] 
build: purge DESCRIPTION

DESCRIPTION field has been deprecated since 2007, yet internal exporting
causes intermittent package build failures due to the deprecation check,
even with packages that don't have that fields set. Replace all
DESCRIPTION exports with alternative variables defined through shexport
and shvar helpers and remove the check.

Fixes: 547b127d ("make kernel module packaging code reusable and use it in madwifi")
Fixes: 7558f028 ("DESCRIPTION:= is obselete, so complain if it is used and use TITLE if no description is set")
Fixes: cc435322 ("build: optimize target metadata dump")
Fixes: d081edf7 ("build: clean up and optimize ipkg control generator code")
Signed-off-by: George Sapkin <george@sapk.in>
Link: https://github.com/openwrt/openwrt/pull/21668
Signed-off-by: Robert Marko <robimarko@gmail.com>
25 hours agoimagebuilder: fix parsing ABI for apk packages 21660/head
George Sapkin [Fri, 23 Jan 2026 18:07:53 +0000 (20:07 +0200)] 
imagebuilder: fix parsing ABI for apk packages

Fix parsing ABI when package has multiple tags and apk returns them in a
single line.

Fixes: 31cdd13d ("imagebuilder: add ABI suffix to packages when using apk")
Signed-off-by: George Sapkin <george@sapk.in>
Link: https://github.com/openwrt/openwrt/pull/21660
Signed-off-by: Robert Marko <robimarko@gmail.com>
34 hours agokexec-tools: remove upstreamed patch 21652/head
Roc Lai [Fri, 23 Jan 2026 11:54:41 +0000 (19:54 +0800)] 
kexec-tools: remove upstreamed patch

Remove upstreamed patch:
- 020-i386-improve-basename-compatibility.patch

Link: https://github.com/horms/kexec-tools/commit/4fd0553cdfe397920d418d8b90ac52f8f1303a2d
Fixes: e75218ef4a27 ("kexec-tools: bump to 2.0.32")
Signed-off-by: Roc Lai <laipeng668@qq.com>
Link: https://github.com/openwrt/openwrt/pull/21652
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
34 hours agolantiq: AVM Fritz 736x: fix PCIe reset GPIO 21641/head
Hauke Mehrtens [Thu, 22 Jan 2026 22:14:21 +0000 (23:14 +0100)] 
lantiq: AVM Fritz 736x: fix PCIe reset GPIO

The vr9.dtsi configures the GPIO 38 as reset GPIO. Also the fon LED is
configured on GPIO 38. This conflicts and makes the probing of the PCIe
controller fail in OpenWrt 25.12.

The AVM GPL source code configured GPIO 21 as PCIe reset.

Fixes: https://github.com/openwrt/openwrt/issues/21562
Link: https://github.com/openwrt/openwrt/pull/21641
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
35 hours agouboot-mediatek: update to v2026.01 21424/head
Shiji Yang [Tue, 6 Jan 2026 12:50:06 +0000 (20:50 +0800)] 
uboot-mediatek: update to v2026.01

Remove upstreamed patches:
  100-08-cmd-mtd-add-markbad-subcommand-for-NMBM-testing.patch [1]
  101-01-mtd-spinand-add-support-for-FORESEE-F35SQA002G.patch [2]
  101-02-mtd-spinand-add-support-for-FORESEE-F35SQA001G.patch [3]
  110-mtd-spi-nand-add-support-for-FudanMicro-FM25S01A.patch [4]

Some SPI-NAND driver macro definitions and function parameters have
been changed in the latest release[3]. Hence we also had to rework
the related local patches to follow the upstream changes.

Tested on MT7981 SPI-NOR/EMMC.

[1] https://github.com/u-boot/u-boot/commit/21c1098cf443ea225090520cbe3ac7fc9e75cd33
[2] https://github.com/u-boot/u-boot/commit/2a0f8e7da0e5db93df8d48c5aab05037e071ca1e
[3] https://github.com/u-boot/u-boot/commit/2cbdd3e4491b6fc278c54d2a490939ecccc76127
[4] https://github.com/u-boot/u-boot/commit/8b984b5a397bc5fe829ca95e64f990c1e287beaa

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
[daniel@makrotopia.org: tested MT7622 SNAND and SPI-NOR]
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
36 hours agogemini: Fix up the rootfs device for SQ201
Linus Walleij [Fri, 23 Jan 2026 20:24:47 +0000 (21:24 +0100)] 
gemini: Fix up the rootfs device for SQ201

The rootfs partition is /dev/mtdblock3, fix it up.

Link: https://github.com/openwrt/openwrt/pull/21662
Signed-off-by: Linus Walleij <linusw@kernel.org>
36 hours agogemini: Add DTS fix from upstream kernel
Linus Walleij [Fri, 23 Jan 2026 15:32:10 +0000 (16:32 +0100)] 
gemini: Add DTS fix from upstream kernel

This contains small but important DTS fixes for the
RedBoot partitions.

Link: https://github.com/openwrt/openwrt/pull/21662
Signed-off-by: Linus Walleij <linusw@kernel.org>
38 hours agoimagebuilder: skip repository file when standalone 21658/head
George Sapkin [Fri, 23 Jan 2026 16:58:36 +0000 (18:58 +0200)] 
imagebuilder: skip repository file when standalone

Standalone image builder doesn't have a repositories file as all
packages are included, which causes:

ERROR: failed to read repositories: PATH_TO_BUILDER/repositories: No such file or directory

The images are still built, so this is more of an informational error.

Pass related argument to apk only when CONFIG_IB_STANDALONE is not set.

Fixes: a8d17c21 ("imagebuilder: actually support IB from buildbot")
Signed-off-by: George Sapkin <george@sapk.in>
Link: https://github.com/openwrt/openwrt/pull/21658
Signed-off-by: Robert Marko <robimarko@gmail.com>
2 days agouboot-microchipsw: add FIP update flashing shortcut 21650/head
Robert Marko [Fri, 23 Jan 2026 10:07:23 +0000 (11:07 +0100)] 
uboot-microchipsw: add FIP update flashing shortcut

Add env variable to make it easy to flash an FIP update.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2 days agomicrochipsw: update DTS with the latest pending upstream
Robert Marko [Fri, 23 Jan 2026 09:54:19 +0000 (10:54 +0100)] 
microchipsw: update DTS with the latest pending upstream

Update the DTS to the latest pending upstream version, it looks like this
should get merged soon upstream.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2 days agod1: Enable LED driver for D1 builds
Gabriel Roper [Tue, 7 Oct 2025 04:24:05 +0000 (21:24 -0700)] 
d1: Enable LED driver for D1 builds

This enables the kernel configuration option
to build the SUN50I_A100 driver, which is
the one driver used by the D1 for the RGB
LED controller.

Signed-off-by: Gabriel Roper <lockheedmaniac@gmail.com>
2 days agod1: Add device tree configuration for D1 RGB LED Controller
Gabriel Roper [Tue, 7 Oct 2025 04:21:40 +0000 (21:21 -0700)] 
d1: Add device tree configuration for D1 RGB LED Controller

This adds the device tree patches written by Samuel Holland
to the kernel. The driver was merged into mainline Linux in 6.8,
but the device tree patches were never merged into mainline.

Signed-off-by: Gabriel Roper <lockheedmaniac@gmail.com>
2 days agod1: refresh kernel config
Chukun Pan [Tue, 21 Oct 2025 11:30:09 +0000 (19:30 +0800)] 
d1: refresh kernel config

Run 'make kernel_oldconfig' to get an up-to-date config.

Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
2 days agod1: enable overlay support
Chukun Pan [Mon, 20 Oct 2025 14:16:21 +0000 (22:16 +0800)] 
d1: enable overlay support

Add the loop module and mkfs tool to use f2fs/ext4
based overlays. This fixes the following bug:

mount_root: unable to create loop device
mount_root: no usable overlay filesystem found, using tmpfs overlay

Fixes: 99545b4bb1faf7c3 ("d1: add new target")
Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
2 days agod1: enable usbgadget feature
Chukun Pan [Sun, 19 Oct 2025 14:01:25 +0000 (22:01 +0800)] 
d1: enable usbgadget feature

The USB of most d1 devices works in otg or peripheral mode.
Enable this feature to use usbgadget and fix musb errors:

musb-sunxi 4100000.usb: Invalid or missing 'dr_mode' property
musb-sunxi 4100000.usb: probe with driver musb-sunxi failed with error -22

Fixes: 99545b4bb1faf7c3 ("d1: add new target")
Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
2 days agouboot-d1: update to 2024.01
Chukun Pan [Sat, 18 Oct 2025 12:16:08 +0000 (20:16 +0800)] 
uboot-d1: update to 2024.01

Update to version 2024.01 to remove upstream patches.
The remaining patches come from this repository:
https://github.com/smaeul/u-boot/tree/d1-wip

[for Dongshan Nezha STU, Nezha D1]
Tested-by: Zoltan HERPAI <wigyori@uid0.hu>
Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
2 days agokexec-tools: bump to 2.0.32 21623/head
Roc Lai [Wed, 21 Jan 2026 14:17:41 +0000 (22:17 +0800)] 
kexec-tools: bump to 2.0.32

Change log is available at: https://github.com/horms/kexec-tools/compare/v2.0.28...v2.0.32

Manually refreshed patch:
- 020-i386-improve-basename-compatibility.patch

Remove upstreamed patch:
- 010-Fix-building-on-x86_64-with-binutils-2.41.patch

Signed-off-by: Roc Lai <laipeng668@qq.com>
Link: https://github.com/openwrt/openwrt/pull/21623
Signed-off-by: Robert Marko <robimarko@gmail.com>
2 days agokexec-tools: add aarch64 architecture support
Roc Lai [Wed, 21 Jan 2026 09:55:16 +0000 (17:55 +0800)] 
kexec-tools: add aarch64 architecture support

To update kexec and kdump dependencies for supporting the aarch64 architecture.

Signed-off-by: Roc Lai <laipeng668@qq.com>
Link: https://github.com/openwrt/openwrt/pull/21623
Signed-off-by: Robert Marko <robimarko@gmail.com>
2 days agoath79: rb91x_nand: fix some issues in probe 21165/head
Rosen Penev [Fri, 12 Dec 2025 07:35:20 +0000 (23:35 -0800)] 
ath79: rb91x_nand: fix some issues in probe

Add devm for ioremap to proper cleanup.

Test gpiod_direction_input for failure.

Remove rb91x_nand_release and fix wrong usage.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21165
Signed-off-by: Robert Marko <robimarko@gmail.com>
2 days agorealtek: phy: add RTL8218D initialization 21551/head
Markus Stockhausen [Thu, 15 Jan 2026 17:25:31 +0000 (18:25 +0100)] 
realtek: phy: add RTL8218D initialization

The RTL8218D currently relies on proper U-Boot configuration. In
case that is not possible, provide a basic setup sequence that can
bring the PHY "alive". The SDK provides multiple configuration
sequences for two operation modes (XSGMII or QSGMII) and the different
SoC families. Due to limited testing resources only provide a setup
for RTL93xx devices and both modes at the moment.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/21551
Signed-off-by: Robert Marko <robimarko@gmail.com>
2 days agodnsmasq: bump release to 2.92 21598/head 21632/head
gongzi miao [Sun, 18 Jan 2026 16:43:55 +0000 (00:43 +0800)] 
dnsmasq: bump release to 2.92

bump dnsmasq to latest 2.92

updated 200-ubus_dns.patch
no changes to 100-remove-old-runtime-kernel-support.patch
all remaining patches not required

Changelog for version 2.92 https://thekelleys.org.uk/dnsmasq/CHANGELOG

Signed-off-by: gongzi miao <miaogongzi0227@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21598
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 days agowifi-scripts: iwinfo.uc: cache survey data in iface object
Felix Fietkau [Thu, 22 Jan 2026 10:25:49 +0000 (11:25 +0100)] 
wifi-scripts: iwinfo.uc: cache survey data in iface object

Extract survey fetching into get_survey() and store results in iface.survey,
allowing access to full survey info (not just noise) for later use.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
3 days agowifi-scripts: refactor iwinfo.uc to support dynamic data updates
John Crispin [Fri, 19 Sep 2025 15:05:30 +0000 (17:05 +0200)] 
wifi-scripts: refactor iwinfo.uc to support dynamic data updates

Moved interface discovery and data population into an exported update()
function that can be called on-demand to refresh wireless interface
information. This allows using iwinfo.uc as a library inside daemons.

Signed-off-by: John Crispin <john@phrozen.org>
3 days agoudebug: update to Git HEAD (2026-01-16)
Felix Fietkau [Fri, 16 Jan 2026 08:53:27 +0000 (08:53 +0000)] 
udebug: update to Git HEAD (2026-01-16)

c5c493ed5787 udebug-cli: fix reference to invalid variable in error message
875e1a7af6ca udebug-cli: add logdump command

Signed-off-by: Felix Fietkau <nbd@nbd.name>
3 days agobuild: fix stale package install stamps for unselected variants
Felix Fietkau [Tue, 13 Jan 2026 12:37:50 +0000 (12:37 +0000)] 
build: fix stale package install stamps for unselected variants

When a package variant changes from =y to =m, its .install stamp file
was not being cleaned up, causing both variants to appear in the
package install list.

Fix by making compile depend on prepare-package-install, ensuring
the stamp file is always cleared. Only =y packages recreate it.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
3 days agobuild: auto-generate CONFLICTS for package variants sharing PROVIDES
Felix Fietkau [Tue, 13 Jan 2026 09:31:22 +0000 (09:31 +0000)] 
build: auto-generate CONFLICTS for package variants sharing PROVIDES

Packages using PROVIDES to declare virtual package alternatives (like
tc-tiny, tc-bpf, tc-full all providing 'tc') could be simultaneously
selected as =y, causing installation conflicts. The PROVIDES mechanism
only handles dependency resolution, not mutual exclusion.

Add add_implicit_provides_conflicts() to automatically generate CONFLICTS
from default variants to non-default variants sharing the same PROVIDES.
This ensures only one variant can be built-in (=y) at a time.

Skip generating implicit conflicts when the non-default already has
explicit CONFLICTS with the default, to avoid Kconfig dependency cycles
with the select-based dependency resolution.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
3 days agomediatek: dts: mt7981: fix spi clocks 21108/head
Shiji Yang [Mon, 19 Jan 2026 14:26:09 +0000 (22:26 +0800)] 
mediatek: dts: mt7981: fix spi clocks

Fix spi1 sel-clk source and add missing assigned-clocks.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/21108
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 days agomediatek: dts: mt7981: remove internal phy LED pinctrl
Shiji Yang [Sat, 3 Jan 2026 04:59:19 +0000 (12:59 +0800)] 
mediatek: dts: mt7981: remove internal phy LED pinctrl

This default pinctrl doesn't work at all. We must add pinctrl phandle
to the ethernet-phy node or mac node. This patch removed the internal
phy LED pinctrl group definitions from the SOC dtsi because it is
currently only used by one device. Some incorrect LED pinctrls also
have been removed because these devices do not have hardware phy LED.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/21108
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 days agomediatek: dts: mt7981: add mediatek,wed-pcie syscon phandle
Shiji Yang [Fri, 19 Dec 2025 11:39:55 +0000 (19:39 +0800)] 
mediatek: dts: mt7981: add mediatek,wed-pcie syscon phandle

The PCIe NIC WED offload features depend on it. Also add the missing
"syscon" compatible for the wed_pcie node as it's accessed by
syscon_regmap_lookup_by_phandle().

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/21108
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 days agomediatek: dts: mt7981: load xhci phy efuse by default
Shiji Yang [Fri, 19 Dec 2025 11:39:55 +0000 (19:39 +0800)] 
mediatek: dts: mt7981: load xhci phy efuse by default

This should improve the stability of the USB 3.0 port[1].

[1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.12.y&id=6f2b033cb883f64ad084a75f13634242c7e179a6
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/21108
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 days agomediatek: dts: mt7981: remove useless nodes
Shiji Yang [Fri, 19 Dec 2025 11:39:55 +0000 (19:39 +0800)] 
mediatek: dts: mt7981: remove useless nodes

These stuffs were copied from the vendor SDK. There are currently
no drivers compatible with them. The pending upstream patches did
not include them either.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/21108
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 days agoeconet: add clock/reset support 21545/head
Caleb James DeLisle [Wed, 14 Jan 2026 23:20:52 +0000 (23:20 +0000)] 
econet: add clock/reset support

This is in preparation for the next update to EcoNet Ethernet driver
which will be using real resets rather than bit-bashing. Patches are
backported up to the current state of clk-next because I intend on
upstreaming these patches soon.

Signed-off-by: Caleb James DeLisle <cjd@cjdns.fr>
Link: https://github.com/openwrt/openwrt/pull/21545
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 days agorockchip: fix set default serial_{addr,port} in boot script 21610/head
Tianling Shen [Tue, 20 Jan 2026 02:12:12 +0000 (10:12 +0800)] 
rockchip: fix set default serial_{addr,port} in boot script

On some SoCs like RK3399, U-Boot no longer export the serial
address in $stdout variable, it has been changed to something like
`stdout=serial,vidconsole` since video supported was added. So
detect $soc variable instead, this also makes the script more clear.

Addtional note: rk3566 is reported as rk3568, rk3582 is reported as
rk3588 in $soc.

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
Link: https://github.com/openwrt/openwrt/pull/21610
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 days agoucode: update to Git 85922056ef7 (2026-01-16) 21585/head
Paul Donald [Sat, 17 Jan 2026 23:28:44 +0000 (00:28 +0100)] 
ucode: update to Git 85922056ef7 (2026-01-16)

45bf891e1d8d rtnl: add module documentation
8bbf01215ce3 nl80211: add module documentation
40a6aeb698e1 nl80211: add new attribute "mlo_links" for per link information
376e8733609e ubus: complete pending requests when disconnecting locally
32449bfb69d6 io: add ptsname, tcgetattr, tcsetattr, grantpt, unlockpt
76bf32679d86 digest: fix jsdoc to reveal sha512 functions
58b4597fa2ae build: drop remnant
6ef0b3ada3fd build: respect bin/lib paths
28132276a426 build: adjust flags and definitions
cb1b1c1a097b zlib: make chunk size configurable
6f80655c88c3 debian: refresh packaging
9fc4889c6e8e debian: adjust LTO build
a503a49f5cef debian: build "digest" and "zlib" modules
ffc48a2a4db9 socket: fix off-by-one in uv_to_sockaddr()

Fixes: https://github.com/jow-/ucode/issues/366
dropped patch 130 - integrated at source.
refreshed patches

https://github.com/openwrt/openwrt/pull/21585
Signed-off-by: Paul Donald <newtwen+github@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21585
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 days agorealtek: mdio: derive phy smi-bus from parent node 21438/head
Markus Stockhausen [Mon, 12 Jan 2026 16:56:31 +0000 (17:56 +0100)] 
realtek: mdio: derive phy smi-bus from parent node

The dts for RTL93xx devices has duplicate data about the
smi bus of a phy node. The parent node declares the number
of the bus and the realtek,smi-address attribute does the
same.

Remove the bus part from the realtek,smi-address attribute
and lookup the bus from the parent node. While we are here
remove all realtek,smi-address attributes where phy id
matches the bus address. The driver will use that as a
fallback.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/21438
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 days agorealtek: dts: convert devices to mdio bus 1-3
Markus Stockhausen [Wed, 7 Jan 2026 11:16:53 +0000 (12:16 +0100)] 
realtek: dts: convert devices to mdio bus 1-3

Switch the mdio bus topology for devices that have their phys
attached to bus 1-3. This does not have any impact because
the mdio driver was completly redisgned

With this commit the bus id is stored twice. Once in the (new)
bus and in the (old) realtek,smi-address property. E.g.

&mdio_bus1 {
  reg = <1>; <<< bus id
  phy24: ethernet-phy@24 {
    reg = <26>;
    compatible = "ethernet-phy-ieee802.3-c22";
    realtek,smi-address = <1 2>; <<< bus & address id
  };
};

This redundancy will be removed later.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/21438
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 days agorealtek: dts: add mdio bus 1-3 to RTL93xx
Markus Stockhausen [Wed, 7 Jan 2026 09:42:48 +0000 (10:42 +0100)] 
realtek: dts: add mdio bus 1-3 to RTL93xx

RTL93xx devices have 4 smi busses (0-3). Add them to the dts.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/21438
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 days agorealtek: mdio/dsa: refactor mdio bus initialization
Markus Stockhausen [Mon, 12 Jan 2026 15:43:40 +0000 (16:43 +0100)] 
realtek: mdio/dsa: refactor mdio bus initialization

The mdio driver currently determines the smi bus and address from the
realtek,smi-address attribute of the phy. To better reflect the
topology and align with upstream, the phys should be relocated below
their associated bus. As an interim solution the following dts notation
is in focus.

mdio_ctrl: mdio-controller {
  mdio_bus0: mdio-bus@0 {
    reg = <0>;
    phy0: ethernet-phy@0 {
      reg = <0>;
      compatible = "ethernet-phy-ieee802.3-c45";
      realtek,smi-address = <8>;
    };

  &mdio_bus1 {
    reg = <1>;
    phy16: ethernet-phy@16 {
      reg = <16>;
      compatible = "ethernet-phy-ieee802.3-c45";
      realtek,smi-address = <2>;
  };
}

With this

- the phy reg property still denotes the port number
- the bus number can be derived from the parent bus node.
- the bus address is taken from realtek,smi-address

Refactor bus initialization so it can handle phy nodes below
multiple bus nodes.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/21438
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 days agorealtek: mdio: rename iterator to "addr"
Markus Stockhausen [Mon, 12 Jan 2026 16:33:19 +0000 (17:33 +0100)] 
realtek: mdio: rename iterator to "addr"

During initialization the mdio driver registers phys with the
iterator "pn". To make clear that it is a phy address rename it
to "addr".

While we are here improve the upper bound check of the maximum
possible address. This is the family specific cpu port and not
the generic upper bound constant for all devices.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/21438
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 days agorealtek: mdio: register mdio bus at controller node
Markus Stockhausen [Mon, 12 Jan 2026 16:20:39 +0000 (17:20 +0100)] 
realtek: mdio: register mdio bus at controller node

In the future the mdio controller will have multiple busses
defined in the dts below the controller node. Nevertheless
it will still hand out only one single bus to the kernel.
Attach the (exported) bus to the controller node instead of
the single (dts) bus subnode.

With this change the mdio lookup in the dsa driver must
be changed to point to the mdio controller node too.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/21438
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 days agorealtek: dsa: Remove family check from port_get_stp_state() 21527/head
Markus Stockhausen [Tue, 13 Jan 2026 12:55:38 +0000 (13:55 +0100)] 
realtek: dsa: Remove family check from port_get_stp_state()

The device specific stp_get() functions can return the state
of a given port individually. No need to disassemble the
device specific state table. Additionally change function
prefix.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/21527
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 days agorealtek: dsa: enrich stp_get() return value
Markus Stockhausen [Tue, 13 Jan 2026 12:41:52 +0000 (13:41 +0100)] 
realtek: dsa: enrich stp_get() return value

The family specific stp_get() functions have a new return value
that gives the stp status of a given port. Instead of a constant
zero value provide the real data.

While we are here align the RTL930x implementation with the
other ones.

- Drop the debug output
- Make use of priv->r->tbl_access_data_0()

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/21527
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 days agorealtek: dsa: convert stp_get signature
Markus Stockhausen [Tue, 13 Jan 2026 11:53:17 +0000 (12:53 +0100)] 
realtek: dsa: convert stp_get signature

The device specific stp_get() function returns a device specific
state to the generic caller. So the caller must use a if/else
statement depending on the family to look into the retrieved data.

Change the signature of the function so it can return a device
independent state of a given port in the future. Additionally
use the new function prefix.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/21527
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 days agonetfilter: remove nf-conntrack6 21612/head
Qingfang Deng [Tue, 20 Jan 2026 05:57:46 +0000 (13:57 +0800)] 
netfilter: remove nf-conntrack6

nf_conntrack_ipv6 is no longer a separate kernel module, so remove it.

Signed-off-by: Qingfang Deng <dqfext@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21612
Signed-off-by: Robert Marko <robimarko@gmail.com>
3 days agowifi-scripts: fix WiFi 6E discovery for 6GHz 320MHz operation 21588/head
Ryan Chen [Sun, 18 Jan 2026 02:51:14 +0000 (20:51 -0600)] 
wifi-scripts: fix WiFi 6E discovery for 6GHz 320MHz operation

WiFi 6E (802.11ax) clients cannot discover 6GHz APs operating at
320MHz because the HE Operation element contains uninitialized
center frequency values.

For EHT320 mode, the code sets eht_oper_centr_freq_seg0_idx but not
the corresponding HE values. Later, the HE values are copied from
VHT values, but VHT is not used on 6GHz, leaving he_oper_chwidth
and he_oper_centr_freq_seg0_idx at 0. This causes WiFi 6E clients
to see incorrect channel width information, making the AP invisible
to them during scanning.

Fix this by:
1. Setting he_oper_chwidth to 3 (160MHz) for EHT320 mode
2. Computing he_oper_centr_freq_seg0_idx based on the 160MHz segment
   that contains the primary channel
3. Preserving these pre-set values instead of overwriting them with
   uninitialized VHT values

WiFi 7 clients continue to see 320MHz operation via the EHT Operation
element, while WiFi 6E clients can now discover and connect at 160MHz.

Signed-off-by: Ryan Chen <rchen14b@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21588
Signed-off-by: Robert Marko <robimarko@gmail.com>
3 days agomicrochipsw: lan969x: use network driver as a module
Robert Marko [Wed, 21 Jan 2026 14:27:45 +0000 (15:27 +0100)] 
microchipsw: lan969x: use network driver as a module

Due to PTP conflicts with CONFIG_ALL_KMODS which causes the end images
to end up with no switchdev driver included, lets switch to using the
switchdev and PHY drivers as modules instead.

Fixes: 88a404a2d177 ("microchipsw: add support for Microchip LAN969x switches")
Signed-off-by: Robert Marko <robert.marko@sartura.hr>
3 days agokernel: modules: package Microchip SparX-5 switchdev driver as a module
Robert Marko [Wed, 21 Jan 2026 14:26:53 +0000 (15:26 +0100)] 
kernel: modules: package Microchip SparX-5 switchdev driver as a module

Package the Microchip SparX-5 switchdev driver as a module.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
4 days agostrace: use bundled kernel headers 21536/head
Jonas Gorski [Wed, 14 Jan 2026 09:30:55 +0000 (10:30 +0100)] 
strace: use bundled kernel headers

Build against the bundled kernel headers instead of using the current
kernel ones. This ensures strace is using the kernel headers it is
written against, and not a random one that may contain breaking uapi
changes (which happen from time to time).

Fixes build against 6.18 final and recent LTS/stable kernels that got
minor uapi breakages (rename of a 6.18 introduced #define and a struct
field).

Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
4 days agoRevert "kernel: pcs-mtk-lynxi: backport fix for in-band status capabilities"
Hauke Mehrtens [Wed, 21 Jan 2026 00:07:38 +0000 (01:07 +0100)] 
Revert "kernel: pcs-mtk-lynxi: backport fix for in-band status capabilities"

This reverts commit 7390e63374a9e0bd62c2448f362479de269b841a.

This broke SFP handling on some Mediatek SoCs.
Some SFPs are configured for inband/2500base-x link mode and were
rejected with this change.

Fixes: https://github.com/openwrt/openwrt/issues/21436
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
4 days agorealtek: make all link speeds work for RTL8221B in Zyxel XGS1210-12 rev B1 21605/head
Jan Hoffmann [Mon, 19 Jan 2026 17:45:46 +0000 (18:45 +0100)] 
realtek: make all link speeds work for RTL8221B in Zyxel XGS1210-12 rev B1

SGMII only works correctly on this device if inband auto-negotiation is
enabled. Configure the PHY for SGMII and in-band mode in the device tree
to make this happen.

For 2.5G link speeds the PHY will still switch to 2500Base-X without AN.

The same configuration also works on RTL8226, so it is fine to apply
this change to the A1 revision of XGS1010-12/XGS1210-12 as well.

Signed-off-by: Jan Hoffmann <jan@3e8.eu>
Link: https://github.com/openwrt/openwrt/pull/21605
Signed-off-by: Robert Marko <robimarko@gmail.com>
5 days agoramips: mt76x8: add support for Cudy LT400E v1 21246/head
Kamil Jońca [Tue, 6 Jan 2026 08:03:33 +0000 (09:03 +0100)] 
ramips: mt76x8: add support for Cudy LT400E v1

This commit adds support for the Cudy LT400E v1,
an indoor 4G/LTE WiFi router.
It has 4x10/100 Mbps Ethernet ports, a 2.4 GHz radio,
and a Quectel 4G/LTE EC200A modem.

Hardware:

SoC: MediaTek MT7628NN
Flash: 8 MiB SPI
RAM: 64 MiB
Ethernet: 4x10/100 Mbps
WiFi: 2.4 GHz (embedded MT7628, 802.11n)
WWAN: Quectel EC200A-EL 4G/LTE Cat 4 modem
SIM: nano-SIM slot
Buttons: 1 Reset button, 1 WPS button
LEDs: 10x (blue)
Power: 12 V DC barrel jack

Installation:
The stock firmware is a customized variant of OpenWrt, which implements
a signature check that only allows flashing official firmware. Cudy
offers, on their website [1][6], intermediate OpenWrt firmware images
which do not implement the signature check. After flashing the
intermediate image, the upstream (i.e., official) OpenWrt image can be
installed.  See the device's entry in OpenWrt's Wiki for more details [2].

Cellular network:
The Quectel EC200A modem is internally connected to the SoC via USB, and
operates in ECM mode, supported by the CDC Ether driver [3]. When
inserting a SIM card in the slot, if no PIN is needed, the network
interface "usb0" is brought up and the cellular connection works out of
the box. To interact with the modem directly (unlock the PIN, change APN
and PDP settings, etc.), AT commands can be sent with picocom to serial
port /dev/ttyUSB2 [4].

Recovery:
The stock firmware can be recovered via TFTP, as the bootloader (based
on U-Boot) implements a recovery client. Set up a TFTP server on your
computer with IP 192.168.88.1/24 serving the stock firmware from Cudy's
website renamed to "recovery.bin". Press the Reset button (keep it
pressed), power on the device, wait for the TFTP server to send the
recovery.bin file, then release the Reset button. The router will take a
couple of minutes to reboot and set up the stock firmware. See the
device's entry in OpenWrt's Wiki for more details [2].

Discussion:
Use the dedicated thread in OpenWrt's forum to discuss any aspects [5].

Acknowledgments:
The code to support this device is largely based on the sources kindly
provided by Cudy in compliance with the GPL license. Thanks for
supporting the OpenWrt community.

Links:
[1] https://www.cudy.com/blogs/faq/openwrt-software-download
[2] https://openwrt.org/toh/cudy/lt400e_v1
[3] https://openwrt.org/docs/guide-user/network/wan/wwan/ethernetoverusb_cdc
[4] https://openwrt.org/docs/guide-user/network/wan/wwan/at_commands
[5] https://forum.openwrt.org/t/242466
[6] https://drive.google.com/drive/folders/1BKVarlwlNxf7uJUtRhuMGUqeCa5KpMnj

Co-authored-by: rogerpueyo <roger.pueyo@guifi.net>
Signed-off-by: Kamil Jońca <kjonca@onet.pl>
Link: https://github.com/openwrt/openwrt/pull/21246
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
5 days agokernel: bump 6.12 to 6.12.66 21591/head
John Audia [Sun, 18 Jan 2026 10:13:53 +0000 (05:13 -0500)] 
kernel: bump 6.12 to 6.12.66

Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.66

All patches automatically rebased

Build system: x86/64
Build-tested: flogic/glinet_gl-mt6000
Run-tested: flogic/glinet_gl-mt6000

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/21591
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
5 days agomediatek: filogic: add support for Tenda BE12 Pro
Chen Minqiang [Fri, 12 Dec 2025 02:58:16 +0000 (10:58 +0800)] 
mediatek: filogic: add support for Tenda BE12 Pro

This patch adds support for Tenda BE12 Pro.

The stock bootloader requires a specific 16-byte header (Magic: "God1")
to correctly verify and boot the Linux kernel from flash. A new image
command `tenda-mkdualimageheader` is added to generate this header and
append the checksum/size information required for the device to boot
successfully.

Hardware Specification:
- SoC: MediaTek MT7987A (Quad-core ARM Cortex-A53 2.0 GHz)
- RAM: 512 MiB DDR4
- Flash: 128 MiB SPI-NAND
- WiFi: MediaTek MT7992E (WiFi 7)
  - 2.4GHz: b/g/n/ax/be (4x4 MIMO)
  - 5GHz: a/n/ac/ax/be (4x4 MIMO)
- Ethernet:
  - 3x 10/100/1000 Mbps LAN (Airoha AN8855AE Switch)
  - 1x 10/100/1000/2500 Mbps LAN (SoC internal PHY)
  - 1x 10/100/1000/2500 Mbps WAN (Airoha EN8811H PHY)
- Buttons: Reset, WPS
- LEDs: 2x (Blue: System/Run, Red: Alarm)
- UART: 115200 8n1 (VCC, RX, TX, GND)

Flash Layout:
- 0x000000 - 0x300000 : Bootloader
- 0x300000 - 0x380000 : u-boot-env
- 0x380000 - 0x780000 : Factory
- 0x780000 - 0xd80000 : kernel
- 0xd80000 - 0x6780000 : ubi (rootfs)
- 0x6780000 - 0x6b80000 : CFG
- 0x6b80000 - 0x6f80000 : MISC2

MAC Addresses (NVMEM):
- Base MAC located at Factory partition offset 0x4
- gmac2 (WAN) : Base - 2 (Label MAC)
- gmac0 (LAN) : Base - 1
- gmac1 (LAN) : Base - 3
- 2.4 GHz     : Base
- 5 GHz       : Base + 1

Installation:
1. Connect via UART and interrupt U-Boot by pressing 'Ctrl+C' during boot.
2. Set up a TFTP server on a computer (IP 192.168.1.2) containing
   'openwrt-initramfs.bin'.
3. Load the initramfs image:
   tftpboot openwrt-initramfs.bin
4. Boot the image:
   bootm
5. Once booted into OpenWrt initramfs, perform a sysupgrade with the
   sysupgrade image.

Signed-off-by: Chen Minqiang <ptpt52@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21461
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
5 days agoucode: enable ucode-mod-zlib 21417/head
Paul Donald [Tue, 6 Jan 2026 00:53:25 +0000 (01:53 +0100)] 
ucode: enable ucode-mod-zlib

The module exists in ucode and has been present for a while
but has not been enabled. It provides the ucode zlib module
for handling gzip and zlib compression in ucode scripts.

The package is ~ 5Kb. Installed ~18Kb.

Signed-off-by: Paul Donald <newtwen+github@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21417
Signed-off-by: Robert Marko <robimarko@gmail.com>
5 days agokernel: net: phy: realtek: backport upstream commits 21597/head
Daniel Golle [Sun, 18 Jan 2026 22:02:28 +0000 (22:02 +0000)] 
kernel: net: phy: realtek: backport upstream commits

Backport a bunch of upstream commits simplifying the RealTek PHY driver
and re-unifying the C22 and C45 driver instances.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
5 days agorockchip: add HINLINK H28K support 21540/head
Chukun Pan [Wed, 10 Dec 2025 10:10:29 +0000 (18:10 +0800)] 
rockchip: add HINLINK H28K support

Hardware:
- RK3528 SoC
- 1x USB 2.0
- 8/32GB eMMC
- 1/2/4GB LPDDR4
- 1x 1GbE RTL8111H
- 1x 1GbE RTL8211F
- MicroSD card slot

Installation:
  Use dd or balenaEtcher to flash the firmware.

Note:
  The RK3528 SoC does not support MSI-X, so it can't
  adjust the interrupts of r8169 to other CPU cores.

Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
5 days agouboot-rockchip: add HINLINK H28K support
Chukun Pan [Tue, 9 Dec 2025 10:06:25 +0000 (18:06 +0800)] 
uboot-rockchip: add HINLINK H28K support

Add pending uboot support for the HINLINK H28K.

Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
5 days agorockchip: correct MAC address for Radxa E20C
Chukun Pan [Tue, 16 Dec 2025 13:27:02 +0000 (21:27 +0800)] 
rockchip: correct MAC address for Radxa E20C

Use the unique MAC address in EEPROM for eth0.
The MAC address of RTL8111H (eth1) is correct.

Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
5 days agorockchip: configure WAN port LED of Radxa E20C
Chukun Pan [Mon, 15 Dec 2025 13:08:05 +0000 (21:08 +0800)] 
rockchip: configure WAN port LED of Radxa E20C

The WAN(eth1) port LED on the Radxa E20C is completely off.
Since the r8169 driver supports configuring LEDs, using it.

Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
5 days agogeneric: restore network port name for r8169 LED
Chukun Pan [Thu, 10 Jul 2025 14:15:05 +0000 (22:15 +0800)] 
generic: restore network port name for r8169 LED

Currently, the LED names generated by the r8169 driver are the
network port names renamed by udev, such as enp1s0. Add a hack
patch to restore the interface name to match OpenWrt.

Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
5 days agox86: cs5535audio: add support for subtarget legacy
Pierre-Emmanuel Frot [Sun, 18 Jan 2026 20:13:28 +0000 (21:13 +0100)] 
x86: cs5535audio: add support for subtarget legacy

Build kernel module for cs5535 internal audio for target x86 "legacy" also
(so far only for target x86 "geode")

Signed-off-by: Pierre-Emmanuel Frot <piemfrot@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21596
Signed-off-by: Robert Marko <robimarko@gmail.com>
7 days agomediatek: fix gmac definition for cudy m3000 21560/head
Maximilian Baumgartner [Thu, 15 Jan 2026 22:46:46 +0000 (23:46 +0100)] 
mediatek: fix gmac definition for cudy m3000

The gmac definition has an offset of 1 compared to the label MAC.
Fixes: a55ab9e1343e85021253e9c55f67adf33ad68f09 ("mediatek: filogic: prevent faulty mac address assignment")
Signed-off-by: Maximilian Baumgartner <aufhaxer@googlemail.com>
Link: https://github.com/openwrt/openwrt/pull/21560
Signed-off-by: Robert Marko <robimarko@gmail.com>
7 days agogeneric: filter out more rust related symbols 21554/head
Stijn Tintel [Thu, 15 Jan 2026 20:21:36 +0000 (22:21 +0200)] 
generic: filter out more rust related symbols

More rust symbols that are detected using scripts or based on the rust
version have been added. Filter them out.

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
Link: https://github.com/openwrt/openwrt/pull/21554
Signed-off-by: Robert Marko <robimarko@gmail.com>
7 days agorealtek: pcs: rtl930x: rework SerDes mode setting 21565/head
Jonas Jelonek [Sun, 11 Jan 2026 22:28:35 +0000 (22:28 +0000)] 
realtek: pcs: rtl930x: rework SerDes mode setting

Rework the SerDes mode setting to have a better logical structure,
similar to how RTL931x currently does it. Mode setting is grouped into a
MAC setup and IP core setup. Most modes just need to trigger the MAC
setup and then they work, otherwise some complex sequence is needed.

To achieve that, rename several functions and group their content
differently. While at it, rename some constants to use the RTPCS_ prefix.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21565
Signed-off-by: Robert Marko <robimarko@gmail.com>
7 days agorealtek: pcs: rtl930x: rename internal mode helpers
Jonas Jelonek [Fri, 16 Jan 2026 20:15:54 +0000 (20:15 +0000)] 
realtek: pcs: rtl930x: rename internal mode helpers

RTL930x has some helpers which take care of writing the actual mode
value to the corresponding register. They exist for the MAC setup SerDes
mode, the USXGMII submode and the SerDes IP core mode.

To reflect that, adjust the naming of these helpers accordingly. Most
importantly, prefix the helper names with '__'. This is a common
convention to denote helpers/functions which are internal, not intended
for general use and skip certain checks. Those conditions apply to these
helpers. Though they are still used quite often here, this might change
with further cleanups.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21565
Signed-off-by: Robert Marko <robimarko@gmail.com>
7 days agorealtek: pcs: rtl930x: use SerDes hw mode in calibration
Jonas Jelonek [Sun, 11 Jan 2026 20:06:58 +0000 (20:06 +0000)] 
realtek: pcs: rtl930x: use SerDes hw mode in calibration

Completely replace usage of PHY_INTERFACE_MODE_* in the vast amount of
calibration functions with the SerDes hardware mode.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21565
Signed-off-by: Robert Marko <robimarko@gmail.com>
7 days agorealtek: pcs: rtl930x: use SerDes hw mode for mode setting
Jonas Jelonek [Thu, 8 Jan 2026 12:43:02 +0000 (12:43 +0000)] 
realtek: pcs: rtl930x: use SerDes hw mode for mode setting

Set and configure the SerDes mode using the SerDes hardware mode types
instead of PHY_INTERFACE_MODE_*.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21565
Signed-off-by: Robert Marko <robimarko@gmail.com>
7 days agorealtek: pcs: rtl930x: use SerDes hw mode in TX config
Jonas Jelonek [Thu, 8 Jan 2026 12:33:26 +0000 (12:33 +0000)] 
realtek: pcs: rtl930x: use SerDes hw mode in TX config

Use SerDes hardware mode in RTL930x SerDes TX config instead of
PHY_INTERFACE_MODE_* modes.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21565
Signed-off-by: Robert Marko <robimarko@gmail.com>