Skip to content

Commit

Permalink
net: dsa: mv88e6xxx: Factor out common initialization code
Browse files Browse the repository at this point in the history
Code used and needed in mv886xxx.c should be initialized there as well,
so factor it out from the individual initialization files.

Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Tested-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Guenter Roeck authored and David S. Miller committed Mar 29, 2015
1 parent 5ce58c2 commit acdaffc
Show file tree
Hide file tree
Showing 5 changed files with 22 additions and 12 deletions.
7 changes: 3 additions & 4 deletions drivers/net/dsa/mv88e6123_61_65.c
Original file line number Diff line number Diff line change
Expand Up @@ -293,13 +293,12 @@ static int mv88e6123_61_65_setup_port(struct dsa_switch *ds, int p)

static int mv88e6123_61_65_setup(struct dsa_switch *ds)
{
struct mv88e6xxx_priv_state *ps = ds_to_priv(ds);
int i;
int ret;

mutex_init(&ps->smi_mutex);
mutex_init(&ps->stats_mutex);
mutex_init(&ps->phy_mutex);
ret = mv88e6xxx_setup_common(ds);
if (ret < 0)
return ret;

ret = mv88e6123_61_65_switch_reset(ds);
if (ret < 0)
Expand Down
8 changes: 3 additions & 5 deletions drivers/net/dsa/mv88e6171.c
Original file line number Diff line number Diff line change
Expand Up @@ -292,12 +292,12 @@ static int mv88e6171_setup_port(struct dsa_switch *ds, int p)

static int mv88e6171_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 = mv88e6xxx_setup_common(ds);
if (ret < 0)
return ret;

ret = mv88e6171_switch_reset(ds);
if (ret < 0)
Expand All @@ -318,8 +318,6 @@ static int mv88e6171_setup(struct dsa_switch *ds)
return ret;
}

mutex_init(&ps->phy_mutex);

return 0;
}

Expand Down
7 changes: 4 additions & 3 deletions drivers/net/dsa/mv88e6352.c
Original file line number Diff line number Diff line change
Expand Up @@ -385,9 +385,10 @@ static int mv88e6352_setup(struct dsa_switch *ds)
int ret;
int i;

mutex_init(&ps->smi_mutex);
mutex_init(&ps->stats_mutex);
mutex_init(&ps->phy_mutex);
ret = mv88e6xxx_setup_common(ds);
if (ret < 0)
return ret;

mutex_init(&ps->eeprom_mutex);

ps->id = REG_READ(REG_PORT(0), 0x03) & 0xfff0;
Expand Down
11 changes: 11 additions & 0 deletions drivers/net/dsa/mv88e6xxx.c
Original file line number Diff line number Diff line change
Expand Up @@ -700,6 +700,17 @@ int mv88e6xxx_set_eee(struct dsa_switch *ds, int port,
return 0;
}

int mv88e6xxx_setup_common(struct dsa_switch *ds)
{
struct mv88e6xxx_priv_state *ps = ds_to_priv(ds);

mutex_init(&ps->smi_mutex);
mutex_init(&ps->stats_mutex);
mutex_init(&ps->phy_mutex);

return 0;
}

static int __init mv88e6xxx_init(void)
{
#if IS_ENABLED(CONFIG_NET_DSA_MV88E6131)
Expand Down
1 change: 1 addition & 0 deletions drivers/net/dsa/mv88e6xxx.h
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ struct mv88e6xxx_hw_stat {
int reg;
};

int mv88e6xxx_setup_common(struct dsa_switch *ds);
int __mv88e6xxx_reg_read(struct mii_bus *bus, int sw_addr, int addr, int reg);
int mv88e6xxx_reg_read(struct dsa_switch *ds, int addr, int reg);
int __mv88e6xxx_reg_write(struct mii_bus *bus, int sw_addr, int addr,
Expand Down

0 comments on commit acdaffc

Please sign in to comment.