This exposes the width of each windowing shape being configured on
the device. This allows to distinguish different version of the
flexible pointwise windowing applied to the FFT and expose
this platform configuration to the application.

The SRS processing chain
(https://doc.dpdk.org/guides/prog_guide/bbdev.html#bbdev-fft-operation)
includes a pointwise multiplication by time window whose shape width
needs to be exposed, notably for accurate SNR estimate.
Using that mechanism user application can retrieve information related
to what has been dynamically programmed on any bbdev device
supporting FFT windowing operation.

Signed-off-by: Nicolas Chautru <nicolas.chau...@intel.com>
---
 lib/bbdev/rte_bbdev.h    | 2 ++
 lib/bbdev/rte_bbdev_op.h | 2 ++
 2 files changed, 4 insertions(+)

diff --git a/lib/bbdev/rte_bbdev.h b/lib/bbdev/rte_bbdev.h
index 2985c9f42b..df691c479f 100644
--- a/lib/bbdev/rte_bbdev.h
+++ b/lib/bbdev/rte_bbdev.h
@@ -349,6 +349,8 @@ struct rte_bbdev_driver_info {
        const struct rte_bbdev_op_cap *capabilities;
        /** Device cpu_flag requirements */
        const enum rte_cpu_flag_t *cpu_flag_reqs;
+       /** FFT width related 2048 FFT for each window. */
+       uint16_t fft_window_width[RTE_BBDEV_MAX_FFT_WIN];
 };
 
 /** Macro used at end of bbdev PMD list */
diff --git a/lib/bbdev/rte_bbdev_op.h b/lib/bbdev/rte_bbdev_op.h
index 693baa8386..9d27226ca6 100644
--- a/lib/bbdev/rte_bbdev_op.h
+++ b/lib/bbdev/rte_bbdev_op.h
@@ -51,6 +51,8 @@ extern "C" {
 /* 12 CS maximum */
 #define RTE_BBDEV_MAX_CS_2 (6)
 #define RTE_BBDEV_MAX_CS   (12)
+/* Up to 16 windows for FFT. */
+#define RTE_BBDEV_MAX_FFT_WIN (16)
 /* MLD-TS up to 4 layers */
 #define RTE_BBDEV_MAX_MLD_LAYERS (4)
 /* 12 SB per RB */
-- 
2.34.1

Reply via email to