Commit Graph

65736 Commits

Author SHA1 Message Date
FUKAUMI Naoki
3adb68ef75 rockchip: backport dts changes for Rockchip RK358x
Backport dts changes up to Linux v6.17 for Rockchip RK358x.

Signed-off-by: FUKAUMI Naoki <naoki@radxa.com>
Link: https://github.com/openwrt/openwrt/pull/19867
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-09-07 14:29:39 +02:00
FUKAUMI Naoki
9538c7fac0 generic: 6.12: backport gated-fixed-clk driver
Backport gated-fixed-clk driver from Linux v6.13.

This is needed to fix a PCIe controller probe hang on the Radxa ROCK 5
ITX.

Signed-off-by: FUKAUMI Naoki <naoki@radxa.com>
Link: https://github.com/openwrt/openwrt/pull/19867
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-09-07 14:29:39 +02:00
Fil Dunsky
194466d52a mediatek: Huasifei WH3000 Pro wifi fix
typo forgot to add `kmod-mt7915e`

Fixes: db1de8d21f ("mediatek: add Huasifei WH3000 Pro support")
Signed-off-by: Fil Dunsky <filipp.dunsky@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19825
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-09-07 14:01:05 +02:00
Goetz Goerisch
0ee0846be1 kernel: bump 6.6 to 6.6.104
remove upstreamed patches:
generic/backport-6.6/626-v6.17-net-ipv4-fix-regression-in-local-broadcast-routes.patch [1]

All other patches auto-refreshed.

[1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.104&id=a208d67cb44ba441bd38e04e270e9f1e230234ee

Signed-off-by: Goetz Goerisch <ggoerisch@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19955
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-09-07 11:45:08 +02:00
John Audia
44f70be996 kernel: bump 6.12 to 6.12.45
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.45

Removed upstreamed:
  generic/backport-6.12/626-v6.17-net-ipv4-fix-regression-in-local-broadcast-routes.patch[1]
  mediatek/patches-6.12/051-v6.17-thermal-drivers-mediatek-lvts_thermal-Change-lvts-co.patch[2]
  mediatek/patches-6.12/052-v6.17-thermal-drivers-mediatek-lvts_thermal-Add-lvts-comma.patch[3]
  mediatek/patches-6.12/053-v6.17-thermal-drivers-mediatek-lvts_thermal-Add-mt7988-lvt.patch[4]

All other patches automatically rebased.

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.45&id=81ff76c1b08827bc81779400a3640f102a9a9ade
2. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.45&id=d1f4b09d9bb991c0fe039511520c6e59f1b42ec1
3. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.45&id=739229eb4d5cd009d81ad8946fdd4bb5ec790c2e
4. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.45&id=9a7141d4808dcb833f87154af88560c785306cd2

Build system: x86/64
Build-tested: flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3, x86/64-glibc
Run-tested: flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3, x86/64-glibc

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/19956
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-09-07 11:42:46 +02:00
John Audia
c55a411af2 lantiq: adapt upstream commit to some dts files
Some lantiq dts files still use etop but 6.12.45[1] changed to ethernet
so bring them into parity with this change.

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.12.y&id=8c431ea8f3f795c4b9cfa57a85bc4166b9cce0ac

Co-Authored-by: Hauke Mehrtens <hauke@hauke-m.de>
Co-Authored-by: Aleksander Bajkowski <olek2@wp.pl>
Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/19956
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-09-07 11:42:46 +02:00
Markus Stockhausen
fcd3ce6954 realtek: carve out mdio bus from ethernet driver
So much code was distributed between phy/ethernet/dsa drivers. A lot
was already cleand up before. With this step the mdio bus gets its
own space and is no longer hidden inside the ethernet driver.

This commit is mostly a copy/paste that includes only minor changes.

- define prefixes are renamed to RTMDIO
- The driver is totally self contained (does not rely on SoC include)
- The DTS structure (mdio node below ethernet node) was kept
- The driver is added to the kernel config of all subtargets.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/19942
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-09-07 11:37:59 +02:00
Markus Stockhausen
3fae46d5cc realtek: early ethernet probe in dsa setup
The ethernet and mdio code will be splitted. The dsa driver depends
on proper loading of both, before switch setup can start. Sadly there
are severe cleanup issues in the probe() function if one of the
required devices is not available.

As a temporary workaround provide a dedicated check function that
verifies if the ethernet platform device driver is loaded and can
be used.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/19942
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-09-07 11:37:59 +02:00
Shiji Yang
98b160acd2 ramips: fix wrong CRLF line-ending
Use Unix LF style instead of Windows CRLF style.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/19963
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-09-07 11:36:55 +02:00
Markus Stockhausen
2420a77556 realtek: make NAPI polling thread safe
At the end of RX NAPI polling the counter and mask registers are
cleaned up. Although this might run in parallel there is no
synchronization and the register modifications are some wild mix.
RTL83xx enables only the interrupt of a single ring while RTL93xx
just reactivates all interrupts (even for other NAPI threads).
Make use of the driver lock and only modify the interrupt bits that
the current thread owns.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/19960
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-09-07 11:36:01 +02:00
Markus Stockhausen
e3ccd1a287 realtek: RTL93xx: do not drop packets in software
Now that the counter registers work fine there is no need to
free buffers in software. Hardware will automatically block
input processing when software processing is too slow.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/19960
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-09-07 11:36:00 +02:00
Markus Stockhausen
a93e725140 realtek: RTL93xx: Make use of correct ring size counters
The receive path of the RTL93xx SoCs is currently discarding packets
in software. Analysis gives the following explanation:

- RX ring size registers are setup with the full software ring size
- When packets are received the packet counter registers are increased
- After RX processing the counter registers are changed the wrong way
- From then SOC is allowed to receive more packets than software allows
- Overflow interrupts are fired
- As a reaction to that the software drops packets

Change the processing as follows:

- Setup ring size registers with a headroom of 2 buffers
- Decrease the counter registers with the real work done

With this change no more overflow interrupts occur because the SoC
disables the queues before they can overflow or hit a buffer that is
still owned by the CPU.

Benchmark from single stream iperf3 run, with server process running
on ZyXEL XGS1210 (RTL930x).

iperf3 run before

-----------------------------------------------------------
Server listening on 5201 (test #1)
-----------------------------------------------------------
Accepted connection from 192.168.2.86, port 54412
[  5] local 192.168.2.71 port 5201 connected to 192.168.2.86 port 54418
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec   384 KBytes  3.14 Mbits/sec
[  5]   1.00-2.00   sec  0.00 Bytes  0.00 bits/sec
[  5]   2.00-3.00   sec  0.00 Bytes  0.00 bits/sec
[  5]   3.00-4.01   sec  5.12 MBytes  42.8 Mbits/sec
[  5]   4.01-5.00   sec  11.4 MBytes  95.8 Mbits/sec
[  5]   5.00-6.00   sec  0.00 Bytes  0.00 bits/sec
[  5]   6.00-7.00   sec  0.00 Bytes  0.00 bits/sec
[  5]   7.00-8.00   sec  0.00 Bytes  0.00 bits/sec
[  5]   8.00-9.00   sec  0.00 Bytes  0.00 bits/sec
[  5]   9.00-10.00  sec  0.00 Bytes  0.00 bits/sec

iperf3 run after

-----------------------------------------------------------
Server listening on 5201 (test #1)
-----------------------------------------------------------
Accepted connection from 192.168.2.86, port 55228
[  5] local 192.168.2.71 port 5201 connected to 192.168.2.86 port 55232
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec  22.8 MBytes   191 Mbits/sec
[  5]   1.00-2.01   sec  25.4 MBytes   211 Mbits/sec
[  5]   2.01-3.00   sec  25.4 MBytes   215 Mbits/sec
[  5]   3.00-4.01   sec  26.5 MBytes   220 Mbits/sec
[  5]   4.01-5.00   sec  26.2 MBytes   222 Mbits/sec
[  5]   5.00-6.00   sec  26.9 MBytes   225 Mbits/sec
[  5]   6.00-7.00   sec  27.0 MBytes   226 Mbits/sec
[  5]   7.00-8.01   sec  26.9 MBytes   224 Mbits/sec
[  5]   8.01-9.00   sec  26.5 MBytes   223 Mbits/sec
[  5]   9.00-10.00  sec  26.8 MBytes   225 Mbits/sec
[  5]  10.00-10.02  sec   640 KBytes   224 Mbits/sec

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/19960
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-09-07 11:36:00 +02:00
Felix Fietkau
79d3db7447 Revert "kernel: improve mtk_eth_soc performance"
This reverts commit 3e6d5be3d9, until
stability issues have been figured out.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2025-09-05 18:19:24 +02:00
Aleksander Jan Bajkowski
5e231cc2f0 kernel: add quirk for two SFP+ transceivers
Backport quirks for two SFP+ modules. Both support the RollBall protocol.
The fix for the FLYPRO module is queued in net-next tree.

Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
Link: https://github.com/openwrt/openwrt/pull/19949
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-09-05 13:51:48 +02:00
Markus Stockhausen
f151951a0f realtek: drop obsolete kernel patches
These patches hacked the set_eee() and get_eee() functions into
the phy_driver. Drop them with no consumer left.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/19906
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-09-05 13:35:39 +02:00
Markus Stockhausen
3d7b0bc5c1 realtek: drop RTL8226/RTL8221B downstream PHY driver
Since we are using upstream PHY drivers there is no more need
for the downstream version. Side effect is that the SoC dependent
polling functions are no longer needed. This was always wrong
in this driver.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/19906
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-09-05 13:35:39 +02:00
Mieczyslaw Nalewaj
b4294bc980 kernel: update and move net bridge patch to backport folder
Update patch 642-net-bridge-locally-receive-all-multicast-packets-if-.patch to upstream version
and move to backport folder as 625-v6.16-net-bridge-locally-receive-all-multicast-packets-if-.patch
because kernel 6.16 already includes it.

Link: https://lore.kernel.org/all/OSZPR01MB8434308370ACAFA90A22980798B32@OSZPR01MB8434.jpnprd01.prod.outlook.com/
Link: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=a496d2f0fd612ab9e10700afe00dc9267bad788b

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/19875
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-09-04 23:50:17 +02:00
Felix Fietkau
d8904254bc Revert "mt76: update to Git HEAD (2025-09-04)"
This reverts commit 2eb42969a7, due to reported
regression

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2025-09-04 23:24:06 +02:00
Felix Fietkau
2eb42969a7 mt76: update to Git HEAD (2025-09-04)
27ad37728c3f wifi: mt76: mt7996: Check phy before init msta_link in mt7996_mac_sta_add_links()
95c9b8099ede wifi: mt76: mt7996: Set EML capabilities for AP interface
08df8dd7b00b wifi: mt76: mt7996: Use proper link_id in link_sta_rc_update callback
15fa4e33ee8f wifi: mt76: mt7996: Enable MLO support for client interfaces
3400b1ba33be wifi: mt76: mt7925: add pci restore for hibernate
51a1c0a086c8 wifi: mt76: mt7921: Add 160MHz beamformee capability for mt7922 device
435e596914fa wifi: mt76: mt7996: Use proper link info in mt7996_mcu_add_group
d30faac3b645 firmware: update mt7996 and mt7992 firmware to 20250606
304226bc4552 wifi: mt76: mt7996: Fix mt7996_reverse_frag0_hdr_trans for MLO
7cf18f8ebbb8 wifi: mt76: mt7996: Add all active links to poll list in mt7996_mac_tx_free()
16090cb27d9f wifi: mt76: mt7996: Implement MLD address translation for EAPOL
a1c319500a53 wifi: mt76: mt7996: Temporarily disable EPCS
5f3ea4562fbf wifi: mt76: mt7921: Place upper limit on station AID
ef2468830f6d wifi: mt76: un-embedd netdev from mt76_dev
29bca0ca462b net: mediatek: wed: Introduce MT7992 WED support to MT7988 SoC
245f6ff460c8 wifi: mt76: Add reset_idx to reset_q mt76_queue_ops signature.
4a3a5a7d71a8 wifi: mt76: Remove q->ndesc check in mt76_dma_rx_fill()
d540538299f7 wifi: mt76: Differentiate between RRO data and RRO MSDU queues
d0217732f96e wifi: mt76: Do not always enable NAPIs for WED RRO queues
1df790839241 wifi: mt76: mt7996: Initial DMA configuration for MT7992 WED support
fca511f401e9 wifi: mt76: mt7996: Enable HW RRO for MT7992 chipset
8134055d3459 wifi: mt76: mt7996: Introduce the capability to reset MT7992 WED device
4f81d751b5de wifi: mt76: mt7996: Fix tx-queues initialization for second phy on mt7996
f559eef156fd wifi: mt76: mt7996: Fix RX packets configuration for primary WED device
6b518355fec6 wifi: mt76: mt7996: Enable WED for MT7992 chipset
13eb05fa4a43 wifi: mt76: mt7996: Introduce RRO MSDU callbacks
ac1bca49973b wifi: mt76: Add rx_queue_init callback
d82330a9d019 wifi: mt76: mt7996: Decouple RRO logic from WED support
0a32ae3cc23d wifi: mt76: Add mt76_dma_get_rxdmad_c_buf utility routione
6c902ccba889 wifi: mt76: mt7996: Add SW path for HW-RRO v3.1

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2025-09-04 19:30:42 +02:00
Felix Fietkau
3e6d5be3d9 kernel: improve mtk_eth_soc performance
- shrink data structures
- avoid unnecessary divisions
- support GSO fraglist on tx

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2025-09-04 19:30:42 +02:00
Hauke Mehrtens
d751f1e57e mac80211: Fix compilation of iwlwifi driver
The Intel iwlwifi mld driver uses some updated thermal functions. Adapt
the driver to compile again kernel 6.6 again.

Fixes: 9c82d49999 ("mac80211: iwlwifi fix BE200 probe")
Link: https://github.com/openwrt/openwrt/pull/19948
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-09-04 12:10:06 +02:00
Hauke Mehrtens
350d8a0711 mac80211: iwlwifi: Add DRIVER_11BE_SUPPORT
The driver support Wifi 7, add dependency to DRIVER_11BE_SUPPORT.

Link: https://github.com/openwrt/openwrt/pull/19948
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-09-04 12:09:35 +02:00
Hauke Mehrtens
a51d246e85 mac80211: Refresh patches
Automatically Refresh the patches.

Fixes: 4d3a35f368 ("mac80211: remove rt2x00_platform_data")
Link: https://github.com/openwrt/openwrt/pull/19948
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-09-04 12:09:35 +02:00
Markus Stockhausen
6fdff789cd realtek: Rename ZyXEL XGS1210-12 to XGS1210-12 a1
A new version of the ZyXEL XGS1210-12 has been discovered in
the wild. It includes at least two known hardware changes

- lan9/lan10 use RTL8221B instead of RTL8226
- lan9/lan10 use different SMI busses

Pave the new device the way by splitting the existing DTS.
According to the vendor website the models are named

- A1 (first version): not explicetly labeled
- B1 (second version): Label Rev. B1 on device

Rename the current OpenWrt device definition to A1 as it was
made for the first version. To stay compatible with older
installations, add the old device name to the list of
supported devices.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/19908
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-09-03 21:40:36 +02:00
Markus Stockhausen
1a200ead4f realtek: rt-loader: add ROM uImage lookup (aka standalone)
The rt-loader currently only supports booting piggy backed lzma
compressed kernels. This requires a data layout where the kernel
directly follows the loader. That might not be sufficient for
more complex flash layouts.

Especially bootbase devices (like ZyXEL GS1920) will need some
kind of chain loading that needs to be explored yet.

Enhance the rt-loader as follows:

- Allow to build as standalone version
- In this case a flash start address is given
- During boot loader will search the ROM starting from that address
- If it finds a uImage this will be loaded into RAM
- Afterwards it will be decompressed to its load address
- While we are here add uncompressed uImage support

As always the implementation tries to be as simple as possible.

- uImage detection works without magics
- uImage will be loaded to highest possible memory address
- Documentation in Makefile has been adapted accordingly

Funny side fact: A standalone rt-loader can chain load a piggy
backed rt-loader from flash.

During bootup loader will show

rt-loader
Running on RTL8380M (chip id 6275C) with 256MB
Relocate 15760 bytes from 0x82000000 to 0x8ffa0000
Searching for uImage starting at 0xb45a0000 ...
uImage 'MIPS OpenWrt Linux-6.12.40' found at 0xb45a0000 with load address 0x80100000
Copy 2923034 bytes of image data to 0x8fcd61e6 ...
Extract image with 2923034 bytes from 0x8fcd61e6 to 0x80100000 ...
Final kernel size is 2923034 bytes
Booting kernel from 0x80100000 ...

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/19832
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-09-03 21:36:34 +02:00
Markus Stockhausen
908cda6943 realtek: rt-loader: memory library enhancements
Provide a crc32 function (will be needed later). Do some
minor naming and coding cleanups

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/19832
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-09-03 21:36:34 +02:00
Tianling Shen
8056b13965 uboot-rockchip: Update to 2025.07
Update to 2025.07.

Tested-by: FUKAUMI Naoki <naoki@radxa.com>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
Link: https://github.com/openwrt/openwrt/pull/19923
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-09-03 21:13:52 +02:00
Tianling Shen
b21702805f arm-trusted-firmware-rockchip: Update to 2.12.6
Bump GCC toolchain while at it.

Changelog: https://trustedfirmware-a.readthedocs.io/en/lts-v2.12.6/change-log.html#lts-2-12-6-2025-08-29

Tested-by: FUKAUMI Naoki <naoki@radxa.com>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
Link: https://github.com/openwrt/openwrt/pull/19923
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-09-03 21:13:52 +02:00
David Bauer
1df3d0c4b8 uqmi: update to latest HEAD
7914da4 uqmi: extend wda-get-data-format
7aef645 wda: add option for enabling flow-control
f74ddb3 wds: implement retrieval of profile list
6be8b6e wds: implement selection of LTE attach PDNs
21c4aaa wds: implement selection of default profile
5c844c0 wds: implement profile deletion
0756755 wds: reduce code duplication
283fbe0 data: add downlink padding option
4b90804 wda: allow agggregation parameter configuration
c20c017 uqmi: enable binding WDS sessions to QMAP multiplex
a1b37fe uqmi: fix whitespace errors

Signed-off-by: David Bauer <mail@david-bauer.net>
2025-09-03 12:13:30 +02:00
Sven Eckelmann
d2beb6bdc4 realtek: rtl931x: Fix unsafe MAC_L2_GLOBAL_CTRL2 access
Registers must not be accessed in parallel by multiple drivers.
Read-modify-write operations are not atomic, and the result of parallel
access is undefined.

The MAC_L2_GLOBAL_CTRL2 register is essentially a pin configuration
register and is represented by a pinmux node in the devicetree.  Operations
on this register by the realtek,rtl838x-eth driver must therefore also be
reflected in the devicetree.

Since the MDIO sets used are board-specific, the pins must be enabled in
the board’s devicetree.  This can be achieved using the pinctrl properties
for the realtek,rtl83xx-switch.

    &switch0 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&pinmux_enable_mdc_mdio_0>,
    		    <&pinmux_enable_mdc_mdio_1>;
    	....
    };

Signed-off-by: Sven Eckelmann <sven@narfation.org>
Link: https://github.com/openwrt/openwrt/pull/19815
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-09-03 09:54:51 +02:00
Sven Eckelmann
ea5a749311 realtek: rtl931x: Add LED Sync configuration
The pinmux-related registers on the RTL931X SoC family are spread across
various non-consecutive registers. It might be tempting to modify them
directly in a specific driver (SPI, LED, etc.), but this would cause issues
with parallel, non-locked read-modify-write operations, which are required
to update individual portions of these registers.

Instead, it is better to use the devicetree pinctrl properties to define
the correct configurations for the various operation modes.

One important setting here is the LED Sync bit. This allows the LED
controller to generate an additional positive edge on the `STCP`
("STore Clock Pin", also known as `RCLK`) of the LED shift register after
the actual content has already been shifted in using the normal shift
clock. The LED shift register is then expected to copy the content from the
shift register section into the storage registers, which act as the actual
LED output control. This functionality is available in, and commonly used
with, the SNx4HC595 family of shift registers.

To activate it, simply register it in the default state of the
"realtek,rtl83xx-switch" node:

    &switch0 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinmux_enable_led_sync>;
        ....
    };

It would be nicer when this can be directly added to the led subnode. But
for this to work, `realtek,rtl9300-leds` must first be an actual driver
(known to the driver core).

[1] https://www.ti.com/lit/ds/symlink/sn74hc595.pdf

Suggested-by: Bevan Weiss <bevan.weiss@gmail.com>
Signed-off-by: Sven Eckelmann <sven@narfation.org>
Link: https://github.com/openwrt/openwrt/pull/19815
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-09-03 09:54:51 +02:00
Sven Eckelmann
93113a745a realtek: rtl931x: Readd MAC_L2_GLOBAL_CTRL2 pinmux
The MAC_L2_GLOBAL_CTRL2 register is primarily used for pin configuration.
It is necessary to select specific modes for pins or to free them for use
as GPIOs.

Fixes: 9dbc04785c ("realtek: add rtl8231-aux to rtl931x.dtsi")
Signed-off-by: Sven Eckelmann <sven@narfation.org>
Link: https://github.com/openwrt/openwrt/pull/19815
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-09-03 09:54:51 +02:00
Sven Eckelmann
9c8d634646 realtek: rtl930x: Define GPIO_SEL_CTRL pinmux node
The pinmux-related registers on the RTL930X SoC family are spread across
various non-consecutive registers. It might be tempting to modify them
directly in a specific driver (SPI, LED, etc.), but this would cause issues
with parallel, non-locked read-modify-write operations, which are required
to update individual portions of these registers.

Instead, it is better to use the devicetree pinctrl properties to define
the correct configurations for the various operation modes.

One important setting here is the LED Sync bit. This allows the LED
controller to generate an additional positive edge on the `STCP`
("STore Clock Pin", also known as `RCLK`) of the LED shift register after
the actual content has already been shifted in using the normal shift
clock. The LED shift register is then expected to copy the content from the
shift register section into the storage registers, which act as the actual
LED output control. This functionality is available in, and commonly used
with, the SNx4HC595 family of shift registers.

To activate it, simply register it in the default state of the
"realtek,rtl83xx-switch" node:

    &switch0 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&pinmux_enable_led_sync>;
    	....
    };

It would be nicer when this can be directly added to the led subnode. But
for this to work, `realtek,rtl9300-leds` must first be an actual driver
(known to the driver core).

[1] https://www.ti.com/lit/ds/symlink/sn74hc595.pdf

Suggested-by: Bevan Weiss <bevan.weiss@gmail.com>
Signed-off-by: Sven Eckelmann <sven@narfation.org>
Link: https://github.com/openwrt/openwrt/pull/19815
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-09-03 09:54:51 +02:00
Janusz Dziedzic
bd831560cf linux-firmware: intel: kick BE200 wifi firmware
Latest backports require newer firmware.

Signed-off-by: Janusz Dziedzic <janusz.dziedzic@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19927
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-09-03 00:59:58 +02:00
Janusz Dziedzic
9c82d49999 mac80211: iwlwifi fix BE200 probe
Fix probing and load correct drivers
when using last backports.

Signed-off-by: Janusz Dziedzic <janusz.dziedzic@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19927
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-09-03 00:59:58 +02:00
Christian Marangi
3dca527e6d
airoha: add NPU and reserved memory node for AN7581
Add the NPU and reserved memory node for AN7581 dtsi since it's not
supported.

Link: https://github.com/openwrt/openwrt/pull/19816
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-09-03 00:58:51 +02:00
Christian Marangi
9d3009f426
airoha: major backport of Airoha Ethernet driver feature support
Major backport of upstream patch for support of multiple feature of the
Airoha Ethernet driver.

Feature backported are TSO, Jumbo packet, Offload and initial Wlan
Offload support.

Link: https://github.com/openwrt/openwrt/pull/19816
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-09-03 00:58:51 +02:00
Christian Marangi
354d7472d5
airoha: backport trivial fixes for pinctrl and ethernet driver
Backport trivial fixes from upstream related to pinctrl and ethernet
driver.

Link: https://github.com/openwrt/openwrt/pull/19816
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-09-03 00:58:50 +02:00
Christian Marangi
0adaeff5ee
airoha: backport patch adding support for AN7581 Ethernet PHY
Backport patch adding support for AN7581 Ethernet PHY based on the same
Mediatek embedded Switch PHY.

Link: https://github.com/openwrt/openwrt/pull/19816
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-09-03 00:58:50 +02:00
Christian Marangi
081cfb3a24
generic: reintroduce Mediatek PHY patch to backport directory
Mediatek PHY patch has been merged upstream. Reintroduce them to
backport directory as the same PHY is also needed for Airoha target.

All the affected patch automatically refreshed.

Link: https://github.com/openwrt/openwrt/pull/19816
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-09-03 00:58:49 +02:00
Christian Marangi
e00f77b3e7
firmware: Add support for Airoha EN7581 NPU firmware
Add support for Airoha EN7581 NPU firmware present in linux-firmware.
Support for it is fully upstream with the Ethernet part fully pushed and
the Wireless Offload currently in progress for various WiFi chip.

Link: https://github.com/openwrt/openwrt/pull/19816
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-09-03 00:58:48 +02:00
Christian Marangi
08a616b216
generic: backport support for Aeonsemi AS21xxx PHY
Backport support for Aeonsemi AS121xxx PHY. The PHY require dedicated
firmware to be loaded to correctly work and support a big family of
Aeonsemi PHY that provide from 1G to 10G speed.

Automatically refresh all affected patch and file (rtl PHY).

Link: https://github.com/openwrt/openwrt/pull/19816
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-09-03 00:58:48 +02:00
Christian Marangi
4f34c4c453
firmware: Add support for Aeonsemi AS21xxx firmware
Add support for Aeonsemi AS21xxx firmware blob. Firmware has been
submitted and accepted to linux-firmware. Current version is 1.8.2.

Link: https://github.com/openwrt/openwrt/pull/19816
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-09-03 00:58:47 +02:00
Christian Marangi
a713260966
airoha: replace thermal patch with upstream version
Replace thermal patch with upstream version. The thermal maintainer
reported that the sysfs entry are considered deprecated and that slope
and offset should be handled internally to the driver.

Link: https://github.com/openwrt/openwrt/pull/19816
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-09-03 00:58:47 +02:00
Jonas Jelonek
b082f9f60e realtek: fix model for TP-Link TL-ST1008F v2.0
Fix the model name in DTS compatible, Makefiles and board scripts by
using dash instead of comma or underscore. This aligns it with other
examples in OpenWrt and makes in consistent in all places where the
board model is used.

'tplink,tl-st1008f,v2' --> 'tplink,tl-st1008f-v2'
'tplink,tl-st1008f_v2' --> 'tplink,tl-st1008f-v2'

Fixes: 39b9b491bb ("realtek: add support for TP-Link TL-ST1008F v2.0")
Fixes: #19930
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19934
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-09-03 00:51:49 +02:00
Hauke Mehrtens
c589fb7baf kernel: Fix kernel regression in local-broadcast routes
Backport a patch from upstream kernel 6.17-rc4 which fixes a regression
introduced in the latest stable kernel versions.

This is already in the Linus stable queues for the next minor kernel
updates.

Fixes: 1c92e468d5 ("kernel: bump 6.6 to 6.6.103")
Fixes: f39c7e103f ("kernel: bump 6.12 to 6.12.43")
Reported-by: Goetz Goerisch <ggoerisch@gmail.com>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-09-02 09:59:39 +02:00
Oldřich Jedlička
41aceb2de8 wifi-scripts: ucode: print unknown ssid as unknown
Currently it is printed as "null" (including quotes). Display it the same
as old iwinfo as unknown (no quotes).

Signed-off-by: Oldřich Jedlička <oldium.pro@gmail.com>
2025-09-02 09:48:35 +02:00
Oldřich Jedlička
1756dddb9f wifi-scripts: ucode: fix dynamic_vlan value handling
The dynamic_vlan has values 0 (disabled), 1 (optional) and 2 (required).

Signed-off-by: Oldřich Jedlička <oldium.pro@gmail.com>
2025-09-02 09:33:19 +02:00
Oldřich Jedlička
2146f5c31f wifi-scripts: ucode: set default wildcard mac for wifi-station
When creating the PSK file, the old script sets `mac` to
`00:00:00:00:00:00` when `mac` is not specified (see [here][1]),
creating hostapd configuration lines like:

  vlanid=10 00:00:00:00:00:00 MyStrongPassword

That matches any MAC address (a wildcard). The `ucode` script alternative
misses the default, so set it.

[1]: 9c26d14489/package/network/config/wifi-scripts/files/lib/netifd/hostapd.sh (L428)

Signed-off-by: Oldřich Jedlička <oldium.pro@gmail.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2025-09-02 09:31:56 +02:00
Markus Stockhausen
a8e3bff523 realtek: convert access to RTL931x "even CMU" serdes pages
Currently the calculation for the CMU (even) SerDes works similar
to this pseudo code.

analog_backend_serdes = get_analog_serdes(frontend_serdes);
even_backend_serdes = analog_backend_serdes & ~1;
write_to(even_backend_serdes);

Because of the SerDes layout and frontend/backend mapping this can
be swapped to the following order with the same resulting Serdes.

even_frontend_serdes = frontend_serdes ~1;
analog_backend_serdes = get_analog_serdes(even_frontend_serdes);
write_to(analog_backed_serdes);

In the later example the frontend/backend mapping code is already
in our new functions. So swap the calculation logic and use the
new access functions. This allows to finally drop the old access
functions without mapping.

From now on all RTL931x SerDes functions will use a consistent
frontend view.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/19873
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-09-02 00:51:43 +02:00