From 87bb7ce07a212ce4f81bf7bb56b87cfafcd34071 Mon Sep 17 00:00:00 2001 From: Vincent Jardin Date: Mon, 28 Sep 2026 16:06:56 +0200 Subject: crypto: caam/qi2 - reset the DPSECI at probe only when enabled Since the commit 060ce5037d5f ("crypto: caam/qi2 - add support for dpseci_reset()") probe resets every DPSECI. On a DPSECI the MC has just created from the DPL, never enabled, MC 10.40.x then logs for each of its queues: [E, qbman_rec_isr:396, QBMAN] QBMAN recoverable event 0x1000000 [E, dpmng_dump_rerr_fqid:1335, QBMAN] REL_FQ (FQ[0]) has 1 messages, dumping up to 16: [W, DPSECI] DPSECI ID[0]: Flush on queue 43 not confirmed That is 16 error lines for an 8-queue DPSECI, at every boot, although there is nothing to flush: a disabled DPSECI has no request in flight. The reset at remove is unchanged. Signed-off-by: Vincent Jardin Signed-off-by: Herbert Xu --- drivers/crypto/caam/caamalg_qi2.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/drivers/crypto/caam/caamalg_qi2.c b/drivers/crypto/caam/caamalg_qi2.c index 6b47bcc16a50..6dccbd3b27a3 100644 --- a/drivers/crypto/caam/caamalg_qi2.c +++ b/drivers/crypto/caam/caamalg_qi2.c @@ -5041,11 +5041,22 @@ static int __cold dpaa2_dpseci_setup(struct fsl_mc_device *ls_dev) dev_info(dev, "dpseci v%d.%d\n", priv->major_ver, priv->minor_ver); if (DPSECI_VER(priv->major_ver, priv->minor_ver) > DPSECI_VER(5, 3)) { - err = dpseci_reset(priv->mc_io, 0, ls_dev->mc_handle); + int enabled; + + err = dpseci_is_enabled(priv->mc_io, 0, ls_dev->mc_handle, + &enabled); if (err) { - dev_err(dev, "dpseci_reset() failed\n"); + dev_err(dev, "dpseci_is_enabled() failed\n"); goto err_get_vers; } + + if (enabled) { + err = dpseci_reset(priv->mc_io, 0, ls_dev->mc_handle); + if (err) { + dev_err(dev, "dpseci_reset() failed\n"); + goto err_get_vers; + } + } } err = dpseci_get_attributes(priv->mc_io, 0, ls_dev->mc_handle, -- cgit v1.2.3