Lines Matching refs:pf
178 static int ice_pf_rxq_wait(struct ice_pf *pf, int pf_q, bool ena) in ice_pf_rxq_wait() argument
183 if (ena == !!(rd32(&pf->hw, QRX_CTRL(pf_q)) & in ice_pf_rxq_wait()
205 struct ice_pf *pf = vsi->back; in ice_vsi_ctrl_rx_ring() local
206 struct ice_hw *hw = &pf->hw; in ice_vsi_ctrl_rx_ring()
224 ret = ice_pf_rxq_wait(pf, pf_q, ena); in ice_vsi_ctrl_rx_ring()
226 dev_err(&pf->pdev->dev, in ice_vsi_ctrl_rx_ring()
260 struct ice_pf *pf = vsi->back; in ice_vsi_alloc_arrays() local
263 vsi->tx_rings = devm_kcalloc(&pf->pdev->dev, vsi->alloc_txq, in ice_vsi_alloc_arrays()
268 vsi->rx_rings = devm_kcalloc(&pf->pdev->dev, vsi->alloc_rxq, in ice_vsi_alloc_arrays()
273 vsi->txq_map = devm_kcalloc(&pf->pdev->dev, vsi->alloc_txq, in ice_vsi_alloc_arrays()
279 vsi->rxq_map = devm_kcalloc(&pf->pdev->dev, vsi->alloc_rxq, in ice_vsi_alloc_arrays()
290 vsi->q_vectors = devm_kcalloc(&pf->pdev->dev, vsi->num_q_vectors, in ice_vsi_alloc_arrays()
298 devm_kfree(&pf->pdev->dev, vsi->rxq_map); in ice_vsi_alloc_arrays()
300 devm_kfree(&pf->pdev->dev, vsi->txq_map); in ice_vsi_alloc_arrays()
302 devm_kfree(&pf->pdev->dev, vsi->rx_rings); in ice_vsi_alloc_arrays()
304 devm_kfree(&pf->pdev->dev, vsi->tx_rings); in ice_vsi_alloc_arrays()
338 struct ice_pf *pf = vsi->back; in ice_vsi_set_num_qs() local
346 vsi->alloc_txq = min_t(int, ice_get_avail_txq_count(pf), in ice_vsi_set_num_qs()
349 pf->num_lan_tx = vsi->alloc_txq; in ice_vsi_set_num_qs()
352 if (!test_bit(ICE_FLAG_RSS_ENA, pf->flags)) in ice_vsi_set_num_qs()
355 vsi->alloc_rxq = min_t(int, ice_get_avail_rxq_count(pf), in ice_vsi_set_num_qs()
358 pf->num_lan_rx = vsi->alloc_rxq; in ice_vsi_set_num_qs()
363 vf = &pf->vf[vsi->vf_id]; in ice_vsi_set_num_qs()
371 vsi->num_q_vectors = pf->num_vf_msix - ICE_NONQ_VECS_VF; in ice_vsi_set_num_qs()
378 dev_warn(&pf->pdev->dev, "Unknown VSI type %d\n", vsi->type); in ice_vsi_set_num_qs()
420 struct ice_pf *pf = vsi->back; in ice_vsi_delete() local
424 ctxt = devm_kzalloc(&pf->pdev->dev, sizeof(*ctxt), GFP_KERNEL); in ice_vsi_delete()
434 status = ice_free_vsi(&pf->hw, vsi->idx, ctxt, false, NULL); in ice_vsi_delete()
436 dev_err(&pf->pdev->dev, "Failed to delete VSI %i in FW\n", in ice_vsi_delete()
439 devm_kfree(&pf->pdev->dev, ctxt); in ice_vsi_delete()
448 struct ice_pf *pf = vsi->back; in ice_vsi_free_arrays() local
452 devm_kfree(&pf->pdev->dev, vsi->q_vectors); in ice_vsi_free_arrays()
456 devm_kfree(&pf->pdev->dev, vsi->tx_rings); in ice_vsi_free_arrays()
460 devm_kfree(&pf->pdev->dev, vsi->rx_rings); in ice_vsi_free_arrays()
464 devm_kfree(&pf->pdev->dev, vsi->txq_map); in ice_vsi_free_arrays()
468 devm_kfree(&pf->pdev->dev, vsi->rxq_map); in ice_vsi_free_arrays()
484 struct ice_pf *pf = NULL; in ice_vsi_clear() local
492 pf = vsi->back; in ice_vsi_clear()
494 if (!pf->vsi[vsi->idx] || pf->vsi[vsi->idx] != vsi) { in ice_vsi_clear()
495 dev_dbg(&pf->pdev->dev, "vsi does not exist at pf->vsi[%d]\n", in ice_vsi_clear()
500 mutex_lock(&pf->sw_mutex); in ice_vsi_clear()
503 pf->vsi[vsi->idx] = NULL; in ice_vsi_clear()
504 if (vsi->idx < pf->next_vsi) in ice_vsi_clear()
505 pf->next_vsi = vsi->idx; in ice_vsi_clear()
508 mutex_unlock(&pf->sw_mutex); in ice_vsi_clear()
509 devm_kfree(&pf->pdev->dev, vsi); in ice_vsi_clear()
540 ice_vsi_alloc(struct ice_pf *pf, enum ice_vsi_type type, u16 vf_id) in ice_vsi_alloc() argument
545 mutex_lock(&pf->sw_mutex); in ice_vsi_alloc()
551 if (pf->next_vsi == ICE_NO_VSI) { in ice_vsi_alloc()
552 dev_dbg(&pf->pdev->dev, "out of VSI slots!\n"); in ice_vsi_alloc()
556 vsi = devm_kzalloc(&pf->pdev->dev, sizeof(*vsi), GFP_KERNEL); in ice_vsi_alloc()
561 vsi->back = pf; in ice_vsi_alloc()
564 vsi->idx = pf->next_vsi; in ice_vsi_alloc()
588 dev_warn(&pf->pdev->dev, "Unknown VSI type %d\n", vsi->type); in ice_vsi_alloc()
593 pf->vsi[pf->next_vsi] = vsi; in ice_vsi_alloc()
596 pf->next_vsi = ice_get_free_slot(pf->vsi, pf->num_alloc_vsi, in ice_vsi_alloc()
597 pf->next_vsi); in ice_vsi_alloc()
601 devm_kfree(&pf->pdev->dev, vsi); in ice_vsi_alloc()
604 mutex_unlock(&pf->sw_mutex); in ice_vsi_alloc()
698 struct ice_pf *pf = vsi->back; in ice_vsi_get_qs() local
700 .qs_mutex = &pf->avail_q_mutex, in ice_vsi_get_qs()
701 .pf_map = pf->avail_txqs, in ice_vsi_get_qs()
702 .pf_map_size = pf->max_pf_txqs, in ice_vsi_get_qs()
710 .qs_mutex = &pf->avail_q_mutex, in ice_vsi_get_qs()
711 .pf_map = pf->avail_rxqs, in ice_vsi_get_qs()
712 .pf_map_size = pf->max_pf_rxqs, in ice_vsi_get_qs()
737 struct ice_pf *pf = vsi->back; in ice_vsi_put_qs() local
740 mutex_lock(&pf->avail_q_mutex); in ice_vsi_put_qs()
743 clear_bit(vsi->txq_map[i], pf->avail_txqs); in ice_vsi_put_qs()
748 clear_bit(vsi->rxq_map[i], pf->avail_rxqs); in ice_vsi_put_qs()
752 mutex_unlock(&pf->avail_q_mutex); in ice_vsi_put_qs()
761 bool ice_is_safe_mode(struct ice_pf *pf) in ice_is_safe_mode() argument
763 return !test_bit(ICE_FLAG_ADV_FEATURES, pf->flags); in ice_is_safe_mode()
772 struct ice_pf *pf; in ice_rss_clean() local
774 pf = vsi->back; in ice_rss_clean()
777 devm_kfree(&pf->pdev->dev, vsi->rss_hkey_user); in ice_rss_clean()
779 devm_kfree(&pf->pdev->dev, vsi->rss_lut_user); in ice_rss_clean()
789 struct ice_pf *pf = vsi->back; in ice_vsi_set_rss_params() local
791 if (!test_bit(ICE_FLAG_RSS_ENA, pf->flags)) { in ice_vsi_set_rss_params()
796 cap = &pf->hw.func_caps.common_cap; in ice_vsi_set_rss_params()
817 dev_warn(&pf->pdev->dev, "Unknown VSI type %d\n", in ice_vsi_set_rss_params()
993 struct ice_pf *pf; in ice_set_rss_vsi_ctx() local
995 pf = vsi->back; in ice_set_rss_vsi_ctx()
1009 dev_dbg(&pf->pdev->dev, "Unsupported VSI type %d\n", vsi->type); in ice_set_rss_vsi_ctx()
1012 dev_warn(&pf->pdev->dev, "Unknown VSI type %d\n", vsi->type); in ice_set_rss_vsi_ctx()
1031 struct ice_pf *pf = vsi->back; in ice_vsi_init() local
1032 struct ice_hw *hw = &pf->hw; in ice_vsi_init()
1036 ctxt = devm_kzalloc(&pf->pdev->dev, sizeof(*ctxt), GFP_KERNEL); in ice_vsi_init()
1062 if (test_bit(ICE_FLAG_RSS_ENA, pf->flags)) in ice_vsi_init()
1069 if (vsi->type == ICE_VSI_VF && pf->vf[vsi->vf_id].spoofchk) { in ice_vsi_init()
1085 dev_err(&pf->pdev->dev, in ice_vsi_init()
1096 devm_kfree(&pf->pdev->dev, ctxt); in ice_vsi_init()
1108 struct ice_pf *pf = vsi->back; in ice_free_q_vector() local
1112 dev_dbg(&pf->pdev->dev, "Queue vector at index %d not found\n", in ice_free_q_vector()
1127 devm_kfree(&pf->pdev->dev, q_vector); in ice_free_q_vector()
1152 struct ice_pf *pf = vsi->back; in ice_vsi_alloc_q_vector() local
1156 q_vector = devm_kzalloc(&pf->pdev->dev, sizeof(*q_vector), GFP_KERNEL); in ice_vsi_alloc_q_vector()
1192 struct ice_pf *pf = vsi->back; in ice_vsi_alloc_q_vectors() local
1197 dev_dbg(&pf->pdev->dev, "VSI %d has existing q_vectors\n", in ice_vsi_alloc_q_vectors()
1216 dev_err(&pf->pdev->dev, in ice_vsi_alloc_q_vectors()
1235 struct ice_pf *pf = vsi->back; in ice_vsi_setup_vector_base() local
1243 dev_dbg(&pf->pdev->dev, "VSI %d has non-zero base vector %d\n", in ice_vsi_setup_vector_base()
1250 vsi->base_vector = ice_get_res(pf, pf->irq_tracker, num_q_vectors, in ice_vsi_setup_vector_base()
1253 dev_err(&pf->pdev->dev, in ice_vsi_setup_vector_base()
1258 pf->num_avail_sw_msix -= num_q_vectors; in ice_vsi_setup_vector_base()
1295 struct ice_pf *pf = vsi->back; in ice_vsi_alloc_rings() local
1312 ring->dev = &pf->pdev->dev; in ice_vsi_alloc_rings()
1331 ring->dev = &pf->pdev->dev; in ice_vsi_alloc_rings()
1442 struct ice_pf *pf = vsi->back; in ice_vsi_cfg_rss_lut_key() local
1449 lut = devm_kzalloc(&pf->pdev->dev, vsi->rss_table_size, GFP_KERNEL); in ice_vsi_cfg_rss_lut_key()
1458 status = ice_aq_set_rss_lut(&pf->hw, vsi->idx, vsi->rss_lut_type, lut, in ice_vsi_cfg_rss_lut_key()
1462 dev_err(&pf->pdev->dev, in ice_vsi_cfg_rss_lut_key()
1468 key = devm_kzalloc(&pf->pdev->dev, sizeof(*key), GFP_KERNEL); in ice_vsi_cfg_rss_lut_key()
1482 status = ice_aq_set_rss_key(&pf->hw, vsi->idx, key); in ice_vsi_cfg_rss_lut_key()
1485 dev_err(&pf->pdev->dev, "set_rss_key failed, error %d\n", in ice_vsi_cfg_rss_lut_key()
1490 devm_kfree(&pf->pdev->dev, key); in ice_vsi_cfg_rss_lut_key()
1492 devm_kfree(&pf->pdev->dev, lut); in ice_vsi_cfg_rss_lut_key()
1510 struct ice_pf *pf = vsi->back; in ice_add_mac_to_list() local
1512 tmp = devm_kzalloc(&pf->pdev->dev, sizeof(*tmp), GFP_ATOMIC); in ice_add_mac_to_list()
1601 struct ice_pf *pf = vsi->back; in ice_vsi_add_vlan() local
1606 tmp = devm_kzalloc(&pf->pdev->dev, sizeof(*tmp), GFP_KERNEL); in ice_vsi_add_vlan()
1620 status = ice_add_vlan(&pf->hw, &tmp_add_list); in ice_vsi_add_vlan()
1623 dev_err(&pf->pdev->dev, "Failure Adding VLAN %d on VSI %i\n", in ice_vsi_add_vlan()
1627 ice_free_fltr_list(&pf->pdev->dev, &tmp_add_list); in ice_vsi_add_vlan()
1641 struct ice_pf *pf = vsi->back; in ice_vsi_kill_vlan() local
1646 list = devm_kzalloc(&pf->pdev->dev, sizeof(*list), GFP_KERNEL); in ice_vsi_kill_vlan()
1660 status = ice_remove_vlan(&pf->hw, &tmp_add_list); in ice_vsi_kill_vlan()
1662 dev_dbg(&pf->pdev->dev, in ice_vsi_kill_vlan()
1666 dev_err(&pf->pdev->dev, in ice_vsi_kill_vlan()
1672 ice_free_fltr_list(&pf->pdev->dev, &tmp_add_list); in ice_vsi_kill_vlan()
1728 struct ice_pf *pf = vsi->back; in ice_vsi_cfg_txq() local
1743 ring->tail = pf->hw.hw_addr + QTX_COMM_DBELL(pf_q); in ice_vsi_cfg_txq()
1753 dev_err(&pf->pdev->dev, in ice_vsi_cfg_txq()
1783 struct ice_pf *pf = vsi->back; in ice_vsi_cfg_txqs() local
1788 qg_buf = devm_kzalloc(&pf->pdev->dev, sizeof(*qg_buf), GFP_KERNEL); in ice_vsi_cfg_txqs()
1809 devm_kfree(&pf->pdev->dev, qg_buf); in ice_vsi_cfg_txqs()
1933 struct ice_pf *pf = vsi->back; in ice_cfg_txq_interrupt() local
1934 struct ice_hw *hw = &pf->hw; in ice_cfg_txq_interrupt()
1963 struct ice_pf *pf = vsi->back; in ice_cfg_rxq_interrupt() local
1964 struct ice_hw *hw = &pf->hw; in ice_cfg_rxq_interrupt()
1986 struct ice_pf *pf = vsi->back; in ice_vsi_cfg_msix() local
1987 struct ice_hw *hw = &pf->hw; in ice_vsi_cfg_msix()
2165 struct ice_pf *pf = vsi->back; in ice_vsi_stop_tx_ring() local
2167 struct ice_hw *hw = &pf->hw; in ice_vsi_stop_tx_ring()
2308 struct ice_pf *pf; in ice_cfg_vlan_pruning() local
2314 pf = vsi->back; in ice_cfg_vlan_pruning()
2315 dev = &pf->pdev->dev; in ice_cfg_vlan_pruning()
2339 status = ice_update_vsi(&pf->hw, vsi->idx, ctxt, NULL); in ice_cfg_vlan_pruning()
2343 pf->hw.adminq.sq_last_status); in ice_cfg_vlan_pruning()
2420 struct ice_pf *pf = vsi->back; in ice_vsi_add_rem_eth_mac() local
2424 list = devm_kzalloc(&pf->pdev->dev, sizeof(*list), GFP_KERNEL); in ice_vsi_add_rem_eth_mac()
2439 status = ice_add_eth_mac(&pf->hw, &tmp_add_list); in ice_vsi_add_rem_eth_mac()
2441 status = ice_remove_eth_mac(&pf->hw, &tmp_add_list); in ice_vsi_add_rem_eth_mac()
2444 dev_err(&pf->pdev->dev, in ice_vsi_add_rem_eth_mac()
2448 ice_free_fltr_list(&pf->pdev->dev, &tmp_add_list); in ice_vsi_add_rem_eth_mac()
2460 struct ice_pf *pf = vsi->back; in ice_cfg_sw_lldp() local
2464 list = devm_kzalloc(&pf->pdev->dev, sizeof(*list), GFP_KERNEL); in ice_cfg_sw_lldp()
2486 status = ice_add_eth_mac(&pf->hw, &tmp_add_list); in ice_cfg_sw_lldp()
2488 status = ice_remove_eth_mac(&pf->hw, &tmp_add_list); in ice_cfg_sw_lldp()
2491 dev_err(&pf->pdev->dev, in ice_cfg_sw_lldp()
2496 ice_free_fltr_list(&pf->pdev->dev, &tmp_add_list); in ice_cfg_sw_lldp()
2514 ice_vsi_setup(struct ice_pf *pf, struct ice_port_info *pi, in ice_vsi_setup() argument
2518 struct device *dev = &pf->pdev->dev; in ice_vsi_setup()
2524 vsi = ice_vsi_alloc(pf, type, vf_id); in ice_vsi_setup()
2526 vsi = ice_vsi_alloc(pf, type, ICE_INVAL_VFID); in ice_vsi_setup()
2534 vsi->vsw = pf->first_sw; in ice_vsi_setup()
2582 if (test_bit(ICE_FLAG_RSS_ENA, pf->flags)) in ice_vsi_setup()
2607 if (test_bit(ICE_FLAG_RSS_ENA, pf->flags)) in ice_vsi_setup()
2627 dev_err(&pf->pdev->dev, in ice_vsi_setup()
2643 if (!ice_is_safe_mode(pf)) { in ice_vsi_setup()
2651 if (!test_bit(ICE_FLAG_FW_LLDP_AGENT, pf->flags)) in ice_vsi_setup()
2660 ice_free_res(pf->irq_tracker, vsi->base_vector, vsi->idx); in ice_vsi_setup()
2661 pf->num_avail_sw_msix += vsi->num_q_vectors; in ice_vsi_setup()
2679 struct ice_pf *pf = vsi->back; in ice_vsi_release_msix() local
2680 struct ice_hw *hw = &pf->hw; in ice_vsi_release_msix()
2711 struct ice_pf *pf = vsi->back; in ice_vsi_free_irq() local
2727 irq_num = pf->msix_entries[vector].vector; in ice_vsi_free_irq()
2741 devm_free_irq(&pf->pdev->dev, irq_num, in ice_vsi_free_irq()
2866 ice_get_res(struct ice_pf *pf, struct ice_res_tracker *res, u16 needed, u16 id) in ice_get_res() argument
2868 if (!res || !pf) in ice_get_res()
2872 dev_err(&pf->pdev->dev, in ice_get_res()
2888 struct ice_pf *pf = vsi->back; in ice_vsi_dis_irq() local
2889 struct ice_hw *hw = &pf->hw; in ice_vsi_dis_irq()
2934 synchronize_irq(pf->msix_entries[i + base].vector); in ice_vsi_dis_irq()
2960 struct ice_pf *pf; in ice_vsi_release() local
2964 pf = vsi->back; in ice_vsi_release()
2972 if (vsi->netdev && !ice_is_reset_in_progress(pf->state)) in ice_vsi_release()
2975 if (test_bit(ICE_FLAG_RSS_ENA, pf->flags)) in ice_vsi_release()
2990 ice_free_res(pf->irq_tracker, vsi->base_vector, vsi->idx); in ice_vsi_release()
2991 pf->num_avail_sw_msix += vsi->num_q_vectors; in ice_vsi_release()
2994 if (!ice_is_safe_mode(pf)) { in ice_vsi_release()
3001 if (!test_bit(ICE_FLAG_FW_LLDP_AGENT, pf->flags)) in ice_vsi_release()
3006 ice_remove_vsi_fltr(&pf->hw, vsi->idx); in ice_vsi_release()
3025 if (!ice_is_reset_in_progress(pf->state)) in ice_vsi_release()
3042 struct ice_pf *pf; in ice_vsi_rebuild() local
3048 pf = vsi->back; in ice_vsi_rebuild()
3050 vf = &pf->vf[vsi->vf_id]; in ice_vsi_rebuild()
3062 ice_free_res(pf->irq_tracker, vsi->base_vector, vsi->idx); in ice_vsi_rebuild()
3063 pf->num_avail_sw_msix += vsi->num_q_vectors; in ice_vsi_rebuild()
3070 ice_dev_onetime_setup(&pf->hw); in ice_vsi_rebuild()
3112 if (test_bit(ICE_FLAG_RSS_ENA, pf->flags)) in ice_vsi_rebuild()
3140 dev_err(&pf->pdev->dev, in ice_vsi_rebuild()
3158 set_bit(__ICE_RESET_FAILED, pf->state); in ice_vsi_rebuild()
3200 struct ice_pf *pf = vsi->back; in ice_vsi_cfg_tc() local
3216 ctx = devm_kzalloc(&pf->pdev->dev, sizeof(*ctx), GFP_KERNEL); in ice_vsi_cfg_tc()
3227 status = ice_update_vsi(&pf->hw, vsi->idx, ctx, NULL); in ice_vsi_cfg_tc()
3229 dev_info(&pf->pdev->dev, "Failed VSI Update\n"); in ice_vsi_cfg_tc()
3238 dev_err(&pf->pdev->dev, in ice_vsi_cfg_tc()
3249 devm_kfree(&pf->pdev->dev, ctx); in ice_vsi_cfg_tc()