FAILED: patch "[PATCH] crypto: caam - fix LS1021A support on ARMv7 multiplatform" failed to apply to 4.4-stable tree
Subsystems (3)
[email protected]
maintainerThe patch below does not apply to the 4.4-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
Quoted 1 line
From
c056d910f08029662080a01b4ce2110e2c9a27b6Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Horia=20Geant=C4=83?= <[email protected]>
Date: Fri, 1 Sep 2017 17:12:59 +0300
Subject: [PATCH] crypto: caam - fix LS1021A support on ARMv7 multiplatform
kernel
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
When built using multi_v7_defconfig, driver does not work on LS1021A:
[...]
caam 1700000.crypto: can't identify CAAM ipg clk: -2
caam: probe of 1700000.crypto failed with error -2
[...]
It turns out we have to detect at runtime whether driver is running on an i.MX platform or not.
drivers/crypto/caam/Kconfig +1 -4
@@ -1,6 +1,7 @@ config CRYPTO_DEV_FSL_CAAM tristate "Freescale CAAM-Multicore driver backend" depends on FSL_SOC || ARCH_MXC || ARCH_LAYERSCAPE + select SOC_BUS help Enables the driver module for Freescale's Cryptographic Accelerator and Assurance Module (CAAM), also known as the SEC version 4 (SEC4).
@@ -141,10 +142,6 @@ config CRYPTO_DEV_FSL_CAAM_RNG_API To compile this as a module, choose M here: the module will be called caamrng. -config CRYPTO_DEV_FSL_CAAM_IMX - def_bool SOC_IMX6 || SOC_IMX7D - depends on CRYPTO_DEV_FSL_CAAM - config CRYPTO_DEV_FSL_CAAM_DEBUG bool "Enable debug output in CAAM driver" depends on CRYPTO_DEV_FSL_CAAM
drivers/crypto/caam/ctrl.c +10 -9
@@ -7,6 +7,7 @@#include <linux/device.h> #include <linux/of_address.h> #include <linux/of_irq.h> +#include <linux/sys_soc.h> #include "compat.h" #include "regs.h"
@@ -19,6 +20,8 @@ bool caam_little_end;EXPORT_SYMBOL (caam_little_end);bool caam_dpaa2;EXPORT_SYMBOL (caam_dpaa2); +bool caam_imx; +EXPORT_SYMBOL (caam_imx);#ifdef CONFIG_CAAM_QI #include "qi.h"
@@ -28,19 +31,11 @@ EXPORT_SYMBOL(caam_dpaa2);* i.MX targets tend to have clock control subsystems that can * enable/disable clocking to our device. */ -#ifdef CONFIG_CRYPTO_DEV_FSL_CAAM_IMX static inline struct clk *caam_drv_identify_clk (struct device *dev,char *clk_name) { -return devm_clk_get (dev, clk_name); +return caam_imx ?devm_clk_get (dev, clk_name) :NULL ; } -#else -static inline struct clk *caam_drv_identify_clk (struct device *dev, -char *clk_name) -{ -return NULL ; -} -#endif /* * Descriptor to instantiate RNG State Handle 0 in normal mode and
@@ -430,6 +425,10 @@ static int caam_probe(struct platform_device *pdev) {int ret, ring, gen_sk, ent_delay =RTSDCTL_ENT_DLY_MIN ;u64 caam_id; +static const struct soc_device_attribute imx_soc[] = { + {.family ="Freescale i.MX" }, + {}, + };struct device *dev;struct device_node *nprop, *np;struct caam_ctrl __iomem *ctrl;
@@ -451,6 +450,8 @@ static int caam_probe(struct platform_device *pdev)dev_set_drvdata (dev, ctrlpriv); nprop = pdev->dev.of_node; + caam_imx = (bool )soc_device_match (imx_soc); +/* Enable clocking */ clk =caam_drv_identify_clk (&pdev->dev,"ipg" );if (IS_ERR (clk)) {
drivers/crypto/caam/regs.h +28 -31
88 lines not on this page · raw message