On 15/05/2020 10:47, Hemant Agrawal wrote:
> 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 <hemant.agra...@nxp.com>
> ---
> 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 25dcbd259a..4af9024a00 100644
> --- a/drivers/crypto/dpaa_sec/dpaa_sec.c
> +++ b/drivers/crypto/dpaa_sec/dpaa_sec.c
> @@ -123,7 +123,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;
>
Acked-by: Ray Kinsella <m...@ashroe.eu>