Commit 673b8b70 authored by Anders Berggren's avatar Anders Berggren Committed by Jeff Kirsher

igb: fix hw timestamping

Hardware timestamping for Intel 82580 didn't work in either 2.6.36 or
2.6.37. Comparing it to Intel's igb-2.4.12 I found that the
timecounter_init clock/counter initialization was done too early.
Signed-off-by: default avatarAnders Berggren <andfers@halon.se>
Tested-by: default avatarAaron Brown <aaron.f.brown@intel.com>
Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
parent 0c0217b0
...@@ -106,6 +106,7 @@ static void igb_free_all_rx_resources(struct igb_adapter *); ...@@ -106,6 +106,7 @@ static void igb_free_all_rx_resources(struct igb_adapter *);
static void igb_setup_mrqc(struct igb_adapter *); static void igb_setup_mrqc(struct igb_adapter *);
static int igb_probe(struct pci_dev *, const struct pci_device_id *); static int igb_probe(struct pci_dev *, const struct pci_device_id *);
static void __devexit igb_remove(struct pci_dev *pdev); static void __devexit igb_remove(struct pci_dev *pdev);
static void igb_init_hw_timer(struct igb_adapter *adapter);
static int igb_sw_init(struct igb_adapter *); static int igb_sw_init(struct igb_adapter *);
static int igb_open(struct net_device *); static int igb_open(struct net_device *);
static int igb_close(struct net_device *); static int igb_close(struct net_device *);
...@@ -2048,6 +2049,9 @@ static int __devinit igb_probe(struct pci_dev *pdev, ...@@ -2048,6 +2049,9 @@ static int __devinit igb_probe(struct pci_dev *pdev,
} }
#endif #endif
/* do hw tstamp init after resetting */
igb_init_hw_timer(adapter);
dev_info(&pdev->dev, "Intel(R) Gigabit Ethernet Network Connection\n"); dev_info(&pdev->dev, "Intel(R) Gigabit Ethernet Network Connection\n");
/* print bus type/speed/width info */ /* print bus type/speed/width info */
dev_info(&pdev->dev, "%s: (PCIe:%s:%s) %pM\n", dev_info(&pdev->dev, "%s: (PCIe:%s:%s) %pM\n",
...@@ -2384,7 +2388,6 @@ static int __devinit igb_sw_init(struct igb_adapter *adapter) ...@@ -2384,7 +2388,6 @@ static int __devinit igb_sw_init(struct igb_adapter *adapter)
return -ENOMEM; return -ENOMEM;
} }
igb_init_hw_timer(adapter);
igb_probe_vfs(adapter); igb_probe_vfs(adapter);
/* Explicitly disable IRQ since the NIC can be in any state. */ /* Explicitly disable IRQ since the NIC can be in any state. */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment