On 9/8/22 6:53 PM, Srinivasa Rao Mandadapu wrote:
Add flag in qcom_adsp private data structure and initialize
it to distinguish ADSP and WPSS modules for using iommu selectively.
There are other flags available to distinguish between ADSP and WPSS
like 'is_wpss'. So you probably want to tweak your commit message to
just say if it has a iommu in front of it or not and skip referencing
WPSS.
Reviewed-by: Sibi Sankar <quic_sibis@xxxxxxxxxxx>
Signed-off-by: Srinivasa Rao Mandadapu <quic_srivasam@xxxxxxxxxxx>
Reviewed-by: Stephen Boyd <swboyd@xxxxxxxxxxxx>
---
Changes since V5:
-- Rename adsp_sandbox_needed to has_iommu.
Changes since V3:
-- Rename is_adsp_sb_needed to adsp_sandbox_needed.
Changes since V2:
-- Add is_adsp_sb_needed flag instead of is_wpss.
drivers/remoteproc/qcom_q6v5_adsp.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/drivers/remoteproc/qcom_q6v5_adsp.c b/drivers/remoteproc/qcom_q6v5_adsp.c
index 2f3b9f5..fa2ccac 100644
--- a/drivers/remoteproc/qcom_q6v5_adsp.c
+++ b/drivers/remoteproc/qcom_q6v5_adsp.c
@@ -62,6 +62,7 @@ struct adsp_pil_data {
const char *sysmon_name;
int ssctl_id;
bool is_wpss;
+ bool has_iommu;
bool auto_boot;
const char **clk_ids;
@@ -99,6 +100,7 @@ struct qcom_adsp {
phys_addr_t mem_reloc;
void *mem_region;
size_t mem_size;
+ bool has_iommu;
struct device *proxy_pds[QCOM_Q6V5_RPROC_PROXY_PD_MAX];
size_t proxy_pd_count;
@@ -596,12 +598,15 @@ static int adsp_probe(struct platform_device *pdev)
}
rproc->auto_boot = desc->auto_boot;
+ rproc->has_iommu = desc->has_iommu;
rproc_coredump_set_elf_info(rproc, ELFCLASS32, EM_NONE);
adsp = (struct qcom_adsp *)rproc->priv;
adsp->dev = &pdev->dev;
adsp->rproc = rproc;
adsp->info_name = desc->sysmon_name;
+ adsp->has_iommu = desc->has_iommu;
+
platform_set_drvdata(pdev, adsp);
if (desc->is_wpss)