static int mv88e6171_setup(struct dsa_switch *ds) { struct mv88e6xxx_priv_state *ps = ds_to_priv(ds); int ret; ret = mv88e6xxx_setup_common(ds); if (ret < 0) return ret; ps->num_ports = 7; ret = mv88e6xxx_switch_reset(ds, true); if (ret < 0) return ret; ret = mv88e6171_setup_global(ds); if (ret < 0) return ret; return mv88e6xxx_setup_ports(ds); }
static int mv88e6123_61_65_setup(struct dsa_switch *ds) { struct mv88e6xxx_priv_state *ps = ds_to_priv(ds); int i; int ret; ret = mv88e6xxx_setup_common(ds); if (ret < 0) return ret; switch (ps->id) { case PORT_SWITCH_ID_6123: ps->num_ports = 3; break; case PORT_SWITCH_ID_6161: case PORT_SWITCH_ID_6165: ps->num_ports = 6; break; default: return -ENODEV; } ret = mv88e6xxx_switch_reset(ds, false); if (ret < 0) return ret; /* @@@ initialise vtu and atu */ ret = mv88e6123_61_65_setup_global(ds); if (ret < 0) return ret; for (i = 0; i < ps->num_ports; i++) { ret = mv88e6123_61_65_setup_port(ds, i); if (ret < 0) return ret; } return 0; }
static int mv88e6352_setup(struct dsa_switch *ds) { struct mv88e6xxx_priv_state *ps = ds_to_priv(ds); int ret; ret = mv88e6xxx_setup_common(ds); if (ret < 0) return ret; ps->num_ports = 7; mutex_init(&ps->eeprom_mutex); ret = mv88e6xxx_switch_reset(ds, true); if (ret < 0) return ret; ret = mv88e6352_setup_global(ds); if (ret < 0) return ret; return mv88e6xxx_setup_ports(ds); }
static int mv88e6131_setup(struct dsa_switch *ds) { struct mv88e6xxx_priv_state *ps = ds_to_priv(ds); int ret; ret = mv88e6xxx_setup_common(ds); if (ret < 0) return ret; mv88e6xxx_ppu_state_init(ds); switch (ps->id) { case PORT_SWITCH_ID_6085: case PORT_SWITCH_ID_6185: ps->num_ports = 10; break; case PORT_SWITCH_ID_6095: ps->num_ports = 11; break; case PORT_SWITCH_ID_6131: case PORT_SWITCH_ID_6131_B2: ps->num_ports = 8; break; default: return -ENODEV; } ret = mv88e6xxx_switch_reset(ds, false); if (ret < 0) return ret; ret = mv88e6131_setup_global(ds); if (ret < 0) return ret; return mv88e6xxx_setup_ports(ds); }