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
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
@@ -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)
8 changes: 3 additions & 5 deletions drivers/net/dsa/mv88e6171.c
Original file line number Diff line number Diff line change
@@ -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)
@@ -318,8 +318,6 @@ static int mv88e6171_setup(struct dsa_switch *ds)
return ret;
}

mutex_init(&ps->phy_mutex);

return 0;
}

7 changes: 4 additions & 3 deletions drivers/net/dsa/mv88e6352.c
Original file line number Diff line number Diff line change
@@ -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;
11 changes: 11 additions & 0 deletions drivers/net/dsa/mv88e6xxx.c
Original file line number Diff line number Diff line change
@@ -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)
1 change: 1 addition & 0 deletions drivers/net/dsa/mv88e6xxx.h
Original file line number Diff line number Diff line change
@@ -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,

0 comments on commit acdaffc

Please sign in to comment.