Lines Matching refs:vlan

32 #define MT7628_ESW_REG_VLANI(vlan) (0x50 + 4 * ((vlan) / 2))  argument
33 #define MT7628_ESW_REG_VMSC(vlan) (0x70 + 4 * ((vlan) / 4)) argument
34 #define MT7628_ESW_REG_VUB(vlan) (0x100 + 4 * ((vlan) / 4)) argument
63 #define MT7628_ESW_VID_SHIFT(vlan) \ argument
64 (MT7628_ESW_VID_S * ((vlan) % 2))
65 #define MT7628_ESW_VID_MASK(vlan) \ argument
66 (MT7628_ESW_VID_M << MT7628_ESW_VID_SHIFT(vlan))
67 #define MT7628_ESW_VID_PREP(vlan, vid) \ argument
68 (((vid) & MT7628_ESW_VID_M) << MT7628_ESW_VID_SHIFT(vlan))
72 #define MT7628_ESW_VMSC_SHIFT(vlan) \ argument
73 (MT7628_ESW_VMSC_S * ((vlan) % 4))
74 #define MT7628_ESW_VMSC_MASK(vlan) \ argument
75 (MT7628_ESW_VMSC_M << MT7628_ESW_VMSC_SHIFT(vlan))
76 #define MT7628_ESW_VMSC_PREP(vlan, vmsc) \ argument
77 (((vmsc) & MT7628_ESW_VMSC_M) << MT7628_ESW_VMSC_SHIFT(vlan))
81 #define MT7628_ESW_VUB_SHIFT(vlan) \ argument
82 (MT7628_ESW_VUB_S * ((vlan) % 4))
83 #define MT7628_ESW_VUB_MASK(vlan) \ argument
84 (MT7628_ESW_VUB_M << MT7628_ESW_VUB_SHIFT(vlan))
85 #define MT7628_ESW_VUB_PREP(vlan, vub) \ argument
86 (((vub) & MT7628_ESW_VUB_M) << MT7628_ESW_VUB_SHIFT(vlan))
362 static void mt7628_esw_set_vlan_id(struct mt7628_esw *esw, unsigned int vlan, in mt7628_esw_set_vlan_id() argument
365 regmap_update_bits(esw->regmap, MT7628_ESW_REG_VLANI(vlan), in mt7628_esw_set_vlan_id()
366 MT7628_ESW_VID_MASK(vlan), in mt7628_esw_set_vlan_id()
367 MT7628_ESW_VID_PREP(vlan, vid)); in mt7628_esw_set_vlan_id()
370 static void mt7628_esw_set_vmsc(struct mt7628_esw *esw, unsigned int vlan, in mt7628_esw_set_vmsc() argument
373 regmap_update_bits(esw->regmap, MT7628_ESW_REG_VMSC(vlan), in mt7628_esw_set_vmsc()
374 MT7628_ESW_VMSC_MASK(vlan), in mt7628_esw_set_vmsc()
375 MT7628_ESW_VMSC_PREP(vlan, msc)); in mt7628_esw_set_vmsc()
378 static void mt7628_esw_set_vub(struct mt7628_esw *esw, unsigned int vlan, in mt7628_esw_set_vub() argument
381 regmap_update_bits(esw->regmap, MT7628_ESW_REG_VUB(vlan), in mt7628_esw_set_vub()
382 MT7628_ESW_VUB_MASK(vlan), in mt7628_esw_set_vub()
383 MT7628_ESW_VUB_PREP(vlan, vub)); in mt7628_esw_set_vub()
392 struct mt7628_vlan *vlan = &esw->vlans[i]; in mt7628_vlan_sync() local
394 mt7628_esw_set_vmsc(esw, i, vlan->members); in mt7628_vlan_sync()
395 mt7628_esw_set_vlan_id(esw, i, vlan->vid); in mt7628_vlan_sync()
396 mt7628_esw_set_vub(esw, i, vlan->untag); in mt7628_vlan_sync()
483 struct mt7628_vlan *vlan = NULL; in mt7628_dsa_8021q_vlan_add() local
489 if (!check_vlan->active && !vlan) in mt7628_dsa_8021q_vlan_add()
490 vlan = check_vlan; in mt7628_dsa_8021q_vlan_add()
493 vlan = check_vlan; in mt7628_dsa_8021q_vlan_add()
498 if (!vlan) in mt7628_dsa_8021q_vlan_add()
501 vlan->vid = vid; in mt7628_dsa_8021q_vlan_add()
502 vlan->active = true; in mt7628_dsa_8021q_vlan_add()
503 vlan->members |= BIT(port); in mt7628_dsa_8021q_vlan_add()
509 vlan->untag |= BIT(port); in mt7628_dsa_8021q_vlan_add()
518 struct mt7628_vlan *vlan = NULL; in mt7628_dsa_8021q_vlan_del() local
526 vlan = check_vlan; in mt7628_dsa_8021q_vlan_del()
529 if (!vlan) in mt7628_dsa_8021q_vlan_del()
535 vlan->members &= ~BIT(port); in mt7628_dsa_8021q_vlan_del()
536 vlan->untag &= ~BIT(port); in mt7628_dsa_8021q_vlan_del()
538 if (!vlan->members) { in mt7628_dsa_8021q_vlan_del()
539 vlan->active = false; in mt7628_dsa_8021q_vlan_del()
540 vlan->vid = 0; in mt7628_dsa_8021q_vlan_del()