hellcreek.c (4a8e4640ddd1e18cade9f15e40f2d8cd65f173cf) | hellcreek.c (d3eed0e57d5d1bcbf1bd60f83a4adfe7d7b8dd9c) |
---|---|
1// SPDX-License-Identifier: (GPL-2.0 or MIT) 2/* 3 * DSA driver for: 4 * Hirschmann Hellcreek TSN switch. 5 * 6 * Copyright (C) 2019-2021 Linutronix GmbH 7 * Author Kurt Kanzenbach <kurt@linutronix.de> 8 */ --- 660 unchanged lines hidden (view full) --- 669 if (flags.mask & BR_MCAST_FLOOD) 670 hellcreek_port_set_mcast_flood(hellcreek, port, 671 !!(flags.val & BR_MCAST_FLOOD)); 672 673 return 0; 674} 675 676static int hellcreek_port_bridge_join(struct dsa_switch *ds, int port, | 1// SPDX-License-Identifier: (GPL-2.0 or MIT) 2/* 3 * DSA driver for: 4 * Hirschmann Hellcreek TSN switch. 5 * 6 * Copyright (C) 2019-2021 Linutronix GmbH 7 * Author Kurt Kanzenbach <kurt@linutronix.de> 8 */ --- 660 unchanged lines hidden (view full) --- 669 if (flags.mask & BR_MCAST_FLOOD) 670 hellcreek_port_set_mcast_flood(hellcreek, port, 671 !!(flags.val & BR_MCAST_FLOOD)); 672 673 return 0; 674} 675 676static int hellcreek_port_bridge_join(struct dsa_switch *ds, int port, |
677 struct net_device *br) | 677 struct dsa_bridge bridge) |
678{ 679 struct hellcreek *hellcreek = ds->priv; 680 681 dev_dbg(hellcreek->dev, "Port %d joins a bridge\n", port); 682 683 /* When joining a vlan_filtering bridge, keep the switch VLAN aware */ 684 if (!ds->vlan_filtering) 685 hellcreek_setup_vlan_awareness(hellcreek, false); 686 687 /* Drop private vlans */ 688 hellcreek_setup_vlan_membership(ds, port, false); 689 690 return 0; 691} 692 693static void hellcreek_port_bridge_leave(struct dsa_switch *ds, int port, | 678{ 679 struct hellcreek *hellcreek = ds->priv; 680 681 dev_dbg(hellcreek->dev, "Port %d joins a bridge\n", port); 682 683 /* When joining a vlan_filtering bridge, keep the switch VLAN aware */ 684 if (!ds->vlan_filtering) 685 hellcreek_setup_vlan_awareness(hellcreek, false); 686 687 /* Drop private vlans */ 688 hellcreek_setup_vlan_membership(ds, port, false); 689 690 return 0; 691} 692 693static void hellcreek_port_bridge_leave(struct dsa_switch *ds, int port, |
694 struct net_device *br) | 694 struct dsa_bridge bridge) |
695{ 696 struct hellcreek *hellcreek = ds->priv; 697 698 dev_dbg(hellcreek->dev, "Port %d leaves a bridge\n", port); 699 700 /* Enable VLAN awareness */ 701 hellcreek_setup_vlan_awareness(hellcreek, true); 702 --- 1272 unchanged lines hidden --- | 695{ 696 struct hellcreek *hellcreek = ds->priv; 697 698 dev_dbg(hellcreek->dev, "Port %d leaves a bridge\n", port); 699 700 /* Enable VLAN awareness */ 701 hellcreek_setup_vlan_awareness(hellcreek, true); 702 --- 1272 unchanged lines hidden --- |