1*9d26e4fcSRobert Mustacchi /****************************************************************************** 2*9d26e4fcSRobert Mustacchi 3*9d26e4fcSRobert Mustacchi Copyright (c) 2013-2015, Intel Corporation 4*9d26e4fcSRobert Mustacchi All rights reserved. 5*9d26e4fcSRobert Mustacchi 6*9d26e4fcSRobert Mustacchi Redistribution and use in source and binary forms, with or without 7*9d26e4fcSRobert Mustacchi modification, are permitted provided that the following conditions are met: 8*9d26e4fcSRobert Mustacchi 9*9d26e4fcSRobert Mustacchi 1. Redistributions of source code must retain the above copyright notice, 10*9d26e4fcSRobert Mustacchi this list of conditions and the following disclaimer. 11*9d26e4fcSRobert Mustacchi 12*9d26e4fcSRobert Mustacchi 2. Redistributions in binary form must reproduce the above copyright 13*9d26e4fcSRobert Mustacchi notice, this list of conditions and the following disclaimer in the 14*9d26e4fcSRobert Mustacchi documentation and/or other materials provided with the distribution. 15*9d26e4fcSRobert Mustacchi 16*9d26e4fcSRobert Mustacchi 3. Neither the name of the Intel Corporation nor the names of its 17*9d26e4fcSRobert Mustacchi contributors may be used to endorse or promote products derived from 18*9d26e4fcSRobert Mustacchi this software without specific prior written permission. 19*9d26e4fcSRobert Mustacchi 20*9d26e4fcSRobert Mustacchi THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 21*9d26e4fcSRobert Mustacchi AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22*9d26e4fcSRobert Mustacchi IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 23*9d26e4fcSRobert Mustacchi ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 24*9d26e4fcSRobert Mustacchi LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 25*9d26e4fcSRobert Mustacchi CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 26*9d26e4fcSRobert Mustacchi SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 27*9d26e4fcSRobert Mustacchi INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 28*9d26e4fcSRobert Mustacchi CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 29*9d26e4fcSRobert Mustacchi ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 30*9d26e4fcSRobert Mustacchi POSSIBILITY OF SUCH DAMAGE. 31*9d26e4fcSRobert Mustacchi 32*9d26e4fcSRobert Mustacchi ******************************************************************************/ 33*9d26e4fcSRobert Mustacchi /*$FreeBSD: head/sys/dev/ixl/i40e_prototype.h 284049 2015-06-05 22:52:42Z jfv $*/ 34*9d26e4fcSRobert Mustacchi 35*9d26e4fcSRobert Mustacchi #ifndef _I40E_PROTOTYPE_H_ 36*9d26e4fcSRobert Mustacchi #define _I40E_PROTOTYPE_H_ 37*9d26e4fcSRobert Mustacchi 38*9d26e4fcSRobert Mustacchi #include "i40e_type.h" 39*9d26e4fcSRobert Mustacchi #include "i40e_alloc.h" 40*9d26e4fcSRobert Mustacchi #include "i40e_virtchnl.h" 41*9d26e4fcSRobert Mustacchi 42*9d26e4fcSRobert Mustacchi /* Prototypes for shared code functions that are not in 43*9d26e4fcSRobert Mustacchi * the standard function pointer structures. These are 44*9d26e4fcSRobert Mustacchi * mostly because they are needed even before the init 45*9d26e4fcSRobert Mustacchi * has happened and will assist in the early SW and FW 46*9d26e4fcSRobert Mustacchi * setup. 47*9d26e4fcSRobert Mustacchi */ 48*9d26e4fcSRobert Mustacchi 49*9d26e4fcSRobert Mustacchi /* adminq functions */ 50*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_init_adminq(struct i40e_hw *hw); 51*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_shutdown_adminq(struct i40e_hw *hw); 52*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_init_asq(struct i40e_hw *hw); 53*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_init_arq(struct i40e_hw *hw); 54*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_alloc_adminq_asq_ring(struct i40e_hw *hw); 55*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_alloc_adminq_arq_ring(struct i40e_hw *hw); 56*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_shutdown_asq(struct i40e_hw *hw); 57*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_shutdown_arq(struct i40e_hw *hw); 58*9d26e4fcSRobert Mustacchi u16 i40e_clean_asq(struct i40e_hw *hw); 59*9d26e4fcSRobert Mustacchi void i40e_free_adminq_asq(struct i40e_hw *hw); 60*9d26e4fcSRobert Mustacchi void i40e_free_adminq_arq(struct i40e_hw *hw); 61*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_validate_mac_addr(u8 *mac_addr); 62*9d26e4fcSRobert Mustacchi void i40e_adminq_init_ring_data(struct i40e_hw *hw); 63*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_clean_arq_element(struct i40e_hw *hw, 64*9d26e4fcSRobert Mustacchi struct i40e_arq_event_info *e, 65*9d26e4fcSRobert Mustacchi u16 *events_pending); 66*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_asq_send_command(struct i40e_hw *hw, 67*9d26e4fcSRobert Mustacchi struct i40e_aq_desc *desc, 68*9d26e4fcSRobert Mustacchi void *buff, /* can be NULL */ 69*9d26e4fcSRobert Mustacchi u16 buff_size, 70*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 71*9d26e4fcSRobert Mustacchi bool i40e_asq_done(struct i40e_hw *hw); 72*9d26e4fcSRobert Mustacchi 73*9d26e4fcSRobert Mustacchi /* debug function for adminq */ 74*9d26e4fcSRobert Mustacchi void i40e_debug_aq(struct i40e_hw *hw, enum i40e_debug_mask mask, 75*9d26e4fcSRobert Mustacchi void *desc, void *buffer, u16 buf_len); 76*9d26e4fcSRobert Mustacchi 77*9d26e4fcSRobert Mustacchi void i40e_idle_aq(struct i40e_hw *hw); 78*9d26e4fcSRobert Mustacchi void i40e_resume_aq(struct i40e_hw *hw); 79*9d26e4fcSRobert Mustacchi bool i40e_check_asq_alive(struct i40e_hw *hw); 80*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_queue_shutdown(struct i40e_hw *hw, bool unloading); 81*9d26e4fcSRobert Mustacchi #ifdef X722_SUPPORT 82*9d26e4fcSRobert Mustacchi 83*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_get_rss_lut(struct i40e_hw *hw, u16 seid, 84*9d26e4fcSRobert Mustacchi bool pf_lut, u8 *lut, u16 lut_size); 85*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_set_rss_lut(struct i40e_hw *hw, u16 seid, 86*9d26e4fcSRobert Mustacchi bool pf_lut, u8 *lut, u16 lut_size); 87*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_get_rss_key(struct i40e_hw *hw, 88*9d26e4fcSRobert Mustacchi u16 seid, 89*9d26e4fcSRobert Mustacchi struct i40e_aqc_get_set_rss_key_data *key); 90*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_set_rss_key(struct i40e_hw *hw, 91*9d26e4fcSRobert Mustacchi u16 seid, 92*9d26e4fcSRobert Mustacchi struct i40e_aqc_get_set_rss_key_data *key); 93*9d26e4fcSRobert Mustacchi #endif 94*9d26e4fcSRobert Mustacchi char *i40e_aq_str(struct i40e_hw *hw, enum i40e_admin_queue_err aq_err); 95*9d26e4fcSRobert Mustacchi char *i40e_stat_str(struct i40e_hw *hw, enum i40e_status_code stat_err); 96*9d26e4fcSRobert Mustacchi 97*9d26e4fcSRobert Mustacchi 98*9d26e4fcSRobert Mustacchi u32 i40e_led_get(struct i40e_hw *hw); 99*9d26e4fcSRobert Mustacchi void i40e_led_set(struct i40e_hw *hw, u32 mode, bool blink); 100*9d26e4fcSRobert Mustacchi 101*9d26e4fcSRobert Mustacchi /* admin send queue commands */ 102*9d26e4fcSRobert Mustacchi 103*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_get_firmware_version(struct i40e_hw *hw, 104*9d26e4fcSRobert Mustacchi u16 *fw_major_version, u16 *fw_minor_version, 105*9d26e4fcSRobert Mustacchi u32 *fw_build, 106*9d26e4fcSRobert Mustacchi u16 *api_major_version, u16 *api_minor_version, 107*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 108*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_debug_write_register(struct i40e_hw *hw, 109*9d26e4fcSRobert Mustacchi u32 reg_addr, u64 reg_val, 110*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 111*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_debug_read_register(struct i40e_hw *hw, 112*9d26e4fcSRobert Mustacchi u32 reg_addr, u64 *reg_val, 113*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 114*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_set_phy_debug(struct i40e_hw *hw, u8 cmd_flags, 115*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 116*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_set_default_vsi(struct i40e_hw *hw, u16 vsi_id, 117*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 118*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_get_phy_capabilities(struct i40e_hw *hw, 119*9d26e4fcSRobert Mustacchi bool qualified_modules, bool report_init, 120*9d26e4fcSRobert Mustacchi struct i40e_aq_get_phy_abilities_resp *abilities, 121*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 122*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_set_phy_config(struct i40e_hw *hw, 123*9d26e4fcSRobert Mustacchi struct i40e_aq_set_phy_config *config, 124*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 125*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_set_fc(struct i40e_hw *hw, u8 *aq_failures, 126*9d26e4fcSRobert Mustacchi bool atomic_reset); 127*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_set_phy_int_mask(struct i40e_hw *hw, u16 mask, 128*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 129*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_set_mac_config(struct i40e_hw *hw, 130*9d26e4fcSRobert Mustacchi u16 max_frame_size, bool crc_en, u16 pacing, 131*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 132*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_get_local_advt_reg(struct i40e_hw *hw, 133*9d26e4fcSRobert Mustacchi u64 *advt_reg, 134*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 135*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_get_partner_advt(struct i40e_hw *hw, 136*9d26e4fcSRobert Mustacchi u64 *advt_reg, 137*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 138*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_set_lb_modes(struct i40e_hw *hw, u16 lb_modes, 139*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 140*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_clear_pxe_mode(struct i40e_hw *hw, 141*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 142*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_set_link_restart_an(struct i40e_hw *hw, 143*9d26e4fcSRobert Mustacchi bool enable_link, struct i40e_asq_cmd_details *cmd_details); 144*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_get_link_info(struct i40e_hw *hw, 145*9d26e4fcSRobert Mustacchi bool enable_lse, struct i40e_link_status *link, 146*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 147*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_set_local_advt_reg(struct i40e_hw *hw, 148*9d26e4fcSRobert Mustacchi u64 advt_reg, 149*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 150*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_send_driver_version(struct i40e_hw *hw, 151*9d26e4fcSRobert Mustacchi struct i40e_driver_version *dv, 152*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 153*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_add_vsi(struct i40e_hw *hw, 154*9d26e4fcSRobert Mustacchi struct i40e_vsi_context *vsi_ctx, 155*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 156*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_set_vsi_broadcast(struct i40e_hw *hw, 157*9d26e4fcSRobert Mustacchi u16 vsi_id, bool set_filter, 158*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 159*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_set_vsi_unicast_promiscuous(struct i40e_hw *hw, 160*9d26e4fcSRobert Mustacchi u16 vsi_id, bool set, struct i40e_asq_cmd_details *cmd_details); 161*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_set_vsi_multicast_promiscuous(struct i40e_hw *hw, 162*9d26e4fcSRobert Mustacchi u16 vsi_id, bool set, struct i40e_asq_cmd_details *cmd_details); 163*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_set_vsi_mc_promisc_on_vlan(struct i40e_hw *hw, 164*9d26e4fcSRobert Mustacchi u16 seid, bool enable, u16 vid, 165*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 166*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_set_vsi_uc_promisc_on_vlan(struct i40e_hw *hw, 167*9d26e4fcSRobert Mustacchi u16 seid, bool enable, u16 vid, 168*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 169*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_get_vsi_params(struct i40e_hw *hw, 170*9d26e4fcSRobert Mustacchi struct i40e_vsi_context *vsi_ctx, 171*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 172*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_update_vsi_params(struct i40e_hw *hw, 173*9d26e4fcSRobert Mustacchi struct i40e_vsi_context *vsi_ctx, 174*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 175*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_add_veb(struct i40e_hw *hw, u16 uplink_seid, 176*9d26e4fcSRobert Mustacchi u16 downlink_seid, u8 enabled_tc, 177*9d26e4fcSRobert Mustacchi bool default_port, bool enable_l2_filtering, 178*9d26e4fcSRobert Mustacchi u16 *pveb_seid, 179*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 180*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_get_veb_parameters(struct i40e_hw *hw, 181*9d26e4fcSRobert Mustacchi u16 veb_seid, u16 *switch_id, bool *floating, 182*9d26e4fcSRobert Mustacchi u16 *statistic_index, u16 *vebs_used, 183*9d26e4fcSRobert Mustacchi u16 *vebs_free, 184*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 185*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_add_macvlan(struct i40e_hw *hw, u16 vsi_id, 186*9d26e4fcSRobert Mustacchi struct i40e_aqc_add_macvlan_element_data *mv_list, 187*9d26e4fcSRobert Mustacchi u16 count, struct i40e_asq_cmd_details *cmd_details); 188*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_remove_macvlan(struct i40e_hw *hw, u16 vsi_id, 189*9d26e4fcSRobert Mustacchi struct i40e_aqc_remove_macvlan_element_data *mv_list, 190*9d26e4fcSRobert Mustacchi u16 count, struct i40e_asq_cmd_details *cmd_details); 191*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_add_vlan(struct i40e_hw *hw, u16 vsi_id, 192*9d26e4fcSRobert Mustacchi struct i40e_aqc_add_remove_vlan_element_data *v_list, 193*9d26e4fcSRobert Mustacchi u8 count, struct i40e_asq_cmd_details *cmd_details); 194*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_remove_vlan(struct i40e_hw *hw, u16 vsi_id, 195*9d26e4fcSRobert Mustacchi struct i40e_aqc_add_remove_vlan_element_data *v_list, 196*9d26e4fcSRobert Mustacchi u8 count, struct i40e_asq_cmd_details *cmd_details); 197*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_send_msg_to_vf(struct i40e_hw *hw, u16 vfid, 198*9d26e4fcSRobert Mustacchi u32 v_opcode, u32 v_retval, u8 *msg, u16 msglen, 199*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 200*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_get_switch_config(struct i40e_hw *hw, 201*9d26e4fcSRobert Mustacchi struct i40e_aqc_get_switch_config_resp *buf, 202*9d26e4fcSRobert Mustacchi u16 buf_size, u16 *start_seid, 203*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 204*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_request_resource(struct i40e_hw *hw, 205*9d26e4fcSRobert Mustacchi enum i40e_aq_resources_ids resource, 206*9d26e4fcSRobert Mustacchi enum i40e_aq_resource_access_type access, 207*9d26e4fcSRobert Mustacchi u8 sdp_number, u64 *timeout, 208*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 209*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_release_resource(struct i40e_hw *hw, 210*9d26e4fcSRobert Mustacchi enum i40e_aq_resources_ids resource, 211*9d26e4fcSRobert Mustacchi u8 sdp_number, 212*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 213*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_read_nvm(struct i40e_hw *hw, u8 module_pointer, 214*9d26e4fcSRobert Mustacchi u32 offset, u16 length, void *data, 215*9d26e4fcSRobert Mustacchi bool last_command, 216*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 217*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_erase_nvm(struct i40e_hw *hw, u8 module_pointer, 218*9d26e4fcSRobert Mustacchi u32 offset, u16 length, bool last_command, 219*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 220*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_read_nvm_config(struct i40e_hw *hw, 221*9d26e4fcSRobert Mustacchi u8 cmd_flags, u32 field_id, void *data, 222*9d26e4fcSRobert Mustacchi u16 buf_size, u16 *element_count, 223*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 224*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_write_nvm_config(struct i40e_hw *hw, 225*9d26e4fcSRobert Mustacchi u8 cmd_flags, void *data, u16 buf_size, 226*9d26e4fcSRobert Mustacchi u16 element_count, 227*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 228*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_oem_post_update(struct i40e_hw *hw, 229*9d26e4fcSRobert Mustacchi void *buff, u16 buff_size, 230*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 231*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_discover_capabilities(struct i40e_hw *hw, 232*9d26e4fcSRobert Mustacchi void *buff, u16 buff_size, u16 *data_size, 233*9d26e4fcSRobert Mustacchi enum i40e_admin_queue_opc list_type_opc, 234*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 235*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_update_nvm(struct i40e_hw *hw, u8 module_pointer, 236*9d26e4fcSRobert Mustacchi u32 offset, u16 length, void *data, 237*9d26e4fcSRobert Mustacchi bool last_command, 238*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 239*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_get_lldp_mib(struct i40e_hw *hw, u8 bridge_type, 240*9d26e4fcSRobert Mustacchi u8 mib_type, void *buff, u16 buff_size, 241*9d26e4fcSRobert Mustacchi u16 *local_len, u16 *remote_len, 242*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 243*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_set_lldp_mib(struct i40e_hw *hw, 244*9d26e4fcSRobert Mustacchi u8 mib_type, void *buff, u16 buff_size, 245*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 246*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_cfg_lldp_mib_change_event(struct i40e_hw *hw, 247*9d26e4fcSRobert Mustacchi bool enable_update, 248*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 249*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_add_lldp_tlv(struct i40e_hw *hw, u8 bridge_type, 250*9d26e4fcSRobert Mustacchi void *buff, u16 buff_size, u16 tlv_len, 251*9d26e4fcSRobert Mustacchi u16 *mib_len, 252*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 253*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_update_lldp_tlv(struct i40e_hw *hw, 254*9d26e4fcSRobert Mustacchi u8 bridge_type, void *buff, u16 buff_size, 255*9d26e4fcSRobert Mustacchi u16 old_len, u16 new_len, u16 offset, 256*9d26e4fcSRobert Mustacchi u16 *mib_len, 257*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 258*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_delete_lldp_tlv(struct i40e_hw *hw, 259*9d26e4fcSRobert Mustacchi u8 bridge_type, void *buff, u16 buff_size, 260*9d26e4fcSRobert Mustacchi u16 tlv_len, u16 *mib_len, 261*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 262*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_stop_lldp(struct i40e_hw *hw, bool shutdown_agent, 263*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 264*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_start_lldp(struct i40e_hw *hw, 265*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 266*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_get_cee_dcb_config(struct i40e_hw *hw, 267*9d26e4fcSRobert Mustacchi void *buff, u16 buff_size, 268*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 269*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_start_stop_dcbx(struct i40e_hw *hw, 270*9d26e4fcSRobert Mustacchi bool start_agent, 271*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 272*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_add_udp_tunnel(struct i40e_hw *hw, 273*9d26e4fcSRobert Mustacchi u16 udp_port, u8 protocol_index, 274*9d26e4fcSRobert Mustacchi u8 *filter_index, 275*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 276*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_del_udp_tunnel(struct i40e_hw *hw, u8 index, 277*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 278*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_get_switch_resource_alloc(struct i40e_hw *hw, 279*9d26e4fcSRobert Mustacchi u8 *num_entries, 280*9d26e4fcSRobert Mustacchi struct i40e_aqc_switch_resource_alloc_element_resp *buf, 281*9d26e4fcSRobert Mustacchi u16 count, 282*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 283*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_add_pvirt(struct i40e_hw *hw, u16 flags, 284*9d26e4fcSRobert Mustacchi u16 mac_seid, u16 vsi_seid, 285*9d26e4fcSRobert Mustacchi u16 *ret_seid); 286*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_add_tag(struct i40e_hw *hw, bool direct_to_queue, 287*9d26e4fcSRobert Mustacchi u16 vsi_seid, u16 tag, u16 queue_num, 288*9d26e4fcSRobert Mustacchi u16 *tags_used, u16 *tags_free, 289*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 290*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_remove_tag(struct i40e_hw *hw, u16 vsi_seid, 291*9d26e4fcSRobert Mustacchi u16 tag, u16 *tags_used, u16 *tags_free, 292*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 293*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_add_mcast_etag(struct i40e_hw *hw, u16 pe_seid, 294*9d26e4fcSRobert Mustacchi u16 etag, u8 num_tags_in_buf, void *buf, 295*9d26e4fcSRobert Mustacchi u16 *tags_used, u16 *tags_free, 296*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 297*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_remove_mcast_etag(struct i40e_hw *hw, u16 pe_seid, 298*9d26e4fcSRobert Mustacchi u16 etag, u16 *tags_used, u16 *tags_free, 299*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 300*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_update_tag(struct i40e_hw *hw, u16 vsi_seid, 301*9d26e4fcSRobert Mustacchi u16 old_tag, u16 new_tag, u16 *tags_used, 302*9d26e4fcSRobert Mustacchi u16 *tags_free, 303*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 304*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_add_statistics(struct i40e_hw *hw, u16 seid, 305*9d26e4fcSRobert Mustacchi u16 vlan_id, u16 *stat_index, 306*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 307*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_remove_statistics(struct i40e_hw *hw, u16 seid, 308*9d26e4fcSRobert Mustacchi u16 vlan_id, u16 stat_index, 309*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 310*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_set_port_parameters(struct i40e_hw *hw, 311*9d26e4fcSRobert Mustacchi u16 bad_frame_vsi, bool save_bad_pac, 312*9d26e4fcSRobert Mustacchi bool pad_short_pac, bool double_vlan, 313*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 314*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_delete_element(struct i40e_hw *hw, u16 seid, 315*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 316*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_mac_address_write(struct i40e_hw *hw, 317*9d26e4fcSRobert Mustacchi u16 flags, u8 *mac_addr, 318*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 319*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_config_vsi_bw_limit(struct i40e_hw *hw, 320*9d26e4fcSRobert Mustacchi u16 seid, u16 credit, u8 max_credit, 321*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 322*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_dcb_ignore_pfc(struct i40e_hw *hw, 323*9d26e4fcSRobert Mustacchi u8 tcmap, bool request, u8 *tcmap_ret, 324*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 325*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_get_hmc_resource_profile(struct i40e_hw *hw, 326*9d26e4fcSRobert Mustacchi enum i40e_aq_hmc_profile *profile, 327*9d26e4fcSRobert Mustacchi u8 *pe_vf_enabled_count, 328*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 329*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_config_switch_comp_ets_bw_limit( 330*9d26e4fcSRobert Mustacchi struct i40e_hw *hw, u16 seid, 331*9d26e4fcSRobert Mustacchi struct i40e_aqc_configure_switching_comp_ets_bw_limit_data *bw_data, 332*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 333*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_config_vsi_ets_sla_bw_limit(struct i40e_hw *hw, 334*9d26e4fcSRobert Mustacchi u16 seid, 335*9d26e4fcSRobert Mustacchi struct i40e_aqc_configure_vsi_ets_sla_bw_data *bw_data, 336*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 337*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_dcb_updated(struct i40e_hw *hw, 338*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 339*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_set_hmc_resource_profile(struct i40e_hw *hw, 340*9d26e4fcSRobert Mustacchi enum i40e_aq_hmc_profile profile, 341*9d26e4fcSRobert Mustacchi u8 pe_vf_enabled_count, 342*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 343*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_config_switch_comp_bw_limit(struct i40e_hw *hw, 344*9d26e4fcSRobert Mustacchi u16 seid, u16 credit, u8 max_bw, 345*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 346*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_config_vsi_tc_bw(struct i40e_hw *hw, u16 seid, 347*9d26e4fcSRobert Mustacchi struct i40e_aqc_configure_vsi_tc_bw_data *bw_data, 348*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 349*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_query_vsi_bw_config(struct i40e_hw *hw, 350*9d26e4fcSRobert Mustacchi u16 seid, 351*9d26e4fcSRobert Mustacchi struct i40e_aqc_query_vsi_bw_config_resp *bw_data, 352*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 353*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_query_vsi_ets_sla_config(struct i40e_hw *hw, 354*9d26e4fcSRobert Mustacchi u16 seid, 355*9d26e4fcSRobert Mustacchi struct i40e_aqc_query_vsi_ets_sla_config_resp *bw_data, 356*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 357*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_query_switch_comp_ets_config(struct i40e_hw *hw, 358*9d26e4fcSRobert Mustacchi u16 seid, 359*9d26e4fcSRobert Mustacchi struct i40e_aqc_query_switching_comp_ets_config_resp *bw_data, 360*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 361*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_query_port_ets_config(struct i40e_hw *hw, 362*9d26e4fcSRobert Mustacchi u16 seid, 363*9d26e4fcSRobert Mustacchi struct i40e_aqc_query_port_ets_config_resp *bw_data, 364*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 365*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_query_switch_comp_bw_config(struct i40e_hw *hw, 366*9d26e4fcSRobert Mustacchi u16 seid, 367*9d26e4fcSRobert Mustacchi struct i40e_aqc_query_switching_comp_bw_config_resp *bw_data, 368*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 369*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_resume_port_tx(struct i40e_hw *hw, 370*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 371*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_read_lldp_cfg(struct i40e_hw *hw, 372*9d26e4fcSRobert Mustacchi struct i40e_lldp_variables *lldp_cfg); 373*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_add_cloud_filters(struct i40e_hw *hw, 374*9d26e4fcSRobert Mustacchi u16 vsi, 375*9d26e4fcSRobert Mustacchi struct i40e_aqc_add_remove_cloud_filters_element_data *filters, 376*9d26e4fcSRobert Mustacchi u8 filter_count); 377*9d26e4fcSRobert Mustacchi 378*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_remove_cloud_filters(struct i40e_hw *hw, 379*9d26e4fcSRobert Mustacchi u16 vsi, 380*9d26e4fcSRobert Mustacchi struct i40e_aqc_add_remove_cloud_filters_element_data *filters, 381*9d26e4fcSRobert Mustacchi u8 filter_count); 382*9d26e4fcSRobert Mustacchi 383*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_alternate_read(struct i40e_hw *hw, 384*9d26e4fcSRobert Mustacchi u32 reg_addr0, u32 *reg_val0, 385*9d26e4fcSRobert Mustacchi u32 reg_addr1, u32 *reg_val1); 386*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_alternate_read_indirect(struct i40e_hw *hw, 387*9d26e4fcSRobert Mustacchi u32 addr, u32 dw_count, void *buffer); 388*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_alternate_write(struct i40e_hw *hw, 389*9d26e4fcSRobert Mustacchi u32 reg_addr0, u32 reg_val0, 390*9d26e4fcSRobert Mustacchi u32 reg_addr1, u32 reg_val1); 391*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_alternate_write_indirect(struct i40e_hw *hw, 392*9d26e4fcSRobert Mustacchi u32 addr, u32 dw_count, void *buffer); 393*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_alternate_clear(struct i40e_hw *hw); 394*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_alternate_write_done(struct i40e_hw *hw, 395*9d26e4fcSRobert Mustacchi u8 bios_mode, bool *reset_needed); 396*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_set_oem_mode(struct i40e_hw *hw, 397*9d26e4fcSRobert Mustacchi u8 oem_mode); 398*9d26e4fcSRobert Mustacchi 399*9d26e4fcSRobert Mustacchi /* i40e_common */ 400*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_init_shared_code(struct i40e_hw *hw); 401*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_pf_reset(struct i40e_hw *hw); 402*9d26e4fcSRobert Mustacchi void i40e_clear_hw(struct i40e_hw *hw); 403*9d26e4fcSRobert Mustacchi void i40e_clear_pxe_mode(struct i40e_hw *hw); 404*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_get_link_status(struct i40e_hw *hw, bool *link_up); 405*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_update_link_info(struct i40e_hw *hw); 406*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_get_mac_addr(struct i40e_hw *hw, u8 *mac_addr); 407*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_read_bw_from_alt_ram(struct i40e_hw *hw, 408*9d26e4fcSRobert Mustacchi u32 *max_bw, u32 *min_bw, bool *min_valid, bool *max_valid); 409*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_configure_partition_bw(struct i40e_hw *hw, 410*9d26e4fcSRobert Mustacchi struct i40e_aqc_configure_partition_bw_data *bw_data, 411*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 412*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_get_port_mac_addr(struct i40e_hw *hw, u8 *mac_addr); 413*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_read_pba_string(struct i40e_hw *hw, u8 *pba_num, 414*9d26e4fcSRobert Mustacchi u32 pba_num_size); 415*9d26e4fcSRobert Mustacchi void i40e_pre_tx_queue_cfg(struct i40e_hw *hw, u32 queue, bool enable); 416*9d26e4fcSRobert Mustacchi enum i40e_aq_link_speed i40e_get_link_speed(struct i40e_hw *hw); 417*9d26e4fcSRobert Mustacchi /* prototype for functions used for NVM access */ 418*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_init_nvm(struct i40e_hw *hw); 419*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_acquire_nvm(struct i40e_hw *hw, 420*9d26e4fcSRobert Mustacchi enum i40e_aq_resource_access_type access); 421*9d26e4fcSRobert Mustacchi void i40e_release_nvm(struct i40e_hw *hw); 422*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_read_nvm_word(struct i40e_hw *hw, u16 offset, 423*9d26e4fcSRobert Mustacchi u16 *data); 424*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_read_nvm_buffer(struct i40e_hw *hw, u16 offset, 425*9d26e4fcSRobert Mustacchi u16 *words, u16 *data); 426*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_write_nvm_aq(struct i40e_hw *hw, u8 module, 427*9d26e4fcSRobert Mustacchi u32 offset, u16 words, void *data, 428*9d26e4fcSRobert Mustacchi bool last_command); 429*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_write_nvm_word(struct i40e_hw *hw, u32 offset, 430*9d26e4fcSRobert Mustacchi void *data); 431*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_write_nvm_buffer(struct i40e_hw *hw, u8 module, 432*9d26e4fcSRobert Mustacchi u32 offset, u16 words, void *data); 433*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_calc_nvm_checksum(struct i40e_hw *hw, u16 *checksum); 434*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_update_nvm_checksum(struct i40e_hw *hw); 435*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_validate_nvm_checksum(struct i40e_hw *hw, 436*9d26e4fcSRobert Mustacchi u16 *checksum); 437*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_nvmupd_command(struct i40e_hw *hw, 438*9d26e4fcSRobert Mustacchi struct i40e_nvm_access *cmd, 439*9d26e4fcSRobert Mustacchi u8 *bytes, int *); 440*9d26e4fcSRobert Mustacchi void i40e_set_pci_config_data(struct i40e_hw *hw, u16 link_status); 441*9d26e4fcSRobert Mustacchi 442*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_set_mac_type(struct i40e_hw *hw); 443*9d26e4fcSRobert Mustacchi 444*9d26e4fcSRobert Mustacchi extern struct i40e_rx_ptype_decoded i40e_ptype_lookup[]; 445*9d26e4fcSRobert Mustacchi 446*9d26e4fcSRobert Mustacchi static INLINE struct i40e_rx_ptype_decoded decode_rx_desc_ptype(u8 ptype) 447*9d26e4fcSRobert Mustacchi { 448*9d26e4fcSRobert Mustacchi return i40e_ptype_lookup[ptype]; 449*9d26e4fcSRobert Mustacchi } 450*9d26e4fcSRobert Mustacchi 451*9d26e4fcSRobert Mustacchi /* prototype for functions used for SW spinlocks */ 452*9d26e4fcSRobert Mustacchi void i40e_init_spinlock(struct i40e_spinlock *sp); 453*9d26e4fcSRobert Mustacchi void i40e_acquire_spinlock(struct i40e_spinlock *sp); 454*9d26e4fcSRobert Mustacchi void i40e_release_spinlock(struct i40e_spinlock *sp); 455*9d26e4fcSRobert Mustacchi void i40e_destroy_spinlock(struct i40e_spinlock *sp); 456*9d26e4fcSRobert Mustacchi 457*9d26e4fcSRobert Mustacchi /* i40e_common for VF drivers*/ 458*9d26e4fcSRobert Mustacchi void i40e_vf_parse_hw_config(struct i40e_hw *hw, 459*9d26e4fcSRobert Mustacchi struct i40e_virtchnl_vf_resource *msg); 460*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_vf_reset(struct i40e_hw *hw); 461*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_send_msg_to_pf(struct i40e_hw *hw, 462*9d26e4fcSRobert Mustacchi enum i40e_virtchnl_ops v_opcode, 463*9d26e4fcSRobert Mustacchi enum i40e_status_code v_retval, 464*9d26e4fcSRobert Mustacchi u8 *msg, u16 msglen, 465*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 466*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_set_filter_control(struct i40e_hw *hw, 467*9d26e4fcSRobert Mustacchi struct i40e_filter_control_settings *settings); 468*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_add_rem_control_packet_filter(struct i40e_hw *hw, 469*9d26e4fcSRobert Mustacchi u8 *mac_addr, u16 ethtype, u16 flags, 470*9d26e4fcSRobert Mustacchi u16 vsi_seid, u16 queue, bool is_add, 471*9d26e4fcSRobert Mustacchi struct i40e_control_filter_stats *stats, 472*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 473*9d26e4fcSRobert Mustacchi enum i40e_status_code i40e_aq_debug_dump(struct i40e_hw *hw, u8 cluster_id, 474*9d26e4fcSRobert Mustacchi u8 table_id, u32 start_index, u16 buff_size, 475*9d26e4fcSRobert Mustacchi void *buff, u16 *ret_buff_size, 476*9d26e4fcSRobert Mustacchi u8 *ret_next_table, u32 *ret_next_index, 477*9d26e4fcSRobert Mustacchi struct i40e_asq_cmd_details *cmd_details); 478*9d26e4fcSRobert Mustacchi #endif /* _I40E_PROTOTYPE_H_ */ 479