pch_gbe: scale time stamps to nanoseconds
authorTakahiro Shimizu <tshimizu818@gmail.com>
Fri, 20 Apr 2012 18:50:28 +0000 (18:50 +0000)
committerDavid S. Miller <davem@davemloft.net>
Sat, 21 Apr 2012 19:27:44 +0000 (15:27 -0400)
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>
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
drivers/ptp/ptp_pch.c

index 8035e5f..7c2dabb 100644 (file)
@@ -101,8 +101,6 @@ const char pch_driver_version[] = DRV_VERSION;
 
 #ifdef CONFIG_PCH_PTP
 /* Macros for ieee1588 */
-#define TICKS_NS_SHIFT  5
-
 /* 0x40 Time Synchronization Channel Control Register Bits */
 #define MASTER_MODE   (1<<0)
 #define SLAVE_MODE    (0<<0)
@@ -183,7 +181,6 @@ static void pch_rx_timestamp(
                goto out;
 
        ns = pch_rx_snap_read(pdev);
-       ns <<= TICKS_NS_SHIFT;
 
        shhwtstamps = skb_hwtstamps(skb);
        memset(shhwtstamps, 0, sizeof(*shhwtstamps));
@@ -226,7 +223,6 @@ static void pch_tx_timestamp(
        }
 
        ns = pch_tx_snap_read(pdev);
-       ns <<= TICKS_NS_SHIFT;
 
        memset(&shhwtstamps, 0, sizeof(shhwtstamps));
        shhwtstamps.hwtstamp = ns_to_ktime(ns);
index 375eb04..847a3c3 100644 (file)
@@ -261,6 +261,7 @@ u64 pch_rx_snap_read(struct pci_dev *pdev)
 
        ns = ((u64) hi) << 32;
        ns |= lo;
+       ns <<= TICKS_NS_SHIFT;
 
        return ns;
 }
@@ -277,6 +278,7 @@ u64 pch_tx_snap_read(struct pci_dev *pdev)
 
        ns = ((u64) hi) << 32;
        ns |= lo;
+       ns <<= TICKS_NS_SHIFT;
 
        return ns;
 }