Re: [PATCH net] net: igb: fix the start time for periodic output signals
From: "Keller, Jacob E" <jacob.e.keller@intel.com>
Date: 2015-06-11 17:06:02
Reviewed-by: Jacob Keller <jacob.e.keller@intel.com> Thanks Richard! Easy detail to miss. Regards, Jake On Thu, 2015-06-11 at 14:51 +0200, Richard Cochran wrote:
quoted hunk ↗ jump to hunk
When programming the start of a periodic output, the code wrongly places the seconds value into the "low" register and the nanoseconds into the "high" register. Even though this is backwards, it slipped through my testing, because the re-arming code in the interrupt service routine is correct, and the signal does appear starting with the second edge. This patch fixes the issue by programming the registers correctly. Signed-off-by: Richard Cochran <richardcochran@gmail.com> --- drivers/net/ethernet/intel/igb/igb_ptp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)diff --git a/drivers/net/ethernet/intel/igb/igb_ptp.cb/drivers/net/ethernet/intel/igb/igb_ptp.c index e3b9b63..c3a9392c 100644--- a/drivers/net/ethernet/intel/igb/igb_ptp.c +++ b/drivers/net/ethernet/intel/igb/igb_ptp.c@@ -538,8 +538,8 @@ static int igb_ptp_feature_enable_i210(structptp_clock_info *ptp, igb->perout[i].start.tv_nsec = rq ->perout.start.nsec; igb->perout[i].period.tv_sec = ts.tv_sec; igb->perout[i].period.tv_nsec = ts.tv_nsec; - wr32(trgttiml, rq->perout.start.sec); - wr32(trgttimh, rq->perout.start.nsec); + wr32(trgttimh, rq->perout.start.sec); + wr32(trgttiml, rq->perout.start.nsec); tsauxc |= tsauxc_mask; tsim |= tsim_mask; } else {