1*3126df22SRasesh Mody /* SPDX-License-Identifier: BSD-3-Clause 29adde217SRasesh Mody * Copyright (c) 2016 - 2018 Cavium Inc. 3ec94dbc5SRasesh Mody * All rights reserved. 49adde217SRasesh Mody * www.cavium.com 5ec94dbc5SRasesh Mody */ 6ec94dbc5SRasesh Mody 7ec94dbc5SRasesh Mody #ifndef __ECORE_SP_API_H__ 8ec94dbc5SRasesh Mody #define __ECORE_SP_API_H__ 9ec94dbc5SRasesh Mody 10ec94dbc5SRasesh Mody #include "ecore_status.h" 11ec94dbc5SRasesh Mody 12ec94dbc5SRasesh Mody enum spq_mode { 13ec94dbc5SRasesh Mody ECORE_SPQ_MODE_BLOCK, /* Client will poll a designated mem. address */ 14ec94dbc5SRasesh Mody ECORE_SPQ_MODE_CB, /* Client supplies a callback */ 15ec94dbc5SRasesh Mody ECORE_SPQ_MODE_EBLOCK, /* ECORE should block until completion */ 16ec94dbc5SRasesh Mody }; 17ec94dbc5SRasesh Mody 18ec94dbc5SRasesh Mody struct ecore_hwfn; 19ec94dbc5SRasesh Mody union event_ring_data; 20ec94dbc5SRasesh Mody struct eth_slow_path_rx_cqe; 21ec94dbc5SRasesh Mody 22ec94dbc5SRasesh Mody struct ecore_spq_comp_cb { 23ec94dbc5SRasesh Mody void (*function)(struct ecore_hwfn *, 24610ccd98SRasesh Mody void *, 25610ccd98SRasesh Mody union event_ring_data *, 26610ccd98SRasesh Mody u8 fw_return_code); 27ec94dbc5SRasesh Mody void *cookie; 28ec94dbc5SRasesh Mody }; 29ec94dbc5SRasesh Mody 30610ccd98SRasesh Mody 31ec94dbc5SRasesh Mody /** 32ec94dbc5SRasesh Mody * @brief ecore_eth_cqe_completion - handles the completion of a 33ec94dbc5SRasesh Mody * ramrod on the cqe ring 34ec94dbc5SRasesh Mody * 35ec94dbc5SRasesh Mody * @param p_hwfn 36ec94dbc5SRasesh Mody * @param cqe 37ec94dbc5SRasesh Mody * 38ec94dbc5SRasesh Mody * @return enum _ecore_status_t 39ec94dbc5SRasesh Mody */ 40ec94dbc5SRasesh Mody enum _ecore_status_t ecore_eth_cqe_completion(struct ecore_hwfn *p_hwfn, 41ec94dbc5SRasesh Mody struct eth_slow_path_rx_cqe *cqe); 42adce1f86SRasesh Mody /** 43adce1f86SRasesh Mody * @brief ecore_sp_pf_update_tunn_cfg - PF Function Tunnel configuration 44adce1f86SRasesh Mody * update Ramrod 45adce1f86SRasesh Mody * 46adce1f86SRasesh Mody * This ramrod is sent to update a tunneling configuration 47adce1f86SRasesh Mody * for a physical function (PF). 48adce1f86SRasesh Mody * 49adce1f86SRasesh Mody * @param p_hwfn 50739a5b2fSRasesh Mody * @param p_ptt 51adce1f86SRasesh Mody * @param p_tunn - pf update tunneling parameters 52adce1f86SRasesh Mody * @param comp_mode - completion mode 53adce1f86SRasesh Mody * @param p_comp_data - callback function 54adce1f86SRasesh Mody * 55adce1f86SRasesh Mody * @return enum _ecore_status_t 56adce1f86SRasesh Mody */ 57ec94dbc5SRasesh Mody 58adce1f86SRasesh Mody enum _ecore_status_t 59adce1f86SRasesh Mody ecore_sp_pf_update_tunn_cfg(struct ecore_hwfn *p_hwfn, 60739a5b2fSRasesh Mody struct ecore_ptt *p_ptt, 61adce1f86SRasesh Mody struct ecore_tunnel_info *p_tunn, 62adce1f86SRasesh Mody enum spq_mode comp_mode, 63adce1f86SRasesh Mody struct ecore_spq_comp_cb *p_comp_data); 64ec94dbc5SRasesh Mody #endif 65