On 3/27/2024 11:38 PM, Konrad Dybcio wrote: > Currently VMEM/OCMEM/LLCC is disabled on all platforms. > > Make it unconditional to save on space. > > These caches will not be enabled until the Venus driver can reference > them as chunks of SRAM (they're modelled as separate devices) to avoid > hardcoding magic addresses and rougely accessing the hardware, > bypassing the normal accessors. > > Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@xxxxxxxxxx> > Signed-off-by: Konrad Dybcio <konrad.dybcio@xxxxxxxxxx> > --- > drivers/media/platform/qcom/venus/core.c | 24 ------------------------ > drivers/media/platform/qcom/venus/core.h | 3 --- > drivers/media/platform/qcom/venus/hfi_venus.c | 10 ++++------ > 3 files changed, 4 insertions(+), 33 deletions(-) > > diff --git a/drivers/media/platform/qcom/venus/core.c b/drivers/media/platform/qcom/venus/core.c > index 26a0c264685a..51ac9eff244c 100644 > --- a/drivers/media/platform/qcom/venus/core.c > +++ b/drivers/media/platform/qcom/venus/core.c > @@ -562,9 +562,6 @@ static const struct venus_resources msm8916_res = { > .clks_num = 3, > .max_load = 352800, /* 720p@30 + 1080p@30 */ > .hfi_version = HFI_VERSION_1XX, > - .vmem_id = VIDC_RESOURCE_NONE, > - .vmem_size = 0, > - .vmem_addr = 0, > .dma_mask = 0xddc00000 - 1, > .fwname = "qcom/venus-1.8/venus.mbn", > }; > @@ -595,9 +592,6 @@ static const struct venus_resources msm8996_res = { > .vcodec_clks_num = 1, > .max_load = 2563200, > .hfi_version = HFI_VERSION_3XX, > - .vmem_id = VIDC_RESOURCE_NONE, > - .vmem_size = 0, > - .vmem_addr = 0, > .dma_mask = 0xddc00000 - 1, > .fwname = "qcom/venus-4.2/venus.mbn", > }; > @@ -653,9 +647,6 @@ static const struct venus_resources sdm660_res = { > .vcodec_clks_num = 1, > .max_load = 1036800, > .hfi_version = HFI_VERSION_3XX, > - .vmem_id = VIDC_RESOURCE_NONE, > - .vmem_size = 0, > - .vmem_addr = 0, > .cp_start = 0, > .cp_size = 0x79000000, > .cp_nonpixel_start = 0x1000000, > @@ -702,9 +693,6 @@ static const struct venus_resources sdm845_res = { > .max_load = 3110400, /* 4096x2160@90 */ > .hfi_version = HFI_VERSION_4XX, > .vpu_version = VPU_VERSION_AR50, > - .vmem_id = VIDC_RESOURCE_NONE, > - .vmem_size = 0, > - .vmem_addr = 0, > .dma_mask = 0xe0000000 - 1, > .fwname = "qcom/venus-5.2/venus.mbn", > }; > @@ -727,9 +715,6 @@ static const struct venus_resources sdm845_res_v2 = { > .max_load = 3110400, /* 4096x2160@90 */ > .hfi_version = HFI_VERSION_4XX, > .vpu_version = VPU_VERSION_AR50, > - .vmem_id = VIDC_RESOURCE_NONE, > - .vmem_size = 0, > - .vmem_addr = 0, > .dma_mask = 0xe0000000 - 1, > .cp_start = 0, > .cp_size = 0x70800000, > @@ -774,9 +759,6 @@ static const struct venus_resources sc7180_res = { > .opp_pmdomain = pd_names_cx, > .hfi_version = HFI_VERSION_4XX, > .vpu_version = VPU_VERSION_AR50, > - .vmem_id = VIDC_RESOURCE_NONE, > - .vmem_size = 0, > - .vmem_addr = 0, > .dma_mask = 0xe0000000 - 1, > .cp_start = 0, > .cp_size = 0x70800000, > @@ -832,9 +814,6 @@ static const struct venus_resources sm8250_res = { > .hfi_version = HFI_VERSION_6XX, > .vpu_version = VPU_VERSION_IRIS2, > .num_vpp_pipes = 4, > - .vmem_id = VIDC_RESOURCE_NONE, > - .vmem_size = 0, > - .vmem_addr = 0, > .dma_mask = 0xe0000000 - 1, > .fwname = "qcom/vpu-1.0/venus.mbn", > }; > @@ -889,9 +868,6 @@ static const struct venus_resources sc7280_res = { > .hfi_version = HFI_VERSION_6XX, > .vpu_version = VPU_VERSION_IRIS2_1, > .num_vpp_pipes = 1, > - .vmem_id = VIDC_RESOURCE_NONE, > - .vmem_size = 0, > - .vmem_addr = 0, > .dma_mask = 0xe0000000 - 1, > .cp_start = 0, > .cp_size = 0x25800000, > diff --git a/drivers/media/platform/qcom/venus/core.h b/drivers/media/platform/qcom/venus/core.h > index 376de1161114..e083ebb3ab4b 100644 > --- a/drivers/media/platform/qcom/venus/core.h > +++ b/drivers/media/platform/qcom/venus/core.h > @@ -80,9 +80,6 @@ struct venus_resources { > enum vpu_version vpu_version; > u8 num_vpp_pipes; > u32 max_load; > - unsigned int vmem_id; > - u32 vmem_size; > - u32 vmem_addr; > u32 cp_start; > u32 cp_size; > u32 cp_nonpixel_start; > diff --git a/drivers/media/platform/qcom/venus/hfi_venus.c b/drivers/media/platform/qcom/venus/hfi_venus.c > index f9437b6412b9..42ff96f71235 100644 > --- a/drivers/media/platform/qcom/venus/hfi_venus.c > +++ b/drivers/media/platform/qcom/venus/hfi_venus.c > @@ -1067,17 +1067,14 @@ static void venus_process_msg_sys_error(struct venus_hfi_device *hdev, > static irqreturn_t venus_isr_thread(struct venus_core *core) > { > struct venus_hfi_device *hdev = to_hfi_priv(core); > - const struct venus_resources *res; > void *pkt; > u32 msg_ret; > > if (!hdev) > return IRQ_NONE; > > - res = hdev->core->res; > pkt = hdev->pkt_buf; > > - > while (!venus_iface_msgq_read(hdev, pkt)) { > msg_ret = hfi_process_msg_packet(core, pkt); > switch (msg_ret) { > @@ -1085,9 +1082,10 @@ static irqreturn_t venus_isr_thread(struct venus_core *core) > venus_process_msg_sys_error(hdev, pkt); > break; > case HFI_MSG_SYS_INIT: > - venus_hfi_core_set_resource(core, res->vmem_id, > - res->vmem_size, > - res->vmem_addr, > + /* Disable OCMEM/VMEM unconditionally until support is added */ > + venus_hfi_core_set_resource(core, VIDC_RESOURCE_NONE, > + 0, > + 0, > hdev); > break; > case HFI_MSG_SYS_RELEASE_RESOURCE: > If no issues reported by firmware on any SOC, then Reviewed-by: Dikshita Agarwal <quic_dikshita@xxxxxxxxxxx>