/net/dsa/ |
D | dsa.c | 73 struct dsa_switch *ds; in dsa_switch_setup() local 94 ds = kzalloc(sizeof(*ds) + drv->priv_size, GFP_KERNEL); in dsa_switch_setup() 95 if (ds == NULL) in dsa_switch_setup() 98 ds->pd = pd; in dsa_switch_setup() 99 ds->master_netdev = dev; in dsa_switch_setup() 100 ds->master_mii_bus = bus; in dsa_switch_setup() 102 ds->drv = drv; in dsa_switch_setup() 103 ds->tag_protocol = drv->tag_protocol; in dsa_switch_setup() 109 ds->cpu_port = -1; in dsa_switch_setup() 118 if (ds->cpu_port != -1) { in dsa_switch_setup() [all …]
|
D | mv88e6xxx.c | 81 int mv88e6xxx_reg_read(struct dsa_switch *ds, int addr, int reg) in mv88e6xxx_reg_read() argument 83 struct mv88e6xxx_priv_state *ps = (void *)(ds + 1); in mv88e6xxx_reg_read() 87 ret = __mv88e6xxx_reg_read(ds->master_mii_bus, in mv88e6xxx_reg_read() 88 ds->pd->sw_addr, addr, reg); in mv88e6xxx_reg_read() 133 int mv88e6xxx_reg_write(struct dsa_switch *ds, int addr, int reg, u16 val) in mv88e6xxx_reg_write() argument 135 struct mv88e6xxx_priv_state *ps = (void *)(ds + 1); in mv88e6xxx_reg_write() 139 ret = __mv88e6xxx_reg_write(ds->master_mii_bus, in mv88e6xxx_reg_write() 140 ds->pd->sw_addr, addr, reg, val); in mv88e6xxx_reg_write() 146 int mv88e6xxx_config_prio(struct dsa_switch *ds) in mv88e6xxx_config_prio() argument 168 int mv88e6xxx_set_addr_direct(struct dsa_switch *ds, u8 *addr) in mv88e6xxx_set_addr_direct() argument [all …]
|
D | mv88e6131.c | 31 static int mv88e6131_switch_reset(struct dsa_switch *ds) in mv88e6131_switch_reset() argument 70 static int mv88e6131_setup_global(struct dsa_switch *ds) in mv88e6131_setup_global() argument 93 ret = mv88e6xxx_config_prio(ds); in mv88e6131_setup_global() 107 REG_WRITE(REG_GLOBAL, 0x1a, (ds->cpu_port * 0x1100) | 0x00f0); in mv88e6131_setup_global() 133 REG_WRITE(REG_GLOBAL2, 0x06, 0x8000 | (i << 8) | ds->cpu_port); in mv88e6131_setup_global() 156 static int mv88e6131_setup_port(struct dsa_switch *ds, int p) in mv88e6131_setup_port() argument 176 REG_WRITE(addr, 0x04, (p == ds->cpu_port) ? 0x0537 : 0x0433); in mv88e6131_setup_port() 182 REG_WRITE(addr, 0x05, (p == ds->cpu_port) ? 0x8000 : 0x0000); in mv88e6131_setup_port() 192 ((p == ds->cpu_port) ? in mv88e6131_setup_port() 193 ds->valid_port_mask : in mv88e6131_setup_port() [all …]
|
D | mv88e6123_61_65.c | 35 static int mv88e6123_61_65_switch_reset(struct dsa_switch *ds) in mv88e6123_61_65_switch_reset() argument 74 static int mv88e6123_61_65_setup_global(struct dsa_switch *ds) in mv88e6123_61_65_setup_global() argument 96 ret = mv88e6xxx_config_prio(ds); in mv88e6123_61_65_setup_global() 105 REG_WRITE(REG_GLOBAL, 0x1a, (ds->cpu_port * 0x1110)); in mv88e6123_61_65_setup_global() 139 REG_WRITE(REG_GLOBAL2, 0x06, 0x8000 | (i << 8) | ds->cpu_port); in mv88e6123_61_65_setup_global() 176 static int mv88e6123_61_65_setup_port(struct dsa_switch *ds, int p) in mv88e6123_61_65_setup_port() argument 204 (p == ds->cpu_port) ? in mv88e6123_61_65_setup_port() 205 (ds->tag_protocol == htons(ETH_P_DSA)) ? in mv88e6123_61_65_setup_port() 213 REG_WRITE(addr, 0x05, (p == ds->cpu_port) ? 0x8000 : 0x0000); in mv88e6123_61_65_setup_port() 223 ((p == ds->cpu_port) ? in mv88e6123_61_65_setup_port() [all …]
|
D | mv88e6060.c | 19 static int reg_read(struct dsa_switch *ds, int addr, int reg) in reg_read() argument 21 return mdiobus_read(ds->master_mii_bus, addr, reg); in reg_read() 28 __ret = reg_read(ds, addr, reg); \ 35 static int reg_write(struct dsa_switch *ds, int addr, int reg, u16 val) in reg_write() argument 37 return mdiobus_write(ds->master_mii_bus, addr, reg, val); in reg_write() 44 __ret = reg_write(ds, addr, reg, val); \ 63 static int mv88e6060_switch_reset(struct dsa_switch *ds) in mv88e6060_switch_reset() argument 102 static int mv88e6060_setup_global(struct dsa_switch *ds) in mv88e6060_setup_global() argument 121 static int mv88e6060_setup_port(struct dsa_switch *ds, int p) in mv88e6060_setup_port() argument 131 REG_WRITE(addr, 0x04, (p == ds->cpu_port) ? 0x4103 : 0x0003); in mv88e6060_setup_port() [all …]
|
D | slave.c | 20 struct dsa_switch *ds = bus->priv; in dsa_slave_phy_read() local 22 if (ds->valid_port_mask & (1 << addr)) in dsa_slave_phy_read() 23 return ds->drv->phy_read(ds, addr, reg); in dsa_slave_phy_read() 30 struct dsa_switch *ds = bus->priv; in dsa_slave_phy_write() local 32 if (ds->valid_port_mask & (1 << addr)) in dsa_slave_phy_write() 33 return ds->drv->phy_write(ds, addr, reg, val); in dsa_slave_phy_write() 38 void dsa_slave_mii_bus_init(struct dsa_switch *ds) in dsa_slave_mii_bus_init() argument 40 ds->slave_mii_bus->priv = (void *)ds; in dsa_slave_mii_bus_init() 41 ds->slave_mii_bus->name = "dsa slave smi"; in dsa_slave_mii_bus_init() 42 ds->slave_mii_bus->read = dsa_slave_phy_read; in dsa_slave_mii_bus_init() [all …]
|
D | mv88e6xxx.h | 51 int mv88e6xxx_reg_read(struct dsa_switch *ds, int addr, int reg); 54 int mv88e6xxx_reg_write(struct dsa_switch *ds, int addr, int reg, u16 val); 55 int mv88e6xxx_config_prio(struct dsa_switch *ds); 56 int mv88e6xxx_set_addr_direct(struct dsa_switch *ds, u8 *addr); 57 int mv88e6xxx_set_addr_indirect(struct dsa_switch *ds, u8 *addr); 58 int mv88e6xxx_phy_read(struct dsa_switch *ds, int addr, int regnum); 59 int mv88e6xxx_phy_write(struct dsa_switch *ds, int addr, int regnum, u16 val); 60 void mv88e6xxx_ppu_state_init(struct dsa_switch *ds); 61 int mv88e6xxx_phy_read_ppu(struct dsa_switch *ds, int addr, int regnum); 62 int mv88e6xxx_phy_write_ppu(struct dsa_switch *ds, int addr, [all …]
|
D | dsa_priv.h | 71 int (*setup)(struct dsa_switch *ds); 72 int (*set_addr)(struct dsa_switch *ds, u8 *addr); 77 int (*phy_read)(struct dsa_switch *ds, int port, int regnum); 78 int (*phy_write)(struct dsa_switch *ds, int port, 84 void (*poll_link)(struct dsa_switch *ds); 89 void (*get_strings)(struct dsa_switch *ds, int port, uint8_t *data); 90 void (*get_ethtool_stats)(struct dsa_switch *ds, 92 int (*get_sset_count)(struct dsa_switch *ds); 101 void dsa_slave_mii_bus_init(struct dsa_switch *ds); 102 struct net_device *dsa_slave_create(struct dsa_switch *ds,
|
D | tag_trailer.c | 71 struct dsa_switch *ds = dev->dsa_ptr; in trailer_rcv() local 75 if (unlikely(ds == NULL)) in trailer_rcv() 91 if (source_port >= DSA_MAX_PORTS || ds->ports[source_port] == NULL) in trailer_rcv() 96 skb->dev = ds->ports[source_port]; in trailer_rcv()
|
D | tag_dsa.c | 81 struct dsa_switch *ds = dev->dsa_ptr; in dsa_rcv() local 85 if (unlikely(ds == NULL)) in dsa_rcv() 111 if (source_port >= DSA_MAX_PORTS || ds->ports[source_port] == NULL) in dsa_rcv() 160 skb->dev = ds->ports[source_port]; in dsa_rcv()
|
D | tag_edsa.c | 94 struct dsa_switch *ds = dev->dsa_ptr; in edsa_rcv() local 98 if (unlikely(ds == NULL)) in edsa_rcv() 124 if (source_port >= DSA_MAX_PORTS || ds->ports[source_port] == NULL) in edsa_rcv() 179 skb->dev = ds->ports[source_port]; in edsa_rcv()
|