Re: [PATCHv2 2/4] dma: fsl_raid: set final bit via fill_cfd_frame() argument
From: Frank Li
Date: Thu Jul 16 2026 - 16:57:56 EST
On Thu, Jul 16, 2026 at 01:29:47PM -0700, Rosen Penev wrote:
> The final-frame bit is now passed as the "final" argument of
> fill_cfd_frame() (as fsl_re_prep_dma_memcpy already did) and set in CPU
> order before the single cpu_to_be32() store, replacing the previous
> read-modify-write of the __be32 efrl32 field.
>
> Assisted-by: opencode:hy3-free
> Signed-off-by: Rosen Penev <rosenp@xxxxxxxxx>
> ---
Reviewed-by: Frank Li <Frank.Li@xxxxxxx>
> drivers/dma/fsl_raid.c | 16 ++++++++--------
> 1 file changed, 8 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/dma/fsl_raid.c b/drivers/dma/fsl_raid.c
> index 2778d07a05e8..888f55b672a5 100644
> --- a/drivers/dma/fsl_raid.c
> +++ b/drivers/dma/fsl_raid.c
> @@ -375,11 +375,11 @@ static struct dma_async_tx_descriptor *fsl_re_prep_dma_genq(
> for (i = 2, j = 0; j < save_src_cnt; i++, j++)
> fill_cfd_frame(cf, i, len, src[j], 0);
>
> + /* Fill the last frame and mark it final */
> if (cont_q)
> - fill_cfd_frame(cf, i++, len, dest, 0);
> -
> - /* Setting the final bit in the last source buffer frame in CFD */
> - cf[i - 1].efrl32 |= 1 << FSL_RE_CF_FINAL_SHIFT;
> + fill_cfd_frame(cf, i, len, dest, 1);
> + else
> + fill_cfd_frame(cf, i - 1, len, src[j - 1], 1);
>
> return &desc->async_tx;
> }
> @@ -505,16 +505,16 @@ static struct dma_async_tx_descriptor *fsl_re_prep_dma_pq(
> p[save_src_cnt + 2] = 1;
> fill_cfd_frame(cf, i++, len, dest[0], 0);
> fill_cfd_frame(cf, i++, len, dest[1], 0);
> - fill_cfd_frame(cf, i++, len, dest[1], 0);
> + fill_cfd_frame(cf, i++, len, dest[1], 1);
> } else {
> dev_err(re_chan->dev, "PQ tx continuation error!\n");
> return NULL;
> }
> + } else {
> + /* Mark the last source buffer frame final */
> + fill_cfd_frame(cf, i - 1, len, src[j - 1], 1);
> }
>
> - /* Setting the final bit in the last source buffer frame in CFD */
> - cf[i - 1].efrl32 |= 1 << FSL_RE_CF_FINAL_SHIFT;
> -
> return &desc->async_tx;
> }
>
> --
> 2.55.0
>