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

Reply via email to