cxgb4: Support for get_ts_info ethtool method
authorAtul Gupta <atul.gupta@chelsio.com>
Tue, 4 Jul 2017 11:16:22 +0000 (16:46 +0530)
committerDavid S. Miller <davem@davemloft.net>
Wed, 5 Jul 2017 08:21:54 +0000 (09:21 +0100)
Cc: Richard Cochran <richardcochran@gmail.com>
Signed-off-by: Atul Gupta <atul.gupta@chelsio.com>
Signed-off-by: Ganesh Goudar <ganeshgr@chelsio.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/chelsio/cxgb4/cxgb4_ethtool.c

index e9bab72253bb9bcfd9e9bfdc6e4b761d59125bda..26eb00a45db1e9ae04facda2ad90df632d8eafe9 100644 (file)
@@ -1113,14 +1113,31 @@ static int set_flash(struct net_device *netdev, struct ethtool_flash *ef)
 
 static int get_ts_info(struct net_device *dev, struct ethtool_ts_info *ts_info)
 {
+       struct port_info *pi = netdev_priv(dev);
+       struct  adapter *adapter = pi->adapter;
+
        ts_info->so_timestamping = SOF_TIMESTAMPING_TX_SOFTWARE |
                                   SOF_TIMESTAMPING_RX_SOFTWARE |
                                   SOF_TIMESTAMPING_SOFTWARE;
 
        ts_info->so_timestamping |= SOF_TIMESTAMPING_RX_HARDWARE |
+                                   SOF_TIMESTAMPING_TX_HARDWARE |
                                    SOF_TIMESTAMPING_RAW_HARDWARE;
 
-       ts_info->phc_index = -1;
+       ts_info->tx_types = (1 << HWTSTAMP_TX_OFF) |
+                           (1 << HWTSTAMP_TX_ON);
+
+       ts_info->rx_filters = (1 << HWTSTAMP_FILTER_NONE) |
+                             (1 << HWTSTAMP_FILTER_PTP_V2_L4_EVENT) |
+                             (1 << HWTSTAMP_FILTER_PTP_V1_L4_SYNC) |
+                             (1 << HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ) |
+                             (1 << HWTSTAMP_FILTER_PTP_V2_L4_SYNC) |
+                             (1 << HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ);
+
+       if (adapter->ptp_clock)
+               ts_info->phc_index = ptp_clock_index(adapter->ptp_clock);
+       else
+               ts_info->phc_index = -1;
 
        return 0;
 }