Thanks Maxime. 

> -----Original Message-----
> From: Maxime Coquelin <maxime.coque...@redhat.com>
> Sent: Monday, September 18, 2023 8:43 AM
> To: Chautru, Nicolas <nicolas.chau...@intel.com>; dev@dpdk.org
> Cc: Rix, Tom <t...@redhat.com>; hemant.agra...@nxp.com;
> david.march...@redhat.com; Vargas, Hernan <hernan.var...@intel.com>
> Subject: Re: [PATCH v2 2/5] bbdev: add new capabilities for FFT processing
> 
> 
> 
> On 9/18/23 17:08, Maxime Coquelin wrote:
> >
> >
> > On 6/15/23 18:48, Nicolas Chautru wrote:
> >> Extending existing FFT operation for new capabilities.
> >> Optional frequency domain dewindowing, frequency resampling, timing
> >> error correction and time offset per CS.
> >>
> >> Signed-off-by: Nicolas Chautru <nicolas.chau...@intel.com>
> >> ---
> >>   doc/guides/prog_guide/bbdev.rst | 24 ++++++++++++++++++++++++
> >>   lib/bbdev/rte_bbdev_op.h        | 23 ++++++++++++++++++++++-
> >>   2 files changed, 46 insertions(+), 1 deletion(-)
> >>
> >> diff --git a/doc/guides/prog_guide/bbdev.rst
> >> b/doc/guides/prog_guide/bbdev.rst index 8e384015ee..95b33562fe
> 100644
> >> --- a/doc/guides/prog_guide/bbdev.rst
> >> +++ b/doc/guides/prog_guide/bbdev.rst
> >> @@ -1111,6 +1111,18 @@ with the operation flags forming a bitmask in
> >> the ``op_flags`` field.
> >>   |RTE_BBDEV_FFT_FP16_OUTPUT
> >> |
> >>   | Set if the output data shall use FP16 format instead of INT16
> >> |
> >>
> >> +--------------------------------------------------------------------
> >> +
> >> +|RTE_BBDEV_FFT_TIMING_OFFSET_PER_CS
> >> +||  Set if device supports adjusting time offset per CS
> >> +||
> >> ++--------------------------------------------------------------------+
> >> +|RTE_BBDEV_FFT_TIMING_ERROR
> >> +||  Set if device supports correcting for timing error
> >> +||
> >> ++--------------------------------------------------------------------+
> >> +|RTE_BBDEV_FFT_DEWINDOWING
> >> +||  Set if enabling the option FFT Dewindowing in Frequency domain
> >> +||
> >> ++--------------------------------------------------------------------+
> >> +|RTE_BBDEV_FFT_FREQ_RESAMPLING
> >> +||  Set if device supports the optional frequency resampling
> >> +||
> >> ++--------------------------------------------------------------------+
> >>   The FFT parameters are set out in the table below.
> >> @@ -1121,6 +1133,8 @@ The FFT parameters are set out in the table
> below.
> >>
> >> +-------------------------+--------------------------------------------------------------+
> >>   |base_output              |output
> >> data                                                   |
> >>
> >> +-------------------------+--------------------------------------------------------------+
> >> +|dewindowing_input        |optional frequency domain dewindowing
> >> input data              |
> >> ++-------------------------+--------------------------------------------------------------+
> >>   |power_meas_output        |optional output data with power
> >> measurement on DFT output     |
> >>
> >> +-------------------------+--------------------------------------------------------------+
> >>   |op_flags                 |bitmask of all active operation
> >> capabilities                  | @@ -1155,6 +1169,16 @@ The FFT
> >> parameters are set out in the table below.
> >>
> >> +-------------------------+--------------------------------------------------------------+
> >>   |fp16_exp_adjust          |value added to FP16 exponent at
> >> conversion from INT16         |
> >>
> >> +-------------------------+--------------------------------------------------------------+
> >> +|freq_resample_mode       |frequency ressampling mode
> >> +|(0:transparent,
> >> 1-2: resample)     |
> >> ++-------------------------+--------------------------------------------------------------+
> >> +| output_depadded_size    |output depadded size prior to frequency
> >> resampling            |
> >> ++-------------------------+--------------------------------------------------------------+
> >> +|cs_theta_0               |timing error correction initial
> >> phase                         |
> >> ++-------------------------+--------------------------------------------------------------+
> >> +|cs_theta_d               |timing error correction phase
> >> increment                       |
> >> ++-------------------------+--------------------------------------------------------------+
> >> +|time_offset              |time offset per CS of time domain
> >> samples                     |
> >> ++-------------------------+--------------------------------------------------------------+
> >>   The mbuf input ``base_input`` is mandatory for all bbdev PMDs and
> >>   is the incoming data for the processing. Its size may not fit into
> >> an actual mbuf, diff --git a/lib/bbdev/rte_bbdev_op.h
> >> b/lib/bbdev/rte_bbdev_op.h index 990d110fa7..682e265327 100644
> >> --- a/lib/bbdev/rte_bbdev_op.h
> >> +++ b/lib/bbdev/rte_bbdev_op.h
> >> @@ -50,6 +50,7 @@ extern "C" {
> >>   #define RTE_BBDEV_LDPC_MAX_CODE_BLOCKS (256)
> >>   /* 12 CS maximum */
> >>   #define RTE_BBDEV_MAX_CS_2 (6)
> >> +#define RTE_BBDEV_MAX_CS   (12)
> >>   /* MLD-TS up to 4 layers */
> >>   #define RTE_BBDEV_MAX_MLD_LAYERS (4)
> >>   /* 12 SB per RB */
> >> @@ -242,7 +243,15 @@ enum rte_bbdev_op_fft_flag_bitmasks {
> >>       /** Set if the input data used FP16 format. */
> >>       RTE_BBDEV_FFT_FP16_INPUT = (1ULL << 6),
> >>       /** Set if the output data uses FP16 format. */
> >> -    RTE_BBDEV_FFT_FP16_OUTPUT = (1ULL << 7)
> >> +    RTE_BBDEV_FFT_FP16_OUTPUT = (1ULL << 7),
> >> +    /** Flexible adjustment of Timing offset adjustment per CS. */
> >> +    RTE_BBDEV_FFT_TIMING_OFFSET_PER_CS = (1ULL << 8),
> >> +    /** Flexible adjustment of Timing error correction per CS. */
> >> +    RTE_BBDEV_FFT_TIMING_ERROR = (1ULL << 9),
> >> +    /** Set for optional frequency domain dewindowing. */
> >> +    RTE_BBDEV_FFT_DEWINDOWING = (1ULL << 10),
> >> +    /** Flexible adjustment of frequency resampling mode. */
> >> +    RTE_BBDEV_FFT_FREQ_RESAMPLING = (1ULL << 11)
> >>   };
> >>   /** Flags for MLDTS operation and capability structure */ @@ -756,6
> >> +765,8 @@ struct rte_bbdev_op_fft {
> >>       struct rte_bbdev_op_data base_input;
> >>       /** Output data starting from first antenna and first cyclic
> >> shift. */
> >>       struct rte_bbdev_op_data base_output;
> >> +    /** Optional frequency window input data. */
> >> +    struct rte_bbdev_op_data dewindowing_input;
> >>       /** Optional power measurement output data. */
> >>       struct rte_bbdev_op_data power_meas_output;
> >>       /** Flags from rte_bbdev_op_fft_flag_bitmasks. */ @@ -790,6
> >> +801,16 @@ struct rte_bbdev_op_fft {
> >>       uint16_t power_shift;
> >>       /** Adjust the FP6 exponent for INT<->FP16 conversion. */
> >>       uint16_t fp16_exp_adjust;
> >> +    /** Frequency resampling : 0: Transparent Mode1: 4/3 Resample2:
> >> 2/3 Resample. */
> >> +    int8_t freq_resample_mode;
> >> +    /** Output depadded size prior to frequency resampling. */
> >> +    uint16_t output_depadded_size;
> >> +    /** Time error correction initial phase. */
> >> +    uint16_t cs_theta_0[RTE_BBDEV_MAX_CS];
> >> +    /** Time error correction phase increment. */
> >> +    uint32_t cs_theta_d[RTE_BBDEV_MAX_CS];
> >> +    /* Time offset per CS of time domain samples. */
> >> +    int8_t time_offset[RTE_BBDEV_MAX_CS];
> >>   };
> >>   /* >8 End of structure rte_bbdev_op_fft. */
> >
> > I think you need to document ABI change in:
> > doc/guides/rel_notes/release_23_11.rst
> 
> Nevermind, I forgot the FFT API was still experimental.
> No need to submit a new revision, I will fix the typos in patch 5.
> 
> Maxime
> 
> > Once done, please add my:
> > Acked-by: Maxime Coquelin <maxime.coque...@redhat.com>
> >
> > Maxime
> >
> >

Reply via email to