devices/e1000e/netdev-2.6.34-ethercat.c
branchstable-1.5
changeset 2421 bc2d4bf9cbe5
parent 2216 37c77787ea29
child 2472 50b861e981f7
equal deleted inserted replaced
2420:69056c46aa4d 2421:bc2d4bf9cbe5
  2890 	/* hardware has been reset, we need to reload some things */
  2890 	/* hardware has been reset, we need to reload some things */
  2891 	e1000_configure(adapter);
  2891 	e1000_configure(adapter);
  2892 
  2892 
  2893 	clear_bit(__E1000_DOWN, &adapter->state);
  2893 	clear_bit(__E1000_DOWN, &adapter->state);
  2894 
  2894 
  2895 	if (!adapter->ecdev) 
  2895 	if (!adapter->ecdev)
  2896 		napi_enable(&adapter->napi);
  2896 		napi_enable(&adapter->napi);
  2897 
  2897 
  2898 	if (adapter->msix_entries)
  2898 	if (adapter->msix_entries)
  2899 		e1000_configure_msix(adapter);
  2899 		e1000_configure_msix(adapter);
  2900 
  2900 
  2924 	/* disable receives in the hardware */
  2924 	/* disable receives in the hardware */
  2925 	rctl = er32(RCTL);
  2925 	rctl = er32(RCTL);
  2926 	ew32(RCTL, rctl & ~E1000_RCTL_EN);
  2926 	ew32(RCTL, rctl & ~E1000_RCTL_EN);
  2927 	/* flush and sleep below */
  2927 	/* flush and sleep below */
  2928 
  2928 
  2929 	if (!adapter->ecdev) 
  2929 	if (!adapter->ecdev)
  2930 		netif_stop_queue(netdev);
  2930 		netif_stop_queue(netdev);
  2931 
  2931 
  2932 	/* disable transmits in the hardware */
  2932 	/* disable transmits in the hardware */
  2933 	tctl = er32(TCTL);
  2933 	tctl = er32(TCTL);
  2934 	tctl &= ~E1000_TCTL_EN;
  2934 	tctl &= ~E1000_TCTL_EN;
  3632 	if ((e1000e_enable_tx_pkt_filtering(hw)) &&
  3632 	if ((e1000e_enable_tx_pkt_filtering(hw)) &&
  3633 	    (adapter->mng_vlan_id != adapter->hw.mng_cookie.vlan_id))
  3633 	    (adapter->mng_vlan_id != adapter->hw.mng_cookie.vlan_id))
  3634 		e1000_update_mng_vlan(adapter);
  3634 		e1000_update_mng_vlan(adapter);
  3635 
  3635 
  3636 	if (link) {
  3636 	if (link) {
  3637 		if ((adapter->ecdev && !ecdev_get_link(adapter->ecdev)) 
  3637 		if ((adapter->ecdev && !ecdev_get_link(adapter->ecdev))
  3638 				|| (!adapter->ecdev && !netif_carrier_ok(netdev))) {
  3638 				|| (!adapter->ecdev && !netif_carrier_ok(netdev))) {
  3639 			bool txb2b = 1;
  3639 			bool txb2b = 1;
  3640 			/* update snapshot of PHY registers on LSC */
  3640 			/* update snapshot of PHY registers on LSC */
  3641 			e1000_phy_read_status(adapter);
  3641 			e1000_phy_read_status(adapter);
  3642 			mac->ops.get_link_up_info(&adapter->hw,
  3642 			mac->ops.get_link_up_info(&adapter->hw,
  3726 			if (phy->ops.cfg_on_link_up)
  3726 			if (phy->ops.cfg_on_link_up)
  3727 				phy->ops.cfg_on_link_up(hw);
  3727 				phy->ops.cfg_on_link_up(hw);
  3728 
  3728 
  3729 			if (adapter->ecdev)
  3729 			if (adapter->ecdev)
  3730 				ecdev_set_link(adapter->ecdev, 1);
  3730 				ecdev_set_link(adapter->ecdev, 1);
  3731 			else 
  3731 			else
  3732 				netif_carrier_on(netdev);
  3732 				netif_carrier_on(netdev);
  3733 
  3733 
  3734 			if (!adapter->ecdev && !test_bit(__E1000_DOWN, &adapter->state))
  3734 			if (!adapter->ecdev && !test_bit(__E1000_DOWN, &adapter->state))
  3735 				mod_timer(&adapter->phy_info_timer,
  3735 				mod_timer(&adapter->phy_info_timer,
  3736 					  round_jiffies(jiffies + 2 * HZ));
  3736 					  round_jiffies(jiffies + 2 * HZ));
  3737 		}
  3737 		}
  3738 	} else {
  3738 	} else {
  3739 		if ((adapter->ecdev && ecdev_get_link(adapter->ecdev)) 
  3739 		if ((adapter->ecdev && ecdev_get_link(adapter->ecdev))
  3740 				|| (!adapter->ecdev && netif_carrier_ok(netdev))) {
  3740 				|| (!adapter->ecdev && netif_carrier_ok(netdev))) {
  3741 			adapter->link_speed = 0;
  3741 			adapter->link_speed = 0;
  3742 			adapter->link_duplex = 0;
  3742 			adapter->link_duplex = 0;
  3743 			/* Link status message must follow this format */
  3743 			/* Link status message must follow this format */
  3744 			printk(KERN_INFO "e1000e: %s NIC Link is Down\n",
  3744 			printk(KERN_INFO "e1000e: %s NIC Link is Down\n",
  3769 	adapter->gotc = adapter->stats.gotc - adapter->gotc_old;
  3769 	adapter->gotc = adapter->stats.gotc - adapter->gotc_old;
  3770 	adapter->gotc_old = adapter->stats.gotc;
  3770 	adapter->gotc_old = adapter->stats.gotc;
  3771 
  3771 
  3772 	e1000e_update_adaptive(&adapter->hw);
  3772 	e1000e_update_adaptive(&adapter->hw);
  3773 
  3773 
  3774 	if ((adapter->ecdev && !ecdev_get_link(adapter->ecdev)) 
  3774 	if ((adapter->ecdev && !ecdev_get_link(adapter->ecdev))
  3775 			|| (!adapter->ecdev && !netif_carrier_ok(netdev))) {
  3775 			|| (!adapter->ecdev && !netif_carrier_ok(netdev))) {
  3776 		tx_pending = (e1000_desc_unused(tx_ring) + 1 <
  3776 		tx_pending = (e1000_desc_unused(tx_ring) + 1 <
  3777 			       tx_ring->count);
  3777 			       tx_ring->count);
  3778 		if (tx_pending) {
  3778 		if (tx_pending) {
  3779 			/*
  3779 			/*
  4853 static void e1000_shutdown(struct pci_dev *pdev)
  4853 static void e1000_shutdown(struct pci_dev *pdev)
  4854 {
  4854 {
  4855 	bool wake = false;
  4855 	bool wake = false;
  4856 	struct net_device *netdev = pci_get_drvdata(pdev);
  4856 	struct net_device *netdev = pci_get_drvdata(pdev);
  4857 	struct e1000_adapter *adapter = netdev_priv(netdev);
  4857 	struct e1000_adapter *adapter = netdev_priv(netdev);
  4858 	
  4858 
  4859 	if (adapter->ecdev)
  4859 	if (adapter->ecdev)
  4860 		return;
  4860 		return;
  4861 
  4861 
  4862 	__e1000_shutdown(pdev, &wake);
  4862 	__e1000_shutdown(pdev, &wake);
  4863 
  4863