pch_gbe: scale time stamps to nanoseconds

This patch fixes the helper functions that give the transmit and
receive time stamps to return nanoseconds, instead of arbitrary clock
ticks.

[ RC - Rebased Takahiro's changes and wrote a commit message
  explaining the changes. ]

Signed-off-by: Takahiro Shimizu <tshimizu818@gmail.com>
Signed-off-by: Richard Cochran <richardcochran@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Takahiro Shimizu 2012-04-20 18:50:28 +00:00 committed by David S. Miller
parent 5f568e5afe
commit d50566c727
2 changed files with 2 additions and 4 deletions

View File

@ -101,8 +101,6 @@ const char pch_driver_version[] = DRV_VERSION;
#ifdef CONFIG_PCH_PTP #ifdef CONFIG_PCH_PTP
/* Macros for ieee1588 */ /* Macros for ieee1588 */
#define TICKS_NS_SHIFT 5
/* 0x40 Time Synchronization Channel Control Register Bits */ /* 0x40 Time Synchronization Channel Control Register Bits */
#define MASTER_MODE (1<<0) #define MASTER_MODE (1<<0)
#define SLAVE_MODE (0<<0) #define SLAVE_MODE (0<<0)
@ -183,7 +181,6 @@ static void pch_rx_timestamp(
goto out; goto out;
ns = pch_rx_snap_read(pdev); ns = pch_rx_snap_read(pdev);
ns <<= TICKS_NS_SHIFT;
shhwtstamps = skb_hwtstamps(skb); shhwtstamps = skb_hwtstamps(skb);
memset(shhwtstamps, 0, sizeof(*shhwtstamps)); memset(shhwtstamps, 0, sizeof(*shhwtstamps));
@ -226,7 +223,6 @@ static void pch_tx_timestamp(
} }
ns = pch_tx_snap_read(pdev); ns = pch_tx_snap_read(pdev);
ns <<= TICKS_NS_SHIFT;
memset(&shhwtstamps, 0, sizeof(shhwtstamps)); memset(&shhwtstamps, 0, sizeof(shhwtstamps));
shhwtstamps.hwtstamp = ns_to_ktime(ns); shhwtstamps.hwtstamp = ns_to_ktime(ns);

View File

@ -261,6 +261,7 @@ u64 pch_rx_snap_read(struct pci_dev *pdev)
ns = ((u64) hi) << 32; ns = ((u64) hi) << 32;
ns |= lo; ns |= lo;
ns <<= TICKS_NS_SHIFT;
return ns; return ns;
} }
@ -277,6 +278,7 @@ u64 pch_tx_snap_read(struct pci_dev *pdev)
ns = ((u64) hi) << 32; ns = ((u64) hi) << 32;
ns |= lo; ns |= lo;
ns <<= TICKS_NS_SHIFT;
return ns; return ns;
} }