sky2: Refactor sky2_down into two functions
Subsystems (2)
PATCH 4/5 sky2: Refactor sky2_down into two functions
Create a sky2_hw_down that brings the hardware down.
Signed-off-by Mike McCormack <[email protected]>
--- drivers/net/sky2.c | 28 +++++++++++++++++----------- 1 files changed, 17 insertions(+), 11 deletions(-)
drivers/net/sky2.c +17 -11
@@ -1926,21 +1926,12 @@ static void sky2_tx_reset(struct sky2_hw *hw, unsigned port)sky2_write8 (hw,SK_REG (port,TX_GMF_CTRL_T ),GMF_RST_SET ); } -/* Network shutdown */ -static int sky2_down (struct net_device *dev) +static void sky2_hw_down (struct sky2_port *sky2) { -struct sky2_port *sky2 =netdev_priv (dev);struct sky2_hw *hw = sky2->hw;unsigned port = sky2->port; -u16 ctrl;u32 imask; - -/* Never really got started! */ -if (!sky2->tx_le) -return 0 ; - -if (netif_msg_ifdown (sky2)) - printk(KERN_INFO PFX "%s: disabling interface\n", dev->name); +u16 ctrl;/* Force flow control off */ sky2_write8 (hw,SK_REG (port,GMAC_CTRL ),GMC_PAUSE_OFF );
@@ -1990,6 +1981,21 @@ static int sky2_down(struct net_device *dev)/* Free any pending frames stuck in HW queue */ sky2_tx_complete (sky2, sky2->tx_prod); +} + +/* Network shutdown */ +static int sky2_down (struct net_device *dev) +{ +struct sky2_port *sky2 =netdev_priv (dev); + +/* Never really got started! */ +if (!sky2->tx_le) +return 0 ; + +if (netif_msg_ifdown (sky2)) + printk(KERN_INFO PFX "%s: disabling interface\n", dev->name); + +sky2_hw_down (sky2);sky2_free_buffers (sky2);
Signature · 1 line
1.5.6.5