mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-16 07:36:46 +07:00
sfc: add ethtool ops and miscellaneous ndos to EF100
Mostly just calls to existing common functions. Signed-off-by: Edward Cree <ecree@solarflare.com> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
c77289b433
commit
4404c0898d
@ -17,8 +17,49 @@
|
||||
#include "ef100_ethtool.h"
|
||||
#include "mcdi_functions.h"
|
||||
|
||||
/* This is the maximum number of descriptor rings supported by the QDMA */
|
||||
#define EFX_EF100_MAX_DMAQ_SIZE 16384UL
|
||||
|
||||
static void ef100_ethtool_get_ringparam(struct net_device *net_dev,
|
||||
struct ethtool_ringparam *ring)
|
||||
{
|
||||
struct efx_nic *efx = netdev_priv(net_dev);
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
/* Ethtool options available
|
||||
*/
|
||||
const struct ethtool_ops ef100_ethtool_ops = {
|
||||
.get_drvinfo = efx_ethtool_get_drvinfo,
|
||||
.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,
|
||||
};
|
||||
|
@ -217,9 +217,13 @@ static const struct net_device_ops ef100_netdev_ops = {
|
||||
.ndo_open = ef100_net_open,
|
||||
.ndo_stop = ef100_net_stop,
|
||||
.ndo_start_xmit = ef100_hard_start_xmit,
|
||||
.ndo_tx_timeout = efx_watchdog,
|
||||
.ndo_get_stats64 = efx_net_stats,
|
||||
.ndo_change_mtu = efx_change_mtu,
|
||||
.ndo_validate_addr = eth_validate_addr,
|
||||
.ndo_set_mac_address = efx_set_mac_address,
|
||||
.ndo_set_rx_mode = efx_set_rx_mode, /* Lookout */
|
||||
.ndo_set_features = efx_set_features,
|
||||
.ndo_get_phys_port_id = efx_get_phys_port_id,
|
||||
.ndo_get_phys_port_name = efx_get_phys_port_name,
|
||||
#ifdef CONFIG_RFS_ACCEL
|
||||
|
@ -684,7 +684,7 @@ static unsigned int ef100_check_caps(const struct efx_nic *efx,
|
||||
/* NIC level access functions
|
||||
*/
|
||||
#define EF100_OFFLOAD_FEATURES (NETIF_F_HW_CSUM | NETIF_F_RXCSUM | \
|
||||
NETIF_F_HIGHDMA | NETIF_F_SG | NETIF_F_FRAGLIST | \
|
||||
NETIF_F_HIGHDMA | NETIF_F_SG | NETIF_F_FRAGLIST | NETIF_F_NTUPLE | \
|
||||
NETIF_F_RXHASH | NETIF_F_RXFCS | NETIF_F_TSO_ECN | NETIF_F_RXALL | \
|
||||
NETIF_F_TSO_MANGLEID | NETIF_F_HW_VLAN_CTAG_TX)
|
||||
|
||||
@ -757,6 +757,7 @@ const struct efx_nic_type ef100_pf_nic_type = {
|
||||
.rx_restore_rss_contexts = efx_mcdi_rx_restore_rss_contexts,
|
||||
|
||||
.reconfigure_mac = ef100_reconfigure_mac,
|
||||
.reconfigure_port = efx_mcdi_port_reconfigure,
|
||||
.test_nvram = efx_new_mcdi_nvram_test_all,
|
||||
.describe_stats = ef100_describe_stats,
|
||||
.start_stats = efx_mcdi_mac_start_stats,
|
||||
@ -1158,6 +1159,10 @@ static int ef100_probe_main(struct efx_nic *efx)
|
||||
goto fail;
|
||||
/* Reset (most) configuration for this function */
|
||||
rc = efx_mcdi_reset(efx, RESET_TYPE_ALL);
|
||||
if (rc)
|
||||
goto fail;
|
||||
/* Enable event logging */
|
||||
rc = efx_mcdi_log_ctrl(efx, true, false, 0);
|
||||
if (rc)
|
||||
goto fail;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user