From: Richard Cochran Date: Sun, 19 Jun 2011 21:51:27 +0000 (+0000) Subject: fec_mpc52xx: enable transmit and receive time stamping. X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=d6cf07327e691e8f7c0f08af69d0dd3887aa1e4f;p=openwrt%2Fstaging%2Fblogic.git fec_mpc52xx: enable transmit and receive time stamping. This patch enables software (and phy device) time stamping. Software time stamping using the SO_TIMESTAMPING API was tested and found to be working on the LITE5200B board. Cc: Grant Likely Signed-off-by: Richard Cochran Signed-off-by: David S. Miller --- diff --git a/drivers/net/fec_mpc52xx.c b/drivers/net/fec_mpc52xx.c index eba0f696a51f..cecc3b1eb486 100644 --- a/drivers/net/fec_mpc52xx.c +++ b/drivers/net/fec_mpc52xx.c @@ -336,6 +336,7 @@ static int mpc52xx_fec_start_xmit(struct sk_buff *skb, struct net_device *dev) bd->skb_pa = dma_map_single(dev->dev.parent, skb->data, skb->len, DMA_TO_DEVICE); + skb_tx_timestamp(skb); bcom_submit_next_buffer(priv->tx_dmatsk, skb); spin_unlock_irqrestore(&priv->lock, flags); @@ -435,7 +436,8 @@ static irqreturn_t mpc52xx_fec_rx_interrupt(int irq, void *dev_id) length = status & BCOM_FEC_RX_BD_LEN_MASK; skb_put(rskb, length - 4); /* length without CRC32 */ rskb->protocol = eth_type_trans(rskb, dev); - netif_rx(rskb); + if (!skb_defer_rx_timestamp(skb)) + netif_rx(rskb); spin_lock(&priv->lock); }