#ifndef NSP_NSP_H
#define NSP_NSP_H …
#include <linux/types.h>
#include <linux/if_ether.h>
struct firmware;
struct nfp_cpp;
struct nfp_nsp;
struct nfp_nsp *nfp_nsp_open(struct nfp_cpp *cpp);
void nfp_nsp_close(struct nfp_nsp *state);
u16 nfp_nsp_get_abi_ver_major(struct nfp_nsp *state);
u16 nfp_nsp_get_abi_ver_minor(struct nfp_nsp *state);
int nfp_nsp_wait(struct nfp_nsp *state);
int nfp_nsp_device_soft_reset(struct nfp_nsp *state);
int nfp_nsp_load_fw(struct nfp_nsp *state, const struct firmware *fw);
int nfp_nsp_write_flash(struct nfp_nsp *state, const struct firmware *fw);
int nfp_nsp_mac_reinit(struct nfp_nsp *state);
int nfp_nsp_load_stored_fw(struct nfp_nsp *state);
int nfp_nsp_hwinfo_lookup(struct nfp_nsp *state, void *buf, unsigned int size);
int nfp_nsp_hwinfo_lookup_optional(struct nfp_nsp *state, void *buf,
unsigned int size, const char *default_val);
int nfp_nsp_hwinfo_set(struct nfp_nsp *state, void *buf, unsigned int size);
int nfp_nsp_fw_loaded(struct nfp_nsp *state);
int nfp_nsp_read_module_eeprom(struct nfp_nsp *state, int eth_index,
unsigned int offset, void *data,
unsigned int len, unsigned int *read_len);
static inline bool nfp_nsp_has_mac_reinit(struct nfp_nsp *state)
{ … }
static inline bool nfp_nsp_has_stored_fw_load(struct nfp_nsp *state)
{ … }
static inline bool nfp_nsp_has_hwinfo_lookup(struct nfp_nsp *state)
{ … }
static inline bool nfp_nsp_has_hwinfo_set(struct nfp_nsp *state)
{ … }
static inline bool nfp_nsp_has_fw_loaded(struct nfp_nsp *state)
{ … }
static inline bool nfp_nsp_has_versions(struct nfp_nsp *state)
{ … }
static inline bool nfp_nsp_has_read_module_eeprom(struct nfp_nsp *state)
{ … }
static inline bool nfp_nsp_has_read_media(struct nfp_nsp *state)
{ … }
enum nfp_eth_interface { … };
enum nfp_eth_media { … };
enum nfp_eth_aneg { … };
enum nfp_eth_fec { … };
enum nfp_ethtool_link_mode_list { … };
#define NFP_FEC_AUTO …
#define NFP_FEC_BASER …
#define NFP_FEC_REED_SOLOMON …
#define NFP_FEC_DISABLED …
#define NFP_NSP_DRV_RESET_DISK …
#define NFP_NSP_DRV_RESET_ALWAYS …
#define NFP_NSP_DRV_RESET_NEVER …
#define NFP_NSP_DRV_RESET_DEFAULT …
#define NFP_NSP_APP_FW_LOAD_DISK …
#define NFP_NSP_APP_FW_LOAD_FLASH …
#define NFP_NSP_APP_FW_LOAD_PREF …
#define NFP_NSP_APP_FW_LOAD_DEFAULT …
#define NFP_NSP_DRV_LOAD_IFC_DEFAULT …
struct nfp_eth_table { … };
struct nfp_eth_table *nfp_eth_read_ports(struct nfp_cpp *cpp);
struct nfp_eth_table *
__nfp_eth_read_ports(struct nfp_cpp *cpp, struct nfp_nsp *nsp);
int nfp_eth_set_mod_enable(struct nfp_cpp *cpp, unsigned int idx, bool enable);
int nfp_eth_set_configured(struct nfp_cpp *cpp, unsigned int idx,
bool configed);
int
nfp_eth_set_fec(struct nfp_cpp *cpp, unsigned int idx, enum nfp_eth_fec mode);
int nfp_eth_set_idmode(struct nfp_cpp *cpp, unsigned int idx, bool state);
int nfp_eth_set_pauseparam(struct nfp_cpp *cpp, unsigned int idx,
unsigned int tx_pause, unsigned int rx_pause);
static inline bool nfp_eth_can_support_fec(struct nfp_eth_table_port *eth_port)
{ … }
static inline unsigned int
nfp_eth_supported_fec_modes(struct nfp_eth_table_port *eth_port)
{ … }
struct nfp_nsp *nfp_eth_config_start(struct nfp_cpp *cpp, unsigned int idx);
int nfp_eth_config_commit_end(struct nfp_nsp *nsp);
void nfp_eth_config_cleanup_end(struct nfp_nsp *nsp);
int __nfp_eth_set_aneg(struct nfp_nsp *nsp, enum nfp_eth_aneg mode);
int __nfp_eth_set_speed(struct nfp_nsp *nsp, unsigned int speed);
int __nfp_eth_set_split(struct nfp_nsp *nsp, unsigned int lanes);
struct nfp_nsp_identify { … };
struct nfp_nsp_identify *__nfp_nsp_identify(struct nfp_nsp *nsp);
enum nfp_nsp_sensor_id { … };
int nfp_hwmon_read_sensor(struct nfp_cpp *cpp, enum nfp_nsp_sensor_id id,
long *val);
struct nfp_eth_media_buf { … };
int nfp_nsp_read_media(struct nfp_nsp *state, void *buf, unsigned int size);
#define NFP_NSP_VERSION_BUFSZ …
enum nfp_nsp_versions { … };
int nfp_nsp_versions(struct nfp_nsp *state, void *buf, unsigned int size);
const char *nfp_nsp_versions_get(enum nfp_nsp_versions id, bool flash,
const u8 *buf, unsigned int size);
#endif