static void qed_fastpath_start(struct ecore_dev *edev) { struct ecore_hwfn *p_hwfn; int i; for_each_hwfn(edev, i) { p_hwfn = &edev->hwfns[i]; ecore_hw_start_fastpath(p_hwfn); }
static int qed_start_vport(struct ecore_dev *edev, struct qed_start_vport_params *p_params) { int rc, i; for_each_hwfn(edev, i) { struct ecore_hwfn *p_hwfn = &edev->hwfns[i]; u8 tx_switching = 0; struct ecore_sp_vport_start_params start = { 0 }; start.tpa_mode = p_params->gro_enable ? ECORE_TPA_MODE_GRO : ECORE_TPA_MODE_NONE; start.remove_inner_vlan = p_params->remove_inner_vlan; start.tx_switching = tx_switching; start.only_untagged = false; /* untagged only */ start.drop_ttl0 = p_params->drop_ttl0; start.concrete_fid = p_hwfn->hw_info.concrete_fid; start.opaque_fid = p_hwfn->hw_info.opaque_fid; start.concrete_fid = p_hwfn->hw_info.concrete_fid; start.handle_ptp_pkts = p_params->handle_ptp_pkts; start.vport_id = p_params->vport_id; start.max_buffers_per_cqe = 16; /* TODO-is this right */ start.mtu = p_params->mtu; /* @DPDK - Disable FW placement */ start.zero_placement_offset = 1; rc = ecore_sp_vport_start(p_hwfn, &start); if (rc) { DP_ERR(edev, "Failed to start VPORT\n"); return rc; } ecore_hw_start_fastpath(p_hwfn); DP_VERBOSE(edev, ECORE_MSG_SPQ, "Started V-PORT %d with MTU %d\n", p_params->vport_id, p_params->mtu); } ecore_reset_vport_stats(edev); return 0; }