If input, drm or video support is enabled on imx targets, then these
will pop up.
We add them to the generic configs, because they will be dropped again
if we add them to the target config and call `make kernel_oldconfig
CONFIG_TARGET=target`.
Signed-off-by: Martin Schiller <ms@dev.tdt.de>
[for imx6 (on Toradex i.MX6D)]
Tested-by: Zoltan HERPAI <wigyori@uid0.hu>
Backport the V4L2 generic ISP types and the v4l2-isp helpers that ISP
drivers use for their parameters and statistics buffers: the two v6.19
commits and a rename that followed them, and the four v7.3 commits that
add the extensible statistics buffer, the per-block validation callback
and the statistics helpers.
Add kmod-video-v4l2-isp for the v4l2-isp module.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Move the secure WCSS driver, binding and split-firmware support from
qualcommax to the common kernel patch series. IPQ9574 support is already
provided by this driver.
Split out the unchanged TME-L client header so qualcommbe can compile the
driver without enabling the mailbox controller. Keep the qualcommax-only
follow-up patches in that target; its resulting driver is unchanged.
Describe the existing multi-file loading interface in the common binding
and leave the driver disabled unless selected by a target.
Signed-off-by: Satoshi Ikeuchi <satosan.ikm@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/25595
Signed-off-by: Robert Marko <robimarko@gmail.com>
Add a pending patch that gives the RM500Q-AE its own MHI channel table
with doorbell burst mode disabled on its two hardware data channels.
With burst mode on, the downlink stalls under sustained multi-stream
load when the wwan0 receive work runs on the same CPU as the modem's
interrupt, which is where the default packet steering puts it. Uplink
keeps working, the MBIM control channel later times out, and only a
reboot recovers it. Ringing the channel doorbell by hand restores the
link at once, which points at a lost doorbell-mode handshake.
Tested on a Xunison Exigo Hub D50 5G: without the patch a single
25-second 16-stream download stalled the downlink; with it, about 200
seconds of multi-stream downloads with CPU0 at up to 100% ran with no
stall and no MHI errors.
Link: https://patch.msgid.link/20261013-rm500q-db-burst-v1-1-bb850d54e2c4@gmail.com
Signed-off-by: Steve Meek <stevemeek82@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/25890
Signed-off-by: Robert Marko <robimarko@gmail.com>
On MDIO-connected MT753x switches .get_stats64 reads the MIB counters
under the MDIO bus mutex although it runs in atomic context, so reading
/proc/net/dev reports "sleeping function called from invalid context".
With CONFIG_DEBUG_ATOMIC_SLEEP=y the sleep inside the RCU read section
can lock up a CPU. The upstream fix polls the counters from a delayed
work and returns cached values. It is in mainline from v7.1-rc3 and not
in 6.18.y.
Tested on a Keenetic KN-1012 (MT7981B, MT7531) with
CONFIG_DEBUG_ATOMIC_SLEEP=y: a loop reading /proc/net/dev locked up a
CPU within a minute without the fix, and ran 41 minutes clean with it
while the counters kept advancing.
Assisted-by: LLM
Signed-off-by: Aleksei Sviridkin <f@lex.la>
Link: https://github.com/openwrt/openwrt/pull/25383
Signed-off-by: Jonas Jelonek <jonas@jonasjelonek.de>
Kernel modules from the packages feed still differ between builds on
targets with Linux 6.12, e.g. kmod-jool-netfilter on tegra:
/builder/shared-workdir/build/build_dir/.../jool-4.1.15/src/mod/common/xlator.c
These packages build through make -C $(LINUX_DIR) M=... without the
OpenWrt prefix maps. On 6.12, kbuild compiles external modules from the
absolute M= path and maps only the kernel tree, so __FILE__ keeps the
absolute path of the module sources. Linux 6.13 maps the module
directory itself, which is why 6.18 only needed the kernel tree mapped
(206-kbuild-map-the-kernel-tree-for-external-modules.patch).
Add a pending patch for 6.12 that maps the directory of external
modules. It comes after the map of the kernel tree and before KCFLAGS,
so modules built through KERNEL_MAKE keep their current output.
On a 6.12 tree, __FILE__ of an external module changes from its
absolute path to the path relative to the module directory.
Link: https://github.com/openwrt/openwrt/pull/25875
Signed-off-by: Paul Spooren <mail@aparcar.org>
The Herospeed RV1126 IMX415 "Base" is an IP camera built on a Rockchip
38x38 V10 EMMC DDR3 board, which is also found in cameras of other
makes and is therefore described by a separate dtsi. The stock firmware
identifies itself as ONVIF manufacturer "HeroSpeed", firmware family
RV1126_IMX415_BASE. This adds the 32-bit armv7 subtarget for the
Cortex-A7 based RV11xx SoCs. The camera keeps its stock U-Boot, which
boots an Android boot image from one of two boot/system slots.
Hardware
--------
SoC: Rockchip RV1126, 4x Cortex-A7
RAM: 1 GiB DDR3
Flash: eMMC, 8 GB class, two boot/system slots
Ethernet: 1x 10/100 Mbit/s, JL1101 PHY on RMII
Sensor: Sony IMX415, 4 lane MIPI CSI-2
RTC: PCF8563
LEDs: white illumination LEDs on one PWM output (V4L2 flash)
Buttons: none
UART: 1.8 V TTL on UART2, 1500000 baud 8N1, 90-degree JST-SH connector
at the bottom edge of the board, facing the edge and hidden underneath
the MIPI CSI cable
Power: PoE (IEEE 802.3af) or 12 V 1 A DC through the barrel connector
on the cable whip
Installation
------------
1. Open the web interface of the stock firmware (192.168.1.168 by
default) and log in as admin.
2. Upload openwrt-rockchip-armv7-herospeed_rv1126-imx415-squashfs-
factory-RV1126_IMX415.fls on the firmware upgrade page.
3. The camera reboots into OpenWrt at 192.168.1.1.
Later upgrades use the sysupgrade image, which is written to the
inactive slot. The stock firmware can be restored from OpenWrt with
"sysupgrade -F -n" and the original .FLS file.
MAC address
-----------
eth0 uses the label MAC, stored as MAC=xx:xx:xx:xx:xx:xx in net.conf on
the ext4 "param" partition. U-Boot passes a different, derived address
to Linux, which is replaced by the stored one.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Backport the pixel clock sampling mode defines of the video-interfaces
dt-bindings header, which the rk3568 vicap binding example already
uses. The Rockchip RV1126 capture nodes refer to the same header.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
VLAN support is broken on MT7530/MT7531 switches (seen on the ASUS
ZenWiFi BT8): after a VLAN-aware bridge is destroyed, VLAN-unaware
bridges lose connectivity, and untagged PVID traffic does not reach
the bridge VLAN upper interface (br-lan.<vid>).
Backport two fixes from Linux v7.1:
- 2c4c76cacc9d ("net: dsa: mt7530: fix CPU port VLAN not being reset
to unaware")
- 4cb3cd670b2a ("net: dsa: mt7530: untag VLAN-aware bridge PVID")
Both patches apply cleanly to 6.18 and were refreshed with
make target/linux/refresh.
Fixes: https://github.com/openwrt/openwrt/issues/18576
Signed-off-by: Marc Strämke <marcstraemke@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/25247
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Add the Time Aware Priority (IEEE 802.1Qbv) queuing discipline, used
for Time-Sensitive Networking.
The Hellcreek switch driver depends on taprio, so disable it to avoid
a new config prompt.
Link: https://github.com/openwrt/openwrt/pull/25777
Signed-off-by: Nick Hainke <vincent@systemli.org>
The gen2 and later Aquantia PHYs take their system interface from the
per-speed global configuration words their firmware loads from flash.
Where the board firmware selects XFI with pause-frame rate adaptation,
the driver reports 10GBASE-R as the only possible interface and the MAC
gets throttled by pause frames at every media speed below 10G, although
the device tree asks for USXGMII.
Apart from being ugly, this also causes the PHY's microcontroller to
hang when ever a link-partner enters 100M mode (eg. during S3 idle with
WoL active) and never returns to a working state, observed on CUX3410
running firmware 5.7, ironically even with an Aquantia AQtion AQC107
NIC on the other end (ie. the inter-Aquantia magic between the two
same-vendor PHYs could be the actual root of the problem).
Add a hack patch that rewrites the words to XFI with USX rate
adaptation when phy-mode is usxgmii, with the PHY held in low power as
the existing AQR112/AQR412 patch does. The PHY then runs USXGMII with
symbol replication at the lower speeds (and no longer crashes when
ever the link-partner enters S3 and reduces speed to 100M).
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Package the Rockchip DRM driver with VOP, VOP2, eDP, DP, HDMI, HDMI QP,
MIPI DSI and MIPI DSI2 support, the Rocket NPU driver, the Samsung
HDPTX and DCPHY and the Innosilicon CSI DPHY, the RKVDEC and RGA V4L2
drivers, the Synopsys HDMI receiver, the I2S, I2S/TDM and S/PDIF ASoC
drivers and the DFI DDR monitor, so that every device in the rk3588
device tree has its driver available.
The DFI DDR monitor is a devfreq event driver, so PM_DEVFREQ_EVENT is
set in the target configuration, which is what lets the driver build as
a module and be installed on a released image. The remaining new
symbols are recorded as disabled defaults in the generic configuration,
where a kernel module package can enable the one it needs. The per-SoC
V4L2 mem2mem drivers go there as well: they have no recorded value
anywhere, so kconfig stops to ask for them on any target whose ARCH
symbol matches once kmod-video-mem2mem opens the mem2mem menu.
The DRM driver and the HDMI PHY are marked for /etc/modules-boot.d, as
procd loads those before preinit runs. Loaded from /etc/modules.d
instead, /dev/dri stays empty until the overlay is mounted, which on a
Rock 5B is several seconds in and too late for anything drawing to the
screen during boot.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Register LED triggers for each SFP cage representing module state:
- present: the module is detected.
- los: loss of signal, using the module's own declared polarity. I
split that logic out of the link check into sfp_los_asserted() so
both use the same code.
- tx-fault: the state machine reports a transmit fault (init fault,
fault, re-init, or persistently disabled).
- error: the module is in error, covering an unreadable EEPROM or I2C
failure, an unsupported module, or a failed power-up, plus the
failed-PHY state.
- fault: either tx-fault or error.
Refresh target patches affected by the generic addition.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Add a per-PI fault LED trigger to the PSE core, an interrupts
property to the Si3474 binding, and INTb handling to the Si3474
driver. Over-current events latch a fault state that the driver
reports as FAULT, which lights the fault trigger. Power good and
power enable changes update the delivering and enabled triggers
without waiting for a regulator operation.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Package kernel driver for the Hynitron CST816x touch sensor, found on
ST7789V-based 240x240 px MIPI-DBI display of the Adtran SmartRG SDG-9000.
Import pending patches improving the driver.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Backport 12 upstream fixes for the ST LED1202 driver to backport-6.12:
894-01 leds: st1202: Check for error code from devm_mutex_init() call
894-02 leds: st1202: Refactor st1202_led_set() to use !! operator for
boolean conversion
894-03 leds: leds-st1202: Initialize hardware before DT node child
operations
894-04 leds: leds-st1202: Spacing and proofreading editing
894-05 leds: st1202: Stop pattern sequence before reprogramming
894-06 leds: st1202: Validate pattern input before stopping the
sequence
894-07 leds: st1202: Fix pattern duration prescaler and
pattern_clear skip marker
894-08 leds: st1202: Set all pattern PWM slots to full after
clearing pattern
894-09 leds: st1202: Fix spurious pattern sequence start in setup
894-10 leds: st1202: Fix brightness having no effect while pattern
mode is active
894-11 leds: st1202: Disable channel when brightness is set to zero
894-12 leds: st1202: Validate LED reg property against channel count
894-01 through 894-04 landed in v6.15; 894-05 through 894-12 were
merged for v7.3 and are now also in stable 6.18.52 and 6.18.53, so
none of these are needed for backport-6.18.
Assisted-by: LLM
Signed-off-by: Manuel Fombuena <fombuena@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/23455
Signed-off-by: Robert Marko <robimarko@gmail.com>
qcom_spi_ecc_init_ctx_pipelined() installs the ooblayout but never
publishes the ECC context it allocates, and the cleanup path frees that
context without clearing snandc->qspi->ecc. The ooblayout callbacks then
run against a stale pointer.
On IPQ5018 the qcom,smem-part parser makes the first spi-nand probe
defer, so the retry computes the OOB layout from the freed context and
spinand_init() aborts with -512. About half of the boots on a Mercusys
MR80X ended in "Waiting for root device /dev/ubiblock0_1".
Accepted upstream for v7.4 as f94c9b68bb5f, tagged for stable.
Signed-off-by: Johan Alvarado <contact@c127.dev>
Link: https://github.com/openwrt/openwrt/pull/24919
Signed-off-by: Robert Marko <robimarko@gmail.com>
All of the mux kmods depend on CONFIG_MULTIPLEXER being set, however its
currently tristate but with no user visible name so its not selectable by
passing it .config.
It can only be selected by other symbols, so when you select for example
GPIO mux kmod in reality nothing is built unless your target already
selects CONFIG_MULTIPLEXER by accident or ALL_KMODS is used.
So, as a workaround since it still works fine as tristate, simply add a
patch that makes it visible and thus user selectable.
Signed-off-by: Robert Marko <robert.marko@sartura.hr>
The powerpc kernel of the WD My Book Live differs between builds. The
difference sits in the vDSO, which the kernel embeds with its debug
information as vdso32.so.dbg:
-GNU C11 14.4.0 ... -mstack-protector-guard=tls -mstack-protector-guard-reg=r2 -mstack-protector-guard-offset=872 -m32 -g -O2 ...
+GNU C11 14.4.0 ... -m32 -g -O2 ...
stack_protector_prepare appends these flags to KBUILD_CFLAGS with $(eval)
from its recipe, while vdso_prepare builds the vDSO from a sibling
prerequisite of prepare. Nothing orders the two, so whether the flags
end up in DW_AT_producer depends on the order in which make starts them.
Add a pending patch that makes vdso_prepare depend on
stack_protector_prepare.
Link: https://github.com/openwrt/openwrt/pull/25429
Signed-off-by: Paul Spooren <mail@aparcar.org>
This patch is meant for platforms without OF and only for ARM SoCs. All
ARM stuff has OF. Removes warnings like:
b53-srab-switch b53-srab-switch: error -EINVAL: invalid resource (null)
b53-srab-switch b53-srab-switch: probe with driver b53-srab-switch failed with error -22
On platforms using b53.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/25420
Signed-off-by: Jonas Jelonek <jonas@jonasjelonek.de>
The DRM and fb kmods are about to lose their target feature gate, so
they become selectable on targets whose kernel config has never had
CONFIG_DRM set. Enabling DRM there makes symbols visible that no
fragment answers, and syncconfig stops to ask about them, which fails
a non-interactive build.
Answer them in the generic config: the default DRM client, which
appears once a client is built, the NXP display bridges that ARCH_MXC
exposes, and the Acer Aspire 1 embedded controller.
The set was taken by merging each target's fragments with the kmods'
KCONFIG and recording every symbol the kernel's own oldconfig marks
NEW, on layerscape/armv7, qualcommbe/ipq95xx, mediatek/filogic and
ramips/mt7621, which covers arm, arm64 and mips.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
The Mercusys MA530 dongle (2c4e:0115) is a Realtek RTL8761BUV, but the
6.18 btusb quirks table does not list the ID, so the controller comes up
without its firmware patch: HCI works, yet LE discovery never reports a
single device. Backport the v7.2 commit that adds the ID with the
Realtek and wideband speech flags.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
If SGMII with in-band is used on MX86211C then 2.5G will be missing.
Solve it by backporting upstream switch to gpy21x_config_init that also
advertises 2500Base-X.
Signed-off-by: Robert Marko <robert.marko@sartura.hr>
phylink_bringup_phy() stores the PHY in pl->phydev before its last
step that can fail. If that step fails, the pointer outlives the
failed connect: a later phylink_connect_phy() gets a permanent -EBUSY,
the SFP path is left with a pointer to a freed phy_device, and a
disconnect detaches the same PHY twice. The fix publishes the pointer
only after the last call that can fail.
It is also the base the pending phylink late-PHY series relies on:
retrying a connect after a failed bringup is what makes this window
reachable.
The fix is in net:
https://git.kernel.org/netdev/net/c/a940003f44e7
The phylink patches that apply on top of it are refreshed for hunk
offsets.
Assisted-by: LLM
Signed-off-by: Aleksei Sviridkin <f@lex.la>
Link: https://github.com/openwrt/openwrt/pull/25459
Signed-off-by: Jonas Jelonek <jonas@jonasjelonek.de>
Rework 711-04-net-dsa-qca8k-no-program-unicast-host-FDB-entries.patch:
host FDB adds on CPU ports are skipped, relying on unknown-unicast
flooding to deliver host-bound frames to the CPU. That assumption
breaks when a station roams from a wired user port onto an interface
behind the CPU (wireless AP and WDS setups): a stale dynamically
learned ATU entry still points at the old user port, so downstream
frames hit it and are dropped by same-port filtering instead of being
flooded to the CPU. With CPU-port hardware learning disabled (assisted
learning), nothing ever corrects the entry - clients roaming onto the
device stay blackholed while the device itself stays reachable.
Purge any dynamically learned ATU entry for {addr, vid} when the host
add is skipped, so the address becomes unknown unicast again - exactly
the delivery mechanism the skip relies on. Static entries are left
untouched, and the companion skip in qca8k_port_fdb_del is kept so
host address removal does not purge legitimately learned entries.
Also refresh ipq40xx's 706 patch for the shifted hunk offsets.
Tested on IPQ4019 (Google WiFi APs): stale entries are purged at
association time and roaming recovers instantly.
Fixes: 9716066e80 ("kernel: add qualcommax patches to generic")
Signed-off-by: Brandon Mahdavi <brandon.mahdavi@mahcom.com>
Link: https://github.com/openwrt/openwrt/pull/24162
Signed-off-by: Jonas Jelonek <jonas@jonasjelonek.de>
Backport upstream commit 1c1a342aceec ("mtd: spinand: Do not update
the QE bit on devices without one") to OpenWrt's Linux 6.18 series.
On the Winbond W25N02KV, configuration register bit 0 is H-DIS, not
a QE bit. Clearing it can enable HOLD and cause flash commands to stall.
On the JioRouter JIDU6401, this caused sysupgrade failures and a
subsequent warm reboot hang in BL2.
Upstream commit:
https://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux.git/commit/?id=1c1a342aceec79528b3ba51f376eca2be5928fe7
Validation:
- Patch prepared and refreshed against OpenWrt Linux 6.18.52.
- `target/linux/compile` passed for mediatek/filogic.
- The upstream patch reports successful sysupgrade and warm reboot on
JioRouter JIDU6401 with W25N02KV.
Signed-off-by: Sagnik Sasmal <sagnik@sagnik.me>
Link: https://github.com/openwrt/openwrt/pull/25428
Signed-off-by: Robert Marko <robimarko@gmail.com>
These patches were generated from:
https://github.com/raspberrypi/linux/commits/rpi-6.18.y
Patches were generated from the diff between linux kernel branch linux-6.18.y
and rpi-6.18.y from raspberry pi kernel source:
git format-patch -N linux-6.18.y..rpi-6.18.y (HEAD)
(HEAD -> 4bb240615790ea5bd939484f4595b6952ac94ef4) as of 20260917
"Commit: media/hevc_d: Do not reject slice header with bad ref_idx entries"
Exceptions:
- github workflow patches
- applied and reverted patches
- README patches
- (def)configs
- patches merged upstream
Patches refreshed against current OpenWrt-kernel.
Previously, exporting patches from rpi-6.18.y via 'git format-patch' missed
content whenever the branch had merged commits from mainline, because
format-patch does not linearize merge history. The final patch in the series
(manual fixup-patch) restored that missing content (e.g.
mmc_card_working_sd_cq() in drivers/mmc/core/card.h) after each export.
This cycle, the patches touching the affected merge points were adjusted
around those points so that the full diff is captured directly by the
regular format-patch export - the content that the fixup-patch used to
reintroduce is now already present in the reworked series. A diff against
the upstream rpi-6.18.y tree confirms no delta remains, so the fixup is no
longer required and has been dropped.
Note: a normal 'quilt refresh' across the series still shifts hunk
offsets/context in unrelated patches as usual; that's expected housekeeping
and is unrelated to the merge-commit gap this fixup was compensating for.
Add the new CONFIG_CLK_HOG symbol, disabled by default, to
the generic config.
Fixes: https://github.com/openwrt/openwrt/issues/24951
Signed-off-by: Joshua Covington <joshuacov@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/25243
Signed-off-by: Jonas Jelonek <jonas@jonasjelonek.de>
Kernel modules from the packages feed differ between builds on 6.18,
e.g. kmod-v4l2loopback, kmod-jool-netfilter, kmod-pf-ring and
kmod-usb-serial-dmx_usb_module:
-/builder/shared-workdir/build/build_dir/.../linux-6.18.52/include/linux/ucopysize.h
+/tmp/rebuilderd-openwrt.Xebb8P/src/build_dir/.../linux-6.18.52/include/linux/ucopysize.h
These packages call make -C $(LINUX_DIR) M=... without
KERNEL_MAKE_FLAGS, so they get none of the OpenWrt prefix maps. With
6.12 that did not matter, since srctree stayed "." and the kernel
headers were included by a relative path. Since 6.13 srctree holds the
absolute path of the kernel tree for external modules, while kbuild
only maps srcroot, the module directory.
Add a pending patch that maps the kernel tree for external modules too.
It is added before the map of srcroot and before KCFLAGS, and GCC uses
the last matching map, so modules built through KERNEL_MAKE_FLAGS keep
their current output.
Link: https://github.com/openwrt/openwrt/pull/25356
Signed-off-by: Paul Spooren <mail@aparcar.org>
Since b69bb476dee9 ("cgroup: fix race between fork and cgroup.kill") the
fork path snapshots kill_seq in cgroup_css_set_fork() before the
CLONE_INTO_CGROUP target has been resolved, so it always records the
forking task's own cgroup while cgroup_post_fork() reads the target's
and compares the two. Once cgroup.kill has been written to a cgroup,
every child later cloned out of it into another cgroup is SIGKILLed
before it runs a single instruction, for as long as that cgroup exists.
This breaks re-creating an OCI container under procd, whose service
supervisor kills the instance cgroup on exit and leaves it in place: the
container init ujail clones with CLONE_INTO_CGROUP is killed at birth and
the create fails with no diagnostic. The fix is in mainline from v7.3-rc2
and carries Cc: stable, so it is expected to reach 6.18.y with a future
stable release, at which point this patch can be dropped.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
The Quectel EG120K-EA (LTE Cat.12) reports USB ID 2c7c:030b and exposes
its QMI/RMNET function on a vendor-specific ff/ff/ff interface. The same
product ID is already known to the option driver as EM060K, which claims
the serial interfaces, but without a qmi_wwan entry the data interface is
left unbound and no cdc-wdm node appears.
Add the device using QMI_MATCH_FF_FF_FF so the DTR quirk is applied.
Tested on a GL.iNet GL-X2000, where the modem enumerates at SuperSpeed and
now brings up cdc-wdm0 and wwan0. A data session over MEO (268-06) was
verified end to end.
Accepted upstream via netdev/net, so this is carried as a backport and can
be dropped once the kernel is bumped to 7.3 or later. Inserting it ahead of
the MeigLink hack shifts that patch's offsets, so
780-usb-net-MeigLink_modem_support.patch is refreshed as well.
Link: https://patch.msgid.link/20260921093426.2870266-1-gilbertorconde@gmail.com
Signed-off-by: Gilberto Conde <gilbertorconde@gmail.com>
The RTL8261C/D drive their LEDs through the same register block as the
RTL8221B, with four LEDs instead of three and two more speed bits. Wire
the callbacks to the RTL8261C_CG and RTL8261CE_CG entries so the 10G
ports of the Gemtek W1700K can be driven from the netdev trigger instead
of coming up dark.
Submitted upstream in the same series as the SerDes lane polarity patch.
Apply it ahead of the out-of-tree
742-net-phy-realtek-add-5G-and-10G-PHY-support.patch as well, so it too
can be carried exactly as submitted. 742's realtek_drvs[] hunk is rebased
on top of it, which only moves its leading context.
Refresh out-of-tree patches in realtek target.
Assisted-by: Claude:claude-opus-5
Signed-off-by: Simon Polack <spolack+git@mailbox.org>
Link: https://github.com/openwrt/openwrt/pull/25092
Signed-off-by: Jonas Jelonek <jonas@jonasjelonek.de>
The Gemtek W1700K routes the USXGMII lanes between the AN7581 and its
RTL8261CE inverted and describes that in the device tree, but nothing in
the RTL8261C/D driver reads tx-polarity/rx-polarity and the Airoha PCS
has no polarity handling of its own. The copper side negotiates normally
while the SerDes never trains and the netdev stays NO-CARRIER.
Add a read and a read-modify-write helper for the VEND1 SerDes command
window and program the lane polarity from rtl8261x_config_init().
Submitted upstream as part of a series documenting the RTL8261C/D device
tree bindings and adding SerDes lane polarity and LED support.
Apply it ahead of the out-of-tree
742-net-phy-realtek-add-5G-and-10G-PHY-support.patch so it can be carried
exactly as submitted. 742 drops its own select PHY_COMMON_PROPS and its
phy-common-props.h include, as both come from here now. Once accepted
upstream this patch only moves to backports, so they stay dropped.
Refresh out-of-tree patches in realtek target.
Assisted-by: Claude:claude-opus-5
Signed-off-by: Simon Polack <spolack+git@mailbox.org>
Link: https://github.com/openwrt/openwrt/pull/25092
Signed-off-by: Jonas Jelonek <jonas@jonasjelonek.de>
Backport support for the Realtek RTL8261CE_CG (PHY ID 0x001cc899),
merged for v7.4. It shares the sub-PHY-ID and the firmware with the
RTL8261C_CG.
ca44c21fc117 ("net: phy: realtek: add support for RTL8261CE_CG")
Parts reporting this PHY ID fall through to the generic Clause 45
driver. Both 10G ports of the Gemtek W1700K carry one and never come up.
The patch applies before the out-of-tree
742-net-phy-realtek-add-5G-and-10G-PHY-support.patch, which is where the
RTL_8261N/RTL_8264/RTL_8264B context around the new define comes from, so
742 gains the RTL_8261CE_CG define as context.
Refresh various out-of-tree patches in generic and realtek target.
Assisted-by: Claude:claude-opus-5
Signed-off-by: Simon Polack <spolack+git@mailbox.org>
Link: https://github.com/openwrt/openwrt/pull/25092
Signed-off-by: Jonas Jelonek <jonas@jonasjelonek.de>
Backport the upstream series adding support for the Realtek RTL8261C_CG
(PHY ID 0x001cc898) and RTL8261D 10Gbps PHYs, merged for v7.3 as
"add-support-for-rtl8261c-d".
Both parts share the PHY ID and are told apart by a sub-PHY-ID read from
the vendor extension page (0x00 for the RTL8261C, 0x81 for the RTL8261D).
The RTL8261C loads rtl_nic/rtl8261c.bin, the RTL8261D needs no firmware.
Two Clause 45 helpers the driver depends on are backported along with it.
3b63c19e64f8 ("net: phy: c45: add genphy_c45_pma_soft_reset()")
d7722c03089e ("net: phy: c45: add setup and read master/slave helpers")
b772b5ae4537 ("net: phy: realtek: add support for RTL8261C_CG")
a04171a1cf32 ("net: phy: realtek: load firmware for RTL8261C_CG")
f0667918d5fc ("net: phy: realtek: add support for RTL8261D")
Refresh various out-of-tree patches in generic and realtek target.
Assisted-by: Claude:claude-opus-5
Signed-off-by: Simon Polack <spolack+git@mailbox.org>
Link: https://github.com/openwrt/openwrt/pull/25092
Signed-off-by: Jonas Jelonek <jonas@jonasjelonek.de>