diff options
author | Russell King (Oracle) <rmk+kernel@armlinux.org.uk> | 2024-04-10 22:42:43 +0300 |
---|---|---|
committer | Jakub Kicinski <kuba@kernel.org> | 2024-04-12 06:01:14 +0300 |
commit | cae425cb43feddd9fd62fc1b25567f9463da4915 (patch) | |
tree | 7643586e81d8d0f28eca234df0cae6bb8b7aebb6 /include/net | |
parent | dd0c9855b41310470086500c9963bbb64bb90dd0 (diff) | |
download | linux-cae425cb43feddd9fd62fc1b25567f9463da4915.tar.xz |
net: dsa: allow DSA switch drivers to provide their own phylink mac ops
Rather than having a shim for each and every phylink MAC operation,
allow DSA switch drivers to provide their own ops structure. When a
DSA driver provides the phylink MAC operations, the shimmed ops must
not be provided, so fail an attempt to register a switch with both
the phylink_mac_ops in struct dsa_switch and the phylink_mac_*
operations populated in dsa_switch_ops populated.
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Reviewed-by: Vladimir Oltean <olteanv@gmail.com>
Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com>
Link: https://lore.kernel.org/r/E1rudqF-006K9H-Cc@rmk-PC.armlinux.org.uk
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'include/net')
-rw-r--r-- | include/net/dsa.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/include/net/dsa.h b/include/net/dsa.h index f228b479a5fd..7edfd8de8882 100644 --- a/include/net/dsa.h +++ b/include/net/dsa.h @@ -458,6 +458,11 @@ struct dsa_switch { const struct dsa_switch_ops *ops; /* + * Allow a DSA switch driver to override the phylink MAC ops + */ + const struct phylink_mac_ops *phylink_mac_ops; + + /* * User mii_bus and devices for the individual ports. */ u32 phys_mii_mask; |