aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorMatthew Vick <matthew.vick@intel.com>2012-12-13 02:20:33 -0500
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>2013-01-18 07:56:01 -0500
commitb66e2397cd277cf2bec2628b3ed35865df2609e5 (patch)
treeb18feb50f23e5fa67c4f73dca9fed86d27948eac /drivers
parente428893b7d0aecd0ca627c439e7420334824f764 (diff)
igb: Add support for SW timestamping
Enable SW timestamping for situations where the user may prefer it over HW timestamping or there may not be HW timestamping. Cc: Richard Cochran <richardcochran@gmail.com> Signed-off-by: Matthew Vick <matthew.vick@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>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/ethernet/intel/igb/igb_ethtool.c9
-rw-r--r--drivers/net/ethernet/intel/igb/igb_main.c2
2 files changed, 11 insertions, 0 deletions
diff --git a/drivers/net/ethernet/intel/igb/igb_ethtool.c b/drivers/net/ethernet/intel/igb/igb_ethtool.c
index bfe9208c4b18..61803032fdd3 100644
--- a/drivers/net/ethernet/intel/igb/igb_ethtool.c
+++ b/drivers/net/ethernet/intel/igb/igb_ethtool.c
@@ -2272,12 +2272,21 @@ static int igb_get_ts_info(struct net_device *dev,
2272 struct igb_adapter *adapter = netdev_priv(dev); 2272 struct igb_adapter *adapter = netdev_priv(dev);
2273 2273
2274 switch (adapter->hw.mac.type) { 2274 switch (adapter->hw.mac.type) {
2275 case e1000_82575:
2276 info->so_timestamping =
2277 SOF_TIMESTAMPING_TX_SOFTWARE |
2278 SOF_TIMESTAMPING_RX_SOFTWARE |
2279 SOF_TIMESTAMPING_SOFTWARE;
2280 return 0;
2275 case e1000_82576: 2281 case e1000_82576:
2276 case e1000_82580: 2282 case e1000_82580:
2277 case e1000_i350: 2283 case e1000_i350:
2278 case e1000_i210: 2284 case e1000_i210:
2279 case e1000_i211: 2285 case e1000_i211:
2280 info->so_timestamping = 2286 info->so_timestamping =
2287 SOF_TIMESTAMPING_TX_SOFTWARE |
2288 SOF_TIMESTAMPING_RX_SOFTWARE |
2289 SOF_TIMESTAMPING_SOFTWARE |
2281 SOF_TIMESTAMPING_TX_HARDWARE | 2290 SOF_TIMESTAMPING_TX_HARDWARE |
2282 SOF_TIMESTAMPING_RX_HARDWARE | 2291 SOF_TIMESTAMPING_RX_HARDWARE |
2283 SOF_TIMESTAMPING_RAW_HARDWARE; 2292 SOF_TIMESTAMPING_RAW_HARDWARE;
diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c
index a9cb84a76e49..9dd3da540cd0 100644
--- a/drivers/net/ethernet/intel/igb/igb_main.c
+++ b/drivers/net/ethernet/intel/igb/igb_main.c
@@ -4610,6 +4610,8 @@ netdev_tx_t igb_xmit_frame_ring(struct sk_buff *skb,
4610 first->bytecount = skb->len; 4610 first->bytecount = skb->len;
4611 first->gso_segs = 1; 4611 first->gso_segs = 1;
4612 4612
4613 skb_tx_timestamp(skb);
4614
4613 if (unlikely((skb_shinfo(skb)->tx_flags & SKBTX_HW_TSTAMP) && 4615 if (unlikely((skb_shinfo(skb)->tx_flags & SKBTX_HW_TSTAMP) &&
4614 !(adapter->ptp_tx_skb))) { 4616 !(adapter->ptp_tx_skb))) {
4615 skb_shinfo(skb)->tx_flags |= SKBTX_IN_PROGRESS; 4617 skb_shinfo(skb)->tx_flags |= SKBTX_IN_PROGRESS;