msm: eva: Switch to qcom_scm_assign_mem() from hyp_assign_phys()
Switch to upstream friendly qcom_scm_assign_mem from hyp_assign_phys. Change-Id: I2b6f1af346166794c87a205cffddbcdfb112e16a Signed-off-by: Jingyu Su <quic_jingyus@quicinc.com>
This commit is contained in:
@@ -6,6 +6,7 @@
|
||||
#include <linux/rpmsg.h>
|
||||
#include <linux/of_platform.h>
|
||||
#include <linux/of_fdt.h>
|
||||
#include <linux/qcom_scm.h>
|
||||
#include <soc/qcom/secure_buffer.h>
|
||||
#include "msm_cvp_core.h"
|
||||
#include "msm_cvp.h"
|
||||
@@ -14,11 +15,6 @@
|
||||
|
||||
static atomic_t nr_maps;
|
||||
struct cvp_dsp_apps gfa_cv;
|
||||
static int hlosVM[HLOS_VM_NUM] = {VMID_HLOS};
|
||||
static int dspVM[DSP_VM_NUM] = {VMID_HLOS, VMID_CDSP_Q6};
|
||||
static int dspVMperm[DSP_VM_NUM] = { PERM_READ | PERM_WRITE | PERM_EXEC,
|
||||
PERM_READ | PERM_WRITE | PERM_EXEC };
|
||||
static int hlosVMperm[HLOS_VM_NUM] = { PERM_READ | PERM_WRITE | PERM_EXEC };
|
||||
|
||||
static int cvp_reinit_dsp(void);
|
||||
|
||||
@@ -141,9 +137,14 @@ static int cvp_hyp_assign_to_dsp(uint64_t addr, uint32_t size)
|
||||
int rc = 0;
|
||||
struct cvp_dsp_apps *me = &gfa_cv;
|
||||
|
||||
uint64_t hlosVMid = BIT(VMID_HLOS);
|
||||
struct qcom_scm_vmperm dspVM[DSP_VM_NUM] = {
|
||||
{VMID_HLOS, PERM_READ | PERM_WRITE | PERM_EXEC},
|
||||
{VMID_CDSP_Q6, PERM_READ | PERM_WRITE | PERM_EXEC}
|
||||
};
|
||||
|
||||
if (!me->hyp_assigned) {
|
||||
rc = hyp_assign_phys(addr, size, hlosVM, HLOS_VM_NUM, dspVM,
|
||||
dspVMperm, DSP_VM_NUM);
|
||||
rc = qcom_scm_assign_mem(addr, size, &hlosVMid, dspVM, DSP_VM_NUM);
|
||||
if (rc) {
|
||||
dprintk(CVP_ERR, "%s failed. rc=%d\n", __func__, rc);
|
||||
return rc;
|
||||
@@ -161,9 +162,13 @@ static int cvp_hyp_assign_from_dsp(void)
|
||||
int rc = 0;
|
||||
struct cvp_dsp_apps *me = &gfa_cv;
|
||||
|
||||
uint64_t dspVMids = BIT(VMID_HLOS) | BIT(VMID_CDSP_Q6);
|
||||
struct qcom_scm_vmperm hlosVM[HLOS_VM_NUM] = {
|
||||
{VMID_HLOS, PERM_READ | PERM_WRITE | PERM_EXEC},
|
||||
};
|
||||
|
||||
if (me->hyp_assigned) {
|
||||
rc = hyp_assign_phys(me->addr, me->size, dspVM, DSP_VM_NUM,
|
||||
hlosVM, hlosVMperm, HLOS_VM_NUM);
|
||||
rc = qcom_scm_assign_mem(me->addr, me->size, &dspVMids, hlosVM, HLOS_VM_NUM);
|
||||
if (rc) {
|
||||
dprintk(CVP_ERR, "%s failed. rc=%d\n", __func__, rc);
|
||||
return rc;
|
||||
@@ -568,6 +573,8 @@ static void cvp_remove_dsp_sessions(void)
|
||||
|
||||
while ((frpc_node = pop_frpc_node())) {
|
||||
s = &frpc_node->dsp_sessions.list;
|
||||
if (!s)
|
||||
return;
|
||||
list_for_each_safe(s, next_s,
|
||||
&frpc_node->dsp_sessions.list) {
|
||||
if (!s || !next_s)
|
||||
|
Reference in New Issue
Block a user