crypto/caam_jr: fix device tree parsing for SEC_ERA
authorGagandeep Singh <g.singh@nxp.com>
Mon, 19 Oct 2020 09:48:01 +0000 (17:48 +0800)
committerThomas Monjalon <thomas@monjalon.net>
Mon, 19 Oct 2020 14:00:31 +0000 (16:00 +0200)
Previously, SEC_ERA was hardcoded and it was removed in [1].
Now when that hardcoded was removed, it is supposed to be
read from the device tree but it is not done correctly.
This patch calls a necessary API of_init() before using any
of_* APIs to retrieve information from the device tree and
if reading integer value that must be converted to cpu endianness
before using it.

[1] eef9e0412a84 ("drivers/crypto: fix build with -fno-common")

Fixes: 1d678de329ab ("crypto/caam_jr: add basic job ring routines")
Cc: stable@dpdk.org
Signed-off-by: Gagandeep Singh <g.singh@nxp.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
drivers/crypto/caam_jr/caam_jr.c

index c004ec4..3fb3fe0 100644 (file)
@@ -2388,6 +2388,8 @@ init_error:
 static int
 cryptodev_caam_jr_probe(struct rte_vdev_device *vdev)
 {
+       int ret;
+
        struct rte_cryptodev_pmd_init_params init_params = {
                "",
                sizeof(struct sec_job_ring_t),
@@ -2404,6 +2406,12 @@ cryptodev_caam_jr_probe(struct rte_vdev_device *vdev)
        input_args = rte_vdev_device_args(vdev);
        rte_cryptodev_pmd_parse_input_args(&init_params, input_args);
 
+       ret = of_init();
+       if (ret) {
+               RTE_LOG(ERR, PMD,
+               "of_init failed\n");
+               return -EINVAL;
+       }
        /* if sec device version is not configured */
        if (!rta_get_sec_era()) {
                const struct device_node *caam_node;
@@ -2414,7 +2422,7 @@ cryptodev_caam_jr_probe(struct rte_vdev_device *vdev)
                                        NULL);
                        if (prop) {
                                rta_set_sec_era(
-                                       INTL_SEC_ERA(cpu_to_caam32(*prop)));
+                                       INTL_SEC_ERA(rte_be_to_cpu_32(*prop)));
                                break;
                        }
                }