diff options
| author | Laura Abbott <lauraa@codeaurora.org> | 2014-09-24 16:57:52 -0700 |
|---|---|---|
| committer | Olav Haugan <ohaugan@codeaurora.org> | 2016-10-08 10:43:21 -0700 |
| commit | 621b81b8f3948a03aefe46244cecd54b2ca03792 (patch) | |
| tree | 13d47577e0f0c818c7b0762b10156666ab281adb /drivers/soc | |
| parent | ed1a203f6f2c4a2fc4a2d9135cd9669aef23e428 (diff) | |
qcom: Update early random APIs to scmv8
The scm APIs need an update for v8. Update accordingly.
Change-Id: Ia848af5bafe2337718fffdd87cd6436eb0133ece
Signed-off-by: Laura Abbott <lauraa@codeaurora.org>
Diffstat (limited to 'drivers/soc')
| -rw-r--r-- | drivers/soc/qcom/early_random.c | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/drivers/soc/qcom/early_random.c b/drivers/soc/qcom/early_random.c index de38fc04676c..d1ab39b16c81 100644 --- a/drivers/soc/qcom/early_random.c +++ b/drivers/soc/qcom/early_random.c @@ -36,14 +36,24 @@ void __init init_random_pool(void) struct tz_prng_data data; int ret; u32 resp; + struct scm_desc desc; data.out_buf = (uint8_t *) virt_to_phys(random_buffer); - data.out_buf_sz = SZ_512; + desc.args[0] = (unsigned long) data.out_buf; + desc.args[1] = data.out_buf_sz = SZ_512; + desc.arginfo = SCM_ARGS(2, SCM_RW, SCM_VAL); + dmac_flush_range(random_buffer, random_buffer + RANDOM_BUFFER_SIZE); - ret = scm_call_noalloc(TZ_SVC_CRYPTO, PRNG_CMD_ID, &data, - sizeof(data), &resp, sizeof(resp), - common_scm_buf, SCM_BUFFER_SIZE(common_scm_buf)); + if (!is_scm_armv8()) + ret = scm_call_noalloc(TZ_SVC_CRYPTO, PRNG_CMD_ID, &data, + sizeof(data), &resp, sizeof(resp), + common_scm_buf, + SCM_BUFFER_SIZE(common_scm_buf)); + else + ret = scm_call2(SCM_SIP_FNID(TZ_SVC_CRYPTO, PRNG_CMD_ID), + &desc); + if (!ret) { dmac_inv_range(random_buffer, random_buffer + RANDOM_BUFFER_SIZE); |
