static int mv88e6123_61_65_setup(struct dsa_switch *ds) { struct mv88e6xxx_priv_state *ps = (void *)(ds + 1); int i; int ret; mutex_init(&ps->smi_mutex); mutex_init(&ps->stats_mutex); ret = mv88e6123_61_65_switch_reset(ds); if (ret < 0) return ret; ret = mv88e6123_61_65_setup_global(ds); if (ret < 0) return ret; for (i = 0; i < 6; i++) { ret = mv88e6123_61_65_setup_port(ds, i); if (ret < 0) return ret; } return 0; }
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; }