diff options
author | Stephen Hemminger <shemminger@osdl.org> | 2006-12-01 14:41:08 -0500 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2006-12-02 00:22:29 -0500 |
commit | 758140900a82e3ed3bb2be1d4705dd352fe44825 (patch) | |
tree | 00c1c439223f7b00dcbbca0bc5f47d61ac48d706 /drivers/net/skge.c | |
parent | f789dfdc44d5bbc04fb7f06e1e4eb682169acaaf (diff) |
[PATCH] skge: don't clear MC state on link down
I would rather fix Andy's problem by not clearing
multicast information on link down.
Also, add code to restore multicast state after ethtool phy reset.
Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/net/skge.c')
-rw-r--r-- | drivers/net/skge.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/drivers/net/skge.c b/drivers/net/skge.c index b2949035f66a..010fc6541122 100644 --- a/drivers/net/skge.c +++ b/drivers/net/skge.c | |||
@@ -2154,8 +2154,6 @@ static void yukon_link_down(struct skge_port *skge) | |||
2154 | int port = skge->port; | 2154 | int port = skge->port; |
2155 | u16 ctrl; | 2155 | u16 ctrl; |
2156 | 2156 | ||
2157 | gm_phy_write(hw, port, PHY_MARV_INT_MASK, 0); | ||
2158 | |||
2159 | ctrl = gma_read16(hw, port, GM_GP_CTRL); | 2157 | ctrl = gma_read16(hw, port, GM_GP_CTRL); |
2160 | ctrl &= ~(GM_GPCR_RX_ENA | GM_GPCR_TX_ENA); | 2158 | ctrl &= ~(GM_GPCR_RX_ENA | GM_GPCR_TX_ENA); |
2161 | gma_write16(hw, port, GM_GP_CTRL, ctrl); | 2159 | gma_write16(hw, port, GM_GP_CTRL, ctrl); |
@@ -2167,7 +2165,6 @@ static void yukon_link_down(struct skge_port *skge) | |||
2167 | gm_phy_write(hw, port, PHY_MARV_AUNE_ADV, ctrl); | 2165 | gm_phy_write(hw, port, PHY_MARV_AUNE_ADV, ctrl); |
2168 | } | 2166 | } |
2169 | 2167 | ||
2170 | yukon_reset(hw, port); | ||
2171 | skge_link_down(skge); | 2168 | skge_link_down(skge); |
2172 | 2169 | ||
2173 | yukon_init(hw, port); | 2170 | yukon_init(hw, port); |
@@ -2268,6 +2265,8 @@ static void skge_phy_reset(struct skge_port *skge) | |||
2268 | yukon_init(hw, port); | 2265 | yukon_init(hw, port); |
2269 | } | 2266 | } |
2270 | mutex_unlock(&hw->phy_mutex); | 2267 | mutex_unlock(&hw->phy_mutex); |
2268 | |||
2269 | dev->set_multicast_list(dev); | ||
2271 | } | 2270 | } |
2272 | 2271 | ||
2273 | /* Basic MII support */ | 2272 | /* Basic MII support */ |