From bcce3fd9e60a47cb7063b6a5b66867e19a0d0316 Mon Sep 17 00:00:00 2001 From: Vikash Garodia Date: Tue, 7 Feb 2023 17:42:11 +0530 Subject: [PATCH] firmware: video: configure the secure and non secure region Program video registers about the secure and non secure regions. --- drivers/media/platform/qcom/venus/core.c | 8 ++++++++ drivers/media/platform/qcom/venus/firmware.c | 13 +++++++++++++ 2 files changed, 21 insertions(+) diff --git a/drivers/media/platform/qcom/venus/core.c b/drivers/media/platform/qcom/venus/core.c index 990a151..e0a49c9 100644 --- a/drivers/media/platform/qcom/venus/core.c +++ b/drivers/media/platform/qcom/venus/core.c @@ -762,6 +762,10 @@ static const struct venus_resources sc7180_res = { .vmem_size = 0, .vmem_addr = 0, .dma_mask = 0xe0000000 - 1, + .cp_start = 0, + .cp_size = 0x70800000, + .cp_nonpixel_start = 0x1000000, + .cp_nonpixel_size = 0x24800000, .fwname = "qcom/venus-5.4/venus.mdt", }; @@ -872,6 +876,10 @@ static const struct venus_resources sc7280_res = { .vmem_id = VIDC_RESOURCE_NONE, .vmem_size = 0, .vmem_addr = 0, + .cp_start = 0, + .cp_size = 0x25800000, + .cp_nonpixel_start = 0x1000000, + .cp_nonpixel_size = 0x24800000, .dma_mask = 0xe0000000 - 1, .fwname = "qcom/vpu-2.0/venus.mbn", }; diff --git a/drivers/media/platform/qcom/venus/firmware.c b/drivers/media/platform/qcom/venus/firmware.c index 142d4c7..5cc977c 100644 --- a/drivers/media/platform/qcom/venus/firmware.c +++ b/drivers/media/platform/qcom/venus/firmware.c @@ -210,6 +210,7 @@ int venus_boot(struct venus_core *core) struct device *dev = core->dev; const struct venus_resources *res = core->res; const char *fwpath = NULL; + void __iomem *wrapper_base; phys_addr_t mem_phys; size_t mem_size; int ret; @@ -253,6 +254,18 @@ int venus_boot(struct venus_core *core) } } + if (!core->use_tz && res->cp_size) { + if (IS_V6(core)) + wrapper_base = core->wrapper_tz_base; + else + wrapper_base = core->wrapper_base; + + writel(res->cp_start, wrapper_base + WRAPPER_CPA_START_ADDR); + writel(res->cp_start + res->cp_size, wrapper_base + WRAPPER_CPA_END_ADDR); + writel(res->cp_nonpixel_start, wrapper_base + WRAPPER_NONPIX_START_ADDR); + writel(res->cp_nonpixel_start + res->cp_nonpixel_size, wrapper_base + WRAPPER_NONPIX_END_ADDR); + } + return 0; } -- The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project