diff options
Diffstat (limited to 'drivers/net/ethernet/realtek/8139cp.c')
| -rw-r--r-- | drivers/net/ethernet/realtek/8139cp.c | 10 | 
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/net/ethernet/realtek/8139cp.c b/drivers/net/ethernet/realtek/8139cp.c index abc79076f86..b3287c0fe27 100644 --- a/drivers/net/ethernet/realtek/8139cp.c +++ b/drivers/net/ethernet/realtek/8139cp.c @@ -958,6 +958,11 @@ static inline void cp_start_hw (struct cp_private *cp)  	cpw8(Cmd, RxOn | TxOn);  } +static void cp_enable_irq(struct cp_private *cp) +{ +	cpw16_f(IntrMask, cp_intr_mask); +} +  static void cp_init_hw (struct cp_private *cp)  {  	struct net_device *dev = cp->dev; @@ -997,8 +1002,6 @@ static void cp_init_hw (struct cp_private *cp)  	cpw16(MultiIntr, 0); -	cpw16_f(IntrMask, cp_intr_mask); -  	cpw8_f(Cfg9346, Cfg9346_Lock);  } @@ -1130,6 +1133,8 @@ static int cp_open (struct net_device *dev)  	if (rc)  		goto err_out_hw; +	cp_enable_irq(cp); +  	netif_carrier_off(dev);  	mii_check_media(&cp->mii_if, netif_msg_link(cp), true);  	netif_start_queue(dev); @@ -2031,6 +2036,7 @@ static int cp_resume (struct pci_dev *pdev)  	/* FIXME: sh*t may happen if the Rx ring buffer is depleted */  	cp_init_rings_index (cp);  	cp_init_hw (cp); +	cp_enable_irq(cp);  	netif_start_queue (dev);  	spin_lock_irqsave (&cp->lock, flags);  |