]> git.ipfire.org Git - thirdparty/openwrt.git/log
thirdparty/openwrt.git
42 hours 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>
42 hours 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>
42 hours 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>
42 hours 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>
42 hours 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>
42 hours 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>
42 hours 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>
42 hours 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>
43 hours 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>
43 hours 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>
43 hours 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>
43 hours 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>
43 hours 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>
2 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>
2 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>
2 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>
2 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>
3 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>
3 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>
3 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>
3 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>
3 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>
4 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>
4 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>
4 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>
4 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>
4 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>
4 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>
4 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 days agorealtek: pcs: rtl930x: use SerDes hw mode in patching
Jonas Jelonek [Thu, 8 Jan 2026 12:28:43 +0000 (12:28 +0000)] 
realtek: pcs: rtl930x: use SerDes hw mode in patching

Switch to using the SerDes hardware mode in RTL930x SerDes patching aka
rtpcs_930x_sds_patch.

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>
5 days agorealtek: pcs: rtl930x: use SerDes hw mode in setup entry
Jonas Jelonek [Thu, 8 Jan 2026 12:21:47 +0000 (12:21 +0000)] 
realtek: pcs: rtl930x: use SerDes hw mode in setup entry

Start using the SerDes hardware in the RTL930x SerDes setup entrypoint.
Use the generic mapper (which will be moved out later to pcs_config) to
determine the mode. In the next steps, switch to solely using that
step-by-step.

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>
5 days agorealtek: eth: adapt counter() and irq() functions 21569/head
Markus Stockhausen [Fri, 16 Jan 2026 10:16:35 +0000 (11:16 +0100)] 
realtek: eth: adapt counter() and irq() functions

Convert the update_counter() and net_irq() functions to the
new prefix. For better readability rename "cntr" to "counter".

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/21569
Signed-off-by: Robert Marko <robimarko@gmail.com>
5 days agorealtek: eth: use device specifc hardware reset
Markus Stockhausen [Fri, 16 Jan 2026 09:47:26 +0000 (10:47 +0100)] 
realtek: eth: use device specifc hardware reset

The hardware reset is a combined function for all device families.
So it uses several family specific branches to decide what is
really needed. Refactor this into device specific variants to make
it easier to understand.

The cpu port and nic reset sequence is the same for all families.
Provide this with a dedicated function.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/21569
Signed-off-by: Robert Marko <robimarko@gmail.com>
5 days agorealtek: image: switch cameo devices from gzip to lzma 21577/head
Markus Stockhausen [Sat, 17 Jan 2026 07:32:33 +0000 (08:32 +0100)] 
realtek: image: switch cameo devices from gzip to lzma

The cameo based RTL83xx devices have a simple U-Boot that only
supports gzip compression. Actual models are mainly D-Link
DGS-1210 and the Apresia Light GS120GT-SS. Reduce the image
size by ~1MB by switching over to lzma compression and rt-loader.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/21577
Signed-off-by: Robert Marko <robimarko@gmail.com>
5 days agoqualcommax: ipq60xx: add JDCloud RE-CS-07 support 19840/head
Chukun Pan [Wed, 9 Apr 2025 13:10:20 +0000 (21:10 +0800)] 
qualcommax: ipq60xx: add JDCloud RE-CS-07 support

Specifications:
  SoC:     Qualcomm IPQ6010 1.8GHz
  RAM:     K4A8G165WC-BCTD x2 2GiB
  ETH:     QCA8075 (3x LAN, 1x WAN)
  Flash:   ICMAX 8GB eMMC
  Power:   DC 12V 2A
  USB:     1x 3.0
  Button:  Reset

Flash instructions:
  1. Download the initramfs image, rename it to
     initramfs.itb, host it with the tftp server.
  2. Enter "jdmt018R" to interrupt U-Boot
     when the following statement appears:
     "disabled console and autoboot in 2 seconds"
  3. Run these commands in U-Boot console:
     tftpboot initramfs.itb
     bootm
  4. After openwrt boots up, use scp or luci web
     to upload sysupgrade.bin to upgrade.

Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
Link: https://github.com/openwrt/openwrt/pull/19840
Signed-off-by: Robert Marko <robimarko@gmail.com>
5 days agoqualcommax: ipq60xx: add JDCloud RE-CS-02 support
Chukun Pan [Tue, 8 Apr 2025 14:19:30 +0000 (22:19 +0800)] 
qualcommax: ipq60xx: add JDCloud RE-CS-02 support

Specifications:
  SoC:     Qualcomm IPQ6010 1.8GHz
  RAM:     K4A4G165WF-BCTD x2 1GiB
  Flash:   FORESEE 128GB/256GB eMMC
  ETH:     4x 1Gbps + 1x 2.5Gbps
  WLAN1:   QCN5022 2.4GHz AX 2x2
  WLAN2:   QCN5052 5.8GHz AX 2x2
  WLAN2:   QCN9024 5.2GHz AX 4x4
  Button:  Reset, Screen, Wps
  Power:   DC 12V 3A
  USB:     1x 3.0

Flash instructions:
  1. Download the initramfs image, rename it to
     initramfs.itb, host it with the tftp server.
  2. If the stock firmware version is 4.3.0.r4211
     or higher, enter "jdmt018R" to interrupt
     U-Boot when the following statement appears:
     "disabled console and autoboot in 2 seconds"
  3. Run these commands in U-Boot console:
     tftpboot initramfs.itb
     bootm
  4. After openwrt boots up, use scp or luci web
     to upload sysupgrade.bin to upgrade.

Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
Link: https://github.com/openwrt/openwrt/pull/19840
Signed-off-by: Robert Marko <robimarko@gmail.com>
6 days agoqualcommax: ipq60xx: add JDCloud RE-SS-01 support 19780/head
Chukun Pan [Wed, 2 Apr 2025 14:01:30 +0000 (22:01 +0800)] 
qualcommax: ipq60xx: add JDCloud RE-SS-01 support

Specifications:
  SoC:     Qualcomm IPQ6000 1.2GHz
  RAM:     NT52CB256MB16DP 512MiB
  Flash:   FORESEE 64GB/128GB eMMC
  ETH:     QCA8075 (3x LAN, 1x WAN)
  WLAN1:   QCN5022 2.4GHz AX 2x2
  WLAN2:   QCN5052 5GHz AX 2x2
  Power:   DC 12V 2A
  Button:  Reset, Wps
  USB:     1x 3.0

Flash instructions:
  1. Download the initramfs image, rename it to
     initramfs.itb, host it with the tftp server.
  2. If the stock firmware version is 4.3.0.r4211
     or higher, enter "jdmt018R" to interrupt
     U-Boot when the following statement appears:
     "disabled console and autoboot in 2 seconds"
  3. Run these commands in U-Boot console:
     tftpboot initramfs.itb
     bootm
  4. After openwrt boots up, use scp or luci web
     to upload sysupgrade.bin to upgrade.

Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
Link: https://github.com/openwrt/openwrt/pull/19780
Signed-off-by: Robert Marko <robimarko@gmail.com>
6 days agoqualcommax: ipq50xx: match QDSK ports unit address with port id 21456/head
George Moussalem [Thu, 8 Jan 2026 09:32:42 +0000 (13:32 +0400)] 
qualcommax: ipq50xx: match QDSK ports unit address with port id

Match the unit address of both QSDK switch ports with the node's port_id
property. Purely cleanup, no functional change.

Signed-off-by: George Moussalem <george.moussalem@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/21456
Signed-off-by: Robert Marko <robimarko@gmail.com>
6 days agorealtek: imagebuilder: add guard around loader generation 21556/head
Eric Fahlgren [Thu, 15 Jan 2026 21:48:11 +0000 (13:48 -0800)] 
realtek: imagebuilder: add guard around loader generation

The imagebuilder cannot compile source, so we must guard against
generation of artifact targets that require this.  Without this
guard we see an error when building the zyxel,gs1920-24hp-v1 profile.

  Create standalone rt-loader, loading uimage from address 0xb40c0000
  mips-openwrt-linux-musl-gcc -fpic -msoft-float -Iinclude -c -o ... src/startup.S
  make[4]: mips-openwrt-linux-musl-gcc: No such file or directory

Signed-off-by: Eric Fahlgren <ericfahlgren@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21556
Signed-off-by: Robert Marko <robimarko@gmail.com>
7 days agoci: rework and move build-on-comment action
Paul Spooren [Thu, 15 Jan 2026 02:19:16 +0000 (09:19 +0700)] 
ci: rework and move build-on-comment action

Run this only when a PR is created, so either author or anyone who can
edit the PR message (all maintainers) can trigger such build.

Instead of maintaining it in the main repository, move it to the
external repository to bloat this repository less with further CI
commits.

Signed-off-by: Paul Spooren <mail@aparcar.org>
7 days agoramips: fix gmac definition for cudy ap1300 outdoor 21543/head
Steffen Förster [Wed, 14 Jan 2026 19:45:01 +0000 (20:45 +0100)] 
ramips: fix gmac definition for cudy ap1300 outdoor

The gmac definition has an offset of 1 at the moment. This leads to an
off by one error in downstream projects that rely on the package label mac.

Signed-off-by: Steffen Förster <nemesis@chemnitz.freifunk.net>
Link: https://github.com/openwrt/openwrt/pull/21543
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
7 days agorealtek: eth: convert prefix of net_device_ops 21476/head
Markus Stockhausen [Fri, 9 Jan 2026 20:19:13 +0000 (21:19 +0100)] 
realtek: eth: convert prefix of net_device_ops

Rename some of the net_device_ops to the new driver prefix.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/21476
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
7 days agorealtek: eth: adapt prefix of tx functions
Markus Stockhausen [Fri, 9 Jan 2026 20:08:49 +0000 (21:08 +0100)] 
realtek: eth: adapt prefix of tx functions

Rename transmit related functions with the new prefix.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/21476
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
7 days agorealtek: eth: adapt prefix for mac functions
Markus Stockhausen [Fri, 9 Jan 2026 19:57:36 +0000 (20:57 +0100)] 
realtek: eth: adapt prefix for mac functions

Convert the mac functions to the new prefix.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/21476
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
7 days agorealtek: eth: convert tag decoder/encoder to new prefix
Markus Stockhausen [Fri, 9 Jan 2026 19:40:38 +0000 (20:40 +0100)] 
realtek: eth: convert tag decoder/encoder to new prefix

Rename the header tag encoding/decoding functions according
to the new prefix naming convention.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/21476
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
7 days agorealtek: eth: rename priv to ctrl (as in other drivers)
Markus Stockhausen [Fri, 9 Jan 2026 19:28:41 +0000 (20:28 +0100)] 
realtek: eth: rename priv to ctrl (as in other drivers)

All Realtek drivers use ctrl (control) als the central driver
structure. Align that for the ethernet driver. Additionally
use the rteth prefix for the device independent structure
definition. Its current prefix "rtl838x_" is only confusing.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/21476
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
7 days agowifi-scripts: fix wifi failure on specifying value of DAE client 21522/head
Val Kulkov [Mon, 12 Jan 2026 17:21:52 +0000 (17:21 +0000)] 
wifi-scripts: fix wifi failure on specifying value of DAE client

The code to be replaced is a glorious no-op. A default value for
config.radius_das_client does not need to be assigned. This parameter
already has non-empty value: see the enclosing 'if' block.

As a result, the value of config.radius_das_client never gets modified
to contain both dae_client and dae_secret. This breaks hostapd.add_iface()
that expects config.radius_das_client to contain both dae_client and
dae_secret separated by a whitespace.

Fixes: #21519
Signed-off-by: Val Kulkov <val.kulkov@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21522
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
8 days agouboot-rockchip: bump to 2026.01
Stijn Tintel [Mon, 12 Jan 2026 15:26:05 +0000 (17:26 +0200)] 
uboot-rockchip: bump to 2026.01

Drop upstreamed patches, refresh others.

Tested on Radxa ROCK 5B+.

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
8 days agoarm-trusted-firmware-rockchip: bump to 2.14.0
Stijn Tintel [Mon, 12 Jan 2026 14:33:51 +0000 (16:33 +0200)] 
arm-trusted-firmware-rockchip: bump to 2.14.0

Tested on Radxa ROCK 5B+.

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
8 days agorealtek: rt-loader: fix chip revision printout 21498/head
Markus Stockhausen [Sun, 11 Jan 2026 13:43:07 +0000 (14:43 +0100)] 
realtek: rt-loader: fix chip revision printout

There is currently a mismatch in the detection of the chip type.
rt-loader and the kernel give different revisions. E.g.

rt-loader: Running on RTL9313 (chip id 6567A) with 256MB
kernel: Realtek RTL9313 rev B (6567) SoC with 256 MB

Realtek internal version numbering is

- for RTL838x: 1=A, 2=B, ...
- for others: 0=A, 1=B, ...

rt-loader does not differentiate that. Adapt the calculation to
give a consistent picture.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/21498
Signed-off-by: Robert Marko <robimarko@gmail.com>
8 days agorealtek: phy: simplify RTL8214FC configuration 21508/head
Markus Stockhausen [Mon, 12 Jan 2026 09:29:44 +0000 (10:29 +0100)] 
realtek: phy: simplify RTL8214FC configuration

Initialization of the RTL8214FC was coded like "put the cart
before the horse". Configuration was called from probing
and only when called for the last port.

Testing showed that there is no need to overcomplicate things.
Reorganize the setup as follows:

- Let probe() & config() do what they are meant for
- Split the config part between a package and a port sequence

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/21508
Signed-off-by: Robert Marko <robimarko@gmail.com>
8 days agorealtek: phy: drop unused firmware setup for RTL8214FC
Markus Stockhausen [Mon, 12 Jan 2026 08:52:24 +0000 (09:52 +0100)] 
realtek: phy: drop unused firmware setup for RTL8214FC

The RTL8214FC is initialized with a minimum driver sequence.
The firmware usage has been made obsolete. Drop leftovers.
These include:

- old code
- firmware file
- kernel config (to include the firmware file into the build)

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/21508
Signed-off-by: Robert Marko <robimarko@gmail.com>
8 days agorealtek: phy: Use single initialization for RTL8214FC
Markus Stockhausen [Mon, 12 Jan 2026 08:44:33 +0000 (09:44 +0100)] 
realtek: phy: Use single initialization for RTL8214FC

There are currently two code paths to initialize the RTL8214FC. One is
for RTL838x, the other for RTL839x. With the recently added minimum
setup sequence the phy will come up and pass traffic on any device.
Use this als the reference implementation and drop the usage of the
magic firmware based setup.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/21508
Signed-off-by: Robert Marko <robimarko@gmail.com>
8 days agorealtek: dts: fix Zyxel GS1920 port section 21534/head
Markus Stockhausen [Wed, 14 Jan 2026 06:41:34 +0000 (07:41 +0100)] 
realtek: dts: fix Zyxel GS1920 port section

For the GS1920 the build system throws errors like

../dts/rtl8392_zyxel_gs1920-24hp-v1.dts:256.19-29:
Warning (reg_format): /switch@1b000000/ports/port@0:reg:
property has invalid length (4 bytes)
(#address-cells == 2, #size-cells == 1)

The dts misses the address and size properties for the
ports section. Fix that.

Fixes: 2a55846 ("realtek: add support for ZyXEL GS1920-24HPv1")
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/21534
Signed-off-by: Robert Marko <robimarko@gmail.com>
8 days agokernel: bump 6.12 to 6.12.65 21431/head
John Audia [Sun, 11 Jan 2026 15:43:45 +0000 (10:43 -0500)] 
kernel: bump 6.12 to 6.12.65

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

Manually rebased:
  generic/hack-6.12/904-debloat_dma_buf.patch
  econet/patches-6.12/010-v6.16-MAINTAINERS-Add-entry-for-newly-added-EcoNet-platfor.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/21431
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
8 days agokernel: bump 6.12 to 6.12.64
John Audia [Tue, 6 Jan 2026 22:43:30 +0000 (17:43 -0500)] 
kernel: bump 6.12 to 6.12.64

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

Manually rebased:
  bcm27xx/patches-6.12/950-0019-BCM2708-Add-core-Device-Tree-support.patch
  bcm27xx/patches-6.12/950-0446-i2c-designware-Add-support-for-bus-clear-feature.patch
  bcm27xx/patches-6.12/950-0875-PCI-brcmstb-Add-bcm2712-support.patch
  ipq40xx/patches-6.12/401-mmc-sdhci-msm-comment-unused-sdhci_msm_set_clock.patch

Removed upstreamed:
  generic-backport/403-v6.19-mtd-mtdpart-ignore-error-ENOENT-from-parsers-on-subp.patch[1]
  bcm27xx/patches-6.12/950-0873-PCI-brcmstb-Reuse-config-structure.patch[2]
  bcm27xx/patches-6.12/950-0888-PCI-brcmstb-don-t-use-ASPM-state-defines-for-registe.patch[3]
  bcm27xx/patches-6.12/950-0951-media-i2c-imx219-Restore-the-1920x1080-to-using-a-1-.patch[4]

All other patches automatically rebased.

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.64&id=846ceb1a94460f7331e879c02ff2dd505435b51b
2. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.64&id=8d185636a6299ff9d2e9eec3a4a25026c13d2351
3. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.64&id=38aa6ca6285ff76a7570e5b9acd1151f5cea783a
4. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.64&id=620f9d7bcf771b532bce67ffecf2d97759a4747f

Build system: x86/64
Build-tested: flogic/glinet_gl-mt6000, ramips/tplink_archer-a6-v3
Run-tested: flogic/glinet_gl-mt6000, ramips/tplink_archer-a6-v3

Signed-off-by: John Audia <therealgraysky@proton.me>
Co-Authored-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/21431
[Fixed: 950-0019-BCM2708-Add-core-Device-Tree-support.patch]
[remove 950-0888-PCI-brcmstb-don-t-use-ASPM-state-defines-for-registe.patch]
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
8 days agobcm27xx: refresh kernel patches
Hauke Mehrtens [Mon, 12 Jan 2026 22:05:57 +0000 (23:05 +0100)] 
bcm27xx: refresh kernel patches

The patch 950-0019-BCM2708-Add-core-Device-Tree-support.patch creates a
symbolic link. It looks like quilt does not support this and never
refreshed it.

I removed the symbolic link, refreshed the patch and then added it
back again.

Link: https://github.com/openwrt/openwrt/pull/21431
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
8 days agomac80211: fix build for 6.12.64 bump
John Audia [Thu, 8 Jan 2026 12:13:08 +0000 (07:13 -0500)] 
mac80211: fix build for 6.12.64 bump

Disable the backport shim on 6.12.64 and newer where the function
is provided by the kernel.

References:
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/include/linux/hrtimer.h?h=v6.12.64&id=12493e7e888d266453d1c3898dc160178749afb3
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/include/linux/hrtimer.h?h=v6.12.64&id=d579cc549298a02ba90b7a6d20a2ba8e160f3f31

Co-Authored-by: Pascal Ernster <git@hardfalcon.net>
Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/21431
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
8 days agonetifd: use stable IAID for DHCPv4 21489/head
Álvaro Fernández Rojas [Sat, 10 Jan 2026 14:44:48 +0000 (15:44 +0100)] 
netifd: use stable IAID for DHCPv4

Commit 9151c7015ed2 introduced support for the global DHCP DUID to
generate a RFC4361-style client identifier.
However, the IAID introduced in those changes is based on ifindex, which
is subject to changes and causes issues on environments requiring a stable
IAID.

This commit switches the IAID to a stable one based on MD5.

Fixes: 9151c7015ed2 ("netifd: use the global DHCP DUID for DHCPv4")
Link: https://github.com/openwrt/openwrt/pull/21489
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
8 days agobase-files: introduce a function to generate IAID
Álvaro Fernández Rojas [Tue, 13 Jan 2026 17:19:48 +0000 (18:19 +0100)] 
base-files: introduce a function to generate IAID

Add new function "network_generate_iface_iaid()" to generate a stable IAID
from an interface name.

Link: https://github.com/openwrt/openwrt/pull/21489
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
8 days agoairoha: show link rate and duplex 21530/head
Aleksander Jan Bajkowski [Sat, 10 Jan 2026 17:05:38 +0000 (18:05 +0100)] 
airoha: show link rate and duplex

Implement the .get_link_ksettings to get the rate, duplex, and
auto-negotiation status.

Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
Link: https://github.com/openwrt/openwrt/pull/21530
Signed-off-by: Robert Marko <robimarko@gmail.com>
9 days agorockchip: add `"compat_version": "1.1"` for Radxa E52C 21533/head
FUKAUMI Naoki [Wed, 14 Jan 2026 01:52:55 +0000 (01:52 +0000)] 
rockchip: add `"compat_version": "1.1"` for Radxa E52C

This is something I missed in https://github.com/openwrt/openwrt/pull/20608

Fixes: 1f1db75432 ("rockchip: make NIC name predictable for Radxa E52C/ROCK 5 ITX/ROCK 5T")
Signed-off-by: FUKAUMI Naoki <naoki@radxa.com>
Link: https://github.com/openwrt/openwrt/pull/21533
Signed-off-by: Robert Marko <robimarko@gmail.com>
9 days agokernel: add kmod-hwmon-adt7470 21505/head
Stijn Tintel [Mon, 12 Jan 2026 01:49:19 +0000 (03:49 +0200)] 
kernel: add kmod-hwmon-adt7470

This driver supports the ADT7470 thermal monitoring chip, which is used
in the ECS4100-12PH switch.

Fixes: fa9f92595197 ("realtek/rtl839x: Edgecore ECS4100-12PH support")
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
Link: https://github.com/openwrt/openwrt/pull/21505
Signed-off-by: Robert Marko <robimarko@gmail.com>
9 days agolibiwinfo: update to Git HEAD (2026-01-14)
Hauke Mehrtens [Tue, 13 Jan 2026 23:34:45 +0000 (00:34 +0100)] 
libiwinfo: update to Git HEAD (2026-01-14)

f5dd57a84cc3 nl80211: fix 5Ghz frequency calculations

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
9 days agompc85xx: fix failsafe iface selection for mpc85xx boards 21516/head
Pawel Dembicki [Mon, 12 Jan 2026 14:44:05 +0000 (15:44 +0100)] 
mpc85xx: fix failsafe iface selection for mpc85xx boards

Some mpc85xx boards still boot with failsafe configured on a non-LAN
interface. Align the preinit interface with the first DSA port or the
interface that LAN is connected to.

This makes failsafe reachable on devices where the default selection does
not map to the primary LAN port.

Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21516
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
9 days agomediatek: add support for Airpi AP3000M 21397/head
Fil Dunsky [Sat, 3 Jan 2026 22:00:14 +0000 (01:00 +0300)] 
mediatek: add support for Airpi AP3000M

This adds support for the Airpi AP3000M 5G CPE based on MediaTek MT7981B.

Specifications:

SoC: MediaTek MT7981B (dual-core ARM Cortex-A53)
RAM: 1GB DDR4
Storage: 8GB or 16GB eMMC
Ethernet: 1x 2.5GbE LAN, 1x 1GbE WAN
Wireless: 2.4GHz/5GHz 802.11ax
Buttons: Reset, WPS
LEDs: System, 2.4GHz WiFi, 5GHz WiFi
Cooling: PWM-controlled fan
Expansion: M.2 slot for 5G modem

The factory partition (mmcblk0p2) is empty in stock firmware.
Execute via SSH before flashing OpenWrt:
```
dd if=/lib/firmware/MT7981_iPAiLNA_EEPROM.bin of=/dev/mmcblk0p2 bs=4k count=1
MAC addresses
```
Fixed MAC addresses are derived by macaddr_generate_from_mmc_cid.

Installation via U-Boot web page

Set static IP 192.168.88.2/255.255.255.0 on your computer.
Connect to the 1GbE port (WAN) and hold the reset button while booting the device. Wait for about 6 seconds, and release the reset button.
Open U-boot web page on your browser at http://192.168.88.1
Select the OpenWRT sysupgrade image, upload it, and start the upgrade.
Wait for automatic reboot.
Installation via sysupgrade

Flash the sysupgrade file via LuCI upgrade page without saving the settings.

Signed-off-by: Fil Dunsky <filipp.dunsky@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21397
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 days agoimagebuilder: add ABI suffix to packages when using apk 21449/head
George Sapkin [Thu, 8 Jan 2026 03:00:26 +0000 (05:00 +0200)] 
imagebuilder: add ABI suffix to packages when using apk

If an apk package with an ABI version doesn't have priority set, it
can't be selected by its base name:

$ make manifest PACKAGES='libustream-openssl libsqlite3'
ERROR: unable to select packages:
  libsqlite3 (virtual):
    note: please select one of the 'provided by'
          packages explicitly
    provided by: libsqlite3-0
    required by: world[libsqlite3]
  libustream-openssl (virtual):
    note: please select one of the 'provided by'
          packages explicitly
    provided by: libustream-openssl20201210
    required by: world[libustream-openssl]

Look up the ABI version in apk index and if present, add an ABI suffix
to all requested packages.

Signed-off-by: George Sapkin <george@sapk.in>
Link: https://github.com/openwrt/openwrt/pull/21449
Signed-off-by: Robert Marko <robimarko@gmail.com>
10 days agomediatek: fix PHY autodetection on Cudy WR3000H 21399/head
Jakub Vaněk [Sun, 4 Jan 2026 23:10:46 +0000 (00:10 +0100)] 
mediatek: fix PHY autodetection on Cudy WR3000H

Newer Cudy WR3000H units have a Motorcomm YT8821 PHY instead of a
Realtek PHY on the WAN port. Before this commit, the Motorcomm PHY
could not be autodetected by the kernel -- the PHY would show up as
just a generic clause 45 PHY and the proper driver would not be loaded.

The cause of the detection failure likely was that the YT8821 PHY was
held in reset during PHY detection. To fix this, move the reset GPIO
definition to the MDIO bus level. This reset line is deasserted before
the autodetection process, see also [1]. With this change, both Realtek
and Motorcomm PHYs can be supported with a single device tree.

[1]: https://lore.kernel.org/all/20251119134750.394655-1-horatiu.vultur@microchip.com/

Signed-off-by: Jakub Vaněk <linuxtardis@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21399
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 days agomediatek: add Motorcomm PHY driver to Cudy WR3000H
Andrew MacIntyre [Tue, 30 Dec 2025 01:22:41 +0000 (12:22 +1100)] 
mediatek: add Motorcomm PHY driver to Cudy WR3000H

Recent Cudy WR3000H v1 units have a Motorcomm YT8821 2.5G PHY for
the WAN interface instead of the RTL8221B PHY used in earlier units,
so add kmod-phy-motorcomm to be able to use it.

Signed-off-by: Andrew MacIntyre <andymac@pcug.org.au>
[linuxtardis@gmail.com: slightly reworded the commit description]
Signed-off-by: Jakub Vaněk <linuxtardis@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21399
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 days agokernel: add kmod-phy-motorcomm
Andrew MacIntyre [Mon, 29 Dec 2025 12:38:10 +0000 (23:38 +1100)] 
kernel: add kmod-phy-motorcomm

The Motorcomm YT8821 2.5G PHY is being used in some devices as an
alternative to devices like the RTL8221B.  Package it as a kmod
so it can be used as a device package rather than requiring changes
to the target kernel config.

Signed-off-by: Andrew MacIntyre <andymac@pcug.org.au>
Link: https://github.com/openwrt/openwrt/pull/21399
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 days agoboot: arm-trusted-firmware-microchipsw: depend on host Ruby
Robert Marko [Mon, 12 Jan 2026 16:33:02 +0000 (17:33 +0100)] 
boot: arm-trusted-firmware-microchipsw: depend on host Ruby

Microchip ATF depends on Ruby scripts to generate the FWU monitor HTML
and more, so make sure that host Ruby is available.

We also need to call the scripts directly via Ruby executable as shebang
wont work due to lack of Ruby in the Buildbot container.

Fixes: 5205c0c42607 ("microchipsw: lan969x: add Microchip EV23X71A")
Signed-off-by: Robert Marko <robert.marko@sartura.hr>
10 days agoboot: arm-trusted-firmware-microchipsw: fix compilation against LibreSSL
Robert Marko [Mon, 12 Jan 2026 16:28:06 +0000 (17:28 +0100)] 
boot: arm-trusted-firmware-microchipsw: fix compilation against LibreSSL

LibreSSL 3.9+ has dropped support for X509V3 extension API so cert_create
tool does not compile against it at all.

This was hidden by the fact that it was compiling against OpenSSL on my
host which still has that API, however we do not ship libssl-dev in the
Buildbot containers so compiling against distro OpenSSL is not possible.

So, after a long time trying to find any docs on that API I resorted to
LLM(Gemini 3 Pro) to get it to compile.

Our libcrypto is linked against pthread so we must pass -lpthread as well
for cert_tool.

Fixes: 5205c0c42607 ("microchipsw: lan969x: add Microchip EV23X71A")
Signed-off-by: Robert Marko <robert.marko@sartura.hr>
11 days agorealtek: mdio: drop interfaces attribute 21469/head
Markus Stockhausen [Fri, 9 Jan 2026 17:53:04 +0000 (18:53 +0100)] 
realtek: mdio: drop interfaces attribute

The interfaces attribute of the mdio bus held the information
about the connection mode (qsgmii, sgmii, ...). This was only
used during the old RTL930x setup. Drop it because it is not
needed any longer.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/21469
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
11 days agorealtek: mdio: Simplify RTL930x phy polling setup
Markus Stockhausen [Fri, 9 Jan 2026 10:40:22 +0000 (11:40 +0100)] 
realtek: mdio: Simplify RTL930x phy polling setup

Cleanup the RTL930x polling setup. Make use of the
new phy fixup helper to initialize the polling registers.

As an integral update to the logic before only write
register bits that are really in scope. This might save
some bits set by U-Boot.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/21469
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
11 days agorealtek: mdio: provide phy info helper
Markus Stockhausen [Sun, 11 Jan 2026 09:40:12 +0000 (10:40 +0100)] 
realtek: mdio: provide phy info helper

The mdio driver currently initializes the phy polling registers
with some nasty magic. It identifies the interface mode from the
dts and draws some strange conclusions.

Looking at the SDK one can see that this is basically dependent
of the attached phy type. So the code location is quite right
inside the mdio driver.

Provide a new get_phy_info() function that determines the phy
characteristics that are important for the polling unit . It will
be later needed by the RTL93xx setup code.

Some explanation about the fields of the structure:

- has_res_reg: phy has a special Realtek resolution polling
  register. It is unclear if this gives more details or if it
  simply allows faster polling.

- has_giga_lite: This is a phy that allows for Realtek proprietary
  1G/2.5G lite connectivity. In this case data is only transmitted
  over two wire pairs.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/21469
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
11 days agorealtek: mdio: improve iterator readability
Markus Stockhausen [Sat, 10 Jan 2026 07:35:35 +0000 (08:35 +0100)] 
realtek: mdio: improve iterator readability

Currently there are several places where the driver uses the
classic "i" as iterator. In these cases where it iterates
phy ports use "addr" instead to make it easier to read. Do
the same for the smi bus. Additionally forthcomming commits
will show nicer diffs.

While we are here fix the initialization sequence of the private
structure. There is no need to set data to zero that has already
been zero-allocated before. Instead initialize smi_bus[] with
a value of "-1" to denote that a phy is not in scope. This is
essential as some functions already have a matching check in
place.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/21469
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
11 days agobuild: add default priority to ABI-versioned packages 21369/head
George Sapkin [Tue, 6 Jan 2026 01:50:37 +0000 (03:50 +0200)] 
build: add default priority to ABI-versioned packages

If a package has an ABI version defined, set priority to 10. The enables
packages with an ABI version to be installed by their base name instead
of a name and an ABI version, e.g.:

libfoo3, where 3 is the ABI version can be installed by just libfoo.

This affects manual installation only, as the dependency resolution
takes care of ABI versions.

Refactor apk priority logic into a helper define.

Signed-off-by: George Sapkin <george@sapk.in>
Link: https://github.com/openwrt/openwrt/pull/21369
Signed-off-by: Robert Marko <robimarko@gmail.com>
11 days agobuild: remove redundant shebang from apk lifecycle scripts
George Sapkin [Mon, 5 Jan 2026 22:56:06 +0000 (00:56 +0200)] 
build: remove redundant shebang from apk lifecycle scripts

Due to the way apk lifecycle scripts are defined, they might end up with
multiple shebangs. Remove them.

Before:

  post-upgrade: |
    #!/bin/sh
    export PKG_UPGRADE=1
    #!/bin/sh
    [ "${IPKG_NO_SCRIPT}" = "1" ] && exit 0
    [ -s ${IPKG_INSTROOT}/lib/functions.sh ] || exit 0
    . ${IPKG_INSTROOT}/lib/functions.sh
    export root="${IPKG_INSTROOT}"
    export pkgname="adblock-fast"
    add_group_and_user
    default_postinst
    #!/bin/sh
    # check if we are on real system
    if [ -z "${IPKG_INSTROOT}" ]; then
     /etc/init.d/adblock-fast enable
    fi
    exit 0

After:

  post-upgrade: |
    #!/bin/sh
    export PKG_UPGRADE=1
    [ "${IPKG_NO_SCRIPT}" = "1" ] && exit 0
    [ -s ${IPKG_INSTROOT}/lib/functions.sh ] || exit 0
    . ${IPKG_INSTROOT}/lib/functions.sh
    export root="${IPKG_INSTROOT}"
    export pkgname="adblock-fast"
    add_group_and_user
    default_postinst
    # check if we are on real system
    if [ -z "${IPKG_INSTROOT}" ]; then
     /etc/init.d/adblock-fast enable
    fi
    exit 0

Fixes: b52e897 ("include/package-pack: remove leading whitespace from install scripts")
Fixes: 03880e2 ("include/package-pack: add missing apk package lifecycle events")
Signed-off-by: George Sapkin <george@sapk.in>
Link: https://github.com/openwrt/openwrt/pull/21369
Signed-off-by: Robert Marko <robimarko@gmail.com>
11 days agobuild: fix implicit self-provides
George Sapkin [Mon, 5 Jan 2026 02:03:00 +0000 (04:03 +0200)] 
build: fix implicit self-provides

Fix setting implicit self-provides for packages when they don't have any
PROVIDES specified.

Remove redundant self-provide for kmods, since kmods are packages and
will have a self-provide added already.

Fixes: 5ed650a ("build: add support for virtual provides")
Fixes: 9b37b71 ("build: provide virtual self in kmods")
Signed-off-by: George Sapkin <george@sapk.in>
Link: https://github.com/openwrt/openwrt/pull/21369
Signed-off-by: Robert Marko <robimarko@gmail.com>
11 days agoelfutils: drop libelf1 provide
George Sapkin [Sun, 4 Jan 2026 21:02:21 +0000 (23:02 +0200)] 
elfutils: drop libelf1 provide

ABI version is added to a package name during packaging, so there's no
need to specify it manually. And nothing explicitly depends on libelf1.

Fixes: d7bf089 ("elfutils: rename libelf1 to libelf")
Signed-off-by: George Sapkin <george@sapk.in>
Link: https://github.com/openwrt/openwrt/pull/21369
Signed-off-by: Robert Marko <robimarko@gmail.com>
11 days agouclient: provide virtual wget-any
George Sapkin [Fri, 2 Jan 2026 14:26:40 +0000 (16:26 +0200)] 
uclient: provide virtual wget-any

Packages shouldn't provide a package that another package, in this case
wget from packages provides. Explicitly provide a virtual @wget-any
instead to match the implicit wget provide and switch the only consumer
to use the new provider.

Set uclient-fetch as the default variant for wget-any.

Signed-off-by: George Sapkin <george@sapk.in>
Link: https://github.com/openwrt/openwrt/pull/21369
Signed-off-by: Robert Marko <robimarko@gmail.com>
11 days agobuild: fix provides logic when ABI version is set
George Sapkin [Sun, 4 Jan 2026 17:50:52 +0000 (19:50 +0200)] 
build: fix provides logic when ABI version is set

Same as for the base package name, when a package has an ABI version,
provide both unversioned provider in addition to one with ABI version
and version.

So for each provide instead of providing only:

$provide$ABI_version=$package_version

now provide:

$provide $provide$ABI_version=$package_version

When a provide ends in a number, the ABI version will be prefixed with
a - sign, e.g.: provide1-0

Fixes: 18029977 ("build: fix apk packaging and ABI-versioning")
Signed-off-by: George Sapkin <george@sapk.in>
Link: https://github.com/openwrt/openwrt/pull/21369
Signed-off-by: Robert Marko <robimarko@gmail.com>
11 days agobuild: refactor dependency formatting
George Sapkin [Sun, 4 Jan 2026 01:46:38 +0000 (03:46 +0200)] 
build: refactor dependency formatting

Refactor dependencies and extra dependencies logic into a helper define
and document it.

Signed-off-by: George Sapkin <george@sapk.in>
Link: https://github.com/openwrt/openwrt/pull/21369
Signed-off-by: Robert Marko <robimarko@gmail.com>
11 days agobuild: don't auto mark all provides as virtual
George Sapkin [Fri, 2 Jan 2026 15:10:00 +0000 (17:10 +0200)] 
build: don't auto mark all provides as virtual

Don't mark all provides as virtual when ALTERNATIVES is set.
Automatically marking all provides as virtual prevents variants from
conflicting between each other. Alternatives have nothing to do with
packaging and packages are expected to manage their own provides.

Updated internal provides explanation.

Remove unnecessary back slashes from FormatProvides.

Fixes: 18029977 ("build: fix apk packaging and ABI-versioning")
Signed-off-by: George Sapkin <george@sapk.in>
Link: https://github.com/openwrt/openwrt/pull/21369
Signed-off-by: Robert Marko <robimarko@gmail.com>
11 days agobuild: remove default provider priority
George Sapkin [Fri, 2 Jan 2026 15:07:52 +0000 (17:07 +0200)] 
build: remove default provider priority

Remove default provider priority since packages are expected to
explicitly declare virtual provides and set default variants. With
default priority some package variants without PROVIDES and not marked
as default end up with priority 0 and are not picked for installation.

Before the change dnsmasq-dhcpv6 is selected for dnsmasq, because the
former has higher priority:

name <dnsmasq> selected from selectable list
select_package: dnsmasq (requirers=1, autosel=1, iif=0, order_id=0x4000005f)
  consider dnsmasq-2.91-r2 iif_triggered=0, tag_ok=1, selectable=1, available=1, flags=0x0, provider_priority=0, installed=0
   prefer existing package
    choose as new provider
  consider dnsmasq-dhcpv6-2.91-r2 iif_triggered=0, tag_ok=1, selectable=1, available=1, flags=0x0, provider_priority=1, installed=0
    prefer highest declared provider priority
    choose as new provider
  consider dnsmasq-full-2.91-r2 iif_triggered=0, tag_ok=1, selectable=1, available=1, flags=0x0, provider_priority=1, installed=0
    prefer lowest available repository
selecting: dnsmasq-dhcpv6-2.91-r2, available: 1
assign dnsmasq-dhcpv6 to dnsmasq-dhcpv6-2.91-r2
assign dnsmasq to dnsmasq-dhcpv6-2.91-r2
disqualify_package: dnsmasq-2.91-r2 (conflicting provides)
disqualify_package: dnsmasq-full-2.91-r2 (conflicting provides)
    apply_constraint: libc
    apply_constraint: provider: libc-1.2.5-r5: 1

After the change dnsmasq is selected for dnsmasq based on
lexicographical order:

name <dnsmasq> selected from selectable list
select_package: dnsmasq (requirers=1, autosel=1, iif=0, order_id=0x4000005f)
  consider dnsmasq-2.91-r2 iif_triggered=0, tag_ok=1, selectable=1, available=1, flags=0x0, provider_priority=0, installed=0
   prefer existing package
    choose as new provider
  consider dnsmasq-dhcpv6-2.91-r2 iif_triggered=0, tag_ok=1, selectable=1, available=1, flags=0x0, provider_priority=0, installed=0
    prefer lowest available repository
  consider dnsmasq-full-2.91-r2 iif_triggered=0, tag_ok=1, selectable=1, available=1, flags=0x0, provider_priority=0, installed=0
    prefer lowest available repository
selecting: dnsmasq-2.91-r2, available: 1
assign dnsmasq to dnsmasq-2.91-r2
disqualify_package: dnsmasq-dhcpv6-2.91-r2 (conflicting provides)
disqualify_package: dnsmasq-full-2.91-r2 (conflicting provides)
    apply_constraint: libc
    apply_constraint: provider: libc-1.2.5-r5: 1

Fixes: dea8397 ("include/package-pack: add default 'provider_priority' for APK packages")
Signed-off-by: George Sapkin <george@sapk.in>
Link: https://github.com/openwrt/openwrt/pull/21369
Signed-off-by: Robert Marko <robimarko@gmail.com>
11 days agorealtek: eth: remove mdio leftovers
Markus Stockhausen [Sun, 11 Jan 2026 18:18:48 +0000 (19:18 +0100)] 
realtek: eth: remove mdio leftovers

The mdio driver was carved out from the ethernet driver long
ago. Remove some leftover defines.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/21502
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
11 days agopackage: uboot-qoriq: fix T4240RDB u-boot selection 21514/head
Pawel Dembicki [Mon, 12 Jan 2026 08:39:16 +0000 (09:39 +0100)] 
package: uboot-qoriq: fix T4240RDB u-boot selection

Mark T4240RDB u-boot variants as device-built and avoid installing them into rootfs.

Without this buildbot crashes during package install with:

ERROR: unable to select packages:

  u-boot-fsl_T4240RDB-nor (no such package):

    required by: world[u-boot-fsl_T4240RDB-nor]

  u-boot-fsl_T4240RDB-sdboot (no such package):

    required by: world[u-boot-fsl_T4240RDB-sdboot]

Fixes: c5d3d5fe28f7 ("package: u-boot: initial support for qoriq arch")
Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21514
Signed-off-by: Robert Marko <robimarko@gmail.com>
11 days agorealtek: ethernet: avoid using unitialized memory 21504/head
Carl-Daniel Hailfinger [Mon, 12 Jan 2026 11:02:24 +0000 (12:02 +0100)] 
realtek: ethernet: avoid using unitialized memory

The mac_addr variable was not zero-initialized, causing weird side effects
when the memory contents were a valid MAC address.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Link: https://github.com/openwrt/openwrt/pull/21504
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
11 days agorealtek: dsa: avoid use-after-free
Carl-Daniel Hailfinger [Sun, 11 Jan 2026 19:31:20 +0000 (20:31 +0100)] 
realtek: dsa: avoid use-after-free

The realtek target uses some functions marked __init for initialization.
However, that means they can only be called once when compiled in and
afterwards the memory occupied by them is freed and potentially reused.
Some "impossible" (code at a given location can't crash in the way it
does) crashes can be caused by this because upon re-execution of those
functions, garbage gets executed. Such re-execution can happen for
deferred probes or repeated probes.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Link: https://github.com/openwrt/openwrt/pull/21504
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
11 days agokernel: net: phy: mxl-gpy: replace patch with upstream commit
Daniel Golle [Mon, 12 Jan 2026 03:25:54 +0000 (03:25 +0000)] 
kernel: net: phy: mxl-gpy: replace patch with upstream commit

Replace accepted patch with backported upstream commit and refresh
patches.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
11 days agorealtek: phy: add RTL8214FC initialization for RTL839x 21435/head
Markus Stockhausen [Wed, 7 Jan 2026 07:32:58 +0000 (08:32 +0100)] 
realtek: phy: add RTL8214FC initialization for RTL839x

Until now the RTL8214FC is initialized either by U-Boot (all
devices) or by some magic firmware file (RTL838x). On RTL839x
devices without U-Boot (e.g. ZyXEL GS1920) this PHY cannot
be used.

Provide the most basic setup sequence for RTL839x so that
copper/fiber work. Later it can be taken over for all devices
and the firmware helpers can be dropped.

Remark! This should not (but might) break RTL839x devices with
RTL8214FC U-Boot setup.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/21435
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
11 days agorealtek: phy: enhance RTL8218B initialization
Markus Stockhausen [Wed, 7 Jan 2026 07:02:40 +0000 (08:02 +0100)] 
realtek: phy: enhance RTL8218B initialization

The RTL8214FC and the RTL8218B share the same register set and
need to be initialized quite similar. In the future the RTl8214FC
will get its own setup sequence. To keep the codebase small the
common parts (serdes & copper) will be covered by the existing
RTL8218B configuration.

Enhance the RTL8218B setup with this separate commit to ensure
that nothing breaks.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/21435
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
11 days agorealtek: phy: use lock helpers
Markus Stockhausen [Wed, 7 Jan 2026 06:52:12 +0000 (07:52 +0100)] 
realtek: phy: use lock helpers

No need to open code bus locking.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/21435
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>