Lines Matching refs:hw
99 i40e_status i40e_init_lan_hmc(struct i40e_hw *hw, u32 txq_num, in i40e_init_lan_hmc() argument
108 hw->hmc.signature = I40E_HMC_INFO_SIGNATURE; in i40e_init_lan_hmc()
109 hw->hmc.hmc_fn_id = hw->pf_id; in i40e_init_lan_hmc()
112 ret_code = i40e_allocate_virt_mem(hw, &hw->hmc.hmc_obj_virt_mem, in i40e_init_lan_hmc()
116 hw->hmc.hmc_obj = (struct i40e_hmc_obj_info *) in i40e_init_lan_hmc()
117 hw->hmc.hmc_obj_virt_mem.va; in i40e_init_lan_hmc()
120 full_obj = &hw->hmc.hmc_obj[I40E_HMC_LAN_FULL]; in i40e_init_lan_hmc()
127 obj = &hw->hmc.hmc_obj[I40E_HMC_LAN_TX]; in i40e_init_lan_hmc()
128 obj->max_cnt = rd32(hw, I40E_GLHMC_LANQMAX); in i40e_init_lan_hmc()
131 size_exp = rd32(hw, I40E_GLHMC_LANTXOBJSZ); in i40e_init_lan_hmc()
137 …hw_dbg(hw, "i40e_init_lan_hmc: Tx context: asks for 0x%x but max allowed is 0x%x, returns error %d… in i40e_init_lan_hmc()
147 obj = &hw->hmc.hmc_obj[I40E_HMC_LAN_RX]; in i40e_init_lan_hmc()
148 obj->max_cnt = rd32(hw, I40E_GLHMC_LANQMAX); in i40e_init_lan_hmc()
150 obj->base = hw->hmc.hmc_obj[I40E_HMC_LAN_TX].base + in i40e_init_lan_hmc()
151 (hw->hmc.hmc_obj[I40E_HMC_LAN_TX].cnt * in i40e_init_lan_hmc()
152 hw->hmc.hmc_obj[I40E_HMC_LAN_TX].size); in i40e_init_lan_hmc()
154 size_exp = rd32(hw, I40E_GLHMC_LANRXOBJSZ); in i40e_init_lan_hmc()
160 …hw_dbg(hw, "i40e_init_lan_hmc: Rx context: asks for 0x%x but max allowed is 0x%x, returns error %d… in i40e_init_lan_hmc()
170 obj = &hw->hmc.hmc_obj[I40E_HMC_FCOE_CTX]; in i40e_init_lan_hmc()
171 obj->max_cnt = rd32(hw, I40E_GLHMC_FCOEMAX); in i40e_init_lan_hmc()
173 obj->base = hw->hmc.hmc_obj[I40E_HMC_LAN_RX].base + in i40e_init_lan_hmc()
174 (hw->hmc.hmc_obj[I40E_HMC_LAN_RX].cnt * in i40e_init_lan_hmc()
175 hw->hmc.hmc_obj[I40E_HMC_LAN_RX].size); in i40e_init_lan_hmc()
177 size_exp = rd32(hw, I40E_GLHMC_FCOEDDPOBJSZ); in i40e_init_lan_hmc()
183 …hw_dbg(hw, "i40e_init_lan_hmc: FCoE context: asks for 0x%x but max allowed is 0x%x, returns error … in i40e_init_lan_hmc()
193 obj = &hw->hmc.hmc_obj[I40E_HMC_FCOE_FILT]; in i40e_init_lan_hmc()
194 obj->max_cnt = rd32(hw, I40E_GLHMC_FCOEFMAX); in i40e_init_lan_hmc()
196 obj->base = hw->hmc.hmc_obj[I40E_HMC_FCOE_CTX].base + in i40e_init_lan_hmc()
197 (hw->hmc.hmc_obj[I40E_HMC_FCOE_CTX].cnt * in i40e_init_lan_hmc()
198 hw->hmc.hmc_obj[I40E_HMC_FCOE_CTX].size); in i40e_init_lan_hmc()
200 size_exp = rd32(hw, I40E_GLHMC_FCOEFOBJSZ); in i40e_init_lan_hmc()
206 …hw_dbg(hw, "i40e_init_lan_hmc: FCoE filter: asks for 0x%x but max allowed is 0x%x, returns error %… in i40e_init_lan_hmc()
215 hw->hmc.first_sd_index = 0; in i40e_init_lan_hmc()
216 hw->hmc.sd_table.ref_cnt = 0; in i40e_init_lan_hmc()
219 if (NULL == hw->hmc.sd_table.sd_entry) { in i40e_init_lan_hmc()
220 hw->hmc.sd_table.sd_cnt = (u32) in i40e_init_lan_hmc()
225 ret_code = i40e_allocate_virt_mem(hw, &hw->hmc.sd_table.addr, in i40e_init_lan_hmc()
227 hw->hmc.sd_table.sd_cnt)); in i40e_init_lan_hmc()
230 hw->hmc.sd_table.sd_entry = in i40e_init_lan_hmc()
231 (struct i40e_hmc_sd_entry *)hw->hmc.sd_table.addr.va; in i40e_init_lan_hmc()
254 static i40e_status i40e_remove_pd_page(struct i40e_hw *hw, in i40e_remove_pd_page() argument
261 ret_code = i40e_remove_pd_page_new(hw, hmc_info, idx, true); in i40e_remove_pd_page()
281 static i40e_status i40e_remove_sd_bp(struct i40e_hw *hw, in i40e_remove_sd_bp() argument
288 ret_code = i40e_remove_sd_bp_new(hw, hmc_info, idx, true); in i40e_remove_sd_bp()
301 static i40e_status i40e_create_lan_hmc_object(struct i40e_hw *hw, in i40e_create_lan_hmc_object() argument
315 hw_dbg(hw, "i40e_create_lan_hmc_object: bad info ptr\n"); in i40e_create_lan_hmc_object()
320 hw_dbg(hw, "i40e_create_lan_hmc_object: bad hmc_info ptr\n"); in i40e_create_lan_hmc_object()
325 hw_dbg(hw, "i40e_create_lan_hmc_object: bad signature\n"); in i40e_create_lan_hmc_object()
331 hw_dbg(hw, "i40e_create_lan_hmc_object: returns error %d\n", in i40e_create_lan_hmc_object()
338 hw_dbg(hw, "i40e_create_lan_hmc_object: returns error %d\n", in i40e_create_lan_hmc_object()
371 ret_code = i40e_add_sd_table_entry(hw, info->hmc_info, j, in i40e_create_lan_hmc_object()
388 ret_code = i40e_add_pd_table_entry(hw, in i40e_create_lan_hmc_object()
399 i40e_remove_pd_bp(hw, info->hmc_info, in i40e_create_lan_hmc_object()
409 I40E_SET_PF_SD_ENTRY(hw, in i40e_create_lan_hmc_object()
414 I40E_SET_PF_SD_ENTRY(hw, sd_entry->u.bp.addr.pa, in i40e_create_lan_hmc_object()
435 i40e_remove_pd_bp(hw, info->hmc_info, i); in i40e_create_lan_hmc_object()
436 i40e_remove_pd_page(hw, info->hmc_info, (j - 1)); in i40e_create_lan_hmc_object()
439 i40e_remove_sd_bp(hw, info->hmc_info, (j - 1)); in i40e_create_lan_hmc_object()
460 i40e_status i40e_configure_lan_hmc(struct i40e_hw *hw, in i40e_configure_lan_hmc() argument
465 u8 hmc_fn_id = hw->hmc.hmc_fn_id; in i40e_configure_lan_hmc()
469 info.hmc_info = &hw->hmc; in i40e_configure_lan_hmc()
472 info.direct_mode_sz = hw->hmc.hmc_obj[I40E_HMC_LAN_FULL].size; in i40e_configure_lan_hmc()
481 ret_code = i40e_create_lan_hmc_object(hw, &info); in i40e_configure_lan_hmc()
493 ret_code = i40e_create_lan_hmc_object(hw, &info); in i40e_configure_lan_hmc()
500 hw_dbg(hw, "i40e_configure_lan_hmc: Unknown SD type: %d\n", in i40e_configure_lan_hmc()
508 obj = &hw->hmc.hmc_obj[I40E_HMC_LAN_TX]; in i40e_configure_lan_hmc()
509 wr32(hw, I40E_GLHMC_LANTXBASE(hmc_fn_id), in i40e_configure_lan_hmc()
511 wr32(hw, I40E_GLHMC_LANTXCNT(hmc_fn_id), obj->cnt); in i40e_configure_lan_hmc()
514 obj = &hw->hmc.hmc_obj[I40E_HMC_LAN_RX]; in i40e_configure_lan_hmc()
515 wr32(hw, I40E_GLHMC_LANRXBASE(hmc_fn_id), in i40e_configure_lan_hmc()
517 wr32(hw, I40E_GLHMC_LANRXCNT(hmc_fn_id), obj->cnt); in i40e_configure_lan_hmc()
520 obj = &hw->hmc.hmc_obj[I40E_HMC_FCOE_CTX]; in i40e_configure_lan_hmc()
521 wr32(hw, I40E_GLHMC_FCOEDDPBASE(hmc_fn_id), in i40e_configure_lan_hmc()
523 wr32(hw, I40E_GLHMC_FCOEDDPCNT(hmc_fn_id), obj->cnt); in i40e_configure_lan_hmc()
526 obj = &hw->hmc.hmc_obj[I40E_HMC_FCOE_FILT]; in i40e_configure_lan_hmc()
527 wr32(hw, I40E_GLHMC_FCOEFBASE(hmc_fn_id), in i40e_configure_lan_hmc()
529 wr32(hw, I40E_GLHMC_FCOEFCNT(hmc_fn_id), obj->cnt); in i40e_configure_lan_hmc()
545 static i40e_status i40e_delete_lan_hmc_object(struct i40e_hw *hw, in i40e_delete_lan_hmc_object() argument
556 hw_dbg(hw, "i40e_delete_hmc_object: bad info ptr\n"); in i40e_delete_lan_hmc_object()
561 hw_dbg(hw, "i40e_delete_hmc_object: bad info->hmc_info ptr\n"); in i40e_delete_lan_hmc_object()
566 hw_dbg(hw, "i40e_delete_hmc_object: bad hmc_info->signature\n"); in i40e_delete_lan_hmc_object()
572 hw_dbg(hw, "i40e_delete_hmc_object: bad sd_entry\n"); in i40e_delete_lan_hmc_object()
578 hw_dbg(hw, "i40e_delete_hmc_object: bad hmc_info->hmc_obj\n"); in i40e_delete_lan_hmc_object()
583 hw_dbg(hw, "i40e_delete_hmc_object: returns error %d\n", in i40e_delete_lan_hmc_object()
591 hw_dbg(hw, "i40e_delete_hmc_object: returns error %d\n", in i40e_delete_lan_hmc_object()
612 ret_code = i40e_remove_pd_bp(hw, info->hmc_info, j); in i40e_delete_lan_hmc_object()
633 ret_code = i40e_remove_sd_bp(hw, info->hmc_info, i); in i40e_delete_lan_hmc_object()
638 ret_code = i40e_remove_pd_page(hw, info->hmc_info, i); in i40e_delete_lan_hmc_object()
657 i40e_status i40e_shutdown_lan_hmc(struct i40e_hw *hw) in i40e_shutdown_lan_hmc() argument
662 info.hmc_info = &hw->hmc; in i40e_shutdown_lan_hmc()
668 ret_code = i40e_delete_lan_hmc_object(hw, &info); in i40e_shutdown_lan_hmc()
671 i40e_free_virt_mem(hw, &hw->hmc.sd_table.addr); in i40e_shutdown_lan_hmc()
672 hw->hmc.sd_table.sd_cnt = 0; in i40e_shutdown_lan_hmc()
673 hw->hmc.sd_table.sd_entry = NULL; in i40e_shutdown_lan_hmc()
676 i40e_free_virt_mem(hw, &hw->hmc.hmc_obj_virt_mem); in i40e_shutdown_lan_hmc()
677 hw->hmc.hmc_obj = NULL; in i40e_shutdown_lan_hmc()
940 static i40e_status i40e_clear_hmc_context(struct i40e_hw *hw, in i40e_clear_hmc_context() argument
945 memset(context_bytes, 0, (u32)hw->hmc.hmc_obj[hmc_type].size); in i40e_clear_hmc_context()
1013 hw_dbg(hw, "i40e_hmc_get_object_va: bad hmc_info ptr\n"); in i40e_hmc_get_object_va()
1018 hw_dbg(hw, "i40e_hmc_get_object_va: bad hmc_info->hmc_obj ptr\n"); in i40e_hmc_get_object_va()
1023 hw_dbg(hw, "i40e_hmc_get_object_va: bad object_base ptr\n"); in i40e_hmc_get_object_va()
1028 hw_dbg(hw, "i40e_hmc_get_object_va: bad hmc_info->signature\n"); in i40e_hmc_get_object_va()
1032 hw_dbg(hw, "i40e_hmc_get_object_va: returns error %d\n", in i40e_hmc_get_object_va()
1067 i40e_status i40e_clear_lan_tx_queue_context(struct i40e_hw *hw, in i40e_clear_lan_tx_queue_context() argument
1073 err = i40e_hmc_get_object_va(&hw->hmc, &context_bytes, in i40e_clear_lan_tx_queue_context()
1078 return i40e_clear_hmc_context(hw, context_bytes, I40E_HMC_LAN_TX); in i40e_clear_lan_tx_queue_context()
1087 i40e_status i40e_set_lan_tx_queue_context(struct i40e_hw *hw, in i40e_set_lan_tx_queue_context() argument
1094 err = i40e_hmc_get_object_va(&hw->hmc, &context_bytes, in i40e_set_lan_tx_queue_context()
1108 i40e_status i40e_clear_lan_rx_queue_context(struct i40e_hw *hw, in i40e_clear_lan_rx_queue_context() argument
1114 err = i40e_hmc_get_object_va(&hw->hmc, &context_bytes, in i40e_clear_lan_rx_queue_context()
1119 return i40e_clear_hmc_context(hw, context_bytes, I40E_HMC_LAN_RX); in i40e_clear_lan_rx_queue_context()
1128 i40e_status i40e_set_lan_rx_queue_context(struct i40e_hw *hw, in i40e_set_lan_rx_queue_context() argument
1135 err = i40e_hmc_get_object_va(&hw->hmc, &context_bytes, in i40e_set_lan_rx_queue_context()