All of lore.kernel.org
 help / color / mirror / Atom feed
From: Hans Verkuil <hverkuil@xs4all.nl>
To: AngeloGioacchino Del Regno 
	<angelogioacchino.delregno@somainline.org>,
	Stanimir Varbanov <stanimir.varbanov@linaro.org>
Cc: agross@kernel.org, bjorn.andersson@linaro.org,
	mchehab@kernel.org, robh+dt@kernel.org,
	devicetree@vger.kernel.org, linux-arm-msm@vger.kernel.org,
	linux-media@vger.kernel.org, linux-kernel@vger.kernel.org,
	konrad.dybcio@somainline.org, marijn.suijten@somainline.org,
	phone-devel@vger.kernel.org
Subject: Re: [PATCH 1/2] media: venus: core: Add sdm660 DT compatible and resource struct
Date: Mon, 25 Jan 2021 11:40:47 +0100	[thread overview]
Message-ID: <cfc1998f-8d9b-5237-f286-7fdc69874b30@xs4all.nl> (raw)
In-Reply-To: <eabc91cc-de96-08ef-756c-87fe43d6fadc@somainline.org>

On 18/01/2021 18:45, AngeloGioacchino Del Regno wrote:
> Il 18/01/21 18:21, Stanimir Varbanov ha scritto:
>> Hi Angelo,
>>
>> Thanks for the patch!
>>
>> On 1/15/21 8:52 PM, AngeloGioacchino Del Regno wrote:
>>> Add the SDM660 DT compatible and its resource structure, also
>>> including support for the Venus pmdomains, in order to support
>>> the Venus block in SDM630, SDM636, SDM660 and SDA variants.
>>>
>>> This SoC features Venus 4.4 (HFI3XX), with one vcodec used for
>>> both encoding and decoding, switched on through two GDSCs.
>>> The core clock for this Venus chip is powered by the RPM VDD_CX
>>> power domain.
>>>
>>> Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@somainline.org>
>>> ---
>>>   drivers/media/platform/qcom/venus/core.c | 66 ++++++++++++++++++++++++
>>>   1 file changed, 66 insertions(+)
>>>
>>> diff --git a/drivers/media/platform/qcom/venus/core.c b/drivers/media/platform/qcom/venus/core.c
>>> index bdd293faaad0..83ca86a63241 100644
>>> --- a/drivers/media/platform/qcom/venus/core.c
>>> +++ b/drivers/media/platform/qcom/venus/core.c
>>> @@ -565,6 +565,71 @@ static const struct venus_resources sdm845_res_v2 = {
>>>   	.fwname = "qcom/venus-5.2/venus.mdt",
>>>   };
>>>   
>>> +static const struct freq_tbl sdm660_freq_table[] = {
>>> +	{ 0, 518400000 },
>>> +	{ 0, 441600000 },
>>> +	{ 0, 404000000 },
>>> +	{ 0, 320000000 },
>>> +	{ 0, 269330000 },
>>> +	{ 0, 133330000 },
>>> +};
>>> +
>>> +static const struct reg_val sdm660_reg_preset[] = {
>>> +	{ 0x80010, 0x001f001f },
>>> +	{ 0x80018, 0x00000156 },
>>> +	{ 0x8001C, 0x00000156 },
>>> +};
>>> +
>>> +static const struct bw_tbl sdm660_bw_table_enc[] = {
>>> +	{  979200,  1044000, 0, 2446336, 0 },	/* 4k UHD @ 30 */
>>> +	{  864000,   887000, 0, 2108416, 0 },	/* 720p @ 240 */
>>> +	{  489600,   666000, 0, 1207296, 0 },	/* 1080p @ 60 */
>>> +	{  432000,   578000, 0, 1058816, 0 },	/* 720p @ 120 */
>>> +	{  244800,   346000, 0,  616448, 0 },	/* 1080p @ 30 */
>>> +	{  216000,   293000, 0,  534528, 0 },	/* 720p @ 60 */
>>> +	{  108000,   151000, 0,  271360, 0 },	/* 720p @ 30 */
>>> +};
>>> +
>>> +static const struct bw_tbl sdm660_bw_table_dec[] = {
>>> +	{  979200,  2365000, 0, 1892000, 0 },	/* 4k UHD @ 30 */
>>> +	{  864000,  1978000, 0, 1554000, 0 },	/* 720p @ 240 */
>>> +	{  489600,  1133000, 0,  895000, 0 },	/* 1080p @ 60 */
>>> +	{  432000,   994000, 0,  781000, 0 },	/* 720p @ 120 */
>>> +	{  244800,   580000, 0,  460000, 0 },	/* 1080p @ 30 */
>>> +	{  216000,   501000, 0,  301000, 0 },	/* 720p @ 60 */
>>> +	{  108000,   255000, 0,  202000, 0 },	/* 720p @ 30 */
>>> +};
>>> +
>>> +static const struct venus_resources sdm660_res = {
>>> +	.freq_tbl = sdm660_freq_table,
>>> +	.freq_tbl_size = ARRAY_SIZE(sdm660_freq_table),
>>> +	.reg_tbl = sdm660_reg_preset,
>>> +	.reg_tbl_size = ARRAY_SIZE(sdm660_reg_preset),
>>> +	.bw_tbl_enc = sdm660_bw_table_enc,
>>> +	.bw_tbl_enc_size = ARRAY_SIZE(sdm660_bw_table_enc),
>>> +	.bw_tbl_dec = sdm660_bw_table_dec,
>>> +	.bw_tbl_dec_size = ARRAY_SIZE(sdm660_bw_table_dec),
>>> +	.clks = {"core", "iface", "bus_throttle", "bus" },
>>> +	.clks_num = 4,
>>> +	.vcodec0_clks = { "vcodec0_core" },
>>> +	.vcodec_clks_num = 1,
>>> +	.vcodec_pmdomains = { "venus", "vcodec0" },
>>> +	.vcodec_pmdomains_num = 2,
>>> +	.opp_pmdomain = (const char *[]) { "cx", NULL },
>>> +	.vcodec_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,
>>> +	.cp_nonpixel_size = 0x28000000,
>>> +	.dma_mask = 0xd9000000 - 1,
>>> +	.fwname = "qcom/venus-4.4/venus.mdt",
>>
>> Did you try venus-4.2 firmware from linux-firmware tree [1] ?
>>
> 
> No I haven't.. and I can't... my Sony devices (but I think that this is
> a practice of all OEMs/ODMs) are using a Sony signed venus firmware, so
> I am totally limited to use the firmware that comes with the device.
> 
> Besides that, the version is still different so, even if I had any
> possibility to try that, I don't think that it would work anyway...

I'm a bit confused. "qcom/venus-4.4/venus.mdt" is the Sony signed FW?

This patch can't be merged unless there is a corresponding firmware available
in linux-firmware. Is the current 4.2 firmware in linux-firmware signed by
Qualcomm? Can they provided 4.4 firmware as well?

I have no idea how this works for the venus driver, but I hope Stanimir does.

Regards,

	Hans

> 
>>> +};
>>> +
>>>   static const struct freq_tbl sc7180_freq_table[] = {
>>>   	{  0, 500000000 },
>>>   	{  0, 434000000 },
>>> @@ -613,6 +678,7 @@ static const struct venus_resources sc7180_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,sdm660-venus", .data = &sdm660_res, },
>>>   	{ .compatible = "qcom,sdm845-venus", .data = &sdm845_res, },
>>>   	{ .compatible = "qcom,sdm845-venus-v2", .data = &sdm845_res_v2, },
>>>   	{ .compatible = "qcom,sc7180-venus", .data = &sc7180_res, },
>>>
>>
>> Reviewed-by: Stanimir Varbanov <stanimir.varbanov@linaro.org>
>>
> 
> Thank you!
> - Angelo
> 


  reply	other threads:[~2021-01-25 10:54 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-01-15 18:52 [PATCH 0/2] SDM630/660 Venus hardware video decoder/encoder AngeloGioacchino Del Regno
2021-01-15 18:52 ` [PATCH 1/2] media: venus: core: Add sdm660 DT compatible and resource struct AngeloGioacchino Del Regno
2021-01-18 17:21   ` Stanimir Varbanov
2021-01-18 17:45     ` AngeloGioacchino Del Regno
2021-01-25 10:40       ` Hans Verkuil [this message]
2021-01-25 14:51         ` AngeloGioacchino Del Regno
2021-01-25 15:01           ` Hans Verkuil
2021-01-26  8:44             ` Stanimir Varbanov
2021-01-25 15:18           ` Bjorn Andersson
2021-01-15 18:52 ` [PATCH 2/2] media: dt-bindings: media: venus: Add sdm660 DT schema AngeloGioacchino Del Regno
2021-01-17 15:45   ` Rob Herring
2021-01-17 19:23     ` AngeloGioacchino Del Regno
2021-01-18 17:21       ` Stanimir Varbanov
2021-01-18 17:48         ` AngeloGioacchino Del Regno
2021-01-19 23:17   ` Rob Herring
2021-01-19 23:19     ` AngeloGioacchino Del Regno

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=cfc1998f-8d9b-5237-f286-7fdc69874b30@xs4all.nl \
    --to=hverkuil@xs4all.nl \
    --cc=agross@kernel.org \
    --cc=angelogioacchino.delregno@somainline.org \
    --cc=bjorn.andersson@linaro.org \
    --cc=devicetree@vger.kernel.org \
    --cc=konrad.dybcio@somainline.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=marijn.suijten@somainline.org \
    --cc=mchehab@kernel.org \
    --cc=phone-devel@vger.kernel.org \
    --cc=robh+dt@kernel.org \
    --cc=stanimir.varbanov@linaro.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.