mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-27 17:18:59 +00:00
cddd459140
Add patches for linux-5.4. The patches are from NXP LSDK-20.04 release which was tagged LSDK-20.04-V5.4. https://source.codeaurora.org/external/qoriq/qoriq-components/linux/ For boards LS1021A-IOT, and Traverse-LS1043 which are not involved in LSDK, port the dts patches from 4.14. The patches are sorted into the following categories: 301-arch-xxxx 302-dts-xxxx 303-core-xxxx 701-net-xxxx 801-audio-xxxx 802-can-xxxx 803-clock-xxxx 804-crypto-xxxx 805-display-xxxx 806-dma-xxxx 807-gpio-xxxx 808-i2c-xxxx 809-jailhouse-xxxx 810-keys-xxxx 811-kvm-xxxx 812-pcie-xxxx 813-pm-xxxx 814-qe-xxxx 815-sata-xxxx 816-sdhc-xxxx 817-spi-xxxx 818-thermal-xxxx 819-uart-xxxx 820-usb-xxxx 821-vfio-xxxx Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
115 lines
3.4 KiB
Diff
115 lines
3.4 KiB
Diff
From 5a359d189f9938d30046aedfc94c9cd7fe383e34 Mon Sep 17 00:00:00 2001
|
|
From: Andrey Smirnov <andrew.smirnov@gmail.com>
|
|
Date: Tue, 22 Oct 2019 08:30:11 -0700
|
|
Subject: [PATCH] crypto: caam - use devres to de-initialize QI
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
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>
|
|
(cherry picked from commit f414de2e2fffd89c8a4e5b5e06b0eba5f9d8b1eb)
|
|
---
|
|
drivers/crypto/caam/ctrl.c | 14 +-------------
|
|
drivers/crypto/caam/intern.h | 3 ---
|
|
drivers/crypto/caam/qi.c | 8 ++++++--
|
|
drivers/crypto/caam/qi.h | 1 -
|
|
4 files changed, 7 insertions(+), 19 deletions(-)
|
|
|
|
--- a/drivers/crypto/caam/ctrl.c
|
|
+++ b/drivers/crypto/caam/ctrl.c
|
|
@@ -332,11 +332,6 @@ static int caam_remove(struct platform_d
|
|
/* 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;
|
|
}
|
|
|
|
@@ -767,7 +762,7 @@ static int caam_probe(struct platform_de
|
|
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;
|
|
@@ -928,13 +923,6 @@ static int caam_probe(struct platform_de
|
|
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 = {
|
|
--- a/drivers/crypto/caam/intern.h
|
|
+++ b/drivers/crypto/caam/intern.h
|
|
@@ -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 */
|
|
--- a/drivers/crypto/caam/qi.c
|
|
+++ b/drivers/crypto/caam/qi.c
|
|
@@ -500,9 +500,10 @@ void caam_drv_ctx_rel(struct caam_drv_ct
|
|
}
|
|
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
|
|
×_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;
|
|
}
|
|
--- a/drivers/crypto/caam/qi.h
|
|
+++ b/drivers/crypto/caam/qi.h
|
|
@@ -147,7 +147,6 @@ int caam_drv_ctx_update(struct caam_drv_
|
|
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
|