port.c (56435d9145f5b97decca66244d2049e2d5e4616d) port.c (18596f504a3e56c4f8e132b2a437cbe23a3f4635)
1// SPDX-License-Identifier: GPL-2.0-or-later
2/*
3 * Handling of a single switch port
4 *
5 * Copyright (c) 2017 Savoir-faire Linux Inc.
6 * Vivien Didelot <vivien.didelot@savoirfairelinux.com>
7 */
8

--- 854 unchanged lines hidden (view full) ---

863 return ret;
864
865 ret = phy_ethtool_get_sset_count(phydev);
866 put_device(&phydev->mdio.dev);
867
868 return ret;
869}
870EXPORT_SYMBOL_GPL(dsa_port_get_phy_sset_count);
1// SPDX-License-Identifier: GPL-2.0-or-later
2/*
3 * Handling of a single switch port
4 *
5 * Copyright (c) 2017 Savoir-faire Linux Inc.
6 * Vivien Didelot <vivien.didelot@savoirfairelinux.com>
7 */
8

--- 854 unchanged lines hidden (view full) ---

863 return ret;
864
865 ret = phy_ethtool_get_sset_count(phydev);
866 put_device(&phydev->mdio.dev);
867
868 return ret;
869}
870EXPORT_SYMBOL_GPL(dsa_port_get_phy_sset_count);
871
872int dsa_port_hsr_join(struct dsa_port *dp, struct net_device *hsr)
873{
874 struct dsa_notifier_hsr_info info = {
875 .sw_index = dp->ds->index,
876 .port = dp->index,
877 .hsr = hsr,
878 };
879 int err;
880
881 dp->hsr_dev = hsr;
882
883 err = dsa_port_notify(dp, DSA_NOTIFIER_HSR_JOIN, &info);
884 if (err)
885 dp->hsr_dev = NULL;
886
887 return err;
888}
889
890void dsa_port_hsr_leave(struct dsa_port *dp, struct net_device *hsr)
891{
892 struct dsa_notifier_hsr_info info = {
893 .sw_index = dp->ds->index,
894 .port = dp->index,
895 .hsr = hsr,
896 };
897 int err;
898
899 dp->hsr_dev = NULL;
900
901 err = dsa_port_notify(dp, DSA_NOTIFIER_HSR_LEAVE, &info);
902 if (err)
903 pr_err("DSA: failed to notify DSA_NOTIFIER_HSR_LEAVE\n");
904}