• Home
  • Raw
  • Download

Lines Matching +full:ps +full:- +full:speed

70 	dev_dbg(ds->dev, "%s: port: %d\n", __func__, port);  in dsa_loop_get_protocol()
77 struct dsa_loop_priv *ps = ds->priv; in dsa_loop_setup() local
80 for (i = 0; i < ds->num_ports; i++) in dsa_loop_setup()
81 memcpy(ps->ports[i].mib, dsa_loop_mibs, in dsa_loop_setup()
84 dev_dbg(ds->dev, "%s\n", __func__); in dsa_loop_setup()
100 struct dsa_loop_priv *ps = ds->priv; in dsa_loop_get_strings() local
108 ps->ports[port].mib[i].name, ETH_GSTRING_LEN); in dsa_loop_get_strings()
114 struct dsa_loop_priv *ps = ds->priv; in dsa_loop_get_ethtool_stats() local
118 data[i] = ps->ports[port].mib[i].val; in dsa_loop_get_ethtool_stats()
123 struct dsa_loop_priv *ps = ds->priv; in dsa_loop_phy_read() local
124 struct mii_bus *bus = ps->bus; in dsa_loop_phy_read()
127 ret = mdiobus_read_nested(bus, ps->port_base + port, regnum); in dsa_loop_phy_read()
129 ps->ports[port].mib[DSA_LOOP_PHY_READ_ERR].val++; in dsa_loop_phy_read()
131 ps->ports[port].mib[DSA_LOOP_PHY_READ_OK].val++; in dsa_loop_phy_read()
139 struct dsa_loop_priv *ps = ds->priv; in dsa_loop_phy_write() local
140 struct mii_bus *bus = ps->bus; in dsa_loop_phy_write()
143 ret = mdiobus_write_nested(bus, ps->port_base + port, regnum, value); in dsa_loop_phy_write()
145 ps->ports[port].mib[DSA_LOOP_PHY_WRITE_ERR].val++; in dsa_loop_phy_write()
147 ps->ports[port].mib[DSA_LOOP_PHY_WRITE_OK].val++; in dsa_loop_phy_write()
155 dev_dbg(ds->dev, "%s: port: %d, bridge: %s\n", in dsa_loop_port_bridge_join()
156 __func__, port, bridge->name); in dsa_loop_port_bridge_join()
164 dev_dbg(ds->dev, "%s: port: %d, bridge: %s\n", in dsa_loop_port_bridge_leave()
165 __func__, port, bridge->name); in dsa_loop_port_bridge_leave()
171 dev_dbg(ds->dev, "%s: port: %d, state: %d\n", in dsa_loop_port_stp_state_set()
178 dev_dbg(ds->dev, "%s: port: %d, vlan_filtering: %d\n", in dsa_loop_port_vlan_filtering()
188 struct dsa_loop_priv *ps = ds->priv; in dsa_loop_port_vlan_prepare() local
189 struct mii_bus *bus = ps->bus; in dsa_loop_port_vlan_prepare()
191 dev_dbg(ds->dev, "%s: port: %d, vlan: %d-%d", in dsa_loop_port_vlan_prepare()
192 __func__, port, vlan->vid_begin, vlan->vid_end); in dsa_loop_port_vlan_prepare()
195 mdiobus_read(bus, ps->port_base + port, MII_BMSR); in dsa_loop_port_vlan_prepare()
197 if (vlan->vid_end > DSA_LOOP_VLANS) in dsa_loop_port_vlan_prepare()
198 return -ERANGE; in dsa_loop_port_vlan_prepare()
206 bool untagged = vlan->flags & BRIDGE_VLAN_INFO_UNTAGGED; in dsa_loop_port_vlan_add()
207 bool pvid = vlan->flags & BRIDGE_VLAN_INFO_PVID; in dsa_loop_port_vlan_add()
208 struct dsa_loop_priv *ps = ds->priv; in dsa_loop_port_vlan_add() local
209 struct mii_bus *bus = ps->bus; in dsa_loop_port_vlan_add()
214 mdiobus_read(bus, ps->port_base + port, MII_BMSR); in dsa_loop_port_vlan_add()
216 for (vid = vlan->vid_begin; vid <= vlan->vid_end; ++vid) { in dsa_loop_port_vlan_add()
217 vl = &ps->vlans[vid]; in dsa_loop_port_vlan_add()
219 vl->members |= BIT(port); in dsa_loop_port_vlan_add()
221 vl->untagged |= BIT(port); in dsa_loop_port_vlan_add()
223 vl->untagged &= ~BIT(port); in dsa_loop_port_vlan_add()
225 dev_dbg(ds->dev, "%s: port: %d vlan: %d, %stagged, pvid: %d\n", in dsa_loop_port_vlan_add()
230 ps->pvid = vid; in dsa_loop_port_vlan_add()
236 bool untagged = vlan->flags & BRIDGE_VLAN_INFO_UNTAGGED; in dsa_loop_port_vlan_del()
237 struct dsa_loop_priv *ps = ds->priv; in dsa_loop_port_vlan_del() local
238 struct mii_bus *bus = ps->bus; in dsa_loop_port_vlan_del()
240 u16 vid, pvid = ps->pvid; in dsa_loop_port_vlan_del()
243 mdiobus_read(bus, ps->port_base + port, MII_BMSR); in dsa_loop_port_vlan_del()
245 for (vid = vlan->vid_begin; vid <= vlan->vid_end; ++vid) { in dsa_loop_port_vlan_del()
246 vl = &ps->vlans[vid]; in dsa_loop_port_vlan_del()
248 vl->members &= ~BIT(port); in dsa_loop_port_vlan_del()
250 vl->untagged &= ~BIT(port); in dsa_loop_port_vlan_del()
255 dev_dbg(ds->dev, "%s: port: %d vlan: %d, %stagged, pvid: %d\n", in dsa_loop_port_vlan_del()
258 ps->pvid = pvid; in dsa_loop_port_vlan_del()
283 struct dsa_loop_pdata *pdata = mdiodev->dev.platform_data; in dsa_loop_drv_probe()
284 struct dsa_loop_priv *ps; in dsa_loop_drv_probe() local
288 return -ENODEV; in dsa_loop_drv_probe()
290 dev_info(&mdiodev->dev, "%s: 0x%0x\n", in dsa_loop_drv_probe()
291 pdata->name, pdata->enabled_ports); in dsa_loop_drv_probe()
293 ds = dsa_switch_alloc(&mdiodev->dev, DSA_MAX_PORTS); in dsa_loop_drv_probe()
295 return -ENOMEM; in dsa_loop_drv_probe()
297 ps = devm_kzalloc(&mdiodev->dev, sizeof(*ps), GFP_KERNEL); in dsa_loop_drv_probe()
298 if (!ps) in dsa_loop_drv_probe()
299 return -ENOMEM; in dsa_loop_drv_probe()
301 ps->netdev = dev_get_by_name(&init_net, pdata->netdev); in dsa_loop_drv_probe()
302 if (!ps->netdev) in dsa_loop_drv_probe()
303 return -EPROBE_DEFER; in dsa_loop_drv_probe()
305 pdata->cd.netdev[DSA_LOOP_CPU_PORT] = &ps->netdev->dev; in dsa_loop_drv_probe()
307 ds->dev = &mdiodev->dev; in dsa_loop_drv_probe()
308 ds->ops = &dsa_loop_driver; in dsa_loop_drv_probe()
309 ds->priv = ps; in dsa_loop_drv_probe()
310 ps->bus = mdiodev->bus; in dsa_loop_drv_probe()
312 dev_set_drvdata(&mdiodev->dev, ds); in dsa_loop_drv_probe()
319 struct dsa_switch *ds = dev_get_drvdata(&mdiodev->dev); in dsa_loop_drv_remove()
320 struct dsa_loop_priv *ps = ds->priv; in dsa_loop_drv_remove() local
323 dev_put(ps->netdev); in dsa_loop_drv_remove()
328 .name = "dsa-loop",
334 #define NUM_FIXED_PHYS (DSA_LOOP_NUM_PORTS - 2)
340 .speed = SPEED_100, in dsa_loop_init()
346 phydevs[i] = fixed_phy_register(PHY_POLL, &status, -1, NULL); in dsa_loop_init()