linux_dsm_epyc7002/drivers/net/ethernet/intel/e1000e
Denys Vlasenko ab507c9a54 e1000e: e1000e_cyclecounter_read(): do overflow check only if needed
SYSTIMH:SYSTIML registers are incremented by 24-bit value TIMINCA[23..0]

er32(SYSTIML) are probably moderately expensive (they are pci bus reads).
Can we avoid one of them? Yes, we can.

If the SYSTIML value we see is smaller than 0xff000000, the overflow
into SYSTIMH would require at least two increments.

We do two reads, er32(SYSTIML) and er32(SYSTIMH), in this order.

Even if one increment happens between them, the overflow into SYSTIMH
is impossible, and we can avoid doing another er32(SYSTIML) read
and overflow check.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
2016-05-13 14:56:35 -07:00
..
80003es2lan.c e1000e: Bump the version to 3.2.5 2015-06-03 04:13:39 -07:00
80003es2lan.h e1000e: Bump the version to 3.2.5 2015-06-03 04:13:39 -07:00
82571.c e1000e: Bump the version to 3.2.5 2015-06-03 04:13:39 -07:00
82571.h e1000e: Bump the version to 3.2.5 2015-06-03 04:13:39 -07:00
defines.h e1000e: Adds hardware supported cross timestamp on e1000e nic 2016-03-03 14:28:46 -08:00
e1000.h e1000e: call ndo_stop() instead of dev_close() when running offline selftest 2016-04-06 14:05:24 -07:00
ethtool.c e1000e: fix ethtool autoneg off for non-copper 2016-05-13 14:23:37 -07:00
hw.h e1000e: Initial support for KabeLake 2016-02-24 14:53:30 -08:00
ich8lan.c e1000e: Clear ULP configuration register on ULP exit 2016-02-24 14:50:21 -08:00
ich8lan.h e1000e: Clear ULP configuration register on ULP exit 2016-02-24 14:50:21 -08:00
mac.c e1000e: Bump the version to 3.2.5 2015-06-03 04:13:39 -07:00
mac.h e1000e: Bump the version to 3.2.5 2015-06-03 04:13:39 -07:00
Makefile e1000e: Cleanup - Update GPL header and Copyright 2014-03-07 21:55:27 -08:00
manage.c e1000e: Bump the version to 3.2.5 2015-06-03 04:13:39 -07:00
manage.h e1000e: Bump the version to 3.2.5 2015-06-03 04:13:39 -07:00
netdev.c e1000e: e1000e_cyclecounter_read(): do overflow check only if needed 2016-05-13 14:56:35 -07:00
nvm.c e1000e: Bump the version to 3.2.5 2015-06-03 04:13:39 -07:00
nvm.h e1000e: Bump the version to 3.2.5 2015-06-03 04:13:39 -07:00
param.c e1000e: Bump the version to 3.2.5 2015-06-03 04:13:39 -07:00
phy.c e1000e: Bump the version to 3.2.5 2015-06-03 04:13:39 -07:00
phy.h e1000e: Bump the version to 3.2.5 2015-06-03 04:13:39 -07:00
ptp.c e1000e: Adds hardware supported cross timestamp on e1000e nic 2016-03-03 14:28:46 -08:00
regs.h e1000e: Adds hardware supported cross timestamp on e1000e nic 2016-03-03 14:28:46 -08:00