Lines Matching refs:vid
722 u16 vid = interface->vid; in fm10k_uc_vlan_unsync() local
723 bool set = !!(vid / VLAN_N_VID); in fm10k_uc_vlan_unsync()
727 vid &= VLAN_N_VID - 1; in fm10k_uc_vlan_unsync()
729 err = hw->mac.ops.update_uc_addr(hw, glort, uc_addr, vid, set, 0); in fm10k_uc_vlan_unsync()
743 u16 vid = interface->vid; in fm10k_mc_vlan_unsync() local
744 bool set = !!(vid / VLAN_N_VID); in fm10k_mc_vlan_unsync()
748 vid &= VLAN_N_VID - 1; in fm10k_mc_vlan_unsync()
750 err = hw->mac.ops.update_mc_addr(hw, glort, mc_addr, vid, set); in fm10k_mc_vlan_unsync()
758 static int fm10k_update_vid(struct net_device *netdev, u16 vid, bool set) in fm10k_update_vid() argument
766 if (!vid) in fm10k_update_vid()
769 if (vid >= VLAN_N_VID) in fm10k_update_vid()
777 set_bit(vid, interface->active_vlans); in fm10k_update_vid()
779 clear_bit(vid, interface->active_vlans); in fm10k_update_vid()
784 u16 rx_vid = rx_ring->vid & (VLAN_N_VID - 1); in fm10k_update_vid()
787 rx_ring->vid |= FM10K_VLAN_CLEAR; in fm10k_update_vid()
789 rx_ring->vid &= ~FM10K_VLAN_CLEAR; in fm10k_update_vid()
793 if (!set && vid == hw->mac.default_vid) in fm10k_update_vid()
806 err = hw->mac.ops.update_vlan(hw, vid, 0, set); in fm10k_update_vid()
813 vid, set, 0); in fm10k_update_vid()
818 interface->vid = vid + (set ? VLAN_N_VID : 0); in fm10k_update_vid()
831 __always_unused __be16 proto, u16 vid) in fm10k_vlan_rx_add_vid() argument
834 return fm10k_update_vid(netdev, vid, true); in fm10k_vlan_rx_add_vid()
838 __always_unused __be16 proto, u16 vid) in fm10k_vlan_rx_kill_vid() argument
841 return fm10k_update_vid(netdev, vid, false); in fm10k_vlan_rx_kill_vid()
844 static u16 fm10k_find_next_vlan(struct fm10k_intfc *interface, u16 vid) in fm10k_find_next_vlan() argument
848 u16 vid_limit = vid < default_vid ? default_vid : VLAN_N_VID; in fm10k_find_next_vlan()
850 vid = find_next_bit(interface->active_vlans, vid_limit, ++vid); in fm10k_find_next_vlan()
852 return vid; in fm10k_find_next_vlan()
858 u32 vid, prev_vid; in fm10k_clear_unused_vlans() local
861 for (vid = 0, prev_vid = 0; in fm10k_clear_unused_vlans()
863 prev_vid = vid + 1, vid = fm10k_find_next_vlan(interface, vid)) { in fm10k_clear_unused_vlans()
864 if (prev_vid == vid) in fm10k_clear_unused_vlans()
868 prev_vid += (vid - prev_vid - 1) << FM10K_VLAN_LENGTH_SHIFT; in fm10k_clear_unused_vlans()
878 u16 vid, glort = interface->glort; in __fm10k_uc_sync() local
885 for (vid = hw->mac.default_vid ? fm10k_find_next_vlan(interface, 0) : 0; in __fm10k_uc_sync()
886 vid < VLAN_N_VID; in __fm10k_uc_sync()
887 vid = fm10k_find_next_vlan(interface, vid)) { in __fm10k_uc_sync()
889 vid, sync, 0); in __fm10k_uc_sync()
945 u16 vid, glort = interface->glort; in __fm10k_mc_sync() local
948 for (vid = hw->mac.default_vid ? fm10k_find_next_vlan(interface, 0) : 0; in __fm10k_mc_sync()
949 vid < VLAN_N_VID; in __fm10k_mc_sync()
950 vid = fm10k_find_next_vlan(interface, vid)) { in __fm10k_mc_sync()
951 hw->mac.ops.update_mc_addr(hw, glort, addr, vid, sync); in __fm10k_mc_sync()
1017 u16 vid, glort; in fm10k_restore_rx_state() local
1045 for (vid = hw->mac.default_vid ? fm10k_find_next_vlan(interface, 0) : 0; in fm10k_restore_rx_state()
1046 vid < VLAN_N_VID; in fm10k_restore_rx_state()
1047 vid = fm10k_find_next_vlan(interface, vid)) { in fm10k_restore_rx_state()
1048 hw->mac.ops.update_vlan(hw, vid, 0, true); in fm10k_restore_rx_state()
1050 vid, true, 0); in fm10k_restore_rx_state()