Lines Matching refs:vlan_table
150 static int get_vlan_table(struct dsa_switch *ds, u16 vid, u32 *vlan_table) in get_vlan_table() argument
167 ksz_read32(dev, REG_SW_VLAN_ENTRY__4, &vlan_table[0]); in get_vlan_table()
168 ksz_read32(dev, REG_SW_VLAN_ENTRY_UNTAG__4, &vlan_table[1]); in get_vlan_table()
169 ksz_read32(dev, REG_SW_VLAN_ENTRY_PORTS__4, &vlan_table[2]); in get_vlan_table()
179 static int set_vlan_table(struct dsa_switch *ds, u16 vid, u32 *vlan_table) in set_vlan_table() argument
186 ksz_write32(dev, REG_SW_VLAN_ENTRY__4, vlan_table[0]); in set_vlan_table()
187 ksz_write32(dev, REG_SW_VLAN_ENTRY_UNTAG__4, vlan_table[1]); in set_vlan_table()
188 ksz_write32(dev, REG_SW_VLAN_ENTRY_PORTS__4, vlan_table[2]); in set_vlan_table()
203 dev->vlan_cache[vid].table[0] = vlan_table[0]; in set_vlan_table()
204 dev->vlan_cache[vid].table[1] = vlan_table[1]; in set_vlan_table()
205 dev->vlan_cache[vid].table[2] = vlan_table[2]; in set_vlan_table()
370 dev->vlan_cache = devm_kcalloc(dev->dev, sizeof(struct vlan_table), in ksz_setup()
580 u32 vlan_table[3]; in ksz_port_vlan_add() local
585 if (get_vlan_table(ds, vid, vlan_table)) { in ksz_port_vlan_add()
590 vlan_table[0] = VLAN_VALID | (vid & VLAN_FID_M); in ksz_port_vlan_add()
592 vlan_table[1] |= BIT(port); in ksz_port_vlan_add()
594 vlan_table[1] &= ~BIT(port); in ksz_port_vlan_add()
595 vlan_table[1] &= ~(BIT(dev->cpu_port)); in ksz_port_vlan_add()
597 vlan_table[2] |= BIT(port) | BIT(dev->cpu_port); in ksz_port_vlan_add()
599 if (set_vlan_table(ds, vid, vlan_table)) { in ksz_port_vlan_add()
615 u32 vlan_table[3]; in ksz_port_vlan_del() local
623 if (get_vlan_table(ds, vid, vlan_table)) { in ksz_port_vlan_del()
628 vlan_table[2] &= ~BIT(port); in ksz_port_vlan_del()
634 vlan_table[1] &= ~BIT(port); in ksz_port_vlan_del()
636 if (set_vlan_table(ds, vid, vlan_table)) { in ksz_port_vlan_del()