#else
#define DRIVERNAPI "-NAPI"
#endif
-#define DRV_VERSION "5.3.19-k2"DRIVERNAPI
+#define DRV_VERSION "5.5.4-k2"DRIVERNAPI;
char e1000_driver_version[] = DRV_VERSION;
char e1000_copyright[] = "Copyright (c) 1999-2004 Intel Corporation.";
void
e1000_reset(struct e1000_adapter *adapter)
{
- uint32_t pba, manc;
+ uint32_t pba;
+
/* Repartition Pba for greater than 9k mtu
* To take effect CTRL.RST is required.
*/
e1000_reset_adaptive(&adapter->hw);
e1000_phy_get_info(&adapter->hw, &adapter->phy_info);
-
- if(adapter->en_mng_pt) {
- manc = E1000_READ_REG(&adapter->hw, MANC);
- manc |= (E1000_MANC_ARP_EN | E1000_MANC_EN_MNG2HOST);
- E1000_WRITE_REG(&adapter->hw, MANC, manc);
- }
}
/**
adapter->hw.back = adapter;
adapter->msg_enable = (1 << debug) - 1;
- rtnl_lock();
- /* we need to set the name early for the DPRINTK macro */
- if(dev_alloc_name(netdev, netdev->name) < 0)
- goto err_free_unlock;
-
mmio_start = pci_resource_start(pdev, BAR_0);
mmio_len = pci_resource_len(pdev, BAR_0);
#ifdef CONFIG_NET_POLL_CONTROLLER
netdev->poll_controller = e1000_netpoll;
#endif
+ strcpy(netdev->name, pci_name(pdev));
netdev->mem_start = mmio_start;
netdev->mem_end = mmio_start + mmio_len;
/* hard_start_xmit is safe against parallel locking */
netdev->features |= NETIF_F_LLTX;
- adapter->en_mng_pt = e1000_enable_mng_pass_thru(&adapter->hw);
-
/* before reading the EEPROM, reset the controller to
* put the device in a known good starting state */
netif_carrier_off(netdev);
netif_stop_queue(netdev);
- DPRINTK(PROBE, INFO, "Intel(R) PRO/1000 Network Connection\n");
e1000_check_options(adapter);
/* Initial Wake on LAN setting
/* reset the hardware with the new settings */
e1000_reset(adapter);
- /* We're already holding the rtnl lock; call the no-lock version */
- if((err = register_netdevice(netdev)))
+ strcpy(netdev->name, "eth%d");
+ if((err = register_netdev(netdev)))
goto err_register;
+ DPRINTK(PROBE, INFO, "Intel(R) PRO/1000 Network Connection\n");
+
cards_found++;
- rtnl_unlock();
return 0;
err_register:
err_eeprom:
iounmap(adapter->hw.hw_addr);
err_ioremap:
-err_free_unlock:
- rtnl_unlock();
free_netdev(netdev);
err_alloc_etherdev:
pci_release_regions(pdev);
pci_release_regions(pdev);
free_netdev(netdev);
+
+ pci_disable_device(pdev);
}
/**
if(unlikely(adapter->vlgrp &&
(rx_desc->status & E1000_RXD_STAT_VP))) {
vlan_hwaccel_receive_skb(skb, adapter->vlgrp,
- le16_to_cpu(rx_desc->special &
- E1000_RXD_SPC_VLAN_MASK));
+ le16_to_cpu(rx_desc->special) &
+ E1000_RXD_SPC_VLAN_MASK);
} else {
netif_receive_skb(skb);
}
if(unlikely(adapter->vlgrp &&
(rx_desc->status & E1000_RXD_STAT_VP))) {
vlan_hwaccel_rx(skb, adapter->vlgrp,
- le16_to_cpu(rx_desc->special &
- E1000_RXD_SPC_VLAN_MASK));
+ le16_to_cpu(rx_desc->special) &
+ E1000_RXD_SPC_VLAN_MASK);
} else {
netif_rx(skb);
}
pci_enable_wake(pdev, 4, 0); /* 4 == D3 cold */
}
- pci_save_state(pdev, adapter->pci_state);
+ pci_save_state(pdev);
if(adapter->hw.mac_type >= e1000_82540 &&
adapter->hw.media_type == e1000_media_type_copper) {
{
struct net_device *netdev = pci_get_drvdata(pdev);
struct e1000_adapter *adapter = netdev->priv;
- uint32_t manc;
+ uint32_t manc, ret;
- pci_enable_device(pdev);
pci_set_power_state(pdev, 0);
- pci_restore_state(pdev, adapter->pci_state);
+ pci_restore_state(pdev);
+ ret = pci_enable_device(pdev);
+ if (pdev->is_busmaster)
+ pci_set_master(pdev);
pci_enable_wake(pdev, 3, 0);
pci_enable_wake(pdev, 4, 0); /* 4 == D3 cold */