2020-07-27 12:55:55 +01:00
// SPDX-License-Identifier: GPL-2.0-only
/****************************************************************************
* Driver for Solarflare network controllers and boards
* Copyright 2018 Solarflare Communications Inc .
* Copyright 2019 - 2020 Xilinx Inc .
*
* This program is free software ; you can redistribute it and / or modify it
* under the terms of the GNU General Public License version 2 as published
* by the Free Software Foundation , incorporated herein by reference .
*/
# include <linux/module.h>
# include <linux/netdevice.h>
# include "net_driver.h"
# include "efx.h"
# include "mcdi_port_common.h"
# include "ethtool_common.h"
# include "ef100_ethtool.h"
# include "mcdi_functions.h"
2020-09-07 17:14:52 +01:00
/* This is the maximum number of descriptor rings supported by the QDMA */
# define EFX_EF100_MAX_DMAQ_SIZE 16384UL
2021-11-18 20:12:43 +08:00
static void
ef100_ethtool_get_ringparam ( struct net_device * net_dev ,
struct ethtool_ringparam * ring ,
struct kernel_ethtool_ringparam * kernel_ring ,
struct netlink_ext_ack * extack )
2020-09-07 17:14:52 +01:00
{
2022-06-28 14:59:45 +01:00
struct efx_nic * efx = efx_netdev_priv ( net_dev ) ;
2020-09-07 17:14:52 +01:00
ring - > rx_max_pending = EFX_EF100_MAX_DMAQ_SIZE ;
ring - > tx_max_pending = EFX_EF100_MAX_DMAQ_SIZE ;
ring - > rx_pending = efx - > rxq_entries ;
ring - > tx_pending = efx - > txq_entries ;
}
2020-07-27 12:55:55 +01:00
/* Ethtool options available
*/
const struct ethtool_ops ef100_ethtool_ops = {
. get_drvinfo = efx_ethtool_get_drvinfo ,
2020-09-07 17:14:52 +01:00
. get_msglevel = efx_ethtool_get_msglevel ,
. set_msglevel = efx_ethtool_set_msglevel ,
. get_pauseparam = efx_ethtool_get_pauseparam ,
. set_pauseparam = efx_ethtool_set_pauseparam ,
. get_sset_count = efx_ethtool_get_sset_count ,
. self_test = efx_ethtool_self_test ,
. get_strings = efx_ethtool_get_strings ,
. get_link_ksettings = efx_ethtool_get_link_ksettings ,
. set_link_ksettings = efx_ethtool_set_link_ksettings ,
. get_link = ethtool_op_get_link ,
. get_ringparam = ef100_ethtool_get_ringparam ,
. get_fecparam = efx_ethtool_get_fecparam ,
. set_fecparam = efx_ethtool_set_fecparam ,
. get_ethtool_stats = efx_ethtool_get_stats ,
. get_rxnfc = efx_ethtool_get_rxnfc ,
. set_rxnfc = efx_ethtool_set_rxnfc ,
. reset = efx_ethtool_reset ,
. get_rxfh_indir_size = efx_ethtool_get_rxfh_indir_size ,
. get_rxfh_key_size = efx_ethtool_get_rxfh_key_size ,
. get_rxfh = efx_ethtool_get_rxfh ,
. set_rxfh = efx_ethtool_set_rxfh ,
. get_rxfh_context = efx_ethtool_get_rxfh_context ,
. set_rxfh_context = efx_ethtool_set_rxfh_context ,
. get_module_info = efx_ethtool_get_module_info ,
. get_module_eeprom = efx_ethtool_get_module_eeprom ,
2020-07-27 12:55:55 +01:00
} ;