git.droids-corp.org
/
dpdk.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
net/sfc: support per-queue Rx RSS hash offload for EF100
[dpdk.git]
/
drivers
/
baseband
/
turbo_sw
/
bbdev_turbo_software.c
diff --git
a/drivers/baseband/turbo_sw/bbdev_turbo_software.c
b/drivers/baseband/turbo_sw/bbdev_turbo_software.c
index
acb63a4
..
a36099e
100644
(file)
--- a/
drivers/baseband/turbo_sw/bbdev_turbo_software.c
+++ b/
drivers/baseband/turbo_sw/bbdev_turbo_software.c
@@
-34,8
+34,7
@@
#define DRIVER_NAME baseband_turbo_sw
#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, ...) \
/* Helper macro for logging */
#define rte_bbdev_log(level, fmt, ...) \
@@
-218,8
+217,7
@@
info_get(struct rte_bbdev *dev, struct rte_bbdev_driver_info *dev_info)
RTE_BBDEV_LDPC_HQ_COMBINE_OUT_ENABLE |
RTE_BBDEV_LDPC_ITERATION_STOP_ENABLE,
.llr_size = 8,
RTE_BBDEV_LDPC_HQ_COMBINE_OUT_ENABLE |
RTE_BBDEV_LDPC_ITERATION_STOP_ENABLE,
.llr_size = 8,
- .llr_decimals = 2,
- .harq_memory_size = 0,
+ .llr_decimals = 4,
.num_buffers_src =
RTE_BBDEV_LDPC_MAX_CODE_BLOCKS,
.num_buffers_hard_out =
.num_buffers_src =
RTE_BBDEV_LDPC_MAX_CODE_BLOCKS,
.num_buffers_hard_out =
@@
-251,6
+249,7
@@
info_get(struct rte_bbdev *dev, struct rte_bbdev_driver_info *dev_info)
dev_info->default_queue_conf = default_queue_conf;
dev_info->capabilities = bbdev_capabilities;
dev_info->min_alignment = 64;
dev_info->default_queue_conf = default_queue_conf;
dev_info->capabilities = bbdev_capabilities;
dev_info->min_alignment = 64;
+ dev_info->harq_buffer_size = 0;
rte_bbdev_log_debug("got device info from %u\n", dev->data->dev_id);
}
rte_bbdev_log_debug("got device info from %u\n", dev->data->dev_id);
}
@@
-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,
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, uint
16
_t e,
+ uint8_t c, uint16_t out_length, uint
32
_t e,
struct rte_mbuf *m_in,
struct rte_mbuf *m_out_head, struct rte_mbuf *m_out,
struct rte_mbuf *m_harq_in,
struct rte_mbuf *m_in,
struct rte_mbuf *m_out_head, struct rte_mbuf *m_out,
struct rte_mbuf *m_harq_in,
@@
-1610,12
+1609,6
@@
enqueue_dec_one_op(struct turbo_sw_queue *q, struct rte_bbdev_dec_op *op,
}
r++;
}
}
r++;
}
-
- if (mbuf_total_left != 0) {
- op->status |= 1 << RTE_BBDEV_DATA_ERROR;
- rte_bbdev_log(ERR,
- "Mismatch between mbuf length and included Circular buffer sizes");
- }
}
static inline void
}
static inline void
@@
-1623,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;
struct rte_bbdev_stats *queue_stats)
{
uint8_t c, r = 0;
- uint
16_t e, out_length
;
- uint16_t crc24_overlap = 0;
+ uint
32_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;
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;
@@
-1666,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;
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,
process_ldpc_dec_cb(q, op, c, out_length, e,
m_in, m_out_head, m_out,
@@
-1706,12
+1702,6
@@
enqueue_ldpc_dec_one_op(struct turbo_sw_queue *q, struct rte_bbdev_dec_op *op,
}
r++;
}
}
r++;
}
-
- if (mbuf_total_left != 0) {
- op->status |= 1 << RTE_BBDEV_DATA_ERROR;
- rte_bbdev_log(ERR,
- "Mismatch between mbuf length and included Circular buffer sizes");
- }
}
static inline uint16_t
}
static inline uint16_t
@@
-1999,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);
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);
-}