On Thu, 2014-03-13 at 15:55 +0900, Byungho An wrote:
> This patch adds support for Samsung 10Gb ethernet driver(sxgbe).
> - sxgbe core initialization
> - Tx and Rx support
> - MDIO support
> - ISRs for Tx and Rx
> - ifconfig support to driver
[]
> diff --git a/drivers/net/ethernet/samsung/sxgbe_desc.c
> b/drivers/net/ethernet/samsung/sxgbe_desc.c
[]
> +/* Set Time stamp */
> +static void sxgbe_tx_ctxt_desc_set_tstamp(struct sxgbe_tx_ctxt_desc *p,
> + u8 ostc_enable, u64 tstamp)
> +{
> + if (ostc_enable) {
> + p->ostc = ostc_enable;
> + p->tstamp_lo = (u32) tstamp;
> + p->tstamp_hi = (u32) (tstamp>>32);
> + }
> +}
[]
> +static u64 sxgbe_get_rx_timestamp(struct sxgbe_rx_ctxt_desc *p)
> +{
> + u64 ns;
> + ns = p->tstamp_lo;
> + ns += p->tstamp_hi * 1000000000ULL;
> +
> + return ns;
> +}
This looks odd.
rx and tx timestamps are different clocks?
rx tstamp_lo resets every second but tx_stamp
is free-running?
Maybe this was supposed to be something like
ns = p->tstamp_lo
ns |= ((u64)tstamp_hi) << 32;
If not, maybe it warrants a comment around
here or on the descriptor definition
> diff --git a/drivers/net/ethernet/samsung/sxgbe_desc.h
> b/drivers/net/ethernet/samsung/sxgbe_desc.h
[]
> +/* Context descriptor structure */
> +struct sxgbe_tx_ctxt_desc {
> + u32 tstamp_lo:32;
> + u32 tstamp_hi:32;
[]
> +struct sxgbe_rx_ctxt_desc {
> + u32 tstamp_lo:32;
> + u32 tstamp_hi:32;
--
To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html