Message ID | 20230228-topic-venus-v1-7-58c2c88384e9@linaro.org |
---|---|
State | New |
Headers | show |
Series | Venus QoL / maintainability fixes | expand |
On 2/28/2023 8:54 PM, Konrad Dybcio wrote: > IRIS2(_1) has a different register map compared to other HFI6XX- > using VPUs. Take care of it. > > Signed-off-by: Konrad Dybcio<konrad.dybcio@linaro.org> > --- > drivers/media/platform/qcom/venus/core.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/media/platform/qcom/venus/core.c b/drivers/media/platform/qcom/venus/core.c > index c13436d58ed3..bdc14acc8399 100644 > --- a/drivers/media/platform/qcom/venus/core.c > +++ b/drivers/media/platform/qcom/venus/core.c > @@ -246,7 +246,7 @@ static int venus_enumerate_codecs(struct venus_core *core, u32 type) > > static void venus_assign_register_offsets(struct venus_core *core) > { > - if (IS_V6(core)) { > + if (IS_IRIS2(core) || IS_IRIS2_1(core)) { > core->vbif_base = core->base + VBIF_BASE; > core->cpu_base = core->base + CPU_BASE_V6; > core->cpu_cs_base = core->base + CPU_CS_BASE_V6; AR50_LITE also should be added here, as I see you have added the same to places where we are using V6 based registers. if the base addresses are not assigned here properly. the register writing at other places will be wrong, ex: patch 05/18 Thanks, Dikshita
On 7.03.2023 05:57, Dikshita Agarwal wrote: > > On 2/28/2023 8:54 PM, Konrad Dybcio wrote: >> IRIS2(_1) has a different register map compared to other HFI6XX- >> using VPUs. Take care of it. >> >> Signed-off-by: Konrad Dybcio<konrad.dybcio@linaro.org> >> --- >> drivers/media/platform/qcom/venus/core.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/drivers/media/platform/qcom/venus/core.c b/drivers/media/platform/qcom/venus/core.c >> index c13436d58ed3..bdc14acc8399 100644 >> --- a/drivers/media/platform/qcom/venus/core.c >> +++ b/drivers/media/platform/qcom/venus/core.c >> @@ -246,7 +246,7 @@ static int venus_enumerate_codecs(struct venus_core *core, u32 type) >> static void venus_assign_register_offsets(struct venus_core *core) >> { >> - if (IS_V6(core)) { >> + if (IS_IRIS2(core) || IS_IRIS2_1(core)) { >> core->vbif_base = core->base + VBIF_BASE; >> core->cpu_base = core->base + CPU_BASE_V6; >> core->cpu_cs_base = core->base + CPU_CS_BASE_V6; > > AR50_LITE also should be added here, as I see you have added the same to places where we are using V6 based registers. > > if the base addresses are not assigned here properly. the register writing at other places will be wrong, ex: patch 05/18 I have a separate patch set which specifically adds AR50L data, and they're not 1:1, vbif_base and aon_base are gone (at least according to techpack/video). I intend to push it when I get it all working, but here's what it looks like right now: diff --git a/drivers/media/platform/qcom/venus/core.c b/drivers/media/platform/qcom/venus/core.c index fd9ecb1f7a05..f88b4781c5d0 100644 --- a/drivers/media/platform/qcom/venus/core.c +++ b/drivers/media/platform/qcom/venus/core.c @@ -254,6 +254,14 @@ static void venus_assign_register_offsets(struct venus_core *core) core->wrapper_base = core->base + WRAPPER_BASE_V6; core->wrapper_tz_base = core->base + WRAPPER_TZ_BASE_V6; core->aon_base = core->base + AON_BASE_V6; + } else if (IS_AR50_LITE(core)) { + core->vbif_base = NULL; + core->cpu_base = core->base + CPU_BASE_V6; + core->cpu_cs_base = core->base + CPU_CS_BASE_V6; + core->cpu_ic_base = core->base + CPU_IC_BASE_V6; + core->wrapper_base = core->base + WRAPPER_BASE_V6; + core->wrapper_tz_base = core->base + WRAPPER_TZ_BASE_V6; + core->aon_base = NULL; } else { core->vbif_base = core->base + VBIF_BASE; core->cpu_base = core->base + CPU_BASE;
diff --git a/drivers/media/platform/qcom/venus/core.c b/drivers/media/platform/qcom/venus/core.c index c13436d58ed3..bdc14acc8399 100644 --- a/drivers/media/platform/qcom/venus/core.c +++ b/drivers/media/platform/qcom/venus/core.c @@ -246,7 +246,7 @@ static int venus_enumerate_codecs(struct venus_core *core, u32 type) static void venus_assign_register_offsets(struct venus_core *core) { - if (IS_V6(core)) { + if (IS_IRIS2(core) || IS_IRIS2_1(core)) { core->vbif_base = core->base + VBIF_BASE; core->cpu_base = core->base + CPU_BASE_V6; core->cpu_cs_base = core->base + CPU_CS_BASE_V6;
IRIS2(_1) has a different register map compared to other HFI6XX- using VPUs. Take care of it. Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org> --- drivers/media/platform/qcom/venus/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)