* [PATCH 1/1] crypto: use dmaengine_desc_set_callback()
@ 2026-11-02 16:45 Frank.Li
2026-11-02 17:34 ` Thorsten Blum
0 siblings, 1 reply; 2+ messages in thread
From: Frank.Li @ 2026-11-02 16:45 UTC (permalink / raw)
To: Herbert Xu, David S. Miller, Nicolas Ferre, Alexandre Belloni,
Claudiu Beznea, Bartosz Golaszewski, Jia Jie Ho, William Qiu,
Maxime Coquelin, Alexandre Torgue, T Pratham, Thorsten Blum,
Frank Li, Pan Chuang, Maxime Méré, open list:CRYPTO API,
moderated list:ARM/Microchip (AT91) SoC support, open list,
open list:QUALCOMM CRYPTO DRIVERS,
moderated list:ARM/STM32 ARCHITECTURE
Cc: imx, vkoul
From: Frank Li <Frank.Li@nxp.com>
Replace open-coded assignments to callback and callback_param fields
of struct dma_async_tx_descriptor with calls to the
dmaengine_desc_set_callback() helper across various crypto drivers.
No functional change intended. Prepare make to struct
dma_async_tx_descriptor private to the DMA engine.
Signed-off-by: Frank Li <Frank.Li@nxp.com>
---
drivers/crypto/atmel-aes.c | 3 +--
drivers/crypto/atmel-sha.c | 6 ++----
drivers/crypto/atmel-tdes.c | 3 +--
drivers/crypto/img-hash.c | 3 +--
drivers/crypto/omap-aes.c | 8 +++-----
drivers/crypto/omap-des.c | 5 ++---
drivers/crypto/omap-sham.c | 3 +--
drivers/crypto/qce/dma.c | 3 +--
drivers/crypto/sa2ul.c | 3 +--
drivers/crypto/starfive/jh7110-aes.c | 3 +--
drivers/crypto/starfive/jh7110-hash.c | 3 +--
drivers/crypto/stm32/stm32-cryp.c | 9 +++------
drivers/crypto/stm32/stm32-hash.c | 3 +--
drivers/crypto/ti/dthev2-aes.c | 9 +++------
14 files changed, 22 insertions(+), 42 deletions(-)
diff --git a/drivers/crypto/atmel-aes.c b/drivers/crypto/atmel-aes.c
index 84392411b98d8..49f1bf19747d8 100644
--- a/drivers/crypto/atmel-aes.c
+++ b/drivers/crypto/atmel-aes.c
@@ -824,8 +824,7 @@ static int atmel_aes_dma_transfer_start(struct atmel_aes_dev *dd,
if (!desc)
return -ENOMEM;
- desc->callback = callback;
- desc->callback_param = dd;
+ dmaengine_desc_set_callback(desc, callback, NULL, dd);
dmaengine_submit(desc);
dma_async_issue_pending(dma->chan);
diff --git a/drivers/crypto/atmel-sha.c b/drivers/crypto/atmel-sha.c
index 4b883a8dcf301..3e4557a9fc8f7 100644
--- a/drivers/crypto/atmel-sha.c
+++ b/drivers/crypto/atmel-sha.c
@@ -662,8 +662,7 @@ static int atmel_sha_xmit_dma(struct atmel_sha_dev *dd, dma_addr_t dma_addr1,
if (!in_desc)
return atmel_sha_complete(dd, -EINVAL);
- in_desc->callback = atmel_sha_dma_callback;
- in_desc->callback_param = dd;
+ dmaengine_desc_set_callback(in_desc, atmel_sha_dma_callback, NULL, dd);
atmel_sha_write_ctrl(dd, 1);
@@ -1472,8 +1471,7 @@ static int atmel_sha_dma_start(struct atmel_sha_dev *dd,
goto unmap_sg;
}
- desc->callback = atmel_sha_dma_callback2;
- desc->callback_param = dd;
+ dmaengine_desc_set_callback(desc, atmel_sha_dma_callback2, NULL, dd);
cookie = dmaengine_submit(desc);
err = dma_submit_error(cookie);
if (err)
diff --git a/drivers/crypto/atmel-tdes.c b/drivers/crypto/atmel-tdes.c
index 6b561b333ac6a..8d2f41abb238a 100644
--- a/drivers/crypto/atmel-tdes.c
+++ b/drivers/crypto/atmel-tdes.c
@@ -401,8 +401,7 @@ static int atmel_tdes_crypt_dma(struct atmel_tdes_dev *dd,
if (!out_desc)
return -EINVAL;
- out_desc->callback = atmel_tdes_dma_callback;
- out_desc->callback_param = dd;
+ dmaengine_desc_set_callback(out_desc, atmel_tdes_dma_callback, NULL, dd);
dmaengine_submit(out_desc);
dma_async_issue_pending(dd->dma_lch_out.chan);
diff --git a/drivers/crypto/img-hash.c b/drivers/crypto/img-hash.c
index 1ccfc0eccc737..fef0d09066add 100644
--- a/drivers/crypto/img-hash.c
+++ b/drivers/crypto/img-hash.c
@@ -242,8 +242,7 @@ static int img_hash_xmit_dma(struct img_hash_dev *hdev, struct scatterlist *sg)
dma_unmap_sg(hdev->dev, sg, 1, DMA_TO_DEVICE);
return -EINVAL;
}
- desc->callback = img_hash_dma_callback;
- desc->callback_param = hdev;
+ dmaengine_desc_set_callback(desc, img_hash_dma_callback, NULL, hdev);
dmaengine_submit(desc);
dma_async_issue_pending(hdev->dma_lch);
diff --git a/drivers/crypto/omap-aes.c b/drivers/crypto/omap-aes.c
index d40074e5a1427..c34ae8945eca4 100644
--- a/drivers/crypto/omap-aes.c
+++ b/drivers/crypto/omap-aes.c
@@ -310,8 +310,7 @@ static int omap_aes_crypt_dma(struct omap_aes_dev *dd,
}
/* No callback necessary */
- tx_in->callback_param = dd;
- tx_in->callback = NULL;
+ dmaengine_desc_set_callback(tx_in, NULL, NULL, dd);
/* OUT */
if (out_sg_len) {
@@ -337,10 +336,9 @@ static int omap_aes_crypt_dma(struct omap_aes_dev *dd,
}
if (dd->flags & FLAGS_GCM)
- cb_desc->callback = omap_aes_gcm_dma_out_callback;
+ dmaengine_desc_set_callback(cb_desc, omap_aes_gcm_dma_out_callback, NULL, dd);
else
- cb_desc->callback = omap_aes_dma_out_callback;
- cb_desc->callback_param = dd;
+ dmaengine_desc_set_callback(cb_desc, omap_aes_dma_out_callback, NULL, dd);
dmaengine_submit(tx_in);
diff --git a/drivers/crypto/omap-des.c b/drivers/crypto/omap-des.c
index 4b5a8d13f505e..d366689835175 100644
--- a/drivers/crypto/omap-des.c
+++ b/drivers/crypto/omap-des.c
@@ -414,7 +414,7 @@ static int omap_des_crypt_dma(struct crypto_tfm *tfm,
}
/* No callback necessary */
- tx_in->callback_param = dd;
+ dmaengine_desc_set_callback(tx_in, NULL, NULL, dd);
/* OUT */
ret = dmaengine_slave_config(dd->dma_lch_out, &cfg);
@@ -432,8 +432,7 @@ static int omap_des_crypt_dma(struct crypto_tfm *tfm,
return -EINVAL;
}
- tx_out->callback = omap_des_dma_out_callback;
- tx_out->callback_param = dd;
+ dmaengine_desc_set_callback(tx_out, omap_des_dma_out_callback, NULL, dd);
dmaengine_submit(tx_in);
dmaengine_submit(tx_out);
diff --git a/drivers/crypto/omap-sham.c b/drivers/crypto/omap-sham.c
index 5e739415a0102..ef9fd1fcef228 100644
--- a/drivers/crypto/omap-sham.c
+++ b/drivers/crypto/omap-sham.c
@@ -600,8 +600,7 @@ static int omap_sham_xmit_dma(struct omap_sham_dev *dd, size_t length,
return -EINVAL;
}
- tx->callback = omap_sham_dma_callback;
- tx->callback_param = dd;
+ dmaengine_desc_set_callback(tx, omap_sham_dma_callback, NULL, dd);
dd->pdata->write_ctrl(dd, length, final, 1);
diff --git a/drivers/crypto/qce/dma.c b/drivers/crypto/qce/dma.c
index 68cafd4741ad3..620cb1bcf61a9 100644
--- a/drivers/crypto/qce/dma.c
+++ b/drivers/crypto/qce/dma.c
@@ -95,8 +95,7 @@ static int qce_dma_prep_sg(struct dma_chan *chan, struct scatterlist *sg,
if (!desc)
return -EINVAL;
- desc->callback = cb;
- desc->callback_param = cb_param;
+ dmaengine_desc_set_callback(desc, cb, NULL, cb_param);
cookie = dmaengine_submit(desc);
return dma_submit_error(cookie);
diff --git a/drivers/crypto/sa2ul.c b/drivers/crypto/sa2ul.c
index 4557eae941648..b0bb474239bbd 100644
--- a/drivers/crypto/sa2ul.c
+++ b/drivers/crypto/sa2ul.c
@@ -1200,8 +1200,7 @@ static int sa_run(struct sa_req *req)
rxd->enc = req->enc;
rxd->iv_idx = req->ctx->iv_idx;
rxd->enc_iv_size = sa_ctx->cmdl_upd_info.enc_iv.size;
- rxd->tx_in->callback = req->callback;
- rxd->tx_in->callback_param = rxd;
+ dmaengine_desc_set_callback(rxd->tx_in, req->callback, NULL, rxd);
tx_out = dmaengine_prep_slave_sg(pdata->dma_tx, src,
src_nents, DMA_MEM_TO_DEV,
diff --git a/drivers/crypto/starfive/jh7110-aes.c b/drivers/crypto/starfive/jh7110-aes.c
index f59adb2a56510..1746caf8caed4 100644
--- a/drivers/crypto/starfive/jh7110-aes.c
+++ b/drivers/crypto/starfive/jh7110-aes.c
@@ -464,8 +464,7 @@ static int starfive_aes_dma_xfer(struct starfive_cryp_dev *cryp,
goto dma_err;
}
- out_desc->callback = starfive_aes_dma_done;
- out_desc->callback_param = cryp;
+ dmaengine_desc_set_callback(out_desc, starfive_aes_dma_done, NULL, cryp);
reinit_completion(&cryp->dma_done);
dmaengine_submit(out_desc);
diff --git a/drivers/crypto/starfive/jh7110-hash.c b/drivers/crypto/starfive/jh7110-hash.c
index 008a47baa1657..d49fb9ac7dd8e 100644
--- a/drivers/crypto/starfive/jh7110-hash.c
+++ b/drivers/crypto/starfive/jh7110-hash.c
@@ -144,8 +144,7 @@ static int starfive_hash_dma_xfer(struct starfive_cryp_dev *cryp,
}
reinit_completion(&cryp->dma_done);
- in_desc->callback = starfive_hash_dma_callback;
- in_desc->callback_param = cryp;
+ dmaengine_desc_set_callback(in_desc, starfive_hash_dma_callback, NULL, cryp);
dmaengine_submit(in_desc);
dma_async_issue_pending(cryp->tx);
diff --git a/drivers/crypto/stm32/stm32-cryp.c b/drivers/crypto/stm32/stm32-cryp.c
index 3fc2db290b0f4..d03d674e019cd 100644
--- a/drivers/crypto/stm32/stm32-cryp.c
+++ b/drivers/crypto/stm32/stm32-cryp.c
@@ -982,8 +982,7 @@ static int stm32_cryp_header_dma_start(struct stm32_cryp *cryp)
return -EINVAL;
}
- tx_in->callback_param = cryp;
- tx_in->callback = stm32_cryp_header_dma_callback;
+ dmaengine_desc_set_callback(tx_in, stm32_cryp_header_dma_callback, NULL, cryp);
/* Advance scatterwalk to not DMA'ed data */
align_size = ALIGN_DOWN(cryp->header_in, cryp->hw_blocksize);
@@ -1034,8 +1033,7 @@ static int stm32_cryp_dma_start(struct stm32_cryp *cryp)
}
/* No callback necessary */
- tx_in->callback_param = cryp;
- tx_in->callback = NULL;
+ dmaengine_desc_set_callback(tx_in, NULL, NULL, cryp);
tx_out = dmaengine_prep_slave_sg(cryp->dma_lch_out, cryp->out_sg, cryp->out_sg_len,
DMA_DEV_TO_MEM, DMA_PREP_INTERRUPT | DMA_CTRL_ACK);
@@ -1045,8 +1043,7 @@ static int stm32_cryp_dma_start(struct stm32_cryp *cryp)
}
reinit_completion(&cryp->dma_completion);
- tx_out->callback = stm32_cryp_dma_callback;
- tx_out->callback_param = cryp;
+ dmaengine_desc_set_callback(tx_out, stm32_cryp_dma_callback, NULL, cryp);
/* Advance scatterwalk to not DMA'ed data */
align_size = ALIGN_DOWN(cryp->payload_in, cryp->hw_blocksize);
diff --git a/drivers/crypto/stm32/stm32-hash.c b/drivers/crypto/stm32/stm32-hash.c
index e6a1e9b9f88d5..cf790b8992f75 100644
--- a/drivers/crypto/stm32/stm32-hash.c
+++ b/drivers/crypto/stm32/stm32-hash.c
@@ -539,8 +539,7 @@ static int stm32_hash_xmit_dma(struct stm32_hash_dev *hdev,
}
reinit_completion(&hdev->dma_completion);
- in_desc->callback = stm32_hash_dma_callback;
- in_desc->callback_param = hdev;
+ dmaengine_desc_set_callback(in_desc, stm32_hash_dma_callback, NULL, hdev);
hdev->flags |= HASH_FLAGS_DMA_ACTIVE;
diff --git a/drivers/crypto/ti/dthev2-aes.c b/drivers/crypto/ti/dthev2-aes.c
index a3c069ca2baf2..2474bebcf2b4f 100644
--- a/drivers/crypto/ti/dthev2-aes.c
+++ b/drivers/crypto/ti/dthev2-aes.c
@@ -448,8 +448,7 @@ static int dthe_aes_run(struct crypto_engine *engine, void *areq)
goto aes_prep_err;
}
- desc_in->callback = dthe_aes_dma_in_callback;
- desc_in->callback_param = req;
+ dmaengine_desc_set_callback(desc_in, dthe_aes_dma_in_callback, NULL, req);
init_completion(&rctx->aes_compl);
@@ -1013,12 +1012,10 @@ static int dthe_aead_run(struct crypto_engine *engine, void *areq)
goto aead_dma_prep_dst_err;
}
- desc_in->callback = dthe_aead_dma_in_callback;
- desc_in->callback_param = req;
+ dmaengine_desc_set_callback(desc_in, dthe_aead_dma_in_callback, NULL, req);
} else if (assoclen != 0) {
/* AAD-only operation */
- desc_aad_out->callback = dthe_aead_dma_in_callback;
- desc_aad_out->callback_param = req;
+ dmaengine_desc_set_callback(desc_aad_out, dthe_aead_dma_in_callback, NULL, req);
}
init_completion(&rctx->aes_compl);
--
2.43.0
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH 1/1] crypto: use dmaengine_desc_set_callback()
2026-11-02 16:45 [PATCH 1/1] crypto: use dmaengine_desc_set_callback() Frank.Li
@ 2026-11-02 17:34 ` Thorsten Blum
0 siblings, 0 replies; 2+ messages in thread
From: Thorsten Blum @ 2026-11-02 17:34 UTC (permalink / raw)
To: Frank.Li
Cc: Herbert Xu, David S. Miller, Nicolas Ferre, Alexandre Belloni,
Claudiu Beznea, Bartosz Golaszewski, Jia Jie Ho, William Qiu,
Maxime Coquelin, Alexandre Torgue, T Pratham, Frank Li,
Pan Chuang, Maxime Méré, open list:CRYPTO API,
moderated list:ARM/Microchip (AT91) SoC support, open list,
open list:QUALCOMM CRYPTO DRIVERS,
moderated list:ARM/STM32 ARCHITECTURE, imx, vkoul
Hi Frank,
On Mon, Nov 02, 2026 at 11:45:30AM -0500, Frank.Li@oss.nxp.com wrote:
> From: Frank Li <Frank.Li@nxp.com>
>
> Replace open-coded assignments to callback and callback_param fields
> of struct dma_async_tx_descriptor with calls to the
> dmaengine_desc_set_callback() helper across various crypto drivers.
>
> No functional change intended. Prepare make to struct
^^^^^^^ to make?
> dma_async_tx_descriptor private to the DMA engine.
>
> Signed-off-by: Frank Li <Frank.Li@nxp.com>
> ---
> drivers/crypto/atmel-aes.c | 3 +--
> drivers/crypto/atmel-sha.c | 6 ++----
> drivers/crypto/atmel-tdes.c | 3 +--
> drivers/crypto/img-hash.c | 3 +--
> drivers/crypto/omap-aes.c | 8 +++-----
> drivers/crypto/omap-des.c | 5 ++---
> drivers/crypto/omap-sham.c | 3 +--
> drivers/crypto/qce/dma.c | 3 +--
> drivers/crypto/sa2ul.c | 3 +--
> drivers/crypto/starfive/jh7110-aes.c | 3 +--
> drivers/crypto/starfive/jh7110-hash.c | 3 +--
> drivers/crypto/stm32/stm32-cryp.c | 9 +++------
> drivers/crypto/stm32/stm32-hash.c | 3 +--
> drivers/crypto/ti/dthev2-aes.c | 9 +++------
> 14 files changed, 22 insertions(+), 42 deletions(-)
Reviewed-by: Thorsten Blum <blum@kernel.org>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-11-02 17:34 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-11-02 16:45 [PATCH 1/1] crypto: use dmaengine_desc_set_callback() Frank.Li
2026-11-02 17:34 ` Thorsten Blum
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox