]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
e1000e: fix timing for 82579 Gigabit Ethernet controller
authorBernd Faust <berndfaust@gmail.com>
Thu, 16 Feb 2017 18:42:07 +0000 (19:42 +0100)
committerSasha Levin <alexander.levin@microsoft.com>
Wed, 23 May 2018 01:33:49 +0000 (21:33 -0400)
[ Upstream commit 5313eeccd2d7f486be4e5c7560e3e2be239ec8f7 ]

After an upgrade to Linux kernel v4.x the hardware timestamps of the
82579 Gigabit Ethernet Controller are different than expected.
The values that are being read are almost four times as big as before
the kernel upgrade.

The difference is that after the upgrade the driver sets the clock
frequency to 25MHz, where before the upgrade it was set to 96MHz. Intel
confirmed that the correct frequency for this network adapter is 96MHz.

Signed-off-by: Bernd Faust <berndfaust@gmail.com>
Acked-by: Sasha Neftin <sasha.neftin@intel.com>
Acked-by: Jacob Keller <jacob.e.keller@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
drivers/net/ethernet/intel/e1000e/netdev.c

index 39e9d7db23df1699b7df6b598e6b8fe3aaf703bb..ec1328da09aabc1791325555f85b27e0654cd8e3 100644 (file)
@@ -3524,6 +3524,12 @@ s32 e1000e_get_base_timinca(struct e1000_adapter *adapter, u32 *timinca)
 
        switch (hw->mac.type) {
        case e1000_pch2lan:
+               /* Stable 96MHz frequency */
+               incperiod = INCPERIOD_96MHz;
+               incvalue = INCVALUE_96MHz;
+               shift = INCVALUE_SHIFT_96MHz;
+               adapter->cc.shift = shift + INCPERIOD_SHIFT_96MHz;
+               break;
        case e1000_pch_lpt:
        case e1000_pch_spt:
                /* On I217, I218 and I219, the clock frequency is 25MHz