X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fraw%2Fdpaa2_cmdif%2Fdpaa2_cmdif.c;h=c7bddbc6cc3068258aaba9b9fa637a966214baff;hb=2ae23f564761248a17d3569e9425af1af4dd8710;hp=3f42da1fed61a6f743a40821a60825d37b84b706;hpb=9d69e0bbddc1678b7afaf9cd7386eaef1df64fc6;p=dpdk.git diff --git a/drivers/raw/dpaa2_cmdif/dpaa2_cmdif.c b/drivers/raw/dpaa2_cmdif/dpaa2_cmdif.c index 3f42da1fed..c7bddbc6cc 100644 --- a/drivers/raw/dpaa2_cmdif/dpaa2_cmdif.c +++ b/drivers/raw/dpaa2_cmdif/dpaa2_cmdif.c @@ -1,5 +1,5 @@ /* SPDX-License-Identifier: BSD-3-Clause - * Copyright 2018 NXP + * Copyright 2018-2019 NXP */ #include @@ -20,9 +20,6 @@ #include "dpaa2_cmdif_logs.h" #include "rte_pmd_dpaa2_cmdif.h" -/* Dynamic log type identifier */ -int dpaa2_cmdif_logtype; - /* CMDIF driver name */ #define DPAA2_CMDIF_PMD_NAME dpaa2_dpci @@ -62,6 +59,7 @@ dpaa2_cmdif_enqueue_bufs(struct rte_rawdev *dev, struct qbman_fd fd; struct qbman_eq_desc eqdesc; struct qbman_swp *swp; + uint32_t retry_count = 0; int ret; RTE_SET_USED(count); @@ -69,7 +67,9 @@ dpaa2_cmdif_enqueue_bufs(struct rte_rawdev *dev, if (unlikely(!DPAA2_PER_LCORE_DPIO)) { ret = dpaa2_affine_qbman_swp(); if (ret) { - DPAA2_CMDIF_ERR("Failure in affining portal\n"); + DPAA2_CMDIF_ERR( + "Failed to allocate IO portal, tid: %d\n", + rte_gettid()); return 0; } } @@ -100,11 +100,15 @@ dpaa2_cmdif_enqueue_bufs(struct rte_rawdev *dev, ret = qbman_swp_enqueue_multiple(swp, &eqdesc, &fd, NULL, 1); if (ret < 0 && ret != -EBUSY) DPAA2_CMDIF_ERR("Transmit failure with err: %d\n", ret); - } while (ret == -EBUSY); + retry_count++; + } while ((ret == -EBUSY) && (retry_count < DPAA2_MAX_TX_RETRY_COUNT)); + + if (ret < 0) + return ret; DPAA2_CMDIF_DP_DEBUG("Successfully transmitted a packet\n"); - return 0; + return 1; } static int @@ -128,7 +132,9 @@ dpaa2_cmdif_dequeue_bufs(struct rte_rawdev *dev, if (unlikely(!DPAA2_PER_LCORE_DPIO)) { ret = dpaa2_affine_qbman_swp(); if (ret) { - DPAA2_CMDIF_ERR("Failure in affining portal\n"); + DPAA2_CMDIF_ERR( + "Failed to allocate IO portal, tid: %d\n", + rte_gettid()); return 0; } } @@ -282,10 +288,4 @@ static struct rte_vdev_driver dpaa2_cmdif_drv = { }; RTE_PMD_REGISTER_VDEV(DPAA2_CMDIF_PMD_NAME, dpaa2_cmdif_drv); - -RTE_INIT(dpaa2_cmdif_init_log) -{ - dpaa2_cmdif_logtype = rte_log_register("pmd.raw.dpaa2.cmdif"); - if (dpaa2_cmdif_logtype >= 0) - rte_log_set_level(dpaa2_cmdif_logtype, RTE_LOG_INFO); -} +RTE_LOG_REGISTER(dpaa2_cmdif_logtype, pmd.raw.dpaa2.cmdif, INFO);