From mboxrd@z Thu Jan 1 00:00:00 1970 From: Richard Cochran Subject: Re: [PATCH v1 net-next] lan743x: lan743x: Add PTP support Date: Sat, 11 Aug 2018 12:28:02 -0700 Message-ID: <20180811192802.bk3akunth2xpsxaj@localhost> References: <1533843370-26315-1-git-send-email-Bryan.Whitehead@microchip.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: davem@davemloft.net, netdev@vger.kernel.org, UNGLinuxDriver@microchip.com To: Bryan Whitehead Return-path: Received: from mail-pl0-f65.google.com ([209.85.160.65]:39261 "EHLO mail-pl0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727348AbeHKWeb (ORCPT ); Sat, 11 Aug 2018 18:34:31 -0400 Received: by mail-pl0-f65.google.com with SMTP id w14-v6so5356236plp.6 for ; Sat, 11 Aug 2018 12:59:17 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1533843370-26315-1-git-send-email-Bryan.Whitehead@microchip.com> Sender: netdev-owner@vger.kernel.org List-ID: On Thu, Aug 09, 2018 at 03:36:10PM -0400, Bryan Whitehead wrote: > +static int lan743x_ptpci_adjfine(struct ptp_clock_info *ptpci, long scaled_ppm) > +{ > + struct lan743x_ptp *ptp = > + container_of(ptpci, struct lan743x_ptp, ptp_clock_info); > + struct lan743x_adapter *adapter = > + container_of(ptp, struct lan743x_adapter, ptp); > + u32 lan743x_rate_adj = 0; > + bool positive = true; > + u64 u64_delta = 0; > + > + if ((scaled_ppm < (-LAN743X_PTP_MAX_FINE_ADJ_IN_SCALED_PPM)) || > + scaled_ppm > LAN743X_PTP_MAX_FINE_ADJ_IN_SCALED_PPM) { > + return -EINVAL; Maybe ERANGE is better here. > + } > + if (scaled_ppm > 0) { > + u64_delta = (u64)scaled_ppm; > + positive = true; > + } else { > + u64_delta = (u64)(-scaled_ppm); > + positive = false; > + } > + u64_delta = (u64_delta << 19); > + lan743x_rate_adj = div_u64(u64_delta, 1000000); > + > + if (positive) > + lan743x_rate_adj |= PTP_CLOCK_RATE_ADJ_DIR_; > + > + lan743x_csr_write(adapter, PTP_CLOCK_RATE_ADJ, > + lan743x_rate_adj); > + > + return 0; > +} > + > +static int lan743x_ptpci_adjfreq(struct ptp_clock_info *ptpci, s32 delta_ppb) > +{ Since you have adjfine, you can delete adjfreq. The core PTP code does this in ptp_clock.c: if (ops->adjfine) err = ops->adjfine(ops, tx->freq); else err = ops->adjfreq(ops, ppb); Thanks, Richard