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;
}
Exemple #2
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;
}