aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/cadence/macb_ptp.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/ethernet/cadence/macb_ptp.c')
-rw-r--r--drivers/net/ethernet/cadence/macb_ptp.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/net/ethernet/cadence/macb_ptp.c b/drivers/net/ethernet/cadence/macb_ptp.c
index 2220c771092b..a6dc47edc4cf 100644
--- a/drivers/net/ethernet/cadence/macb_ptp.c
+++ b/drivers/net/ethernet/cadence/macb_ptp.c
@@ -170,10 +170,7 @@ static int gem_ptp_adjtime(struct ptp_clock_info *ptp, s64 delta)
170 170
171 if (delta > TSU_NSEC_MAX_VAL) { 171 if (delta > TSU_NSEC_MAX_VAL) {
172 gem_tsu_get_time(&bp->ptp_clock_info, &now); 172 gem_tsu_get_time(&bp->ptp_clock_info, &now);
173 if (sign) 173 now = timespec64_add(now, then);
174 now = timespec64_sub(now, then);
175 else
176 now = timespec64_add(now, then);
177 174
178 gem_tsu_set_time(&bp->ptp_clock_info, 175 gem_tsu_set_time(&bp->ptp_clock_info,
179 (const struct timespec64 *)&now); 176 (const struct timespec64 *)&now);
@@ -322,6 +319,8 @@ int gem_ptp_txstamp(struct macb_queue *queue, struct sk_buff *skb,
322 desc_ptp = macb_ptp_desc(queue->bp, desc); 319 desc_ptp = macb_ptp_desc(queue->bp, desc);
323 tx_timestamp = &queue->tx_timestamps[head]; 320 tx_timestamp = &queue->tx_timestamps[head];
324 tx_timestamp->skb = skb; 321 tx_timestamp->skb = skb;
322 /* ensure ts_1/ts_2 is loaded after ctrl (TX_USED check) */
323 dma_rmb();
325 tx_timestamp->desc_ptp.ts_1 = desc_ptp->ts_1; 324 tx_timestamp->desc_ptp.ts_1 = desc_ptp->ts_1;
326 tx_timestamp->desc_ptp.ts_2 = desc_ptp->ts_2; 325 tx_timestamp->desc_ptp.ts_2 = desc_ptp->ts_2;
327 /* move head */ 326 /* move head */
@@ -469,6 +468,7 @@ int gem_set_hwtst(struct net_device *dev, struct ifreq *ifr, int cmd)
469 case HWTSTAMP_TX_ONESTEP_SYNC: 468 case HWTSTAMP_TX_ONESTEP_SYNC:
470 if (gem_ptp_set_one_step_sync(bp, 1) != 0) 469 if (gem_ptp_set_one_step_sync(bp, 1) != 0)
471 return -ERANGE; 470 return -ERANGE;
471 /* fall through */
472 case HWTSTAMP_TX_ON: 472 case HWTSTAMP_TX_ON:
473 tx_bd_control = TSTAMP_ALL_FRAMES; 473 tx_bd_control = TSTAMP_ALL_FRAMES;
474 break; 474 break;