1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /****************************************************************************
3  * Driver for Solarflare network controllers and boards
4  * Copyright 2018 Solarflare Communications Inc.
5  * Copyright 2019-2020 Xilinx Inc.
6  *
7  * This program is free software; you can redistribute it and/or modify it
8  * under the terms of the GNU General Public License version 2 as published
9  * by the Free Software Foundation, incorporated herein by reference.
10  */
11 
12 #include "net_driver.h"
13 #include "nic_common.h"
14 
15 extern const struct efx_nic_type ef100_pf_nic_type;
16 
17 int ef100_probe_pf(struct efx_nic *efx);
18 void ef100_remove(struct efx_nic *efx);
19 
20 struct ef100_nic_data {
21 	struct efx_nic *efx;
22 	struct efx_buffer mcdi_buf;
23 	u32 datapath_caps;
24 	u32 datapath_caps2;
25 	u32 datapath_caps3;
26 	u16 warm_boot_count;
27 	u8 port_id[ETH_ALEN];
28 	DECLARE_BITMAP(evq_phases, EFX_MAX_CHANNELS);
29 };
30 
31 #define efx_ef100_has_cap(caps, flag) \
32 	(!!((caps) & BIT_ULL(MC_CMD_GET_CAPABILITIES_V4_OUT_ ## flag ## _LBN)))
33