diff options
| -rw-r--r-- | drivers/net/ethernet/ti/cpsw.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/net/ethernet/ti/cpsw.c b/drivers/net/ethernet/ti/cpsw.c index 651087b5c8da..ffd4d12acf6d 100644 --- a/drivers/net/ethernet/ti/cpsw.c +++ b/drivers/net/ethernet/ti/cpsw.c | |||
| @@ -1164,11 +1164,17 @@ static void cpsw_init_host_port(struct cpsw_priv *priv) | |||
| 1164 | 1164 | ||
| 1165 | static void cpsw_slave_stop(struct cpsw_slave *slave, struct cpsw_priv *priv) | 1165 | static void cpsw_slave_stop(struct cpsw_slave *slave, struct cpsw_priv *priv) |
| 1166 | { | 1166 | { |
| 1167 | u32 slave_port; | ||
| 1168 | |||
| 1169 | slave_port = cpsw_get_slave_port(priv, slave->slave_num); | ||
| 1170 | |||
| 1167 | if (!slave->phy) | 1171 | if (!slave->phy) |
| 1168 | return; | 1172 | return; |
| 1169 | phy_stop(slave->phy); | 1173 | phy_stop(slave->phy); |
| 1170 | phy_disconnect(slave->phy); | 1174 | phy_disconnect(slave->phy); |
| 1171 | slave->phy = NULL; | 1175 | slave->phy = NULL; |
| 1176 | cpsw_ale_control_set(priv->ale, slave_port, | ||
| 1177 | ALE_PORT_STATE, ALE_PORT_STATE_DISABLE); | ||
| 1172 | } | 1178 | } |
| 1173 | 1179 | ||
| 1174 | static int cpsw_ndo_open(struct net_device *ndev) | 1180 | static int cpsw_ndo_open(struct net_device *ndev) |
