Re: [net-next 14/16] i40e: enable PTP
flat view
From: Ben Hutchings <hidden>
Date: 2014-01-10 15:55:11
On Fri, 2014-01-10 at 00:58 -0800, Jeff Kirsher wrote:
From: Jacob Keller <jacob.e.keller@intel.com> New feature: Enable PTP support in the i40e driver. Change-ID: I6a8e799f582705191f9583afb1b9231a8db96cc8 Cc: Richard Cochran <richardcochran@gmail.com> Signed-off-by: Jacob Keller <jacob.e.keller@intel.com> Signed-off-by: Jesse Brandeburg <redacted> Tested-by: Kavindya Deegala <redacted> Signed-off-by: Jeff Kirsher <redacted> --- drivers/net/ethernet/intel/i40e/Makefile | 2 + drivers/net/ethernet/intel/i40e/i40e.h | 24 + drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 33 +- drivers/net/ethernet/intel/i40e/i40e_main.c | 45 +- drivers/net/ethernet/intel/i40e/i40e_ptp.c | 640 +++++++++++++++++++++++++ drivers/net/ethernet/intel/i40e/i40e_txrx.c | 53 ++ drivers/net/ethernet/intel/i40e/i40e_txrx.h | 3 + 7 files changed, 798 insertions(+), 2 deletions(-) create mode 100644 drivers/net/ethernet/intel/i40e/i40e_ptp.c
This is missing a Kconfig update to select PTP_1588_CLOCK. [...]
quoted hunk ↗ jump to hunk
--- a/drivers/net/ethernet/intel/i40e/i40e_main.c +++ b/drivers/net/ethernet/intel/i40e/i40e_main.c@@ -1698,6 +1698,25 @@ static int i40e_change_mtu(struct net_device *netdev, int new_mtu) } /** + * i40e_ioctl - Access the hwtstamp interface + * @netdev: network interface device structure + * @ifr: interface request data + * @cmd: ioctl command + **/ +int i40e_ioctl(struct net_device *netdev, struct ifreq *ifr, int cmd) +{ + struct i40e_netdev_priv *np = netdev_priv(netdev); + struct i40e_pf *pf = np->vsi->back; + + switch (cmd) { + case SIOCSHWTSTAMP: + return i40e_ptp_hwtstamp_ioctl(pf, ifr, cmd); + default: + return -EOPNOTSUPP; + } +}
Please implement SIOCGHWTSTAMP as well. [...]
quoted hunk ↗ jump to hunk
--- /dev/null +++ b/drivers/net/ethernet/intel/i40e/i40e_ptp.c
[...]
quoted hunk ↗ jump to hunk
+void i40e_ptp_init(struct i40e_pf *pf) +{ + struct i40e_hw *hw = &pf->hw; + struct net_device *netdev = pf->vsi[pf->lan_vsi]->netdev; + + snprintf(pf->ptp_caps.name, 16, "%pm", netdev->dev_addr);
[...] Use sizeof(), not a magic number. Also the clock name should perhaps be the driver name, not the MAC address. Is the clock shared between multiple PFs or are there independent clocks for each PF? Ben. -- Ben Hutchings, Staff Engineer, Solarflare Not speaking for my employer; that's the marketing department's job. They asked us to note that Solarflare product names are trademarked.