162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */ 262306a36Sopenharmony_ci/**************************************************************************** 362306a36Sopenharmony_ci * Driver for Solarflare network controllers and boards 462306a36Sopenharmony_ci * Copyright 2019 Solarflare Communications Inc. 562306a36Sopenharmony_ci * 662306a36Sopenharmony_ci * This program is free software; you can redistribute it and/or modify it 762306a36Sopenharmony_ci * under the terms of the GNU General Public License version 2 as published 862306a36Sopenharmony_ci * by the Free Software Foundation, incorporated herein by reference. 962306a36Sopenharmony_ci */ 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_ci#ifndef EFX_ETHTOOL_COMMON_H 1262306a36Sopenharmony_ci#define EFX_ETHTOOL_COMMON_H 1362306a36Sopenharmony_ci 1462306a36Sopenharmony_civoid efx_siena_ethtool_get_drvinfo(struct net_device *net_dev, 1562306a36Sopenharmony_ci struct ethtool_drvinfo *info); 1662306a36Sopenharmony_ciu32 efx_siena_ethtool_get_msglevel(struct net_device *net_dev); 1762306a36Sopenharmony_civoid efx_siena_ethtool_set_msglevel(struct net_device *net_dev, u32 msg_enable); 1862306a36Sopenharmony_civoid efx_siena_ethtool_self_test(struct net_device *net_dev, 1962306a36Sopenharmony_ci struct ethtool_test *test, u64 *data); 2062306a36Sopenharmony_civoid efx_siena_ethtool_get_pauseparam(struct net_device *net_dev, 2162306a36Sopenharmony_ci struct ethtool_pauseparam *pause); 2262306a36Sopenharmony_ciint efx_siena_ethtool_set_pauseparam(struct net_device *net_dev, 2362306a36Sopenharmony_ci struct ethtool_pauseparam *pause); 2462306a36Sopenharmony_ciint efx_siena_ethtool_get_sset_count(struct net_device *net_dev, int string_set); 2562306a36Sopenharmony_civoid efx_siena_ethtool_get_strings(struct net_device *net_dev, u32 string_set, 2662306a36Sopenharmony_ci u8 *strings); 2762306a36Sopenharmony_civoid efx_siena_ethtool_get_stats(struct net_device *net_dev, 2862306a36Sopenharmony_ci struct ethtool_stats *stats __always_unused, 2962306a36Sopenharmony_ci u64 *data); 3062306a36Sopenharmony_ciint efx_siena_ethtool_get_link_ksettings(struct net_device *net_dev, 3162306a36Sopenharmony_ci struct ethtool_link_ksettings *out); 3262306a36Sopenharmony_ciint efx_siena_ethtool_set_link_ksettings(struct net_device *net_dev, 3362306a36Sopenharmony_ci const struct ethtool_link_ksettings *settings); 3462306a36Sopenharmony_ciint efx_siena_ethtool_get_fecparam(struct net_device *net_dev, 3562306a36Sopenharmony_ci struct ethtool_fecparam *fecparam); 3662306a36Sopenharmony_ciint efx_siena_ethtool_set_fecparam(struct net_device *net_dev, 3762306a36Sopenharmony_ci struct ethtool_fecparam *fecparam); 3862306a36Sopenharmony_ciint efx_siena_ethtool_get_rxnfc(struct net_device *net_dev, 3962306a36Sopenharmony_ci struct ethtool_rxnfc *info, u32 *rule_locs); 4062306a36Sopenharmony_ciint efx_siena_ethtool_set_rxnfc(struct net_device *net_dev, 4162306a36Sopenharmony_ci struct ethtool_rxnfc *info); 4262306a36Sopenharmony_ciu32 efx_siena_ethtool_get_rxfh_indir_size(struct net_device *net_dev); 4362306a36Sopenharmony_ciu32 efx_siena_ethtool_get_rxfh_key_size(struct net_device *net_dev); 4462306a36Sopenharmony_ciint efx_siena_ethtool_get_rxfh(struct net_device *net_dev, u32 *indir, u8 *key, 4562306a36Sopenharmony_ci u8 *hfunc); 4662306a36Sopenharmony_ciint efx_siena_ethtool_set_rxfh(struct net_device *net_dev, 4762306a36Sopenharmony_ci const u32 *indir, const u8 *key, const u8 hfunc); 4862306a36Sopenharmony_ciint efx_siena_ethtool_get_rxfh_context(struct net_device *net_dev, u32 *indir, 4962306a36Sopenharmony_ci u8 *key, u8 *hfunc, u32 rss_context); 5062306a36Sopenharmony_ciint efx_siena_ethtool_set_rxfh_context(struct net_device *net_dev, 5162306a36Sopenharmony_ci const u32 *indir, const u8 *key, 5262306a36Sopenharmony_ci const u8 hfunc, u32 *rss_context, 5362306a36Sopenharmony_ci bool delete); 5462306a36Sopenharmony_ciint efx_siena_ethtool_reset(struct net_device *net_dev, u32 *flags); 5562306a36Sopenharmony_ciint efx_siena_ethtool_get_module_eeprom(struct net_device *net_dev, 5662306a36Sopenharmony_ci struct ethtool_eeprom *ee, 5762306a36Sopenharmony_ci u8 *data); 5862306a36Sopenharmony_ciint efx_siena_ethtool_get_module_info(struct net_device *net_dev, 5962306a36Sopenharmony_ci struct ethtool_modinfo *modinfo); 6062306a36Sopenharmony_ci#endif 61