aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnders Berggren <anders@halon.se>2011-02-04 02:32:32 -0500
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>2011-03-15 01:25:50 -0400
commit673b8b70cfae2cd0428a8ab5647571521348549a (patch)
tree1436c815655482abd5be4a03b2b075dc8b989ac5
parent0c0217b016ba8a970a6f6ab62ad0d858f39881ca (diff)
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: Anders Berggren <andfers@halon.se> Tested-by: Aaron Brown <aaron.f.brown@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
-rw-r--r--drivers/net/igb/igb_main.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/net/igb/igb_main.c b/drivers/net/igb/igb_main.c
index b4f92b06f2ac..5366f2ab65f0 100644
--- a/drivers/net/igb/igb_main.c
+++ b/drivers/net/igb/igb_main.c
@@ -106,6 +106,7 @@ static void igb_free_all_rx_resources(struct igb_adapter *);
106static void igb_setup_mrqc(struct igb_adapter *); 106static void igb_setup_mrqc(struct igb_adapter *);
107static int igb_probe(struct pci_dev *, const struct pci_device_id *); 107static int igb_probe(struct pci_dev *, const struct pci_device_id *);
108static void __devexit igb_remove(struct pci_dev *pdev); 108static void __devexit igb_remove(struct pci_dev *pdev);
109static void igb_init_hw_timer(struct igb_adapter *adapter);
109static int igb_sw_init(struct igb_adapter *); 110static int igb_sw_init(struct igb_adapter *);
110static int igb_open(struct net_device *); 111static int igb_open(struct net_device *);
111static int igb_close(struct net_device *); 112static int igb_close(struct net_device *);
@@ -2048,6 +2049,9 @@ static int __devinit igb_probe(struct pci_dev *pdev,
2048 } 2049 }
2049 2050
2050#endif 2051#endif
2052 /* do hw tstamp init after resetting */
2053 igb_init_hw_timer(adapter);
2054
2051 dev_info(&pdev->dev, "Intel(R) Gigabit Ethernet Network Connection\n"); 2055 dev_info(&pdev->dev, "Intel(R) Gigabit Ethernet Network Connection\n");
2052 /* print bus type/speed/width info */ 2056 /* print bus type/speed/width info */
2053 dev_info(&pdev->dev, "%s: (PCIe:%s:%s) %pM\n", 2057 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 return -ENOMEM; 2388 return -ENOMEM;
2385 } 2389 }
2386 2390
2387 igb_init_hw_timer(adapter);
2388 igb_probe_vfs(adapter); 2391 igb_probe_vfs(adapter);
2389 2392
2390 /* Explicitly disable IRQ since the NIC can be in any state. */ 2393 /* Explicitly disable IRQ since the NIC can be in any state. */