net: stmmac: Calculate CDC error only once
[linux-2.6-microblaze.git] / drivers / net / ethernet / stmicro / stmmac / stmmac_ptp.c
index 580cc03..e14c97c 100644 (file)
@@ -309,6 +309,11 @@ void stmmac_ptp_register(struct stmmac_priv *priv)
        if (priv->plat->ptp_max_adj)
                stmmac_ptp_clock_ops.max_adj = priv->plat->ptp_max_adj;
 
+       /* Calculate the clock domain crossing (CDC) error if necessary */
+       priv->plat->cdc_error_adj = 0;
+       if (priv->plat->has_gmac4 && priv->plat->clk_ptp_rate)
+               priv->plat->cdc_error_adj = (2 * NSEC_PER_SEC) / priv->plat->clk_ptp_rate;
+
        stmmac_ptp_clock_ops.n_per_out = priv->dma_cap.pps_out_num;
        stmmac_ptp_clock_ops.n_ext_ts = priv->dma_cap.aux_snapshot_n;