diff options
Diffstat (limited to 'drivers/net/ethernet/cadence/macb_ptp.c')
| -rw-r--r-- | drivers/net/ethernet/cadence/macb_ptp.c | 8 |
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; |
