aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/skge.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/skge.c')
-rw-r--r--drivers/net/skge.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/drivers/net/skge.c b/drivers/net/skge.c
index e7e414928f89..5513907e8393 100644
--- a/drivers/net/skge.c
+++ b/drivers/net/skge.c
@@ -11,8 +11,7 @@
11 * 11 *
12 * This program is free software; you can redistribute it and/or modify 12 * This program is free software; you can redistribute it and/or modify
13 * it under the terms of the GNU General Public License as published by 13 * it under the terms of the GNU General Public License as published by
14 * the Free Software Foundation; either version 2 of the License, or 14 * the Free Software Foundation; either version 2 of the License.
15 * (at your option) any later version.
16 * 15 *
17 * This program is distributed in the hope that it will be useful, 16 * This program is distributed in the hope that it will be useful,
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -2155,8 +2154,6 @@ static void yukon_link_down(struct skge_port *skge)
2155 int port = skge->port; 2154 int port = skge->port;
2156 u16 ctrl; 2155 u16 ctrl;
2157 2156
2158 gm_phy_write(hw, port, PHY_MARV_INT_MASK, 0);
2159
2160 ctrl = gma_read16(hw, port, GM_GP_CTRL); 2157 ctrl = gma_read16(hw, port, GM_GP_CTRL);
2161 ctrl &= ~(GM_GPCR_RX_ENA | GM_GPCR_TX_ENA); 2158 ctrl &= ~(GM_GPCR_RX_ENA | GM_GPCR_TX_ENA);
2162 gma_write16(hw, port, GM_GP_CTRL, ctrl); 2159 gma_write16(hw, port, GM_GP_CTRL, ctrl);
@@ -2168,7 +2165,6 @@ static void yukon_link_down(struct skge_port *skge)
2168 gm_phy_write(hw, port, PHY_MARV_AUNE_ADV, ctrl); 2165 gm_phy_write(hw, port, PHY_MARV_AUNE_ADV, ctrl);
2169 } 2166 }
2170 2167
2171 yukon_reset(hw, port);
2172 skge_link_down(skge); 2168 skge_link_down(skge);
2173 2169
2174 yukon_init(hw, port); 2170 yukon_init(hw, port);
@@ -2256,6 +2252,7 @@ static void skge_phy_reset(struct skge_port *skge)
2256{ 2252{
2257 struct skge_hw *hw = skge->hw; 2253 struct skge_hw *hw = skge->hw;
2258 int port = skge->port; 2254 int port = skge->port;
2255 struct net_device *dev = hw->dev[port];
2259 2256
2260 netif_stop_queue(skge->netdev); 2257 netif_stop_queue(skge->netdev);
2261 netif_carrier_off(skge->netdev); 2258 netif_carrier_off(skge->netdev);
@@ -2269,6 +2266,8 @@ static void skge_phy_reset(struct skge_port *skge)
2269 yukon_init(hw, port); 2266 yukon_init(hw, port);
2270 } 2267 }
2271 mutex_unlock(&hw->phy_mutex); 2268 mutex_unlock(&hw->phy_mutex);
2269
2270 dev->set_multicast_list(dev);
2272} 2271}
2273 2272
2274/* Basic MII support */ 2273/* Basic MII support */
@@ -2566,7 +2565,7 @@ static int skge_xmit_frame(struct sk_buff *skb, struct net_device *dev)
2566 2565
2567 td->csum_offs = 0; 2566 td->csum_offs = 0;
2568 td->csum_start = offset; 2567 td->csum_start = offset;
2569 td->csum_write = offset + skb->csum; 2568 td->csum_write = offset + skb->csum_offset;
2570 } else 2569 } else
2571 control = BMU_CHECK; 2570 control = BMU_CHECK;
2572 2571