Skip to content

Conversation

@carlo2007
Copy link

It fixes indentation with width 8 to match standard Linux style.

It removes commented pin setting not called anywhere.

It changes patch to full git am appliable.

@carlo2007 carlo2007 force-pushed the rb5009upr+s+in-updated branch from 3808263 to c2b180e Compare April 15, 2025 15:49
@carlo2007 carlo2007 force-pushed the rb5009upr+s+in-updated branch 5 times, most recently from c172f51 to 6a31886 Compare April 23, 2025 13:25
@carlo2007 carlo2007 force-pushed the rb5009upr+s+in-updated branch from 6a31886 to d0066a4 Compare April 23, 2025 16:02
@carlo2007 carlo2007 force-pushed the rb5009upr+s+in-updated branch 2 times, most recently from 278d455 to 81c09ce Compare May 2, 2025 18:37
@carlo2007 carlo2007 force-pushed the rb5009upr+s+in-updated branch 4 times, most recently from 1e404cf to 4935d74 Compare May 20, 2025 17:37
@robimarko robimarko force-pushed the rb5009upr+s+in-updated branch from 4935d74 to d772fe4 Compare June 13, 2025 08:26
carlo2007 pushed a commit to carlo2007/openwrt that referenced this pull request Jun 20, 2025
Add missing function reference for the l2_hash_seed call in rtl931x_reg
in the rtl83xx DSA driver part.
While at it, rename the referenced function to proper naming convention
and simplify its content.

The missing reference causes a hard crash after a short time (on
MS510TXM) because the driver assumes the reference always exists.

[  111.785559] CPU 0 Unable to handle kernel paging request at virtual address 00000000, epc == 00000000, ra == 805469a0
[  111.800991] Oops[prudy#1]:
[  111.801026] CPU: 0 PID: 11 Comm: kworker/u8:0 Tainted: G           O       6.12.33 #0
[  111.801046] Workqueue: dsa_ordered dsa_slave_switchdev_event_work
...
[  111.880600] epc   : 00000000 0x0
[  111.884219] ra    : 805469a0 rtl83xx_port_fdb_add+0x7c/0x204
[  111.890570] Status: 11000403 KERNEL EXL IE
[  111.895263] Cause : 50800008 (ExcCode 02)
[  111.899731] BadVA : 00000000
[  111.902946] PrId  : 0001a120 (MIPS interAptiv (multi))
[  111.956086] Process kworker/u8:0 (pid: 11, threadinfo=0b107c25, task=265aeb31, tls=00000000)
...
[  112.015167] Call Trace:
[  112.019549] [<80170b04>] load_balance+0x494/0x708
[  112.025022] [<807bb368>] dsa_port_do_fdb_add+0x24c/0x340
[  112.031048] [<807bc868>] dsa_switch_event+0xd44/0x13cc
[  112.036845] [<8015867c>] raw_notifier_call_chain+0x48/0x88
[  112.043031] [<807bcf3c>] dsa_tree_notify+0x10/0x3c
[  112.048395] [<807b2a64>] dsa_port_bridge_host_fdb_add+0x15c/0x190
[  112.055459] [<807b4e40>] dsa_slave_switchdev_event_work+0x164/0x1cc
...

Signed-off-by: Jonas Jelonek <[email protected]>
Link: openwrt#19170
Signed-off-by: Hauke Mehrtens <[email protected]>
@carlo2007 carlo2007 force-pushed the rb5009upr+s+in-updated branch from 78ccebe to f8fa2d5 Compare June 20, 2025 09:04
@carlo2007 carlo2007 force-pushed the rb5009upr+s+in-updated branch from f8fa2d5 to 9176a50 Compare June 20, 2025 11:48
dangowrt and others added 11 commits January 7, 2026 01:30
RealTek's 2.5G PHYs suffer from an up to now inexplicable problem which
results in the SerDes mode not being properly setup and disabling
in-band AN leading to a timeout waiting for a busy-bit to clear. Up to
now there has been a crude work-around: resetting the PHY and trying
another time.

The cause has now been found as a wrong access to register PHYCR1 on
MDIO_MMD_VEND1 instead of MDIO_MMD_VEND2 when setting up ALDPS as well
as disabling the MDIO broadcast address 0.

In order to access MDIO_MMD_VEND2 on Clause-22-only busses a custom
.read_mmd and .write_mmd ops are implemented, mapping MDIO_MMD_VEND2 to
paged access as this is required.

Also, as ALDPS by design disables the SerDes PCS of the PHY in case the
link has been down for a while, move enabling ALDPS to the end of the
config_init function to not face problems when configuring the interface
mode and in-band AN.

Signed-off-by: Daniel Golle <[email protected]>
Replace downstream hack for RealTek PHYs with a more clean solution
which could make it upstream.

As SGMII in-band AN is broken on some platforms, or simply expected to
be disabled by default in phy/sgmii mode (ie. on-board PHYs with MDIO
for out-of-band configuration and status), a hack for the RealTek PHY
driver was introduced to unconditionally disable SGMII in-band
autonegotiation.

Meanwhile the kernel has gained a proper interface for PHY and PCS to
report in-band AN capabilities and enable/disable in-band, matching
PHY and PCS capabilities.

Thanks to Bevan Weiss' knowledge about how RealTek PHY SerDes registers
are being handled in RealTek's SDK this can now be greatly improved:
 - report in-band capabilties
 - let phylink set in-band matching PCS and PHY capabilities
 - properly abstracted indirect access of SerDes registers

Signed-off-by: Daniel Golle <[email protected]>
Only use link-partner advertisement bits for 10GbE modes if they are
actually valid. Check LOCALOK and REMOTEOK bits and clear 10GbE modes
unless both of them are set.

Signed-off-by: Daniel Golle <[email protected]>
Import 2 patches completing and fixing the RealTek's 2.5GE PHYs when being
used in Clause-22 mode.

Signed-off-by: Daniel Golle <[email protected]>
These patches were actually merged in kernel 6.19 instead of 6.18,
fix them to avoid confusing when moving to new kernel version.

While at it, refresh the RK3528 PCIE L1ss patch since it was
accepted in 6.19 as well.

Signed-off-by: Tianling Shen <[email protected]>
Link: openwrt#21419
Signed-off-by: Robert Marko <[email protected]>
I have contributed quite a lot changes recently and should be made
responsible for most of the code that has been added to the PCS driver
after it has been introduced by Markus.

FWIW, add myself as another module author so anything I produced here
doesn't fall back to someone else, i.e. Markus as currently the single
module author.

Signed-off-by: Jonas Jelonek <[email protected]>
Link: openwrt#21410
Signed-off-by: Robert Marko <[email protected]>
In kernel coding style, it is highly disregarded to hide structures
behind typedefs ([1]). The PCS driver still contains a typedef for the
sds_config which was taken over from the PHY driver.

- drop the typedef, just declaring it as a struct
- give it the common 'rtpcs_' prefix
- adjust all usage locations

[1] https://www.kernel.org/doc/html/v6.18/process/coding-style.html#typedefs

Signed-off-by: Jonas Jelonek <[email protected]>
Link: openwrt#21410
Signed-off-by: Robert Marko <[email protected]>
In the RTL931X configuration code, the array size of configuration
arrays was still calculated with 'sizeof(...) / sizeof(...)'. There's a
dedicated macro in the kernel for exactly that usecase. Use that instead
to avoid possible errors and make the line shorter. The RTL930X code is
already doing it the good way.

Signed-off-by: Jonas Jelonek <[email protected]>
Link: openwrt#21410
Signed-off-by: Robert Marko <[email protected]>
Those config arrays still do not lineup with common conventions in the
driver in terms of naming. They are missing the driver and variant
prefix. Thus, line that up with how RTL930X code looks like.

- add 'rtpcs_' prefix since it's part of the PCS driver
- add '931x_' prefix because it's for RTL931X
- use 'cfg' instead of 'config' to shorten that a bit

Signed-off-by: Jonas Jelonek <[email protected]>
Link: openwrt#21410
Signed-off-by: Robert Marko <[email protected]>
Drop the '__always_unused' tags from two functions which are actually
used. This was missed during the big transition before.

Signed-off-by: Jonas Jelonek <[email protected]>
Link: openwrt#21410
Signed-off-by: Robert Marko <[email protected]>
The Realtek SDK includes a lot of code around specific port media,
usually having quite some differences between 10G fiber, 1G fiber and
DAC cables. For each type, several magic values are set which in the end
usually make different kinds of links work optimal.

While there is currently no way to get that media information from the
kernel, add some fields as an enum to have a notion of different media
kinds. In additional steps, code for the subtargets can be taken over
from the SDK to handle different media.

Signed-off-by: Jonas Jelonek <[email protected]>
Link: openwrt#21385
Signed-off-by: Robert Marko <[email protected]>
thom24 and others added 24 commits January 24, 2026 22:52
Layerscape currently uses the PREEMPT model, which is not aligned with
OpenWrt's default. Switch to PREEMPT_NONE for consistency with
OpenWrt's default configuration. Preemption model selection is now
available via menuconfig for further customization.

Signed-off-by: Thomas Richard <[email protected]>
Link: openwrt#21413
Signed-off-by: Hauke Mehrtens <[email protected]>
Gemini currently uses the PREEMPT model, which is not aligned with
OpenWrt's default. Switch to PREEMPT_NONE for consistency with OpenWrt's
default configuration. Preemption model selection is now available via
menuconfig for further customization.

Signed-off-by: Thomas Richard <[email protected]>
Link: openwrt#21413
Signed-off-by: Hauke Mehrtens <[email protected]>
Mediatek/mt7623 currently uses the PREEMPT model, which is not aligned with
OpenWrt's default. Switch to PREEMPT_NONE for consistency with OpenWrt's
default configuration. Preemption model selection is now available via
menuconfig for further customization.

Signed-off-by: Thomas Richard <[email protected]>
Link: openwrt#21413
[Added some config options again]
Signed-off-by: Hauke Mehrtens <[email protected]>
Loongarch64 currently uses the PREEMPT_VOLUNTARY model, which is not
aligned with OpenWrt's default. Switch to PREEMPT_NONE for consistency with
OpenWrt's default configuration. Preemption model selection is now
available via menuconfig for further customization.

Signed-off-by: Thomas Richard <[email protected]>
Link: openwrt#21413
Signed-off-by: Hauke Mehrtens <[email protected]>
This adds the HWLAT_TRACER kernel configuration option. The hwlat tracer
allows to detect hardware latencies.

Signed-off-by: Thomas Richard <[email protected]>
Link: openwrt#21413
Signed-off-by: Hauke Mehrtens <[email protected]>
This adds the OSNOISE_TRACER kernel configuration option. The osnoise
tracer allows to track interference experienced by an application due to
activities inside the operating system (like NMIs, IRQs ...).

Signed-off-by: Thomas Richard <[email protected]>
Link: openwrt#21413
Signed-off-by: Hauke Mehrtens <[email protected]>
This adds the TIMERLAT_TRACER kernel configuration option. The timelat
tracer helps to find sources of wakeup latencies of real-time threads.

Signed-off-by: Thomas Richard <[email protected]>
Link: openwrt#21413
Signed-off-by: Hauke Mehrtens <[email protected]>
The Realtek mdio bus works similar for all devices with only
minor family specific differences. Basically command issuing
follows a generic style. Write command type and a trigger.
Afterwards wait until the trigger flag goes back to zero (aka
"command complete"). Unify this sequence in a central helper.

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

Signed-off-by: Markus Stockhausen <[email protected]>
Link: openwrt#21529
Signed-off-by: Hauke Mehrtens <[email protected]>
Refactor RTL839x mdio commands to use the new helper function.
Remove unneeded goto and debug statements.

Signed-off-by: Markus Stockhausen <[email protected]>
Link: openwrt#21529
Signed-off-by: Hauke Mehrtens <[email protected]>
Refactor RTL930x mdio commands to use the new helper function.
Remove unneeded goto and debug statements.

Signed-off-by: Markus Stockhausen <[email protected]>
Link: openwrt#21529
Signed-off-by: Hauke Mehrtens <[email protected]>
Refactor RTL931x mdio commands to use the new helper function.
Remove unneeded goto and debug statements.

Signed-off-by: Markus Stockhausen <[email protected]>
Link: openwrt#21529
Signed-off-by: Hauke Mehrtens <[email protected]>
The Realtek mdio driver does not need to track a separate lock.
Rely on the default kernel mdio bus lock instead.

Signed-off-by: Markus Stockhausen <[email protected]>
Link: openwrt#21529
Signed-off-by: Hauke Mehrtens <[email protected]>
Add pending support for the HINLINK H66K / H68K.
Tested on HINLINK H66K, H68K and H68K-V2.

Signed-off-by: Chukun Pan <[email protected]>
Link: openwrt#21270
Signed-off-by: Hauke Mehrtens <[email protected]>
Hardware (common):
- RK3568 SoC
- 2/4GB LPDDR4
- 1x HDMI Type A
- 3.5mm jack with mic
- 1x PCIE 2.0 WiFi slot
- 1x USB 3.0, 2x USB 2.0
- 2x 2.5GbE RTL8125B Ethernet
- MicroSD card slot / eMMC 32GB

Additions to HINLINK H68K:
- 2x 1GbE RTL8211F/YT8531 Ethernet

Installation:
  Use dd or balenaEtcher to flash the firmware.

Signed-off-by: Chukun Pan <[email protected]>
Link: openwrt#21270
Signed-off-by: Hauke Mehrtens <[email protected]>
38804f59fbb9 ci: add ath12k BDF-s
d28bc0724dc6 ipq8074: add TCL LINKHUB  HH500V BDF
8e1fb2f59893 ipq6018:add TP-Link EAP620 HD v3 BDF Add board file for TP-Link EAP620 HD v3. bdwlan_US.bin sourced from EAP620 HD(US)_V3_1.4.4 Build 20250718 stock firmware.

Signed-off-by: Robert Marko <[email protected]>
Reading the PHY ID to assign a PHY config is currently simple. For C45
two MDIO reads of a hardcoded MMD are done to get the standard PHY ID
registers. MMD 31 (MMD_VEND2) is used for that purpose, assuming there
will be a valid PHY ID stored in this MMD in all cases. However, with
Aquantia AQR813 there's at least one example for which this isn't true.
This PHY returns 0 for the PHY ID in MMD_VEND2, instead MMD_VEND1 would
have the correct ID.

Enhance reading the PHY by accessing a common set of MMDs of which most
PHY at least implement one and have a valid PHY ID in. To keep overhead
low, do not scan all MMDs. As soon as a valid PHY ID is found, exit and
use that. This is similar to the kernel logic, jsut reduced to fewer
MMDs.

Also handle possible errors coming from MDIO reads to avoid reading garbage.

While at it, move reading the PHY ID to a separate function to not
pollute the poll fixup retrievel function.

Signed-off-by: Jonas Jelonek <[email protected]>
Link: openwrt#21515
Signed-off-by: Robert Marko <[email protected]>
Apply the PHY polling configuration for RTL931x too, as previously
implemented for RTL930x. This is needed for several PHYs on that
platform to function properly.

Add another flag called 'force_res' to the phy_info struct which is for
RTL931x only. The SDK mentions this as a flag to force polling the
Realtek proprietary PHY status resolution register. Effectively, this
changes the polling to proprietary format instead of standard format,
and sets an enable bit in another private polling register field.

Signed-off-by: Jonas Jelonek <[email protected]>
Link: openwrt#21515
Signed-off-by: Robert Marko <[email protected]>
Add a PHY ID for Aquantia AQR813 which is an Octa-PHY found in some
Realtek switches.

Add another PHY ID for another revision of AQR113C, also found in some
Realtek switches.

Signed-off-by: Jonas Jelonek <[email protected]>
Link: openwrt#21515
Signed-off-by: Robert Marko <[email protected]>
This patch was manually edited but not refreshed.

Fixes: 794b4de ("uboot-mediatek: add 8g check to bpi-r4 environment for bl2")
Fixes: 46ee520 ("uboot-mediatek: add command for getting size of ram")
Signed-off-by: Shiji Yang <[email protected]>
Link: openwrt#21693
Signed-off-by: Hauke Mehrtens <[email protected]>
Compilation currently spits this message:

WARNING: modpost: vmlinux: section mismatch in reference:
rtl83xx_sw_probe+0x6a4 (section: .text.rtl83xx_sw_probe)
-> rtl83xx_setup_qos (section: .init.text)

That means that we have a "normal" function caller (can be
called during the whole uptime) and a "initialization" function
callee (only available during init.

Fix this and directly fix the unwanted family checks.

Fixes: a91c3ab ("realtek: dsa: avoid use-after-free")
Signed-off-by: Markus Stockhausen <[email protected]>
Link: openwrt#21690
Signed-off-by: Hauke Mehrtens <[email protected]>
Update the econet-eth driver to a new version which is of
sufficient quality that it is realistic to think about upstreaming.

This version is now NAPI based, collects stats, downloads without
dropped packets anymore, has debugfs introspection, and can be
unloaded and reloaded (providing the reset controller is present).

PR openwrt#21545 is recommended but not required, without this the
ethernet driver will log a warning on startup because it can't get
the resets and it will be impossible to unload and reload the
driver without a reboot. However, the PoC driver was not capable of
reloading so this is not a regression.

Signed-off-by: Caleb James DeLisle <[email protected]>
Link: openwrt#21557
Signed-off-by: Hauke Mehrtens <[email protected]>
Specifications:
  * SoC: Qualcomm IPQ6018/AP-CP03-C1 (64-bit Quad-core Arm Cortex-A53 @ 1.2 GHz)
  * RAM: 2x Zentel A3T4GF40BBF-HP (1 GiB DDR3-1866 (13-13-13))
  * Serial Port: 1v8 TTL 115200n8
  * Wi-Fi: Qualcomm QCN5022 (802.11ax/b/g/n)
  * Wi-Fi: Qualcomm QCN5052 (802.11ac/ax/n)
  * Ethernet: RTL8211FS (10/100/1000BASE-T)
  * Flash: GigaDevice PSR1GA30DT (128 MiB)
  * LEDs: 1x Blue Status (GPIO 35 Active High)
  * Buttons: 1x Reset (GPIO 9 Active Low)
  * FCCID: 2AXJ4EAP620HDV3
  * UART: 4-pin unpopulated header by the J1 footprint

Installation Instructions (Serial+TFTP):
  1. Locate the J1 footprint which contains 4 unpopulated pins
  where starting from the arrow, the pins are TX, RX, VCC and GND
  respectively.
  2. Connect a 1v8 TTL port to the 4 pins. Ensure RX and TX are crossed
     over.
  3. Copy openwrt-qualcommax-ipq60xx-tplink_eap620-hd-v3-initramfs-uImage.itb
  to your TFTP server.
  4. Power up the AP and hold Ctrl+B in the serial console (115200n8) until autoboot is halted.
  5. Run the following commands in the U-boot prompt:
     IPQ6018# setenv serverip <TFTP server addr>
     IPQ6018# setenv ipaddr <addr of the AP>
     IPQ6018# tftpboot 0x44000000 openwrt-qualcommax-ipq60xx-tplink_eap620-hd-v3-initramfs-uImage.itb
     IPQ6018# bootm 0x44000000
     You may need to type Ctrl+C and Enter before running these commands
     to clear invisible characters from the buffer.
  6. Run the following command in a terminal to copy the sysupgrade image
     to be installed (check IP address):
     $ scp -O openwrt-qualcommax-ipq60xx-tplink_eap620-hd-v3-squashfs-sysupgrade.bin [email protected]:/tmp/
  7. Activate the OpenWrt serial console and run the following commands:
     # cd /tmp
     # sysupgrade -n openwrt-qualcommax-ipq60xx-tplink_eap620-hd-v3-squashfs-sysupgrade.bin
  8. The AP will reboot and OpenWrt will be successfully installed.

Installation Instructions (Web UI method):
  1. Set up the device using the vendor's web UI. Navigate to
     Management->SSH and enable the "SSH Login" checkbox. Select "Save".

  2. Connect to the machine via SSH:
     $ ssh -o hostkeyalgorithms=ssh-rsa <ip_of_device>

  3. Disable signature verification:
     $ cliclientd stopcs
  4. Rename the "-web-ui-factory" image to something less than 63
     characters, maintaining the ".bin" suffix.

  5. Go to System -> Firmware Update.
     Under "New Firmware File", click "Browse" and select the image.
     Select "Update" and confirm by clicking "OK".

  6. If the update fails, the web UI should show an error message.
     Otherwise, the device should reboot into OpenWrt.

Device support followed from EAP620HD v2 and eap6xx-outdoor for DTS.
Links: openwrt#18227

Signed-off-by: John Christoforidis <[email protected]>
Link: openwrt#21467
Signed-off-by: Robert Marko <[email protected]>
The Raidsonic devices do not use a 2048k kernel "Kern"
partition like the Storlink reference designs. Instead
it uses a 3072k partition to fit a slightly
larger kernel.

Sadly the current OpenWrt Gemini kernel is still bigger
than 3072k so we need to make use of the Ramdisk
partition as well.

Create a special "copy-kernel" version that can deal
with the Raidsonic 3072k kernels. Tested on the
Raidsonic IB-4220-B booting kernel v6.12.66.

Fix a copy/paste error in the image generation makefile
while we are at it.

Link: openwrt#21686
Signed-off-by: Linus Walleij <[email protected]>
5a13d875ac71 dhcpv6: set static defines for DHCPv6 option header size
9857adb8ac99 dhcpv6-ia: switch case refactor in dhcpv6_handle_ias()
3cbbea830ddd netlink: clean up sockets, close files
13ef483716a5 dhcpv4: de-escalate error logging to debug

openwrt/odhcpd@3fda5f8...13ef483

Signed-off-by: Paweł Owoc <[email protected]>
Link: openwrt#21636
Signed-off-by: Álvaro Fernández Rojas <[email protected]>
carlo2007 pushed a commit to carlo2007/openwrt that referenced this pull request Jan 25, 2026
Fix kernel panic caused by downstream PHY_DETACH_NO_HW_RESET patch.

[   20.994001] airoha_eth 1fb50000.ethernet wan: validation of usxgmii with support 00,00000000,00000000,00006000 and advertisement 00,00000000,00000000,00006000 failed: -EINVAL
[   21.058106] Unable to handle kernel access to user memory outside uaccess routines at virtual address 00000000000000b8
[   21.068879] Mem abort info:
[   21.071684]   ESR = 0x0000000096000005
[   21.075436]   EC = 0x25: DABT (current EL), IL = 32 bits
[   21.080790]   SET = 0, FnV = 0
[   21.083854]   EA = 0, S1PTW = 0
[   21.086997]   FSC = 0x05: level 1 translation fault
[   21.091931] Data abort info:
[   21.094829]   ISV = 0, ISS = 0x00000005, ISS2 = 0x00000000
[   21.100359]   CM = 0, WnR = 0, TnD = 0, TagAccess = 0
[   21.105419]   GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0
[   21.110762] user pgtable: 4k pages, 39-bit VAs, pgdp=0000000091bc8000
[   21.117218] [00000000000000b8] pgd=0800000084ee9003, p4d=0800000084ee9003, pud=0800000084ee9003, pmd=0000000000000000
[   21.127892] Internal error: Oops: 0000000096000005 [prudy#1] SMP
[   21.133483] Modules linked in: pppoe ppp_async nft_fib_inet nf_flow_table_inet pppox ppp_generic nft_reject_ipv6 nft_reject_ipv4 nft_reject_inet nft_reject nft_redir nft_quota nft_numgen nft_nat nft_masq nfte
[   21.191941] CPU: 3 UID: 0 PID: 1882 Comm: netifd Tainted: G           O       6.12.57 #0
[   21.200046] Tainted: [O]=OOT_MODULE
[   21.203534] Hardware name: Gemtek W1700K (DT)
[   21.207892] pstate: 60400005 (nZCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[   21.214861] pc : phy_detach+0xe8/0x194
[   21.218628] lr : phy_detach+0xe4/0x194
[   21.222387] sp : ffffffc0823ebae0
[   21.225702] x29: ffffffc0823ebae0 x28: ffffff8005451c00 x27: 0000000000000000
[   21.232846] x26: 0000000000000000 x25: 0000000000001003 x24: ffffffc080cf8240
[   21.239990] x23: 0000000000001002 x22: ffffff807fc527f8 x21: ffffffc080c93318
[   21.247125] x20: ffffff8001cfc000 x19: ffffff80036f7000 x18: ffffff8012cde323
[   21.254269] x17: 303a302d30333537 x16: 000000000000000e x15: 0000005139b64de4
[   21.261413] x14: 0000000000000001 x13: ffffff80020b46c0 x12: 0000000000000001
[   21.268550] x11: ffffff80020b46c0 x10: ffffff8005451cc0 x9 : ffffff807dbf5200
[   21.275694] x8 : ffffff80020b46c0 x7 : ffffff80010a8ed0 x6 : 0000000000000000
[   21.282838] x5 : 00000000000013f8 x4 : 0000000000000000 x3 : ffffff8005451c00
[   21.289983] x2 : 0000000000000000 x1 : ffffff8005451c00 x0 : 0000000000000000
[   21.297128] Call trace:
[   21.299575]  phy_detach+0xe8/0x194
[   21.302988]  phylink_fwnode_phy_connect+0x194/0x1c0
[   21.307874]  phylink_of_phy_connect+0x18/0x20
[   21.312248]  airoha_dev_open+0x44/0x2b0
[   21.316094]  __dev_open+0xe8/0x15c
[   21.319505]  __dev_change_flags+0x154/0x1c0
[   21.323698]  dev_change_flags+0x20/0x64
[   21.327541]  dev_ifsioc+0x28c/0x444
[   21.331032]  dev_ioctl+0x290/0x4b8
[   21.334434]  sock_ioctl+0x31c/0x444
[   21.337923]  __arm64_sys_ioctl+0x354/0xe60
[   21.342020]  invoke_syscall.constprop.0+0x58/0xec
[   21.346725]  do_el0_svc+0x3c/0xd4
[   21.350041]  el0_svc+0x18/0x60
[   21.353097]  el0t_64_sync_handler+0x118/0x124
[   21.357455]  el0t_64_sync+0x150/0x154

Make sure the phydev have a driver before asserting a signal or we would
dereference a NULL address.

Signed-off-by: Balázs Triszka <[email protected]>
[ improve commit description ]
Link: openwrt#20740
Signed-off-by: Christian Marangi <[email protected]>
prudy and others added 4 commits January 25, 2026 22:13
Specialize RB5009UG model from generic RB5009.

Signed-off-by: Przemek Rudy <[email protected]>
Specification:
* new menu entry RB5009UPr+S+IN
* support for PoE device availability in dts
* interchangeable sysupgrade with RB5009UG

Signed-off-by: Przemek Rudy <[email protected]>
It fixes indentation with width 8 to match standard Linux style.

It removes commented pin setting not called anywhere.

It refreshes the patches.

Signed-off-by: Carlo Filippi <[email protected]>
It allows to sysupgrade from generic rb5009 image to specialized rb5009upr
without image checks fail.

Signed-off-by: Carlo Filippi <[email protected]>
@carlo2007 carlo2007 force-pushed the rb5009upr+s+in-updated branch from 9176a50 to 68b197c Compare January 25, 2026 21:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.