• Home
  • Raw
  • Download

Lines Matching refs:smi

16 int rtl8366_mc_is_used(struct realtek_smi *smi, int mc_index, int *used)  in rtl8366_mc_is_used()  argument
22 for (i = 0; i < smi->num_ports; i++) { in rtl8366_mc_is_used()
25 ret = smi->ops->get_mc_index(smi, i, &index); in rtl8366_mc_is_used()
39 int rtl8366_set_vlan(struct realtek_smi *smi, int vid, u32 member, in rtl8366_set_vlan() argument
47 ret = smi->ops->get_vlan_4k(smi, vid, &vlan4k); in rtl8366_set_vlan()
54 ret = smi->ops->set_vlan_4k(smi, &vlan4k); in rtl8366_set_vlan()
59 for (i = 0; i < smi->num_vlan_mc; i++) { in rtl8366_set_vlan()
62 ret = smi->ops->get_vlan_mc(smi, i, &vlanmc); in rtl8366_set_vlan()
72 ret = smi->ops->set_vlan_mc(smi, i, &vlanmc); in rtl8366_set_vlan()
81 int rtl8366_get_pvid(struct realtek_smi *smi, int port, int *val) in rtl8366_get_pvid() argument
87 ret = smi->ops->get_mc_index(smi, port, &index); in rtl8366_get_pvid()
91 ret = smi->ops->get_vlan_mc(smi, index, &vlanmc); in rtl8366_get_pvid()
100 int rtl8366_set_pvid(struct realtek_smi *smi, unsigned int port, in rtl8366_set_pvid() argument
109 for (i = 0; i < smi->num_vlan_mc; i++) { in rtl8366_set_pvid()
110 ret = smi->ops->get_vlan_mc(smi, i, &vlanmc); in rtl8366_set_pvid()
115 ret = smi->ops->set_vlan_mc(smi, i, &vlanmc); in rtl8366_set_pvid()
119 ret = smi->ops->set_mc_index(smi, port, i); in rtl8366_set_pvid()
125 for (i = 0; i < smi->num_vlan_mc; i++) { in rtl8366_set_pvid()
126 ret = smi->ops->get_vlan_mc(smi, i, &vlanmc); in rtl8366_set_pvid()
132 ret = smi->ops->get_vlan_4k(smi, vid, &vlan4k); in rtl8366_set_pvid()
140 ret = smi->ops->set_vlan_mc(smi, i, &vlanmc); in rtl8366_set_pvid()
144 ret = smi->ops->set_mc_index(smi, port, i); in rtl8366_set_pvid()
150 for (i = 0; i < smi->num_vlan_mc; i++) { in rtl8366_set_pvid()
153 ret = rtl8366_mc_is_used(smi, i, &used); in rtl8366_set_pvid()
159 ret = smi->ops->get_vlan_4k(smi, vid, &vlan4k); in rtl8366_set_pvid()
167 ret = smi->ops->set_vlan_mc(smi, i, &vlanmc); in rtl8366_set_pvid()
171 ret = smi->ops->set_mc_index(smi, port, i); in rtl8366_set_pvid()
176 dev_err(smi->dev, in rtl8366_set_pvid()
183 int rtl8366_enable_vlan4k(struct realtek_smi *smi, bool enable) in rtl8366_enable_vlan4k() argument
193 ret = smi->ops->enable_vlan(smi, true); in rtl8366_enable_vlan4k()
197 smi->vlan_enabled = true; in rtl8366_enable_vlan4k()
200 ret = smi->ops->enable_vlan4k(smi, enable); in rtl8366_enable_vlan4k()
204 smi->vlan4k_enabled = enable; in rtl8366_enable_vlan4k()
209 int rtl8366_enable_vlan(struct realtek_smi *smi, bool enable) in rtl8366_enable_vlan() argument
213 ret = smi->ops->enable_vlan(smi, enable); in rtl8366_enable_vlan()
217 smi->vlan_enabled = enable; in rtl8366_enable_vlan()
223 smi->vlan4k_enabled = false; in rtl8366_enable_vlan()
224 ret = smi->ops->enable_vlan4k(smi, false); in rtl8366_enable_vlan()
231 int rtl8366_reset_vlan(struct realtek_smi *smi) in rtl8366_reset_vlan() argument
237 rtl8366_enable_vlan(smi, false); in rtl8366_reset_vlan()
238 rtl8366_enable_vlan4k(smi, false); in rtl8366_reset_vlan()
246 for (i = 0; i < smi->num_vlan_mc; i++) { in rtl8366_reset_vlan()
247 ret = smi->ops->set_vlan_mc(smi, i, &vlanmc); in rtl8366_reset_vlan()
256 int rtl8366_init_vlan(struct realtek_smi *smi) in rtl8366_init_vlan() argument
261 ret = rtl8366_reset_vlan(smi); in rtl8366_init_vlan()
268 for (port = 0; port < smi->num_ports; port++) { in rtl8366_init_vlan()
271 if (port == smi->cpu_port) in rtl8366_init_vlan()
275 mask = GENMASK(smi->num_ports - 1, 0); in rtl8366_init_vlan()
280 mask = BIT(port) | BIT(smi->cpu_port); in rtl8366_init_vlan()
287 dev_info(smi->dev, "VLAN%d port mask for port %d, %08x\n", in rtl8366_init_vlan()
289 ret = rtl8366_set_vlan(smi, (port + 1), mask, mask, 0); in rtl8366_init_vlan()
293 dev_info(smi->dev, "VLAN%d port %d, PVID set to %d\n", in rtl8366_init_vlan()
295 ret = rtl8366_set_pvid(smi, port, (port + 1)); in rtl8366_init_vlan()
300 return rtl8366_enable_vlan(smi, true); in rtl8366_init_vlan()
306 struct realtek_smi *smi = ds->priv; in rtl8366_vlan_filtering() local
311 if (!smi->ops->is_vlan_valid(smi, port + 1)) in rtl8366_vlan_filtering()
314 dev_info(smi->dev, "%s filtering on port %d\n", in rtl8366_vlan_filtering()
322 ret = smi->ops->get_vlan_4k(smi, port + 1, &vlan4k); in rtl8366_vlan_filtering()
327 ret = rtl8366_set_vlan(smi, port + 1, in rtl8366_vlan_filtering()
341 struct realtek_smi *smi = ds->priv; in rtl8366_vlan_prepare() local
346 if (!smi->ops->is_vlan_valid(smi, vid)) in rtl8366_vlan_prepare()
349 dev_info(smi->dev, "prepare VLANs %04x..%04x\n", in rtl8366_vlan_prepare()
356 ret = rtl8366_enable_vlan4k(smi, true); in rtl8366_vlan_prepare()
369 struct realtek_smi *smi = ds->priv; in rtl8366_vlan_add() local
376 if (!smi->ops->is_vlan_valid(smi, vid)) in rtl8366_vlan_add()
379 dev_info(smi->dev, "add VLAN on port %d, %s, %s\n", in rtl8366_vlan_add()
385 dev_err(smi->dev, "port is DSA or CPU port\n"); in rtl8366_vlan_add()
390 dev_info(smi->dev, "add VLAN %04x\n", vid); in rtl8366_vlan_add()
399 ret = rtl8366_get_pvid(smi, port, &pvid_val); in rtl8366_vlan_add()
401 dev_err(smi->dev, "could not lookup PVID for port %d\n", in rtl8366_vlan_add()
406 ret = rtl8366_set_pvid(smi, port, vid); in rtl8366_vlan_add()
412 ret = rtl8366_set_vlan(smi, port, member, untag, 0); in rtl8366_vlan_add()
414 dev_err(smi->dev, in rtl8366_vlan_add()
423 struct realtek_smi *smi = ds->priv; in rtl8366_vlan_del() local
427 dev_info(smi->dev, "del VLAN on port %d\n", port); in rtl8366_vlan_del()
432 dev_info(smi->dev, "del VLAN %04x\n", vid); in rtl8366_vlan_del()
434 for (i = 0; i < smi->num_vlan_mc; i++) { in rtl8366_vlan_del()
437 ret = smi->ops->get_vlan_mc(smi, i, &vlanmc); in rtl8366_vlan_del()
449 ret = smi->ops->set_vlan_mc(smi, i, &vlanmc); in rtl8366_vlan_del()
451 dev_err(smi->dev, in rtl8366_vlan_del()
468 struct realtek_smi *smi = ds->priv; in rtl8366_get_strings() local
472 if (port >= smi->num_ports) in rtl8366_get_strings()
475 for (i = 0; i < smi->num_mib_counters; i++) { in rtl8366_get_strings()
476 mib = &smi->mib_counters[i]; in rtl8366_get_strings()
485 struct realtek_smi *smi = ds->priv; in rtl8366_get_sset_count() local
490 if (port >= smi->num_ports) in rtl8366_get_sset_count()
493 return smi->num_mib_counters; in rtl8366_get_sset_count()
499 struct realtek_smi *smi = ds->priv; in rtl8366_get_ethtool_stats() local
503 if (port >= smi->num_ports) in rtl8366_get_ethtool_stats()
506 for (i = 0; i < smi->num_mib_counters; i++) { in rtl8366_get_ethtool_stats()
510 mib = &smi->mib_counters[i]; in rtl8366_get_ethtool_stats()
511 ret = smi->ops->get_mib_counter(smi, port, mib, &mibvalue); in rtl8366_get_ethtool_stats()
513 dev_err(smi->dev, "error reading MIB counter %s\n", in rtl8366_get_ethtool_stats()