static int qed_start_txq(struct ecore_dev *edev, uint8_t rss_num, struct ecore_queue_start_common_params *p_params, dma_addr_t pbl_addr, uint16_t pbl_size, void OSAL_IOMEM * *pp_doorbell) { struct ecore_hwfn *p_hwfn; int rc, hwfn_index; hwfn_index = rss_num % edev->num_hwfns; p_hwfn = &edev->hwfns[hwfn_index]; p_params->queue_id = p_params->queue_id / edev->num_hwfns; p_params->qzone_id = p_params->queue_id; p_params->stats_id = p_params->vport_id; rc = ecore_sp_eth_tx_queue_start(p_hwfn, p_hwfn->hw_info.opaque_fid, p_params, 0 /* tc */, pbl_addr, pbl_size, pp_doorbell); if (rc) { DP_ERR(edev, "Failed to start TXQ#%d\n", p_params->queue_id); return rc; } DP_VERBOSE(edev, ECORE_MSG_SPQ, "Started TX-Q %d [rss_num %d] on V-PORT %d and SB %d\n", p_params->queue_id, rss_num, p_params->vport_id, p_params->sb); return 0; }
static int qed_start_txq(struct ecore_dev *edev, uint8_t rss_id, uint16_t tx_queue_id, uint8_t vport_id, uint16_t sb, uint8_t sb_index, dma_addr_t pbl_addr, uint16_t pbl_size, void OSAL_IOMEM * *pp_doorbell) { struct ecore_hwfn *p_hwfn; int rc, hwfn_index; hwfn_index = rss_id % edev->num_hwfns; p_hwfn = &edev->hwfns[hwfn_index]; rc = ecore_sp_eth_tx_queue_start(p_hwfn, p_hwfn->hw_info.opaque_fid, tx_queue_id / edev->num_hwfns, vport_id, vport_id, sb, sb_index, pbl_addr, pbl_size, pp_doorbell); if (rc) { DP_ERR(edev, "Failed to start TXQ#%d\n", tx_queue_id); return rc; } DP_VERBOSE(edev, ECORE_MSG_SPQ, "Started TX-Q %d [rss %d] on V-PORT %d and SB %d\n", tx_queue_id, rss_id, vport_id, sb); return 0; }