common/mlx5: support more fields in DevX CQ create
[dpdk.git] / drivers / baseband / turbo_sw / bbdev_turbo_software.c
index 5ca8ca1..a36099e 100644 (file)
@@ -34,8 +34,7 @@
 
 #define DRIVER_NAME baseband_turbo_sw
 
-/* Turbo SW PMD logging ID */
-static int bbdev_turbo_sw_logtype;
+RTE_LOG_REGISTER(bbdev_turbo_sw_logtype, pmd.bb.turbo_sw, NOTICE);
 
 /* Helper macro for logging */
 #define rte_bbdev_log(level, fmt, ...) \
@@ -1335,7 +1334,7 @@ process_dec_cb(struct turbo_sw_queue *q, struct rte_bbdev_dec_op *op,
 
 static inline void
 process_ldpc_dec_cb(struct turbo_sw_queue *q, struct rte_bbdev_dec_op *op,
-               uint8_t c, uint16_t out_length, uint16_t e,
+               uint8_t c, uint16_t out_length, uint32_t e,
                struct rte_mbuf *m_in,
                struct rte_mbuf *m_out_head, struct rte_mbuf *m_out,
                struct rte_mbuf *m_harq_in,
@@ -1617,8 +1616,8 @@ enqueue_ldpc_dec_one_op(struct turbo_sw_queue *q, struct rte_bbdev_dec_op *op,
                struct rte_bbdev_stats *queue_stats)
 {
        uint8_t c, r = 0;
-       uint16_t e, out_length;
-       uint16_t crc24_overlap = 0;
+       uint32_t e;
+       uint16_t out_length, crc24_overlap = 0;
        struct rte_bbdev_op_ldpc_dec *dec = &op->ldpc_dec;
        struct rte_mbuf *m_in = dec->input.data;
        struct rte_mbuf *m_harq_in = dec->harq_combined_input.data;
@@ -1660,8 +1659,11 @@ enqueue_ldpc_dec_one_op(struct turbo_sw_queue *q, struct rte_bbdev_dec_op *op,
                if (dec->code_block_mode == 0)
                        e = (r < dec->tb_params.cab) ?
                                dec->tb_params.ea : dec->tb_params.eb;
-
-               seg_total_left = rte_pktmbuf_data_len(m_in) - in_offset;
+               /* Special case handling when overusing mbuf */
+               if (e < RTE_BBDEV_LDPC_E_MAX_MBUF)
+                       seg_total_left = rte_pktmbuf_data_len(m_in) - in_offset;
+               else
+                       seg_total_left = e;
 
                process_ldpc_dec_cb(q, op, c, out_length, e,
                                m_in, m_out_head, m_out,
@@ -1987,10 +1989,3 @@ RTE_PMD_REGISTER_PARAM_STRING(DRIVER_NAME,
        TURBO_SW_MAX_NB_QUEUES_ARG"=<int> "
        TURBO_SW_SOCKET_ID_ARG"=<int>");
 RTE_PMD_REGISTER_ALIAS(DRIVER_NAME, turbo_sw);
-
-RTE_INIT(turbo_sw_bbdev_init_log)
-{
-       bbdev_turbo_sw_logtype = rte_log_register("pmd.bb.turbo_sw");
-       if (bbdev_turbo_sw_logtype >= 0)
-               rte_log_set_level(bbdev_turbo_sw_logtype, RTE_LOG_NOTICE);
-}