[6/6] media: venus: core: Add SC8280XP resource struct
Commit Message
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(+)
Comments
On 04/08/2023 21:09, Konrad Dybcio wrote:
> + .freq_tbl = sc8280xp_freq_table,
> + .freq_tbl_size = ARRAY_SIZE(sc8280xp_freq_table),
Would it not be more legitimate and logical to have 8350 use 8280xp's
frequency table, instead of 8250 ?
---
bod
On 4.08.2023 23:10, Bryan O'Donoghue wrote:
> On 04/08/2023 21:09, Konrad Dybcio wrote:
>> + .freq_tbl = sc8280xp_freq_table,
>> + .freq_tbl_size = ARRAY_SIZE(sc8280xp_freq_table),
>
> 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
Konrad
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 ?
---
bod
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
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
@@ -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 },
{ }