Skip to content

Commit

Permalink
emaclite: enable transmit and receive time stamping.
Browse files Browse the repository at this point in the history
This patch enables software (and phy device) time stamping. Since this
MAC uses phylib, adding the hooks make hardware time stamping in the phy
possible.

Compile tested only.

Cc: John Linn <john.linn@xilinx.com>
Signed-off-by: Richard Cochran <richard.cochran@omicron.at>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Richard Cochran authored and David S. Miller committed Jun 20, 2011
1 parent d76b7e2 commit 570773c
Showing 1 changed file with 7 additions and 2 deletions.
9 changes: 7 additions & 2 deletions drivers/net/xilinx_emaclite.c
Original file line number Diff line number Diff line change
Expand Up @@ -648,7 +648,8 @@ static void xemaclite_rx_handler(struct net_device *dev)
dev->stats.rx_packets++;
dev->stats.rx_bytes += len;

netif_rx(skb); /* Send the packet upstream */
if (!skb_defer_rx_timestamp(skb))
netif_rx(skb); /* Send the packet upstream */
}

/**
Expand Down Expand Up @@ -1030,15 +1031,19 @@ static int xemaclite_send(struct sk_buff *orig_skb, struct net_device *dev)
spin_lock_irqsave(&lp->reset_lock, flags);
if (xemaclite_send_data(lp, (u8 *) new_skb->data, len) != 0) {
/* If the Emaclite Tx buffer is busy, stop the Tx queue and
* defer the skb for transmission at a later point when the
* defer the skb for transmission during the ISR, after the
* current transmission is complete */
netif_stop_queue(dev);
lp->deferred_skb = new_skb;
/* Take the time stamp now, since we can't do this in an ISR. */
skb_tx_timestamp(new_skb);
spin_unlock_irqrestore(&lp->reset_lock, flags);
return 0;
}
spin_unlock_irqrestore(&lp->reset_lock, flags);

skb_tx_timestamp(new_skb);

dev->stats.tx_bytes += len;
dev_kfree_skb(new_skb);

Expand Down

0 comments on commit 570773c

Please sign in to comment.