Message ID | 14bda891-5035-433c-888e-b3c330eeffaf@freebox.fr (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | Add support for qcom msm8998-venus (HW vdec / venc) | expand |
On 5/6/2024 7:17 PM, Marc Gonzalez wrote: > From: Pierre-Hugues Husson <phhusson@freebox.fr> > > Add the missing bits for msm8998 support. > > Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org> > Signed-off-by: Pierre-Hugues Husson <phhusson@freebox.fr> > Signed-off-by: Marc Gonzalez <mgonzalez@freebox.fr> > --- > drivers/media/platform/qcom/venus/core.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 48 insertions(+) > > diff --git a/drivers/media/platform/qcom/venus/core.c b/drivers/media/platform/qcom/venus/core.c > index ce206b7097541..064120127cb86 100644 > --- a/drivers/media/platform/qcom/venus/core.c > +++ b/drivers/media/platform/qcom/venus/core.c > @@ -554,6 +554,9 @@ static const struct venus_resources msm8916_res = { > .fwname = "qcom/venus-1.8/venus.mbn", > }; > > +/* > + * https://git.codelinaro.org/clo/la/kernel/msm-4.4/-/blame/caf_migration/kernel.lnx.4.4.r38-rel/arch/arm/boot/dts/qcom/msm8996-v3.dtsi#L403-414 > + */ There is no need to add the link to downstream code in comments. Please remove them. Regards, Vikash > static const struct freq_tbl msm8996_freq_table[] = { > { 1944000, 520000000 }, /* 4k UHD @ 60 (decode only) */ > { 972000, 520000000 }, /* 4k UHD @ 30 */ > @@ -587,6 +590,50 @@ static const struct venus_resources msm8996_res = { > .fwname = "qcom/venus-4.2/venus.mbn", > }; > > +/* > + * https://git.codelinaro.org/clo/la/kernel/msm-4.4/-/blob/caf_migration/kernel.lnx.4.4.r38-rel/arch/arm/boot/dts/qcom/msm8998-vidc.dtsi#L42-53 > + */ > +static const struct freq_tbl msm8998_freq_table[] = { > + { 1944000, 465000000 }, /* 4k UHD @ 60 (decode only) */ > + { 972000, 465000000 }, /* 4k UHD @ 30 */ > + { 489600, 360000000 }, /* 1080p @ 60 */ > + { 244800, 186000000 }, /* 1080p @ 30 */ > + { 108000, 100000000 }, /* 720p @ 30 */ > +}; > + > +/* > + * https://git.codelinaro.org/clo/la/kernel/msm-4.4/-/blob/caf_migration/kernel.lnx.4.4.r38-rel/arch/arm/boot/dts/qcom/msm8998-vidc.dtsi#L29-37 > + */ > +static const struct reg_val msm8998_reg_preset[] = { > + { 0x80124, 0x00000003 }, > + { 0x80550, 0x01111111 }, > + { 0x80560, 0x01111111 }, > + { 0x80568, 0x01111111 }, > + { 0x80570, 0x01111111 }, > + { 0x80580, 0x01111111 }, > + { 0x80588, 0x01111111 }, > + { 0xe2010, 0x00000000 }, > +}; > + > +static const struct venus_resources msm8998_res = { > + .freq_tbl = msm8998_freq_table, > + .freq_tbl_size = ARRAY_SIZE(msm8998_freq_table), > + .reg_tbl = msm8998_reg_preset, > + .reg_tbl_size = ARRAY_SIZE(msm8998_reg_preset), > + .clks = { "core", "iface", "bus", "mbus" }, > + .clks_num = 4, > + .vcodec0_clks = { "core" }, > + .vcodec1_clks = { "core" }, > + .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.4/venus.mbn", > +}; > + > static const struct freq_tbl sdm660_freq_table[] = { > { 979200, 518400000 }, > { 489600, 441600000 }, > @@ -893,6 +940,7 @@ static const struct venus_resources sc7280_res = { > static const struct of_device_id venus_dt_match[] = { > { .compatible = "qcom,msm8916-venus", .data = &msm8916_res, }, > { .compatible = "qcom,msm8996-venus", .data = &msm8996_res, }, > + { .compatible = "qcom,msm8998-venus", .data = &msm8998_res, }, > { .compatible = "qcom,sdm660-venus", .data = &sdm660_res, }, > { .compatible = "qcom,sdm845-venus", .data = &sdm845_res, }, > { .compatible = "qcom,sdm845-venus-v2", .data = &sdm845_res_v2, },
On 06/05/2024 16:43, Vikash Garodia wrote: > On 5/6/2024 7:17 PM, Marc Gonzalez wrote: > >> From: Pierre-Hugues Husson <phhusson@freebox.fr> >> >> Add the missing bits for msm8998 support. >> >> Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org> >> Signed-off-by: Pierre-Hugues Husson <phhusson@freebox.fr> >> Signed-off-by: Marc Gonzalez <mgonzalez@freebox.fr> >> --- >> drivers/media/platform/qcom/venus/core.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ >> 1 file changed, 48 insertions(+) >> >> diff --git a/drivers/media/platform/qcom/venus/core.c b/drivers/media/platform/qcom/venus/core.c >> index ce206b7097541..064120127cb86 100644 >> --- a/drivers/media/platform/qcom/venus/core.c >> +++ b/drivers/media/platform/qcom/venus/core.c >> @@ -554,6 +554,9 @@ static const struct venus_resources msm8916_res = { >> .fwname = "qcom/venus-1.8/venus.mbn", >> }; >> >> +/* >> + * https://git.codelinaro.org/clo/la/kernel/msm-4.4/-/blame/caf_migration/kernel.lnx.4.4.r38-rel/arch/arm/boot/dts/qcom/msm8996-v3.dtsi#L403-414 >> + */ > > There is no need to add the link to downstream code in comments. Please remove them. They are needed somewhere, to double check the values. Otherwise, it's just voodoo programming. If not in the code, then maybe in the commit message? Since qcom doesn't publish datasheets, downstream code is the best we've got. Regards
On 06/05/2024 15:51, Marc Gonzalez wrote: > On 06/05/2024 16:43, Vikash Garodia wrote: > >> On 5/6/2024 7:17 PM, Marc Gonzalez wrote: >> >>> From: Pierre-Hugues Husson <phhusson@freebox.fr> >>> >>> Add the missing bits for msm8998 support. >>> >>> Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org> >>> Signed-off-by: Pierre-Hugues Husson <phhusson@freebox.fr> >>> Signed-off-by: Marc Gonzalez <mgonzalez@freebox.fr> >>> --- >>> drivers/media/platform/qcom/venus/core.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ >>> 1 file changed, 48 insertions(+) >>> >>> diff --git a/drivers/media/platform/qcom/venus/core.c b/drivers/media/platform/qcom/venus/core.c >>> index ce206b7097541..064120127cb86 100644 >>> --- a/drivers/media/platform/qcom/venus/core.c >>> +++ b/drivers/media/platform/qcom/venus/core.c >>> @@ -554,6 +554,9 @@ static const struct venus_resources msm8916_res = { >>> .fwname = "qcom/venus-1.8/venus.mbn", >>> }; >>> >>> +/* >>> + * https://git.codelinaro.org/clo/la/kernel/msm-4.4/-/blame/caf_migration/kernel.lnx.4.4.r38-rel/arch/arm/boot/dts/qcom/msm8996-v3.dtsi#L403-414 >>> + */ >> >> There is no need to add the link to downstream code in comments. Please remove them. > > They are needed somewhere, to double check the values. > Otherwise, it's just voodoo programming. > > If not in the code, then maybe in the commit message? > > Since qcom doesn't publish datasheets, downstream code > is the best we've got. > > Regards > Commit message is a good idea. Do that. --- bod
On 5/6/2024 9:27 PM, Bryan O'Donoghue wrote: > On 06/05/2024 15:51, Marc Gonzalez wrote: >> On 06/05/2024 16:43, Vikash Garodia wrote: >> >>> On 5/6/2024 7:17 PM, Marc Gonzalez wrote: >>> >>>> From: Pierre-Hugues Husson <phhusson@freebox.fr> >>>> >>>> Add the missing bits for msm8998 support. >>>> >>>> Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org> >>>> Signed-off-by: Pierre-Hugues Husson <phhusson@freebox.fr> >>>> Signed-off-by: Marc Gonzalez <mgonzalez@freebox.fr> >>>> --- >>>> drivers/media/platform/qcom/venus/core.c | 48 >>>> ++++++++++++++++++++++++++++++++++++++++++++++++ >>>> 1 file changed, 48 insertions(+) >>>> >>>> diff --git a/drivers/media/platform/qcom/venus/core.c >>>> b/drivers/media/platform/qcom/venus/core.c >>>> index ce206b7097541..064120127cb86 100644 >>>> --- a/drivers/media/platform/qcom/venus/core.c >>>> +++ b/drivers/media/platform/qcom/venus/core.c >>>> @@ -554,6 +554,9 @@ static const struct venus_resources msm8916_res = { >>>> .fwname = "qcom/venus-1.8/venus.mbn", >>>> }; >>>> +/* >>>> + * >>>> https://git.codelinaro.org/clo/la/kernel/msm-4.4/-/blame/caf_migration/kernel.lnx.4.4.r38-rel/arch/arm/boot/dts/qcom/msm8996-v3.dtsi#L403-414 >>>> + */ >>> >>> There is no need to add the link to downstream code in comments. Please >>> remove them. >> >> They are needed somewhere, to double check the values. >> Otherwise, it's just voodoo programming. >> >> If not in the code, then maybe in the commit message? >> >> Since qcom doesn't publish datasheets, downstream code >> is the best we've got. >> >> Regards >> > > Commit message is a good idea. > > Do that. I am good with this, incase you are waiting for a confirmation from my end. Regards, Vikash
diff --git a/drivers/media/platform/qcom/venus/core.c b/drivers/media/platform/qcom/venus/core.c index ce206b7097541..064120127cb86 100644 --- a/drivers/media/platform/qcom/venus/core.c +++ b/drivers/media/platform/qcom/venus/core.c @@ -554,6 +554,9 @@ static const struct venus_resources msm8916_res = { .fwname = "qcom/venus-1.8/venus.mbn", }; +/* + * https://git.codelinaro.org/clo/la/kernel/msm-4.4/-/blame/caf_migration/kernel.lnx.4.4.r38-rel/arch/arm/boot/dts/qcom/msm8996-v3.dtsi#L403-414 + */ static const struct freq_tbl msm8996_freq_table[] = { { 1944000, 520000000 }, /* 4k UHD @ 60 (decode only) */ { 972000, 520000000 }, /* 4k UHD @ 30 */ @@ -587,6 +590,50 @@ static const struct venus_resources msm8996_res = { .fwname = "qcom/venus-4.2/venus.mbn", }; +/* + * https://git.codelinaro.org/clo/la/kernel/msm-4.4/-/blob/caf_migration/kernel.lnx.4.4.r38-rel/arch/arm/boot/dts/qcom/msm8998-vidc.dtsi#L42-53 + */ +static const struct freq_tbl msm8998_freq_table[] = { + { 1944000, 465000000 }, /* 4k UHD @ 60 (decode only) */ + { 972000, 465000000 }, /* 4k UHD @ 30 */ + { 489600, 360000000 }, /* 1080p @ 60 */ + { 244800, 186000000 }, /* 1080p @ 30 */ + { 108000, 100000000 }, /* 720p @ 30 */ +}; + +/* + * https://git.codelinaro.org/clo/la/kernel/msm-4.4/-/blob/caf_migration/kernel.lnx.4.4.r38-rel/arch/arm/boot/dts/qcom/msm8998-vidc.dtsi#L29-37 + */ +static const struct reg_val msm8998_reg_preset[] = { + { 0x80124, 0x00000003 }, + { 0x80550, 0x01111111 }, + { 0x80560, 0x01111111 }, + { 0x80568, 0x01111111 }, + { 0x80570, 0x01111111 }, + { 0x80580, 0x01111111 }, + { 0x80588, 0x01111111 }, + { 0xe2010, 0x00000000 }, +}; + +static const struct venus_resources msm8998_res = { + .freq_tbl = msm8998_freq_table, + .freq_tbl_size = ARRAY_SIZE(msm8998_freq_table), + .reg_tbl = msm8998_reg_preset, + .reg_tbl_size = ARRAY_SIZE(msm8998_reg_preset), + .clks = { "core", "iface", "bus", "mbus" }, + .clks_num = 4, + .vcodec0_clks = { "core" }, + .vcodec1_clks = { "core" }, + .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.4/venus.mbn", +}; + static const struct freq_tbl sdm660_freq_table[] = { { 979200, 518400000 }, { 489600, 441600000 }, @@ -893,6 +940,7 @@ static const struct venus_resources sc7280_res = { static const struct of_device_id venus_dt_match[] = { { .compatible = "qcom,msm8916-venus", .data = &msm8916_res, }, { .compatible = "qcom,msm8996-venus", .data = &msm8996_res, }, + { .compatible = "qcom,msm8998-venus", .data = &msm8998_res, }, { .compatible = "qcom,sdm660-venus", .data = &sdm660_res, }, { .compatible = "qcom,sdm845-venus", .data = &sdm845_res, }, { .compatible = "qcom,sdm845-venus-v2", .data = &sdm845_res_v2, },