You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
113 lines
3.7 KiB
113 lines
3.7 KiB
From 5eb5efc51761e5fedf4325ee2645e12922ee2fe4 Mon Sep 17 00:00:00 2001
|
|
From: Igor Russkikh <irusskik@redhat.com>
|
|
Date: Fri, 6 Nov 2020 18:36:44 -0500
|
|
Subject: [PATCH 027/139] [netdrv] net: aquantia: implement get_ts_info ethtool
|
|
|
|
Message-id: <1604687916-15087-28-git-send-email-irusskik@redhat.com>
|
|
Patchwork-id: 338455
|
|
Patchwork-instance: patchwork
|
|
O-Subject: [RHEL8.4 BZ 1857861 027/139] net: aquantia: implement get_ts_info ethtool
|
|
Bugzilla: 1857861
|
|
RH-Acked-by: David Arcari <darcari@redhat.com>
|
|
RH-Acked-by: John Linville <linville@redhat.com>
|
|
RH-Acked-by: Tony Camuso <tcamuso@redhat.com>
|
|
|
|
Bugzilla: http://bugzilla.redhat.com/1857861
|
|
|
|
commit 84989af0465b4a7898eb3a2392ea382cc219cb1d
|
|
Author: Egor Pomozov <epomozov@marvell.com>
|
|
Date: Tue Oct 22 09:53:42 2019 +0000
|
|
|
|
net: aquantia: implement get_ts_info ethtool
|
|
|
|
Ethtool callback with basic information on what PTP features are supported
|
|
by the device.
|
|
|
|
Signed-off-by: Egor Pomozov <epomozov@marvell.com>
|
|
Co-developed-by: Sergey Samoilenko <sergey.samoilenko@aquantia.com>
|
|
Signed-off-by: Sergey Samoilenko <sergey.samoilenko@aquantia.com>
|
|
Co-developed-by: Dmitry Bezrukov <dmitry.bezrukov@aquantia.com>
|
|
Signed-off-by: Dmitry Bezrukov <dmitry.bezrukov@aquantia.com>
|
|
Signed-off-by: Igor Russkikh <igor.russkikh@aquantia.com>
|
|
Signed-off-by: David S. Miller <davem@davemloft.net>
|
|
|
|
Signed-off-by: Igor Russkikh <irusskik@redhat.com>
|
|
|
|
Cc: David Arcari <darcari@redhat.com>
|
|
Cc: Igor Russkikh <irusskik@redhat.com>
|
|
Signed-off-by: Jan Stancek <jstancek@redhat.com>
|
|
---
|
|
.../net/ethernet/aquantia/atlantic/aq_ethtool.c | 35 +++++++++++++++++++++-
|
|
1 file changed, 34 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/drivers/net/ethernet/aquantia/atlantic/aq_ethtool.c b/drivers/net/ethernet/aquantia/atlantic/aq_ethtool.c
|
|
index 24df132384fb..1ae8aabcc41a 100644
|
|
--- a/drivers/net/ethernet/aquantia/atlantic/aq_ethtool.c
|
|
+++ b/drivers/net/ethernet/aquantia/atlantic/aq_ethtool.c
|
|
@@ -1,7 +1,7 @@
|
|
// SPDX-License-Identifier: GPL-2.0-only
|
|
/*
|
|
* aQuantia Corporation Network Driver
|
|
- * Copyright (C) 2014-2017 aQuantia Corporation. All rights reserved
|
|
+ * Copyright (C) 2014-2019 aQuantia Corporation. All rights reserved
|
|
*/
|
|
|
|
/* File aq_ethtool.c: Definition of ethertool related functions. */
|
|
@@ -9,8 +9,11 @@
|
|
#include "aq_ethtool.h"
|
|
#include "aq_nic.h"
|
|
#include "aq_vec.h"
|
|
+#include "aq_ptp.h"
|
|
#include "aq_filters.h"
|
|
|
|
+#include <linux/ptp_clock_kernel.h>
|
|
+
|
|
static void aq_ethtool_get_regs(struct net_device *ndev,
|
|
struct ethtool_regs *regs, void *p)
|
|
{
|
|
@@ -377,6 +380,35 @@ static int aq_ethtool_set_wol(struct net_device *ndev,
|
|
return err;
|
|
}
|
|
|
|
+static int aq_ethtool_get_ts_info(struct net_device *ndev,
|
|
+ struct ethtool_ts_info *info)
|
|
+{
|
|
+ struct aq_nic_s *aq_nic = netdev_priv(ndev);
|
|
+
|
|
+ ethtool_op_get_ts_info(ndev, info);
|
|
+
|
|
+ if (!aq_nic->aq_ptp)
|
|
+ return 0;
|
|
+
|
|
+ info->so_timestamping |=
|
|
+ SOF_TIMESTAMPING_TX_HARDWARE |
|
|
+ SOF_TIMESTAMPING_RX_HARDWARE |
|
|
+ SOF_TIMESTAMPING_RAW_HARDWARE;
|
|
+
|
|
+ info->tx_types = BIT(HWTSTAMP_TX_OFF) |
|
|
+ BIT(HWTSTAMP_TX_ON);
|
|
+
|
|
+ info->rx_filters = BIT(HWTSTAMP_FILTER_NONE);
|
|
+
|
|
+ info->rx_filters |= BIT(HWTSTAMP_FILTER_PTP_V2_L4_EVENT) |
|
|
+ BIT(HWTSTAMP_FILTER_PTP_V2_L2_EVENT) |
|
|
+ BIT(HWTSTAMP_FILTER_PTP_V2_EVENT);
|
|
+
|
|
+ info->phc_index = ptp_clock_index(aq_ptp_get_ptp_clock(aq_nic->aq_ptp));
|
|
+
|
|
+ return 0;
|
|
+}
|
|
+
|
|
static enum hw_atl_fw2x_rate eee_mask_to_ethtool_mask(u32 speed)
|
|
{
|
|
u32 rate = 0;
|
|
@@ -604,4 +636,5 @@ const struct ethtool_ops aq_ethtool_ops = {
|
|
.set_link_ksettings = aq_ethtool_set_link_ksettings,
|
|
.get_coalesce = aq_ethtool_get_coalesce,
|
|
.set_coalesce = aq_ethtool_set_coalesce,
|
|
+ .get_ts_info = aq_ethtool_get_ts_info,
|
|
};
|
|
--
|
|
2.13.6
|
|
|