Commit Graph

68449 Commits

Author SHA1 Message Date
Mario Andrés Pérez 908c82925c layerscape: armv8_64b: traverse ten64-mtd fix ASU support
The profiles.json[1] in generated and used during ASU sysupgrades takes
DEVICE_NAME as profile name which break ASU sysupgrades, use BOARD_NAME
which serves the same goal as overwriting DEVICE_NAME, allowing
sysupgrade-tar's checks be succesfully passed using the old name used in
older installations. Without affecting the generated profiles.json, thus
recovering ASU support.

*Keep the non-stardand device name with suffix "-mtd"(replaced underscore
by hyphen) to remark that this device is also supported in the armsr
(armvirt) target as originally intented[2].
*I think I have fully checked the sysupgrade path to confirm this change
does not have side effects.

[1]: https://downloads.openwrt.org/releases/25.12.0/targets/layerscape/armv8_64b/profiles.json
[2]: https://github.com/openwrt/openwrt/pull/12828
Fixes: af0546da34 ("layerscape: armv8_64b: add Traverse Ten64 NAND variant")
Fixes: https://github.com/openwrt/asu/issues/1583

Reported-by: DanaGoyette (github)
Co-developed-by: Eric Fahlgren <ericfahlgren@gmail.com>
Signed-off-by: Mario Andrés Pérez <mapb_@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/22359
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-04-16 20:38:51 +02:00
Daniel Golle 79c0127417 mediatek: add missing patch description
Add missing patch description, so all patches of the mediatek target can
be applied to a kernel tree using 'git am'.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-04-16 15:15:34 +01:00
Daniel Golle 9bf606250d kernel: add missing patch description (again)
Add missing patch description, so all generic patches can be applied
to a kernel tree using 'git am'.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-04-16 15:12:25 +01:00
Zoltan HERPAI 9247eb4002 mxs: drop support for 6.12
Drop support for 6.12 by removing config.

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2026-04-16 14:55:36 +02:00
Zoltan HERPAI d65d0acd38 mxs: switch to 6.18
Make 6.18 the default kernel.

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2026-04-16 14:55:35 +02:00
Damien Dejean 94607d6285 realtek: add support for Zyxel XMG1915-10E
The XMG1915-10E is a switch with 8 copper ports and 2 SFP+ cages.

Specifications:
---------------
  * SoC: RTL9302C
  * Flash: 32 MiB SPI NOR flash
  * RAM: 256 MiB
  * Ethernet: 8x 10/100/1000/2500 Mbps (RTL8224)
  * SFP: 2x SFP+ cages
  * UART: 1x 4 pins serial header, 115200 bauds, 8n1, 3.3v logic levels,
          pinout: unused (top), TX, RX, GND (bottom)
  * Buttons: 1x "Reset" button

Works:
------
  - 2 SFP+ cages either 1G/10G or 2.5G
  - 8*2.5G Ethernet ports
  - Switch function
  - LEDs
  - Boot from flash
  - Assigning MAC addresses from flash

Ethernet ports:
---------------
The 8x 2.5Gbps ethernet ports are provided by two RTL8224 chips. The
ports are supported by the upstream realtek PHY driver plus a local
initialization patch for the 10g-qxgmii mode.

Installation:
-------------
This device uses ZyNOS instead of Linux which makes the installation a
bit cumbersome. OpenWRT will be installed on the slot of the second
firmware image, thus the switch original firmware can be booted with a
little change. The serial console is required.

1. Set the switch to boot from the first image. This is required to
   be sure not to be blocked in the middle of the installation
   procedure.

2. Connect to the switch using the serial adapter and interrupt the boot
   process by pressing "Enter" repeatedly.

3. Load the OpenWRT initramfs image using xmodem. From bootext console
   (use ATHE to get the list of commands):

   > ATUP 81800000,file_length
   > ATGO 81800000

4. Wait for OpenWRT to boot, once this is done transfer the loader
   binary and the sysupgrade image to /tmp using scp.

5. Install OpenWRT permanently by writing the images on the flash:

  > mtd write /tmp/loader.bin loader
  > mtd write /tmp/sysupgrade.bin firmware

6. Reboot the switch and from the stock firmware set the configuration
   to boot from the second image (Maintenance > Firmware upgrade > Boot
   image).

7. Reboot again and enjoy OpenWRT.

Recovery/Return to stock:
-------------------------
1. Connect the switch using the serial adapter and interrupt the boot
   process during the "DRAM POST: Testing:" sequence by pressing '$'
   until the "XMG1915$" prompt appears.

2. Start an ymodem upgrade using the following command and use an xmodem
   upload tool to send the .bin file provided in an OEM upgrade package.

   XMG1915$ upgradeY image2 81000000 115200
   ## Ready for binary (ymodem) download to 0x081000000 at 115200 bps...

3. Wait for the upgrade process to finish and reboot the switch.

Signed-off-by: Damien Dejean <dam.dejean@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21341
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-16 14:26:03 +02:00
Markus Stockhausen 712f0429a3 realtek: eth: normalize ring counter/size register access
This refactoring is a little bit of all ...

For access to the ring counter and size registers there exist currently
separate helpers. These are only for the register number but not the
bit position inside the register. Register definitions still use the
old prefix. Resolve this mix by

- Changing the prefixes of the register defines
- replacing the helpers with the register addresses
- just calculating register & offset manually where needed.

This might be a little step back but at least aligns with the rest of
the register access code. A future commit might bring an even better
version.

While we are here convert the main consumer rteth_93xx_hw_reset() to
regmap and fix a bug. Until now this function only clears the first
counter in a register because of a missing bit shift during writeback.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/22920
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-16 14:22:04 +02:00
Mieczyslaw Nalewaj 5be08a2f29 generic: add missing DRM settings
Add missing DRM settings.

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/22928
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-16 14:20:42 +02:00
Brian Norris a94c020f38 chromium: Add #{address,size}-cells to /firmware
Commit b4d7263bc3 ("kernel: of: avoid some unnecessary bad cell count
warnings") backported Linux commit 6e5773d52f4a ("of/address: Fix WARN
when attempting translating non-translatable addresses"), which started
requiring #address-cells for a device's parent if we want to use the
reg resource in a device node.

Many Chromium devices use a /firmware/coreboot device node that is
patched in by the boot firmware. These structures look something like:

  # find /sys/firmware/devicetree/base/firmware/
  /sys/firmware/devicetree/base/firmware/
  /sys/firmware/devicetree/base/firmware/scm
  /sys/firmware/devicetree/base/firmware/scm/compatible
  /sys/firmware/devicetree/base/firmware/scm/name
  /sys/firmware/devicetree/base/firmware/ranges
  /sys/firmware/devicetree/base/firmware/chromeos
  /sys/firmware/devicetree/base/firmware/chromeos/fmap-offset
  /sys/firmware/devicetree/base/firmware/chromeos/compatible
  /sys/firmware/devicetree/base/firmware/chromeos/readonly-firmware-version
  /sys/firmware/devicetree/base/firmware/chromeos/nonvolatile-context-storage
  /sys/firmware/devicetree/base/firmware/chromeos/hardware-id
  /sys/firmware/devicetree/base/firmware/chromeos/firmware-type
  /sys/firmware/devicetree/base/firmware/chromeos/vboot-shared-data
  /sys/firmware/devicetree/base/firmware/chromeos/nonvolatile-context-offset
  /sys/firmware/devicetree/base/firmware/chromeos/firmware-version
  /sys/firmware/devicetree/base/firmware/chromeos/nonvolatile-context-size
  /sys/firmware/devicetree/base/firmware/chromeos/name
  /sys/firmware/devicetree/base/firmware/coreboot
  /sys/firmware/devicetree/base/firmware/coreboot/compatible
  /sys/firmware/devicetree/base/firmware/coreboot/board-id
  /sys/firmware/devicetree/base/firmware/coreboot/reg
  /sys/firmware/devicetree/base/firmware/coreboot/name
  /sys/firmware/devicetree/base/firmware/name

Notably, there is no #{address,size}-cells in /firmware.

This breaks any driver relying on a device under /firmware, such as the
coreboot_table driver.

This is technically an ill-formatted FDT, and so we might as well just
add the properties ourselves.

Signed-off-by: Brian Norris <computersforpeace@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22951
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-16 14:18:45 +02:00
Markus Stockhausen 8442d62521 realtek: dsa: rename header file
The rtl838x.h header is needed for all targets and not only RTL838x
specific. Rename it to rtl-otto.h to make clear that this is a
generic include.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/22931
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-16 12:02:25 +02:00
Markus Stockhausen f7e76cc2e7 realtek: dsa: merge headers
There are currently two header files for the dsa driver. rtl83xx.h
and rtl838x.h. It is unclear for what reason they are separated.
Especially as one always includes the other. Merge those two files
into one.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/22931
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-16 12:02:25 +02:00
Shiji Yang 267ee3dc72 kernel: lantiq: convert Makefile EXTRA_CFLAGS to ccflags-y
EXTRA_CFLAGS was removed since Linux 6.15 kernel.

Link: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.15.y&id=e966ad0edd0056c7491b8f23992c11734ab61ddf
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/22921
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-16 11:34:28 +02:00
Shiji Yang dfd57de699 kernel: kmod-ltq-tapi: adapt to the 6.18 kernel timer API
Fix build error on the 6.18 kernel.

Link:
[1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.18.y&id=87bdd932e85881895d4720255b40ac28749c4e32
[2] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.18.y&id=41cb08555c4164996d67c78b3bf1c658075b75f1
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/22921
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-16 11:34:28 +02:00
Shiji Yang e4be021989 kernel: kmod-ltq-deu: rename some sha1 functions
They are conflict with the kernel crypto library on 6.18 kernel.
Fixes:

ifxmips_sha1.c:83:8: error: redefinition of 'struct sha1_ctx'
   83 | struct sha1_ctx {
      |        ^~~~~~~~
In file included from ifxmips_sha1.c:50:
/workspaces/openwrt/build_dir/target-mips_24kc_musl/linux-lantiq_xway/linux-6.18.21/include/crypto/sha1.h:50:8: note: originally defined here
   50 | struct sha1_ctx {
      |        ^~~~~~~~
ifxmips_sha1.c:164:12: error: conflicting types for 'sha1_update'; have 'int(struct shash_desc *, const u8 *, unsigned int)' {aka 'int(struct shash_desc *, const unsigned char *, unsigned int)'}
  164 | static int sha1_update(struct shash_desc * desc, const u8 *data,
      |            ^~~~~~~~~~~
/workspaces/openwrt/build_dir/target-mips_24kc_musl/linux-lantiq_xway/linux-6.18.21/include/crypto/sha1.h:76:6: note: previous declaration of 'sha1_update' with type 'void(struct sha1_ctx *, const u8 *, size_t)' {aka 'void(struct sha1_ctx *, const unsigned char *, unsigned int)'}
   76 | void sha1_update(struct sha1_ctx *ctx, const u8 *data, size_t len);
      |      ^~~~~~~~~~~
ifxmips_sha1.c:195:12: error: conflicting types for 'sha1_final'; have 'int(struct shash_desc *, u8 *)' {aka 'int(struct shash_desc *, unsigned char *)'}
  195 | static int sha1_final(struct shash_desc *desc, u8 *out)
      |            ^~~~~~~~~~
/workspaces/openwrt/build_dir/target-mips_24kc_musl/linux-lantiq_xway/linux-6.18.21/include/crypto/sha1.h:87:6: note: previous declaration of 'sha1_final' with type 'void(struct sha1_ctx *, u8 *)' {aka 'void(struct sha1_ctx *, unsigned char *)'}
   87 | void sha1_final(struct sha1_ctx *ctx, u8 out[SHA1_DIGEST_SIZE]);
      |      ^~~~~~~~~~

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/22921
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-16 11:34:28 +02:00
Shiji Yang d3c7bf20f3 kernel: kmod-ltq-deu: fix discarded-qualifiers build error
Fixes:

ifxmips_aes.c: In function 'gcm_aes_decrypt':
ifxmips_aes.c:1803:14: error: assignment discards 'const' qualifier from pointer target type [-Werror=discarded-qualifiers]
 1803 |         temp = walk.src.virt.addr;
      |              ^

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/22921
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-16 11:34:28 +02:00
Shiji Yang 87ae122fd1 kernel: kmod-ltq-atm: fix discarded-qualifiers build error
Fixes:

ltq_atm.c: In function 'ltq_atm_probe':
ltq_atm.c:1840:36: error: passing argument 2 of 'platform_set_drvdata' discards 'const' qualifier from pointer target type [-Werror=discarded-qualifiers]
 1840 |         platform_set_drvdata(pdev, ops);
      |                                    ^~~
In file included from ltq_atm.c:40:
/workspaces/openwrt/build_dir/target-mips_24kc_musl/linux-lantiq_xway/linux-6.18.21/include/linux/platform_device.h:276:47: note: expected 'void *' but argument is of type 'const struct ltq_atm_ops *'
  276 |                                         void *data)
      |                                         ~~~~~~^~~~

Fixes: c1fa85f659 ("treewide: use of_device_get_match_data")
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/22921
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-16 11:34:28 +02:00
Markus Stockhausen 4d3159dbc1 realtek: dts: convert DGS-1250-28X to SWITCH_PORT_SFP()
Use the new macro for the SFP ports.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/22947
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-16 11:28:04 +02:00
Linus Walleij 8f8276a5b7 ixp4xx/kernel: drop v6.12 and default to v6.18
Drop the old kernel and move over to the latest. We hardly
have any patches so this is a swift change.

Link: https://github.com/openwrt/openwrt/pull/22933
Signed-off-by: Linus Walleij <linusw@kernel.org>
2026-04-16 08:35:38 +02:00
Hauke Mehrtens 05b6a93173 github: labeler: Update dependencies
Update to the most recent version.
The biggest change is the switch to Node.js 24.

Link: https://github.com/openwrt/openwrt/pull/22903
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-04-16 00:50:17 +02:00
Hauke Mehrtens 372e57f243 github: github-release: update dependencies
Update the dependencies to the latest version.
The biggest change is the update to Node.js 24.

Link: https://github.com/openwrt/openwrt/pull/22903
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-04-16 00:50:08 +02:00
Zoltan HERPAI cf0e398ea8 d1: enable 6.18 testing kernel
The d1 target now supports 6.18 kernel as testing.

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2026-04-16 00:04:04 +02:00
Zoltan HERPAI 4019785716 d1: refresh patches for 6.18
Refresh patches.

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2026-04-16 00:04:04 +02:00
Zoltan HERPAI 6a025623e1 d1: drop audio patches from 6.18
These were not in use and can be dropped for now.

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2026-04-16 00:04:04 +02:00
Zoltan HERPAI 3d4a51c806 d1: add missing symbols for 6.18
These were found while upgrading the target to 6.18.

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2026-04-16 00:04:04 +02:00
Zoltan HERPAI d5deb04a98 d1: refresh config for 6.18
Refresh config for 6.18.

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2026-04-16 00:04:04 +02:00
Zoltan HERPAI f45573065a generic/6.18: add missing symbols
Add missing symbols that were found during migrating d1 to 6.18.

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2026-04-16 00:04:04 +02:00
Zoltan HERPAI 1d9fe3467b kernel/d1: 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: Zoltan HERPAI <wigyori@uid0.hu>
2026-04-16 00:04:04 +02:00
Zoltan HERPAI a19053d595 kernel/d1: 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: Zoltan HERPAI <wigyori@uid0.hu>
2026-04-16 00:04:04 +02:00
Christian Marangi 70ad03e0ac airoha: backport optimization in QDMA rx queue descriptor setup
Backport patch merged upstream that optimize the QDMA rx queue descriptor
setup by configuring the CPU IDX only when needed.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2026-04-15 14:46:25 +02:00
Christian Marangi 3187113c8a airoha: fix compilation error from VIP backport patch
It seems that upstream one of the patch had a compilation erro caused by
merging net and net-next and it was fixed silently in a merge commit.

Fix this error in the affected patch.

Fixes: 155c610962 ("airoha: backport additional patch for memory leak and multi-serdes rework")
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2026-04-15 14:39:35 +02:00
Christian Marangi 155c610962 airoha: backport additional patch for memory leak and multi-serdes rework
Backport upstream memory leak patch merged upstream and even more
preliminary patch for multi-serdes rewrk.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2026-04-15 10:36:44 +02:00
Rosen Penev cf2e435e0e gpio-button-hotplug: remove LINUX_VERSION_CODE
The 6.18 code works with older kernels as well. Remove the older section
and use the newer one always.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22925
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-15 10:04:13 +02:00
Eric Fahlgren 233946b04a base-files: add warning to distfeeds.list
Add a message to the apk distfeeds.list that changes won't be saved
and that users should modify customfeeds.list instead.

Signed-off-by: Eric Fahlgren <ericfahlgren@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22586
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-15 10:03:10 +02:00
Linus Walleij 58ba62578d ixp4xx: add 6.18 testing kernel
Allow for selecting v6.18 it as a testing kernel. One single
Kconfig option needed adding.

Link: https://github.com/openwrt/openwrt/pull/22896
Signed-off-by: Linus Walleij <linusw@kernel.org>
2026-04-15 00:16:32 +02:00
Linus Walleij 11580ad282 kernel/ixp4xx: update config for v6.18
The new symbol CONFIG_PAGE_BLOCK_MAX_ORDER typical value
for ARM is 9 (2MB) so set this.

Link: https://github.com/openwrt/openwrt/pull/22896
Signed-off-by: Linus Walleij <linusw@kernel.org>
2026-04-15 00:16:32 +02:00
Linus Walleij 677c2fb19d kernel/ixp4xx: bump patches for v6.18
A bunch of the patches are now upstream, remove them, rename the
remaining patch and refresh.

Link: https://github.com/openwrt/openwrt/pull/22896
Signed-off-by: Linus Walleij <linusw@kernel.org>
2026-04-15 00:16:32 +02:00
Linus Walleij c5f9a5e61c kernel/ixp4xx: 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

Link: https://github.com/openwrt/openwrt/pull/22896
Signed-off-by: Linus Walleij <linusw@kernel.org>
2026-04-15 00:16:32 +02:00
Linus Walleij 55d5120f12 kernel/ixp4xx: create files for v6.18 (from v6.12)
This is an automatically generated commit.

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

Link: https://github.com/openwrt/openwrt/pull/22896
Signed-off-by: Linus Walleij <linusw@kernel.org>
2026-04-15 00:16:32 +02:00
Shiji Yang e77670e763 uboot-tools: fix libyaml linker error
When we cross build uboot-tools, the dtc tool is still compiled for
the host. Therefore, we should not attempt to link the OpenWrt system
libraries. CPU architecture mismatch can lead to build errors.

Fixes: https://github.com/openwrt/openwrt/issues/22924
Fixes: 55925650aa ("uboot-tools: update to v2026.04")
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/22927
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-14 19:17:47 +02:00
Ziyang Huang 9dfc0c3eea qualcommax: ipq5018: pz-l8: enable PHY-to-PHY CPU link
So we can reach 2Gbps.

Signed-off-by: Ziyang Huang <hzyitc@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/21496
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-14 19:16:39 +02:00
Ziyang Huang a5c5ca0666 qualcommax: qca8337: fix multi CPU links issue
Use correct CPU link when having multi CPU ports.

Signed-off-by: Ziyang Huang <hzyitc@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/21496
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-14 19:16:39 +02:00
Shiji Yang 76eb777766 generic: phy: adm6996: fix build on 6.18 kernel
devm_gpio_request() was removed since kernel 6.17. Convert it to
devm_gpio_request_one() to fix:

target/linux/generic/files/drivers/net/phy/adm6996.c: In function 'adm6996_gpio_probe':
target/linux/generic/files/drivers/net/phy/adm6996.c:1183:15: error: implicit declaration of function 'devm_gpio_request'; did you mean 'devm_gpio_request_one'? [-Wimplicit-function-declaration]
 1183 |         ret = devm_gpio_request(&pdev->dev, priv->eecs, "adm_eecs");
      |               ^~~~~~~~~~~~~~~~~
      |               devm_gpio_request_one

Link: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.18.y&id=a5589313383074c48a1b3751d592a6e084ae0573
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/22917
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-14 11:52:35 +02:00
Jonas Jelonek ad720e4a30 realtek: pcs: add media type for PCB
Previous commits carved out some TX configuration from different places
into a dedicated function. A cause of this is a behavioral change where
the TX amplifier values aren't applied anymore if it isn't a "fiber
mode". To restore this behavior and make the media/TX-RX configuration
more generic, we need a dedicated media type. The existing ones only
cover fiber and DACs, but not the other left case where a PHY is
attached to the SerDes. This now calls set_media for USXGMII and XSGMII
modes intentionally, both to prepare for future changes and to restore
previous behavior.

We do not have a reliable way to distinct between the actually used
media types, this is still a TODO. But several parts of the code already
have different values applied based on this information. Moreover, this
is especially needed for DAC cables to work properly. While this is
missing, we need to rely on inferring the media from the SerDes mode.

While at it, improve the call site of media handling since there's a
media type for all cases now. This allows to reduce the number of
function calls by moving it out and just have the media type in the
decision block.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22814
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-14 11:50:55 +02:00
Jonas Jelonek f8cdcd8655 realtek: pcs: rtl931x: start to carve out tx config
Proceed with the consolidation of TX/RX path config by carving out some
TX configuration out into a separate function. For now, this only
affects TX amplifier config. But it already slims down other polluted
call sites and brings some structure into the TX/RX path config.

While at it, already provide a similar function for RX configuration.
This does nothing yet but should be filled with RX path config later.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22814
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-14 11:50:55 +02:00
Jonas Jelonek aee4fd67cb realtek: pcs: rtl931x: demystify some setup magic
Shed some light into the darkness by giving a part of the setup a
dedicated name. This applies to the magic data blocks in the generic
setup entrypoint and some writes in the media handling. This was just
copied from the SDK which doesn't annotate this properly with
information. But we can clearly connect this with some other functions
of the SDK and extract meaningful information.

The mentioned magic blocks and register writes set coefficients of three
amplifiers in the TX path, a pre-amp, a main-amp and a post-amp. They
are used to tune the signal for different kinds of media. Generic values
are applied for all SerDes and further special values for different media
types depending on the needs.

Provide a dedicated function that sets these amplifier coefficients.
Replace the mystic register writes with the function call so one can see
at a glance what's happening. Also replace the magic TX values with the
coefficients organized into a separate struct. This might be extended
further and is also applicable for RTL930x.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22814
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-14 11:50:55 +02:00
Jonas Jelonek 1b49903cf9 realtek: pcs: rtl931x: condense similar writes
Within RTL931x set_media, two writes are applied in general for all modes
but later again changed depending on the mode. This is a confusing
pattern. To fix this, move those generic writes into the switch-block as
a default case. To maintain behavior, pull the 10G guard into the fiber
media case.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22814
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-14 11:50:55 +02:00
Jonas Jelonek f4ecfe3baf realtek: pcs: rtl931x: relocate analog reset
Relocate the analog reset code within set_media for RTL931X to have it
in one place at the very top of the function, running all reset actions
before further real configuration is done. Also drop a separate call to
rx_reset because a subsequent sequence already includes this
functionality.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22814
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-14 11:50:55 +02:00
Kenneth Kasilag 1c590ed4b7 crypto: inside-secure/eip93: fix hmac setkey algo selection
eip93_hmac_setkey() allocates a temporary ahash transform for
computing HMAC ipad/opad key material. The allocation uses the
driver-specific cra_driver_name (e.g. "sha256-eip93") but passes
CRYPTO_ALG_ASYNC as the mask, which excludes async algorithms.

Since the EIP93 hash algorithms are the only ones registered
under those driver names and they are inherently async, the
lookup is self-contradictory and always fails with -ENOENT.

When called from the AEAD setkey path, this failure leaves the
SA record partially initialized with zeroed digest fields. A
subsequent crypto operation then dereferences a NULL pointer in
the request context, resulting in a kernel panic:

```
  pc : eip93_aead_handle_result+0xc8c/0x1240 [crypto_hw_eip93]
  lr : eip93_aead_handle_result+0xbec/0x1240 [crypto_hw_eip93]
  sp : ffffffc082feb820
  x29: ffffffc082feb820 x28: ffffff8011043980 x27: 0000000000000000
  x26: 0000000000000000 x25: ffffffc078da0bc8 x24: 0000000091043980
  x23: ffffff8004d59e50 x22: ffffff8004d59410 x21: ffffff8004d593c0
  x20: ffffff8004d593c0 x19: ffffff8004d4f300 x18: 0000000000000000
  x17: 0000000000000000 x16: 0000000000000000 x15: 0000007fda7aa498
  x14: 0000000000000000 x13: 0000000000000000 x12: 0000000000000000
  x11: 0000000000000000 x10: fffffffff8127a80 x9 : 0000000000000000
  x8 : ffffff8004d4f380 x7 : 0000000000000000 x6 : 000000000000003f
  x5 : 0000000000000040 x4 : 0000000000000008 x3 : 0000000000000009
  x2 : 0000000000000008 x1 : 0000000028000003 x0 : ffffff8004d388c0
  Code: 910142b6 f94012e0 f9002aa0 f90006d3 (f9400740)
```

The reported symbol eip93_aead_handle_result+0xc8c is a
resolution artifact from static functions being merged under
the nearest exported symbol. Decoding the faulting sequence:

```
  910142b6  ADD  X22, X21, #0x50
  f94012e0  LDR  X0, [X23, #0x20]
  f9002aa0  STR  X0, [X21, #0x50]
  f90006d3  STR  X19, [X22, #0x8]
  f9400740  LDR  X0, [X26, #0x8]
```

The faulting LDR at [X26, #0x8] is loading ctx->flags
(offset 8 in eip93_hash_ctx), where ctx has been resolved
to NULL from a partially initialized or unreachable
transform context following the failed setkey.

Fix this by dropping the CRYPTO_ALG_ASYNC mask from the
crypto_alloc_ahash() call. The code already handles async
completion correctly via crypto_wait_req(), so there is no
requirement to restrict the lookup to synchronous algorithms.

Note that hashing a single 64-byte block through the hardware
is likely slower than doing it in software due to the DMA
round-trip overhead, but offloading it may still spare CPU
cycles on the slower embedded cores where this IP is found.

Fixes: 9739f5f93b78 ("crypto: eip93 - Add Inside Secure SafeXcel EIP-93 crypto engine support")
Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
[Detailed investigation report of this bug]
Signed-off-by: Kenneth Kasilag <kenneth@kasilag.me>
Link: https://github.com/openwrt/openwrt/pull/22886
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-14 11:47:10 +02:00
Sven Eckelmann 39beab3c55 realtek: rtl931x: psx28: specify POE MCU reset GPIO
The MCU (GD32E230G8) which controls the RTL8239 POE++ PSE chips can
sometimes hang. In this case, it is necessary to to reset the chip using
the nRESET pin which is connected to the GPIO1 of the RTL8231 GPIO
expander.

For a reset, the `/sys/class/gpio/poe_mcu_reset/value` file must be set to
1 for a short period and then back to 0. After that, the poemgr must be
"restarted" to the MCU back in the expected state.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
Link: https://github.com/openwrt/openwrt/pull/22916
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-14 10:38:28 +02:00
Rosen Penev f7ec0bbb29 bcm53xx: use libdeflate-gzip for images
Slightly smaller size for images using gzip.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22891
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-14 10:00:47 +02:00