.. | .. |
---|
6 | 6 | |
---|
7 | 7 | #include "ice.h" |
---|
8 | 8 | #include "ice_type.h" |
---|
| 9 | +#include "ice_nvm.h" |
---|
| 10 | +#include "ice_flex_pipe.h" |
---|
9 | 11 | #include "ice_switch.h" |
---|
| 12 | +#include <linux/avf/virtchnl.h> |
---|
10 | 13 | |
---|
11 | | -void ice_debug_cq(struct ice_hw *hw, u32 mask, void *desc, void *buf, |
---|
12 | | - u16 buf_len); |
---|
13 | 14 | enum ice_status ice_init_hw(struct ice_hw *hw); |
---|
14 | 15 | void ice_deinit_hw(struct ice_hw *hw); |
---|
15 | 16 | enum ice_status ice_check_reset(struct ice_hw *hw); |
---|
16 | 17 | enum ice_status ice_reset(struct ice_hw *hw, enum ice_reset_req req); |
---|
| 18 | +enum ice_status ice_create_all_ctrlq(struct ice_hw *hw); |
---|
17 | 19 | enum ice_status ice_init_all_ctrlq(struct ice_hw *hw); |
---|
18 | 20 | void ice_shutdown_all_ctrlq(struct ice_hw *hw); |
---|
| 21 | +void ice_destroy_all_ctrlq(struct ice_hw *hw); |
---|
19 | 22 | enum ice_status |
---|
20 | 23 | ice_clean_rq_elem(struct ice_hw *hw, struct ice_ctl_q_info *cq, |
---|
21 | 24 | struct ice_rq_event_info *e, u16 *pending); |
---|
22 | 25 | enum ice_status |
---|
23 | 26 | ice_get_link_status(struct ice_port_info *pi, bool *link_up); |
---|
| 27 | +enum ice_status ice_update_link_info(struct ice_port_info *pi); |
---|
24 | 28 | enum ice_status |
---|
25 | 29 | ice_acquire_res(struct ice_hw *hw, enum ice_aq_res_ids res, |
---|
26 | 30 | enum ice_aq_res_access_type access, u32 timeout); |
---|
27 | 31 | void ice_release_res(struct ice_hw *hw, enum ice_aq_res_ids res); |
---|
28 | | -enum ice_status ice_init_nvm(struct ice_hw *hw); |
---|
| 32 | +enum ice_status |
---|
| 33 | +ice_alloc_hw_res(struct ice_hw *hw, u16 type, u16 num, bool btm, u16 *res); |
---|
| 34 | +enum ice_status |
---|
| 35 | +ice_free_hw_res(struct ice_hw *hw, u16 type, u16 num, u16 *res); |
---|
| 36 | +enum ice_status |
---|
| 37 | +ice_aq_alloc_free_res(struct ice_hw *hw, u16 num_entries, |
---|
| 38 | + struct ice_aqc_alloc_free_res_elem *buf, u16 buf_size, |
---|
| 39 | + enum ice_adminq_opc opc, struct ice_sq_cd *cd); |
---|
29 | 40 | enum ice_status |
---|
30 | 41 | ice_sq_send_cmd(struct ice_hw *hw, struct ice_ctl_q_info *cq, |
---|
31 | 42 | struct ice_aq_desc *desc, void *buf, u16 buf_size, |
---|
32 | 43 | struct ice_sq_cd *cd); |
---|
33 | 44 | void ice_clear_pxe_mode(struct ice_hw *hw); |
---|
34 | 45 | enum ice_status ice_get_caps(struct ice_hw *hw); |
---|
| 46 | + |
---|
| 47 | +void ice_set_safe_mode_caps(struct ice_hw *hw); |
---|
| 48 | + |
---|
35 | 49 | enum ice_status |
---|
36 | 50 | ice_write_rxq_ctx(struct ice_hw *hw, struct ice_rlan_ctx *rlan_ctx, |
---|
37 | 51 | u32 rxq_index); |
---|
38 | 52 | |
---|
39 | 53 | enum ice_status |
---|
40 | | -ice_aq_get_rss_lut(struct ice_hw *hw, u16 vsi_id, u8 lut_type, u8 *lut, |
---|
| 54 | +ice_aq_get_rss_lut(struct ice_hw *hw, u16 vsi_handle, u8 lut_type, u8 *lut, |
---|
41 | 55 | u16 lut_size); |
---|
42 | 56 | enum ice_status |
---|
43 | | -ice_aq_set_rss_lut(struct ice_hw *hw, u16 vsi_id, u8 lut_type, u8 *lut, |
---|
| 57 | +ice_aq_set_rss_lut(struct ice_hw *hw, u16 vsi_handle, u8 lut_type, u8 *lut, |
---|
44 | 58 | u16 lut_size); |
---|
45 | 59 | enum ice_status |
---|
46 | | -ice_aq_get_rss_key(struct ice_hw *hw, u16 vsi_id, |
---|
| 60 | +ice_aq_get_rss_key(struct ice_hw *hw, u16 vsi_handle, |
---|
47 | 61 | struct ice_aqc_get_set_rss_keys *keys); |
---|
48 | 62 | enum ice_status |
---|
49 | | -ice_aq_set_rss_key(struct ice_hw *hw, u16 vsi_id, |
---|
| 63 | +ice_aq_set_rss_key(struct ice_hw *hw, u16 vsi_handle, |
---|
50 | 64 | struct ice_aqc_get_set_rss_keys *keys); |
---|
| 65 | + |
---|
51 | 66 | bool ice_check_sq_alive(struct ice_hw *hw, struct ice_ctl_q_info *cq); |
---|
52 | 67 | enum ice_status ice_aq_q_shutdown(struct ice_hw *hw, bool unloading); |
---|
53 | 68 | void ice_fill_dflt_direct_cmd_desc(struct ice_aq_desc *desc, u16 opcode); |
---|
54 | 69 | extern const struct ice_ctx_ele ice_tlan_ctx_info[]; |
---|
55 | 70 | enum ice_status |
---|
56 | | -ice_set_ctx(u8 *src_ctx, u8 *dest_ctx, const struct ice_ctx_ele *ce_info); |
---|
| 71 | +ice_set_ctx(struct ice_hw *hw, u8 *src_ctx, u8 *dest_ctx, |
---|
| 72 | + const struct ice_ctx_ele *ce_info); |
---|
| 73 | + |
---|
| 74 | +extern struct mutex ice_global_cfg_lock_sw; |
---|
| 75 | + |
---|
57 | 76 | enum ice_status |
---|
58 | 77 | ice_aq_send_cmd(struct ice_hw *hw, struct ice_aq_desc *desc, |
---|
59 | 78 | void *buf, u16 buf_size, struct ice_sq_cd *cd); |
---|
60 | 79 | enum ice_status ice_aq_get_fw_ver(struct ice_hw *hw, struct ice_sq_cd *cd); |
---|
| 80 | + |
---|
61 | 81 | enum ice_status |
---|
62 | | -ice_aq_manage_mac_write(struct ice_hw *hw, u8 *mac_addr, u8 flags, |
---|
| 82 | +ice_aq_send_driver_ver(struct ice_hw *hw, struct ice_driver_ver *dv, |
---|
| 83 | + struct ice_sq_cd *cd); |
---|
| 84 | +enum ice_status |
---|
| 85 | +ice_aq_get_phy_caps(struct ice_port_info *pi, bool qual_mods, u8 report_mode, |
---|
| 86 | + struct ice_aqc_get_phy_caps_data *caps, |
---|
| 87 | + struct ice_sq_cd *cd); |
---|
| 88 | +enum ice_status |
---|
| 89 | +ice_aq_list_caps(struct ice_hw *hw, void *buf, u16 buf_size, u32 *cap_count, |
---|
| 90 | + enum ice_adminq_opc opc, struct ice_sq_cd *cd); |
---|
| 91 | +enum ice_status |
---|
| 92 | +ice_discover_dev_caps(struct ice_hw *hw, struct ice_hw_dev_caps *dev_caps); |
---|
| 93 | +void |
---|
| 94 | +ice_update_phy_type(u64 *phy_type_low, u64 *phy_type_high, |
---|
| 95 | + u16 link_speeds_bitmap); |
---|
| 96 | +enum ice_status |
---|
| 97 | +ice_aq_manage_mac_write(struct ice_hw *hw, const u8 *mac_addr, u8 flags, |
---|
63 | 98 | struct ice_sq_cd *cd); |
---|
64 | 99 | enum ice_status ice_clear_pf_cfg(struct ice_hw *hw); |
---|
65 | 100 | enum ice_status |
---|
66 | | -ice_set_fc(struct ice_port_info *pi, u8 *aq_failures, bool atomic_restart); |
---|
| 101 | +ice_aq_set_phy_cfg(struct ice_hw *hw, struct ice_port_info *pi, |
---|
| 102 | + struct ice_aqc_set_phy_cfg_data *cfg, struct ice_sq_cd *cd); |
---|
| 103 | +bool ice_fw_supports_link_override(struct ice_hw *hw); |
---|
| 104 | +enum ice_status |
---|
| 105 | +ice_get_link_default_override(struct ice_link_default_override_tlv *ldo, |
---|
| 106 | + struct ice_port_info *pi); |
---|
| 107 | +bool ice_is_phy_caps_an_enabled(struct ice_aqc_get_phy_caps_data *caps); |
---|
| 108 | + |
---|
| 109 | +enum ice_fc_mode ice_caps_to_fc_mode(u8 caps); |
---|
| 110 | +enum ice_fec_mode ice_caps_to_fec_mode(u8 caps, u8 fec_options); |
---|
| 111 | +enum ice_status |
---|
| 112 | +ice_set_fc(struct ice_port_info *pi, u8 *aq_failures, |
---|
| 113 | + bool ena_auto_link_update); |
---|
| 114 | +enum ice_status |
---|
| 115 | +ice_cfg_phy_fc(struct ice_port_info *pi, struct ice_aqc_set_phy_cfg_data *cfg, |
---|
| 116 | + enum ice_fc_mode fc); |
---|
| 117 | +bool |
---|
| 118 | +ice_phy_caps_equals_cfg(struct ice_aqc_get_phy_caps_data *caps, |
---|
| 119 | + struct ice_aqc_set_phy_cfg_data *cfg); |
---|
| 120 | +void |
---|
| 121 | +ice_copy_phy_caps_to_cfg(struct ice_port_info *pi, |
---|
| 122 | + struct ice_aqc_get_phy_caps_data *caps, |
---|
| 123 | + struct ice_aqc_set_phy_cfg_data *cfg); |
---|
| 124 | +enum ice_status |
---|
| 125 | +ice_cfg_phy_fec(struct ice_port_info *pi, struct ice_aqc_set_phy_cfg_data *cfg, |
---|
| 126 | + enum ice_fec_mode fec); |
---|
67 | 127 | enum ice_status |
---|
68 | 128 | ice_aq_set_link_restart_an(struct ice_port_info *pi, bool ena_link, |
---|
69 | 129 | struct ice_sq_cd *cd); |
---|
| 130 | +enum ice_status |
---|
| 131 | +ice_aq_set_mac_cfg(struct ice_hw *hw, u16 max_frame_size, struct ice_sq_cd *cd); |
---|
70 | 132 | enum ice_status |
---|
71 | 133 | ice_aq_get_link_info(struct ice_port_info *pi, bool ena_lse, |
---|
72 | 134 | struct ice_link_status *link, struct ice_sq_cd *cd); |
---|
.. | .. |
---|
74 | 136 | ice_aq_set_event_mask(struct ice_hw *hw, u8 port_num, u16 mask, |
---|
75 | 137 | struct ice_sq_cd *cd); |
---|
76 | 138 | enum ice_status |
---|
77 | | -ice_dis_vsi_txq(struct ice_port_info *pi, u8 num_queues, u16 *q_ids, |
---|
78 | | - u32 *q_teids, struct ice_sq_cd *cmd_details); |
---|
| 139 | +ice_aq_set_mac_loopback(struct ice_hw *hw, bool ena_lpbk, struct ice_sq_cd *cd); |
---|
| 140 | + |
---|
79 | 141 | enum ice_status |
---|
80 | | -ice_cfg_vsi_lan(struct ice_port_info *pi, u16 vsi_id, u8 tc_bitmap, |
---|
| 142 | +ice_aq_set_port_id_led(struct ice_port_info *pi, bool is_orig_mode, |
---|
| 143 | + struct ice_sq_cd *cd); |
---|
| 144 | +enum ice_status |
---|
| 145 | +ice_aq_sff_eeprom(struct ice_hw *hw, u16 lport, u8 bus_addr, |
---|
| 146 | + u16 mem_addr, u8 page, u8 set_page, u8 *data, u8 length, |
---|
| 147 | + bool write, struct ice_sq_cd *cd); |
---|
| 148 | + |
---|
| 149 | +enum ice_status |
---|
| 150 | +ice_dis_vsi_txq(struct ice_port_info *pi, u16 vsi_handle, u8 tc, u8 num_queues, |
---|
| 151 | + u16 *q_handle, u16 *q_ids, u32 *q_teids, |
---|
| 152 | + enum ice_disq_rst_src rst_src, u16 vmvf_num, |
---|
| 153 | + struct ice_sq_cd *cd); |
---|
| 154 | +enum ice_status |
---|
| 155 | +ice_cfg_vsi_lan(struct ice_port_info *pi, u16 vsi_handle, u8 tc_bitmap, |
---|
81 | 156 | u16 *max_lanqs); |
---|
82 | 157 | enum ice_status |
---|
83 | | -ice_ena_vsi_txq(struct ice_port_info *pi, u16 vsi_id, u8 tc, u8 num_qgrps, |
---|
84 | | - struct ice_aqc_add_tx_qgrp *buf, u16 buf_size, |
---|
| 158 | +ice_ena_vsi_txq(struct ice_port_info *pi, u16 vsi_handle, u8 tc, u16 q_handle, |
---|
| 159 | + u8 num_qgrps, struct ice_aqc_add_tx_qgrp *buf, u16 buf_size, |
---|
85 | 160 | struct ice_sq_cd *cd); |
---|
| 161 | +enum ice_status ice_replay_vsi(struct ice_hw *hw, u16 vsi_handle); |
---|
| 162 | +void ice_replay_post(struct ice_hw *hw); |
---|
| 163 | +void ice_output_fw_log(struct ice_hw *hw, struct ice_aq_desc *desc, void *buf); |
---|
| 164 | +struct ice_q_ctx * |
---|
| 165 | +ice_get_lan_q_ctx(struct ice_hw *hw, u16 vsi_handle, u8 tc, u16 q_handle); |
---|
| 166 | +void |
---|
| 167 | +ice_stat_update40(struct ice_hw *hw, u32 reg, bool prev_stat_loaded, |
---|
| 168 | + u64 *prev_stat, u64 *cur_stat); |
---|
| 169 | +void |
---|
| 170 | +ice_stat_update32(struct ice_hw *hw, u32 reg, bool prev_stat_loaded, |
---|
| 171 | + u64 *prev_stat, u64 *cur_stat); |
---|
| 172 | +enum ice_status |
---|
| 173 | +ice_sched_query_elem(struct ice_hw *hw, u32 node_teid, |
---|
| 174 | + struct ice_aqc_txsched_elem_data *buf); |
---|
| 175 | +enum ice_status |
---|
| 176 | +ice_aq_set_lldp_mib(struct ice_hw *hw, u8 mib_type, void *buf, u16 buf_size, |
---|
| 177 | + struct ice_sq_cd *cd); |
---|
86 | 178 | #endif /* _ICE_COMMON_H_ */ |
---|