* [PATCH 1/1] crypto: use dmaengine_desc_set_callback()
@ 2026-11-02 16:45 Frank.Li
2026-11-02 17:34 ` Thorsten Blum
` (2 more replies)
0 siblings, 3 replies; 4+ 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 [flat|nested] 4+ 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
2026-11-03 12:28 ` Bartosz Golaszewski
2026-11-03 16:21 ` T, Pratham
2 siblings, 0 replies; 4+ 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] 4+ 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
@ 2026-11-03 12:28 ` Bartosz Golaszewski
2026-11-03 16:21 ` T, Pratham
2 siblings, 0 replies; 4+ messages in thread
From: Bartosz Golaszewski @ 2026-11-03 12:28 UTC (permalink / raw)
To: Frank.Li
Cc: Herbert Xu, David S. Miller, Nicolas Ferre, Alexandre Belloni,
Claudiu Beznea, 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, imx, vkoul
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
> dma_async_tx_descriptor private to the DMA engine.
>
> Signed-off-by: Frank Li <Frank.Li@nxp.com>
> ---
Acked-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
^ permalink raw reply [flat|nested] 4+ 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
2026-11-03 12:28 ` Bartosz Golaszewski
@ 2026-11-03 16:21 ` T, Pratham
2 siblings, 0 replies; 4+ messages in thread
From: T, Pratham @ 2026-11-03 16:21 UTC (permalink / raw)
To: Frank.Li
Cc: imx, vkoul, Herbert Xu, David S. Miller, Nicolas Ferre,
Alexandre Belloni, Claudiu Beznea, Bartosz Golaszewski,
Jia Jie Ho, William Qiu, Maxime Coquelin, Alexandre Torgue,
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
On 02-11-2026 22:15, 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
> 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(-)
LGTM.
Reviewed-by: T Pratham <t-pratham@ti.com>
--
Regards
T Pratham <t-pratham@ti.com>
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2026-11-03 16:24 UTC | newest]
Thread overview: 4+ 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
2026-11-03 12:28 ` Bartosz Golaszewski
2026-11-03 16:21 ` T, Pratham
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®