From: Pieter Van Trappen <pieter.van.trappen@xxxxxxx> Add WoL support for KSZ8795 family of switches. This code was tested with a KSZ8794 chip. Strongly based on existing KSZ9477 code which has now been moved to ksz_common instead of duplicating, as proposed during the review of the v1 version of this patch. In addition to the device-tree addition and the actual code, there's two additional patches that fix some bugs found when further testing DSA with this KSZ8794 chip. Signed-off-by: Pieter Van Trappen <pieter.van.trappen@xxxxxxx> --- v6: - patch 6/6: use GENMASK macro in dedicated mask macro instead of inline v5: https://lore.kernel.org/netdev/20240812153015.653044-1-vtpieter@xxxxxxxxx/ - patch 5/6: split off DSA tag_ksz fix to separate patch 6/6 v4: https://lore.kernel.org/netdev/20240812084945.578993-1-vtpieter@xxxxxxxxx/ - patch 4/5: rename KSZ8795* macros to KSZ87XX* - patch 5/5: rename ksz8_dev_ops to ksz88x3_dev_ops - patch 5/5: additional DSA tag_ksz fix v3: https://lore.kernel.org/netdev/20240806132606.1438953-1-vtpieter@xxxxxxxxx/ - ensure each patch separately compiles & works - additional return value checks where possible - drop v2 patch 5/5 (net: dsa: microchip: check erratum workaround through indirect register read) - add new patch 5/5 that fixes KSZ87xx bugs wrt datasheet v2: https://lore.kernel.org/netdev/20240731103403.407818-1-vtpieter@xxxxxxxxx/ - generalize instead of duplicate, much improved - variable declaration reverse Christmas tree - ksz8_handle_global_errata: return -EIO in case of indirect write failure - ksz8_ind_read8/write8: document functions - ksz8_handle_wake_reason: no need for additional write to clear - fix wakeup_source origin comments v1: https://lore.kernel.org/netdev/20240717193725.469192-1-vtpieter@xxxxxxxxx/ Pieter Van Trappen (6): dt-bindings: net: dsa: microchip: add microchip,pme-active-high flag net: dsa: microchip: move KSZ9477 WoL functions to ksz_common net: dsa: microchip: generalize KSZ9477 WoL functions at ksz_common net: dsa: microchip: add WoL support for KSZ87xx family net: dsa: microchip: fix KSZ87xx family structure wrt the datasheet net: dsa: microchip: fix tag_ksz egress mask for KSZ8795 family .../bindings/net/dsa/microchip,ksz.yaml | 5 + drivers/net/dsa/microchip/ksz8.h | 3 + drivers/net/dsa/microchip/ksz8795.c | 94 +++++- drivers/net/dsa/microchip/ksz9477.c | 197 +------------ drivers/net/dsa/microchip/ksz9477.h | 5 - drivers/net/dsa/microchip/ksz9477_reg.h | 12 - drivers/net/dsa/microchip/ksz_common.c | 271 ++++++++++++++++-- drivers/net/dsa/microchip/ksz_common.h | 31 +- net/dsa/tag_ksz.c | 6 +- 9 files changed, 391 insertions(+), 233 deletions(-) base-commit: dd1bf9f9df156b43e5122f90d97ac3f59a1a5621 -- 2.43.0