From a8ee206a1bde5887752c47153529fe216edb6c5b Mon Sep 17 00:00:00 2001 From: Hemant Agrawal Date: Fri, 15 May 2020 15:17:48 +0530 Subject: [PATCH] bus/dpaa: add accessor for qman portal ids qman caam and pool portal ids are only used in control path. This patch changes their inter library access to function call instead of direct shared variable. Signed-off-by: Hemant Agrawal Acked-by: Ray Kinsella --- drivers/bus/dpaa/base/qbman/qman_driver.c | 10 ++++++++++ drivers/bus/dpaa/include/fsl_qman.h | 8 +++++++- drivers/bus/dpaa/rte_bus_dpaa_version.map | 4 ++-- drivers/crypto/dpaa_sec/dpaa_sec.c | 2 +- 4 files changed, 20 insertions(+), 4 deletions(-) diff --git a/drivers/bus/dpaa/base/qbman/qman_driver.c b/drivers/bus/dpaa/base/qbman/qman_driver.c index 69244ef701..1166d68e21 100644 --- a/drivers/bus/dpaa/base/qbman/qman_driver.c +++ b/drivers/bus/dpaa/base/qbman/qman_driver.c @@ -30,6 +30,16 @@ static __thread struct dpaa_ioctl_portal_map map = { .type = dpaa_portal_qman }; +u16 dpaa_get_qm_channel_caam(void) +{ + return qm_channel_caam; +} + +u16 dpaa_get_qm_channel_pool(void) +{ + return qm_channel_pool1; +} + static int fsl_qman_portal_init(uint32_t index, int is_shared) { struct qman_portal *portal; diff --git a/drivers/bus/dpaa/include/fsl_qman.h b/drivers/bus/dpaa/include/fsl_qman.h index 4411bb0a79..78b698f393 100644 --- a/drivers/bus/dpaa/include/fsl_qman.h +++ b/drivers/bus/dpaa/include/fsl_qman.h @@ -44,6 +44,12 @@ enum qm_dc_portal { qm_dc_portal_pme = 3 }; +__rte_internal +u16 dpaa_get_qm_channel_caam(void); + +__rte_internal +u16 dpaa_get_qm_channel_pool(void); + /* Portal processing (interrupt) sources */ #define QM_PIRQ_CCSCI 0x00200000 /* CEETM Congestion State Change */ #define QM_PIRQ_CSCI 0x00100000 /* Congestion State Change */ @@ -65,7 +71,7 @@ enum qm_dc_portal { /* for conversion from n of qm_channel */ static inline u32 QM_SDQCR_CHANNELS_POOL_CONV(u16 channel) { - return QM_SDQCR_CHANNELS_POOL(channel + 1 - qm_channel_pool1); + return QM_SDQCR_CHANNELS_POOL(channel + 1 - dpaa_get_qm_channel_pool()); } /* For qman_volatile_dequeue(); Choose one PRECEDENCE. EXACT is optional. Use diff --git a/drivers/bus/dpaa/rte_bus_dpaa_version.map b/drivers/bus/dpaa/rte_bus_dpaa_version.map index 53732289d3..8bb2757e04 100644 --- a/drivers/bus/dpaa/rte_bus_dpaa_version.map +++ b/drivers/bus/dpaa/rte_bus_dpaa_version.map @@ -12,6 +12,8 @@ INTERNAL { bman_query_free_buffers; bman_release; bman_thread_irq; + dpaa_get_qm_channel_caam; + dpaa_get_qm_channel_pool; dpaa_logtype_eventdev; dpaa_logtype_mempool; dpaa_logtype_pmd; @@ -50,8 +52,6 @@ INTERNAL { netcfg_release; per_lcore_dpaa_io; per_lcore_held_bufs; - qm_channel_caam; - qm_channel_pool1; qman_alloc_cgrid_range; qman_alloc_pool_range; qman_clear_irq; diff --git a/drivers/crypto/dpaa_sec/dpaa_sec.c b/drivers/crypto/dpaa_sec/dpaa_sec.c index a9bfb8685e..66ee0ba0c3 100644 --- a/drivers/crypto/dpaa_sec/dpaa_sec.c +++ b/drivers/crypto/dpaa_sec/dpaa_sec.c @@ -121,7 +121,7 @@ dpaa_sec_init_rx(struct qman_fq *fq_in, rte_iova_t hwdesc, qm_fqd_context_a_set64(&fq_opts.fqd, hwdesc); fq_opts.fqd.context_b = fqid_out; - fq_opts.fqd.dest.channel = qm_channel_caam; + fq_opts.fqd.dest.channel = dpaa_get_qm_channel_caam(); fq_opts.fqd.dest.wq = 0; fq_in->cb.ern = ern_sec_fq_handler; -- 2.20.1