Commit Graph

68107 Commits

Author SHA1 Message Date
John Audia
57ce8f50e6 rtl8812au-ct: restrict to kernels ≤ 6.18
The rtl8812au-ct driver is obsolete and replaced by rtw88. It will need
tons of work to compile against 6.18 so for now limit it to 6.12.

Co-authored-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/21078
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-28 11:51:11 +01:00
John Audia
24802c9e94 kernel: video: 6.18: update module files
Update module files for kernel 6.18

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/21078
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-28 11:51:11 +01:00
John Audia
d1eda73620 kernel: sound: 6.18: update module files
This kernel reorganized HDA drivers into sound/hda/ subdirectories and
split codec drivers into modular components. Core modules moved to
sound/hda/{core,common,codecs,controllers}/ with version conditionals
(@ge6.18/@lt6.18) added for backward compatibility.

Codec drivers split into multiple modules:
- Realtek: library + 10 chipset modules (ALC260-ALC882)
- HDMI: base + 6 vendor modules (Intel, ATI, NVIDIA, etc.)
- Cirrus: 3 chipset modules (CS420X, CS421X, CS8409)

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/21078
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-28 11:51:11 +01:00
John Audia
8dc0680883 kernel: other: 6.18: update module files
Update module files for kernel 6.18

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/21078
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-28 11:51:11 +01:00
John Audia
8c6e25fd90 kernel: modules: 6.18: update module file
Wrap the crc32c dependency in !LINUX_6_18 to allow the package to
build correctly on 6.18-based targets.

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/21078
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-28 11:51:11 +01:00
John Audia
dc0389172b x86: enable testing kernel for x86
KERNEL_TESTING_PATCHVER:=6.18

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/21078
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-28 11:51:10 +01:00
John Audia
31f9f36625 kernel/x86: restore files for v6.12
This is an automatically generated commit which aids following Kernel patch
history, as git will see the move and copy as a rename thus defeating the
purpose.

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

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/21078
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-28 11:51:10 +01:00
John Audia
9547fd3647 kernel/x86: create files for v6.18 (from v6.12)
This is an automatically generated commit.

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

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/21078
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-28 11:51:10 +01:00
Til Kaiser
f7cac23dc5 kernel: usb-dwc3-qcom: package legacy Qualcomm glue driver
Linux 6.18 now builds both dwc3-qcom.ko and dwc3-qcom-legacy.ko
under CONFIG_USB_DWC3_QCOM. [1]

Upstream qcom-ipq4019.dtsi still uses the legacy Qualcomm DWC3 DT
layout, so ipq40xx boards require the legacy glue driver for USB
host bring-up.

[1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=b958b03c82d2a1c470225355e43248c679a949a5

Signed-off-by: Til Kaiser <mail@tk154.de>
Link: https://github.com/openwrt/openwrt/pull/21078
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-28 11:51:10 +01:00
Mieczyslaw Nalewaj
ac9ea1be34 mt76: use hrtimer_setup() in mt76x02u beacon init
Replace the two-step hrtimer initialization pattern with a single
consolidated call to hrtimer_setup().
The legacy approach of calling hrtimer_init() followed by manual
assignment to timer.function is deprecated. The new hrtimer_setup()
helper atomically initializes the timer and assigns the callback
function in one operation, eliminating the race-prone intermediate
state where the timer is initialized but lacks a handler.

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/21078
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-28 11:51:10 +01:00
Til Kaiser
666fee6f48 kernel.mk: add 6.18 workaround for empty Module.symvers.tmp
On Linux 6.18 the path-based symvers filter can
yield an empty tmp file for external modules.

Add a 6.18-only fallback using modules.order
to populate Module.symvers.tmp.

Signed-off-by: Til Kaiser <mail@tk154.de>
Link: https://github.com/openwrt/openwrt/pull/21078
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-28 11:51:10 +01:00
Mieczyslaw Nalewaj
0584503bab mac80211: ath9k: gpio: adapt to 6.16+ gpio_chip API change
Linux 6.16 changed the return type of gpio_chip.set() from void to int.
Add a version check so the driver builds correctly on both older and
newer kernels[1].

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.16&id=fb52f3226cab41b94f9e6ac92b1108bce324e700

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/21078
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-28 11:51:10 +01:00
Mieczyslaw Nalewaj
e0a8c4fc82 mac80211: restore pre-6.14 debugfs_fops handling
Reintroduce old-style debugfs file_operations for kernels < 6.14 and
switch the drivers to use debugfs_short_fops + debugfs_create_file_aux
on >= 6.14. This restores compatibility with older kernels while keeping
the new debugfs API working on 6.14+.

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/21078
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-28 11:51:10 +01:00
Mieczyslaw Nalewaj
364be1fd7f mac80211: fix build failure on kernel 6.18
Kernel since version 6.16 defines `SOCKWQ_ASYNC_NOSPACE` and
SOCKWQ_ASYNC_WAITDATA` in the socket_flags enum, which causes redefinition
errors when compiling the backport package[1].
Since kernel 6.12 also has them defined, the test and definition of these
constants have been completely abandoned. Thanks to this, there are
no compilation errors on either kernel 6.12 or 6.18.

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.16&id=0e81cfd971dc4833c699dcd8924e54a5021bc4e8

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/21078
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-28 11:51:10 +01:00
Mieczyslaw Nalewaj
6b37b04f90 platform/mikrotik: adjust hc_wlan read-callback for 6.18
Include <linux/version.h> and use preprocessor checks to select the appropriate
prototype and definition for hc_wlan_data_bin_read. The third parameter of bin_attribute
read callbacks was changed to 'const struct bin_attribute *' in Linux 6.18; this
change prevents compilation errors on newer kernels while preserving compatibility
with older ones

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/21078
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-28 11:51:10 +01:00
Mieczyslaw Nalewaj
eff7240445 generic: 6.18: silence unused-variable warnings
This patch silences compiler warnings about unused variables by explicitly
casting them to void where appropriate.

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/21078
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-28 11:51:10 +01:00
Mieczyslaw Nalewaj
1934927449 kbuild: extract modules.builtin.modinfo from vmlinux.o
Partially reverse https://web.git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.18.y&id=39cfd5b12160be4f57df1c3ba60139741c827616
to prevent generation of empty modules.builtin.modinfo and modules.builtin
files that cause modules compilation errors.
If an out-of-tree package or any kernel-install rule ran modprobe xyz while
the build was still in progress, and xyz had been configured =y, a clean tree
would already have xyz listed in modules.builtin; with the empty file produced
by the buggy rule it was missing, so modprobe emitted "module xyz not found"
even though the code was sitting inside the freshly built vmlinux.

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/21078
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-28 11:51:10 +01:00
Mieczyslaw Nalewaj
94c7f4a25f packages: 6.18: update modules files
Update modules files for kernel 6.18.

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/21078
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-28 11:51:10 +01:00
Mieczyslaw Nalewaj
a9fe8ba129 serial: 8250: 6.18: add UPIO_AU case to set_io_from_upio()
This patch fixes the "Unsupported UART type 4" error by adding support
for the UPIO_AU I/O type in set_io_from_upio() (used by Au1x00 and
RT288x). It assigns the correct serial input/output functions
(io_serial_in, io_serial_out) for proper operation when UPIO_AU is
configured.

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/21078
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-28 11:51:10 +01:00
Aleksander Jan Bajkowski
9a0a5ce89b kernel: 6.18: backport eip93 driver fixes
Backport minor fixes for the eip93 driver from upstream.

Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
Link: https://github.com/openwrt/openwrt/pull/21078
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-28 11:51:10 +01:00
Mieczyslaw Nalewaj
354a26b094 crypto: eip93: use in-tree driver for kernel 6.18
This patch set introduces support for using the in-tree (mainline)
EIP93 crypto driver for kernel 6.18 and later, along with additional
improvements and fixes:
 - Conditional Kconfig/Makefile handling for crypto-hw-eip93 to enable use of the mainline driver with kernel 6.18+.
 - Patch 926: Use software AES fallback for small requests in the EIP93 driver.
 - Patch 927: Add `mediatek,mtk-eip93` compatible string for upstream kernel device trees.

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/21078
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-28 11:51:10 +01:00
Mieczyslaw Nalewaj
2569a339ed packages: sctp: 6.18: add missing symbol
Add missing CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA256 for kernel 6.18

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/21078
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-28 11:51:10 +01:00
John Audia
460afd1045 kernel: kmod-fs-nfs-v4: add option for kernel-6.18
Add a config option for the 6.18 series of kernels

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/21078
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-28 11:51:10 +01:00
Mieczyslaw Nalewaj
c1599ce82e package: gpio-button-hotplug: adapt to kernel 6.18
Change GPIOF_ACTIVE_LOW to gpiod_toggle_active_low

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/21078
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-28 11:51:10 +01:00
Mieczyslaw Nalewaj
7f97b2665c generic: net: phy: adapt to kernel 6.18
- change phy_driver_register and phy_driver_unregister function calls
   to phy_drivers_register and phy_drivers_unregister for compatibility
   with kernel 6.18
 - replace PHY_ANY_ID with "MATCH ANY PHY"

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/21078
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-28 11:51:10 +01:00
Mieczyslaw Nalewaj
71c180460a generic: 6.18: update kernel symbols
Remove symbols no longer present in version 6.18,
add new 6.18 kernel symbols.

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/21078
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-28 11:51:10 +01:00
Mieczyslaw Nalewaj
7be35813ed generic: 6.18: refresh hack patches
Refreshed patches for generic/hack-6.18 by running
make target/linux/refresh

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/21078
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-28 11:51:10 +01:00
Mieczyslaw Nalewaj
31f7baacf5 generic: 6.18: manually rebuild hack patches
Manually rebuild hack patches:
 - 200-tools_portability.patch
 - 204-module_strip.patch
 - 230-openwrt_lzma_options.patch
 - 251-kconfig.patch
 - 259-regmap_dynamic.patch
 - 301-01-mm-permit-to-declare-custom-execmem-alloc-free-funct.patch
 - 301-02-mips-replace-mlong-calls-with-mno-long-calls-if-poss.patch
 - 430-mtk-bmt-support.patch
 - 721-net-add-packet-mangeling.patch
 - 722-net-phy-aquantia-enable-AQR112-and-AQR412.patch
 - 725-net-phy-aquantia-add-PHY_IDs-for-AQR112-variants.patch
 - 750-net-pcs-mtk-lynxi-workaround-2500BaseX-no-an.patch
 - 800-GPIO-add-named-gpio-exports.patch
 - 902-debloat_proc.patch
 - 904-debloat_dma_buf.patch

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/21078
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-28 11:51:09 +01:00
Mieczyslaw Nalewaj
168710bbd5 generic: 6.18: refresh pending patches
Refreshed patches for generic/pending-6.18 by running
make target/linux/refresh

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/21078
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-28 11:51:09 +01:00
Mieczyslaw Nalewaj
a3f4d1e0c6 generic: 6.18: manually rebuild pending patches
Manually rebuild pending patches:
 - 203-kallsyms_uncompressed.patch
 - 417-mtd-spi-nand-macronix-disable-continuous-read-for-MX.patch
 - 487-mtd-spinand-Add-support-for-Etron-EM73D044VCx.patch
 - 530-jffs2_make_lzma_available.patch
 - 681-net-remove-NETIF_F_GSO_FRAGLIST-from-NETIF_F_GSO_SOF.patch
 - 701-netfilter-nf_tables-ignore-EOPNOTSUPP-on-flowtable-d.patch
 - 710-bridge-add-knob-for-filtering-rx-tx-BPDU-pack.patch
 - 732-03-net-ethernet-mtk_eth_soc-optimize-dma-ring-address-i.patch
 - 737-net-ethernet-mtk_eth_soc-add-paths-and-SerDes-modes-.patch
 - 739-03-net-pcs-pcs-mtk-lynxi-add-platform-driver-for-MT7988.patch
 - 739-05-net-pcs-add-driver-for-MediaTek-USXGMII-PCS.patch
 - 802-OPP-Provide-old-opp-to-config_clks-on-_set_opp.patch
 - 812-PCI-sysfs-enforce-single-creation-of-sysfs-entry-for.patch
 - 850-0023-PCI-aardvark-Make-main-irq_chip-structure-a-static-d.patch

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/21078
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-28 11:51:09 +01:00
Mieczyslaw Nalewaj
e504ee0283 generic: 6.18: remove obsolete pending patches
Remove obsolete pending patches already included in kernel 6.18.
 - 620-net-sfp-improve-Huawei-MA5671a-fixup.patch[1]
 - 704-net-phy-register-phy-led_triggers-during-probe-to-av.patch[2]

[1] https://web.git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.18.y&id=ecb4ed7a723f02c81a0111a13ceeabb26f50f899
[2] https://web.git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.18.y&id=2764dcb3c35de4410f642afc62cf979727470575

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/21078
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-28 11:51:09 +01:00
Mieczyslaw Nalewaj
6534e6bd54 generic: 6.18: refresh backport patches
Refreshed patches for generic/backport-6.18 by running
make target/linux/refresh

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/21078
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-28 11:51:09 +01:00
Mieczyslaw Nalewaj
4e16e53913 generic: 6.18: manually rebuild backport patches
Manually rebuild backport patches:
 - 700-01-v7.0-net-sched-Export-mq-functions-for-reuse.patch
 - 700-02-v7.0-net-sched-sch_cake-Factor-out-config-variables-into-.patch
 - 750-v7.0-net-phy-move-mmd_phy_read-and-mmd_phy_write-to-phyli.patch
 - 761-v6.19-net-phy-mxl-gpy-add-support-for-mxl86252-and-mxl86282.patch

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/21078
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-28 11:51:09 +01:00
Mieczyslaw Nalewaj
5c73f28bfd generic: 6.18: remove obsolete backport patches
Remove obsolete backport patches already included in kernel 6.18.

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/21078
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-28 11:51:09 +01:00
Mieczyslaw Nalewaj
141cb99b41 kernel/generic: restore files for v6.12
This is an automatically generated commit which aids following Kernel patch
history, as git will see the move and copy as a rename thus defeating the
purpose.

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

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/21078
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-28 11:51:09 +01:00
Mieczyslaw Nalewaj
b70d9a15af kernel/generic: create files for v6.18 (from v6.12)
This is an automatically generated commit.

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

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/21078
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-28 11:51:09 +01:00
Mieczyslaw Nalewaj
e843bd8766 kernel: add define for kernel 6.18
Add define for kernel 6.18.

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/21078
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-28 11:51:08 +01:00
Kevin Staley
64ee5874af kernel: qca8k: fix host FDB on multi-CPU
On qca8k multi-CPU-port setups (e.g. qca8337 with ports 0+6 as CPU),
bridging switch user ports that use different conduits can make the host
reachable only from the ports tied to the last-programmed CPU port.

Add a pending kernel patch which makes qca8k merge CPU/DSA-port FDB
programming, so host FDB entries end up on all relevant CPU ports.

Fixes: openwrt/openwrt#17891
Signed-off-by: Kevin Staley <glaciertablet@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21317
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-28 11:15:13 +01:00
Ignat Loskutov
e9531860e6 wolfssl: update to 5.9.0
Release Notes:
https://www.wolfssl.com/wolfssl-5-9-0-released/

Fixes CVEs:
- CVE-2026-3548
- CVE-2026-3549
- CVE-2026-3547
- CVE-2026-2646
- CVE-2026-3849
- CVE-2026-0819
- CVE-2026-1005
- CVE-2026-2645
- CVE-2026-3230
- CVE-2026-3229
- CVE-2026-3579
- CVE-2026-3580
- CVE-2026-3503
- CVE-2026-4159
- CVE-2026-4395

Signed-off-by: Ignat Loskutov <ignat.loskutov@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22595
Signed-off-by: Nick Hainke <vincent@systemli.org>
2026-03-28 10:24:25 +01:00
Markus Stockhausen
82d98592a6 realtek: mdio: provide individual bus probing function
rtmdio_probe() is a do-it-all setup function. It creates one
control structure and one bus. In the future multiple busses
will be created. As a preparation carve out the bus specific
part into an individual probing function.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/22604
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-27 20:51:43 +01:00
Markus Stockhausen
6069fe9ae1 realtek: mdio: pull bus/ctrl dependency apart
Until now the central control structure is allocated via a call to
devm_mdiobus_alloc_size(). This will not be possible any longer when
multiple busses will be implemented in a future commit.

Relax that as follows:

- Define a new private "channel" structure for a mdio bus
- Allocate the central control structure with a dedicated alloc()
- Allocate only the channel structure during bus setup
- Link the channel to the central structure via chan->ctrl

Reorganize the probing function so that it becomes clearer that
the control structure is setup first and afterwards the bus is
registered.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/22604
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-27 20:51:43 +01:00
Markus Stockhausen
0d195bfce3 realtek: mdio: add helper to derive ctrl from bus
Add a new helper macro rtmdio_ctrl_from_bus that encapuslates
the current ctrl=bus->priv lookup. This is a preparation for
the future multi-channel driver architecture. With an upcoming
commit the structures will be changed as follows:

- ctrl: contains the generic data structurs
- chan: contains the channel specific structure

This will involve changing the pointers between them

old lookup chain: ctrl = bus->ctrl
new lookup chain: ctrl = bus->chan->ctrl

The helper macro allows to easily switch the lookup in one
central location. While we are here fix a whitespace issue.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/22604
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-27 20:51:43 +01:00
Markus Stockhausen
0cb3d6f39d realtek: mdio: setup topology from control structure
The topology setup is bus independent and can be derived completely
from the control structure. Adapt the call parameters accordingly.

The call location is quite confusing at the moment. Being no longer
dependent from the bus call it where it makes most sense. This is
directly after the mapping setup in rtmdio_map_ports(). Doing other
bus dependent setup between these two functions is not needed
any longer.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/22604
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-27 20:51:43 +01:00
Markus Stockhausen
c6ccca619c realtek: mdio: create new bus structure
The port specific attributes of the central control structure
have been moved over to a separate port structure. Do the same
for the (up to 4) busses. Establish a separate bus structure
that will hold data about each bus and use it in the control
structure. As a first usage type move the is_c45 attribute over.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/22604
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-27 20:51:43 +01:00
Markus Stockhausen
ec787f4526 realtek: mdio: move phy_node attribute into port structure
The phy_node attribute is defined per port. Move it into the new
port structure. Now it is clear that it belongs to the port.

While we are here rename it to dn (aka device_node) to align with
upstream style. As all usage locations must be adapted it makes
no sense to make two commits (relocate/rename) to change the
code twice.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/22604
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-27 20:51:43 +01:00
Markus Stockhausen
818604cb08 realtek: mdio: move smi_addr attribute into port structure
The smi_addr attribute is defined per port. Move it into the new
port structure. As the devices have a maximum of 56 addresses
save some space and convert it to type u8.

While we are here harden the mapping routine that reads these
addresses from the DTS. For this check the value that is read into
smi_addr. This is usually the MDIO standard 0..31. Sadly RTL839x
devices are an exception from that and allow addresses 0..51.
To avoid device specific if/then/else cases for now implement
a "light" consistency check.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/22604
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-27 20:51:43 +01:00
Markus Stockhausen
db88d614b2 realtek: mdio: move smi_bus attribute into port structure
The smi_bus attribute is defined per port. Move it into the new
port structure. As the devices have a maximum of 4 busses save
some space and convert it to type u8.

While we are here fix a whitespace issue and rename the helper
variable in rtmdio_map_ports() to smi_bus to align with the
structure attribute.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/22604
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-27 20:51:43 +01:00
Markus Stockhausen
61caae8b8c realtek: mdio: move raw attribute into port structure
The raw attribute is defined per port. Move it into the new
port structure.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/22604
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-27 20:51:43 +01:00
Markus Stockhausen
cedefd833b realtek: mdio: create new port structure
The central control structure of the mdio bus holds several
attributes. These target two different objects. Some of them
are for the (up to 56) controller ports, some of them are for
the (up to 4) controller busses.

Establish a separate port structure that will hold data about
each port and use it in the control structure. As a first
usage type move the page attribute over.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/22604
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-27 20:51:43 +01:00
Felix Fietkau
714f657f3f netifd: use procd_add_reload_data_trigger
Reload config if any network or wifi interfaces/devices were changed
via procd data.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2026-03-27 20:04:04 +01:00