Message ID | 20230731-topic-8280_venus-v1-6-8c8bbe1983a5@linaro.org |
---|---|
State | New |
Headers | show |
Series | SM8350 and SC8280XP venus support | expand |
On 04/08/2023 22:17, Konrad Dybcio wrote: > On 4.08.2023 23:12, Bryan O'Donoghue wrote: >> On 04/08/2023 22:10, Konrad Dybcio wrote: >>>> Would it not be more legitimate and logical to have 8350 use 8280xp's frequency table, instead of 8250 ? >>> top freq is higher on 8280 >> >> Still though its a bit suspicious 8350 doesn't have its own table. >> >> Are we missing the downstream reference ? > 8250: > qcom,allowed-clock-rates = <239999999 338000000 366000000 444000000>; > > 8350: > qcom,allowed-clock-rates = <239999999 338000000 366000000 444000000>; > > (identical) > > Konrad Fair enough Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
On 04/08/2023 21:09, Konrad Dybcio wrote: > Add SC8280XP configuration data and related compatible. > > Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org> > --- > drivers/media/platform/qcom/venus/core.c | 45 ++++++++++++++++++++++++++++++++ > 1 file changed, 45 insertions(+) > > diff --git a/drivers/media/platform/qcom/venus/core.c b/drivers/media/platform/qcom/venus/core.c > index 5f285ae75e9d..32591b624a36 100644 > --- a/drivers/media/platform/qcom/venus/core.c > +++ b/drivers/media/platform/qcom/venus/core.c Reviewing this series, I think my input here has not been helpful or correct. 1. Declaring encoders/decoders in dts or yaml is wrong, accepted. 2. We can make a platform choice to hard-code that here in the platform declarations. 3. Remove the requirement from yaml for sc8280xp to declare decoder encoder 3. Profit. Existing dtb all, literally all do the same thing first block decoder, second block encoder. Rather than perform extensive surgery to venus to remediate the original yaml sin - hard-code decoder/encoder into platform code and deprecate the legacy over time. Yes that means fixing to block 0 as decoder and block 1 as encoder but that is the defacto situation we have now, we may as well make it dejure. --- bod
diff --git a/drivers/media/platform/qcom/venus/core.c b/drivers/media/platform/qcom/venus/core.c index 5f285ae75e9d..32591b624a36 100644 --- a/drivers/media/platform/qcom/venus/core.c +++ b/drivers/media/platform/qcom/venus/core.c @@ -940,6 +940,50 @@ static const struct venus_resources sc7280_res = { .fwname = "qcom/vpu-2.0/venus.mbn", }; +static const struct freq_tbl sc8280xp_freq_table[] = { + { 0, 239999999 }, + { 0, 338000000 }, + { 0, 366000000 }, + { 0, 444000000 }, + { 0, 533000000 }, + { 0, 560000000 }, +}; + +static const struct venus_resources sc8280xp_res = { + .freq_tbl = sc8280xp_freq_table, + .freq_tbl_size = ARRAY_SIZE(sc8280xp_freq_table), + .reg_tbl = sm8350_reg_preset, + .reg_tbl_size = ARRAY_SIZE(sm8350_reg_preset), + .bw_tbl_enc = sm8250_bw_table_enc, + .bw_tbl_enc_size = ARRAY_SIZE(sm8250_bw_table_enc), + .bw_tbl_dec = sm8250_bw_table_dec, + .bw_tbl_dec_size = ARRAY_SIZE(sm8250_bw_table_dec), + .clks = { "core", "iface" }, + .clks_num = 2, + .resets = { "core" }, + .resets_num = 1, + .vcodec0_clks = { "vcodec0_core" }, + .vcodec_clks_num = 1, + .vcodec_pmdomains = { "venus", "vcodec0" }, + .vcodec_pmdomains_num = 2, + .opp_pmdomain = (const char *[]) { "mx", NULL }, + .vcodec_num = 1, + .max_load = 7833600, /* 7680x4320@60fps */ + .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 = GENMASK(31, 29) - 1, + .cp_start = 0, + .cp_size = 0x25800000, + .cp_nonpixel_start = 0x1000000, + .cp_nonpixel_size = 0x24800000, + .fwname = "qcom/vpu-2.0/venus.mbn", +}; + + static const struct of_device_id venus_dt_match[] = { { .compatible = "qcom,msm8916-venus", .data = &msm8916_res }, { .compatible = "qcom,msm8996-venus", .data = &msm8996_res }, @@ -948,6 +992,7 @@ static const struct of_device_id venus_dt_match[] = { { .compatible = "qcom,sdm845-venus-v2", .data = &sdm845_res_v2 }, { .compatible = "qcom,sc7180-venus", .data = &sc7180_res }, { .compatible = "qcom,sc7280-venus", .data = &sc7280_res }, + { .compatible = "qcom,sc8280xp-venus", .data = &sc8280xp_res }, { .compatible = "qcom,sm8250-venus", .data = &sm8250_res }, { .compatible = "qcom,sm8350-venus", .data = &sm8350_res }, { }
Add SC8280XP configuration data and related compatible. Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org> --- drivers/media/platform/qcom/venus/core.c | 45 ++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+)