diff options
author | Vladimir Oltean <vladimir.oltean@nxp.com> | 2023-09-22 15:31:05 +0200 |
---|---|---|
committer | Paolo Abeni <pabeni@redhat.com> | 2023-10-03 13:51:02 +0200 |
commit | 6715042cd112e1db971583e2eed89b90d6f9b139 (patch) | |
tree | c3efbceff7412366eb5ebb17c9cbaaf782ffda30 /include/net/dsa.h | |
parent | net: dsa: propagate extack to ds->ops->port_hsr_join() (diff) | |
download | linux-6715042cd112e1db971583e2eed89b90d6f9b139.tar.xz linux-6715042cd112e1db971583e2eed89b90d6f9b139.zip |
net: dsa: notify drivers of MAC address changes on user ports
In some cases, drivers may need to veto the changing of a MAC address on
a user port. Such is the case with KSZ9477 when it offloads a HSR device,
because it programs the MAC address of multiple ports to a shared
hardware register. Those ports need to have equal MAC addresses for the
lifetime of the HSR offload.
Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: Lukasz Majewski <lukma@denx.de>
Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com>
Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Diffstat (limited to 'include/net/dsa.h')
-rw-r--r-- | include/net/dsa.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/include/net/dsa.h b/include/net/dsa.h index 426724808e76..d98439ea6146 100644 --- a/include/net/dsa.h +++ b/include/net/dsa.h @@ -969,6 +969,16 @@ struct dsa_switch_ops { struct phy_device *phy); void (*port_disable)(struct dsa_switch *ds, int port); + + /* + * Notification for MAC address changes on user ports. Drivers can + * currently only veto operations. They should not use the method to + * program the hardware, since the operation is not rolled back in case + * of other errors. + */ + int (*port_set_mac_address)(struct dsa_switch *ds, int port, + const unsigned char *addr); + /* * Compatibility between device trees defining multiple CPU ports and * drivers which are not OK to use by default the numerically smallest |