On 5/4/2023 1:31 PM, Konrad Dybcio wrote:
Leave a clue about where the seemingly magic values come from, as it
is not obvious and requires some digging downstream..
Reviewed-by: Dikshita Agarwal <quic_dikshita@xxxxxxxxxxx>
Signed-off-by: Konrad Dybcio <konrad.dybcio@xxxxxxxxxx>
Reviewed-by: Vikash Garodia <quic_vgarodia@xxxxxxxxxxx>
---
drivers/media/platform/qcom/venus/firmware.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/drivers/media/platform/qcom/venus/firmware.c b/drivers/media/platform/qcom/venus/firmware.c
index cfb11c551167..a4cd919e1dbe 100644
--- a/drivers/media/platform/qcom/venus/firmware.c
+++ b/drivers/media/platform/qcom/venus/firmware.c
@@ -241,6 +241,13 @@ int venus_boot(struct venus_core *core)
return ret;
if (core->use_tz && res->cp_size) {
+ /*
+ * Clues for porting using downstream data:
+ * cp_start = 0
+ * cp_size = venus_ns/virtual-addr-pool[0] (yes, addr not size)
The field is the start address of ns context bank. Since the cp_start is
0, the start address for (next) non-secure context bank
is interpreted as size of the (previous) content protection region.
+ * cp_nonpixel_start = venus_sec_non_pixel/virtual-addr-pool[0]
+ * cp_nonpixel_size = venus_sec_non_pixel/virtual-addr-pool[1]
+ */
ret = qcom_scm_mem_protect_video_var(res->cp_start,
res->cp_size,
res->cp_nonpixel_start,