mirror of
https://github.com/torvalds/linux.git
synced 2024-11-22 04:38:03 +00:00
crypto: caam - use devres to de-initialize QI
Use devres to de-initialize the QI and drop explicit de-initialization code in caam_remove(). Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com> Reviewed-by: Horia Geantă <horia.geanta@nxp.com> Cc: Chris Healy <cphealy@gmail.com> Cc: Lucas Stach <l.stach@pengutronix.de> Cc: Horia Geantă <horia.geanta@nxp.com> Cc: Herbert Xu <herbert@gondor.apana.org.au> Cc: Iuliana Prodan <iuliana.prodan@nxp.com> Cc: linux-crypto@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
parent
e57acaf0df
commit
f414de2e2f
@ -332,11 +332,6 @@ static int caam_remove(struct platform_device *pdev)
|
||||
/* Remove platform devices under the crypto node */
|
||||
of_platform_depopulate(ctrldev);
|
||||
|
||||
#ifdef CONFIG_CAAM_QI
|
||||
if (ctrlpriv->qi_init)
|
||||
caam_qi_shutdown(ctrldev);
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -769,7 +764,7 @@ static int caam_probe(struct platform_device *pdev)
|
||||
ret = of_platform_populate(nprop, caam_match, NULL, dev);
|
||||
if (ret) {
|
||||
dev_err(dev, "JR platform devices creation error\n");
|
||||
goto shutdown_qi;
|
||||
return ret;
|
||||
}
|
||||
|
||||
ring = 0;
|
||||
@ -930,13 +925,6 @@ static int caam_probe(struct platform_device *pdev)
|
||||
caam_remove:
|
||||
caam_remove(pdev);
|
||||
return ret;
|
||||
|
||||
shutdown_qi:
|
||||
#ifdef CONFIG_CAAM_QI
|
||||
if (ctrlpriv->qi_init)
|
||||
caam_qi_shutdown(dev);
|
||||
#endif
|
||||
return ret;
|
||||
}
|
||||
|
||||
static struct platform_driver caam_driver = {
|
||||
|
@ -81,9 +81,6 @@ struct caam_drv_private {
|
||||
*/
|
||||
u8 total_jobrs; /* Total Job Rings in device */
|
||||
u8 qi_present; /* Nonzero if QI present in device */
|
||||
#ifdef CONFIG_CAAM_QI
|
||||
u8 qi_init; /* Nonzero if QI has been initialized */
|
||||
#endif
|
||||
u8 mc_en; /* Nonzero if MC f/w is active */
|
||||
int secvio_irq; /* Security violation interrupt number */
|
||||
int virt_en; /* Virtualization enabled in CAAM */
|
||||
|
@ -500,9 +500,10 @@ void caam_drv_ctx_rel(struct caam_drv_ctx *drv_ctx)
|
||||
}
|
||||
EXPORT_SYMBOL(caam_drv_ctx_rel);
|
||||
|
||||
void caam_qi_shutdown(struct device *qidev)
|
||||
static void caam_qi_shutdown(void *data)
|
||||
{
|
||||
int i;
|
||||
struct device *qidev = data;
|
||||
struct caam_qi_priv *priv = &qipriv;
|
||||
const cpumask_t *cpus = qman_affine_cpus();
|
||||
|
||||
@ -761,7 +762,10 @@ int caam_qi_init(struct platform_device *caam_pdev)
|
||||
×_congested, &caam_fops_u64_ro);
|
||||
#endif
|
||||
|
||||
ctrlpriv->qi_init = 1;
|
||||
err = devm_add_action_or_reset(qidev, caam_qi_shutdown, ctrlpriv);
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
dev_info(qidev, "Linux CAAM Queue I/F driver initialised\n");
|
||||
return 0;
|
||||
}
|
||||
|
@ -147,7 +147,6 @@ int caam_drv_ctx_update(struct caam_drv_ctx *drv_ctx, u32 *sh_desc);
|
||||
void caam_drv_ctx_rel(struct caam_drv_ctx *drv_ctx);
|
||||
|
||||
int caam_qi_init(struct platform_device *pdev);
|
||||
void caam_qi_shutdown(struct device *dev);
|
||||
|
||||
/**
|
||||
* qi_cache_alloc - Allocate buffers from CAAM-QI cache
|
||||
|
Loading…
Reference in New Issue
Block a user