openwrt-pf/package/kernel
Ahmed Naseef c0e9507c32
econet: en7528: manage the on-die MT7530 switch with DSA
The EN7528 integrates an MT7530 Gigabit switch, memory-mapped in the SoC
register space like the built-in switches of the MediaTek MT7988 and
Airoha EN7581/AN7583 SoCs. Its chip revision register reads 0x7530, so
unlike those three it is a genuine MT7530 core rather than an MT7531
derivative.

Until now the out-of-tree econet-eth driver programmed it as a flat
"dumb switch" that simply bridged the four LAN ports together and
exposed them as a single eth0. Hand it to the upstream mt7530 DSA
driver instead, so the ports come up as managed user ports lan1-lan4.

 - Add an ID_EN7528 variant to the mt7530 driver, bound through the MMIO
   glue with the "econet,en7528-switch" compatible. It reuses
   mt7988_setup() and the indirect PHY accessors, but selects the CPU
   port through the MT7530-style MFC register rather than the MT7531 CFC
   one, and describes the CPU port as a fixed 1000FDX link to the SoC
   MAC. The LAN GPHYs advertise EEE, but negotiating it drops frames
   with some link partners, so the LPI capabilities are left empty and
   phylink keeps EEE off.

 - The frame engine and the switch are adjacent but separate blocks. The
   ethernet node used to describe a single 64K window covering both,
   which overlaps the switch node and makes the two drivers fight over
   the region. Size it to the frame engine alone (0x8000) and give the
   switch its own node, so both keep an exclusive claim:

     1fb50000-1fb57fff : 1fb50000.ethernet
     1fb58000-1fb5ffff : 1fb58000.switch

   The GSW reset moves to the switch node with it.

 - econet-eth acts as the DSA conduit. It derives from the size of its
   own register resource whether the window still covers the switch, and
   when it does not, skips the dumb-switch setup and the switch
   source-MAC write. The econet-eth driver now carries this support, so
   bump PKG_SOURCE_VERSION to pull it in. EN751221 and EN751627 keep
   the full window and are unaffected.

 - Enable the switch on the DASAN H660GM-A. The two variants share a
   board, but their sockets are not numbered the same way: LAN1 is
   switch port 1 on the Airtel unit and port 4 on the generic one, so
   the port labels are assigned per board .dts.

Signed-off-by: Ahmed Naseef <naseefkm@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/24199
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2026-07-31 09:35:13 +02:00
..
ath10k-ct kernel/ath10k: provide a virtual kmod 2025-12-31 18:16:48 +01:00
bcm27xx-gpu-fw bcm27xx-gpu-fw: update to 20260521 2026-07-07 08:48:42 +02:00
bcm63xx-cfe bcm63xx-cfe: install into image staging dir 2025-04-13 10:44:19 +02:00
bpf-headers bpf-headers: update to version 6.12 2025-11-27 14:31:30 +01:00
button-hotplug treewide: remove weird double void casting 2026-07-11 23:43:28 +02:00
cryptodev-linux cryptodev-linux: add backport to build for 6.18 2025-12-23 18:06:23 +01:00
econet-eth econet: en7528: manage the on-die MT7530 switch with DSA 2026-07-31 09:35:13 +02:00
gpio-button-hotplug gpio-button-hotplug: enable get_devtree_pdata everywhere 2026-07-25 22:53:20 +02:00
gpio-nct5104d package: gpio-nct5104d: adapt to kernel 6.18 2025-12-30 10:44:05 +01:00
lantiq lantiq: vrx518_ep: use module_pci_driver macro 2026-06-28 23:36:05 +02:00
leds-gca230718 treewide: remove usage of of_device.h 2026-06-10 09:03:11 +02:00
leds-ws2812b treewide: remove usage of of_device.h 2026-06-10 09:03:11 +02:00
linux kernel: modules: add kmod-hwmon-ina3221 2026-07-25 23:53:44 +02:00
mac80211 mac80211: mwifiex: replace one-element arrays with flexible array members 2026-07-28 20:21:31 +02:00
mt76 mt76: update to Git HEAD (2026-07-01) 2026-07-01 13:15:44 +02:00
mt7621-qtn-rgmii
mwlwifi mwlwifi: add patch series for kernel 6.18 compatibility 2026-04-06 16:03:37 +02:00
nat46 netfilter: remove nf-conntrack6 2026-01-21 22:42:20 +01:00
ntfs ntfs: update to 2026-05-03 2026-05-14 19:05:45 +02:00
r8101 kernel/r8169: provide a virtual kmod 2025-12-31 18:16:48 +01:00
r8125 kernel/r8169: provide a virtual kmod 2025-12-31 18:16:48 +01:00
r8126 kernel/r8169: provide a virtual kmod 2025-12-31 18:16:48 +01:00
r8127 kernel/r8169: provide a virtual kmod 2025-12-31 18:16:48 +01:00
r8168 kernel: r8168: update to v8.056.02 2026-05-14 21:19:22 +02:00
rtc-rv5c386a rtc-rv5c386a: fix build with kernel 6.12 2026-03-10 23:50:54 +01:00
rtl8812au-ct rtl8812au-ct: fix compilation with GCC 15 2026-06-27 11:45:04 +02:00
trelay trelay: use struct_size helper in allocation 2026-03-13 19:58:05 +01:00
ubnt-ledbar treewide: various fwnode conversions 2026-07-05 23:35:05 +02:00
ubootenv-nvram treewide: replace remove_new with remove 2026-01-03 17:27:25 +01:00