crypto/caam_jr: fix device tree parsing for SEC_ERA

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>
This commit is contained in:
Gagandeep Singh 2020-10-19 17:48:01 +08:00 committed by Thomas Monjalon
parent dc7a7b5cb8
commit c6887eca58

View 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;
}
}