From: Neil Armstrong <neil.armstrong@linaro.org>
To: Dikshita Agarwal <quic_dikshita@quicinc.com>,
Vikash Garodia <quic_vgarodia@quicinc.com>,
Abhinav Kumar <quic_abhinavk@quicinc.com>,
Mauro Carvalho Chehab <mchehab@kernel.org>,
Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Philipp Zabel <p.zabel@pengutronix.de>,
Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v6 7/7] media: platform: qcom/iris: add sm8650 support
Date: Thu, 17 Apr 2025 10:50:47 +0200 [thread overview]
Message-ID: <68313fff-89d6-4a17-9006-75db971554c0@linaro.org> (raw)
In-Reply-To: <085acdab-87b0-3a94-72fd-881d517d95cb@quicinc.com>
On 16/04/2025 12:25, Dikshita Agarwal wrote:
>
>
> On 4/15/2025 7:17 PM, Neil Armstrong wrote:
>> Add support for the SM8650 platform by re-using the SM8550
>> definitions and using the vpu33 ops.
>>
>> Move the reset tables that diffes in a per-SoC platform
>> header, that will contain mode SoC specific data when
>> more codecs are introduced.
>>
>> The SM8650/vpu33 requires more reset lines, but the H.264
>> decoder capabilities are identical.
>>
>> Tested-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org> # x1e Dell
>> Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
>> ---
>> .../platform/qcom/iris/iris_platform_common.h | 1 +
>> .../media/platform/qcom/iris/iris_platform_gen2.c | 65 +++++++++++++++++++++-
>> .../platform/qcom/iris/iris_platform_sm8550.h | 11 ++++
>> .../platform/qcom/iris/iris_platform_sm8650.h | 13 +++++
>> drivers/media/platform/qcom/iris/iris_probe.c | 4 ++
>> 5 files changed, 92 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/media/platform/qcom/iris/iris_platform_common.h b/drivers/media/platform/qcom/iris/iris_platform_common.h
>> index fdd40fd80178c4c66b37e392d07a0a62f492f108..6bc3a7975b04d612f6c89206eae95dac678695fc 100644
>> --- a/drivers/media/platform/qcom/iris/iris_platform_common.h
>> +++ b/drivers/media/platform/qcom/iris/iris_platform_common.h
>> @@ -35,6 +35,7 @@ enum pipe_type {
>>
>> extern struct iris_platform_data sm8250_data;
>> extern struct iris_platform_data sm8550_data;
>> +extern struct iris_platform_data sm8650_data;
>>
>> enum platform_clk_type {
>> IRIS_AXI_CLK,
>> diff --git a/drivers/media/platform/qcom/iris/iris_platform_gen2.c b/drivers/media/platform/qcom/iris/iris_platform_gen2.c
>> index 35d278996c430f2856d0fe59586930061a271c3e..6d1771bd68689d96b5b9087b0ad32b934f7295ee 100644
>> --- a/drivers/media/platform/qcom/iris/iris_platform_gen2.c
>> +++ b/drivers/media/platform/qcom/iris/iris_platform_gen2.c
>> @@ -10,6 +10,9 @@
>> #include "iris_platform_common.h"
>> #include "iris_vpu_common.h"
>>
>> +#include "iris_platform_sm8550.h"
>> +#include "iris_platform_sm8650.h"
>> +
>> #define VIDEO_ARCH_LX 1
>>
>> static struct platform_inst_fw_cap inst_fw_cap_sm8550[] = {
>> @@ -142,8 +145,6 @@ static const struct icc_info sm8550_icc_table[] = {
>> { "video-mem", 1000, 15000000 },
>> };
>>
>> -static const char * const sm8550_clk_reset_table[] = { "bus" };
>> -
>> static const struct bw_info sm8550_bw_table_dec[] = {
>> { ((4096 * 2160) / 256) * 60, 1608000 },
>> { ((4096 * 2160) / 256) * 30, 826000 },
>> @@ -264,3 +265,63 @@ struct iris_platform_data sm8550_data = {
>> .dec_op_int_buf_tbl = sm8550_dec_op_int_buf_tbl,
>> .dec_op_int_buf_tbl_size = ARRAY_SIZE(sm8550_dec_op_int_buf_tbl),
>> };
>> +
>> +/*
>> + * Shares most of SM8550 data except:
>> + * - vpu_ops to iris_vpu33_ops
>> + * - clk_rst_tbl to sm8650_clk_reset_table
>> + * - controller_rst_tbl to sm8650_controller_reset_table
>> + * - fwname to "qcom/vpu/vpu33_p4.mbn"
>> + */
>> +struct iris_platform_data sm8650_data = {
>> + .get_instance = iris_hfi_gen2_get_instance,
>> + .init_hfi_command_ops = iris_hfi_gen2_command_ops_init,
>> + .init_hfi_response_ops = iris_hfi_gen2_response_ops_init,
>> + .vpu_ops = &iris_vpu33_ops,
>> + .set_preset_registers = iris_set_sm8550_preset_registers,
>> + .icc_tbl = sm8550_icc_table,
>> + .icc_tbl_size = ARRAY_SIZE(sm8550_icc_table),
>> + .clk_rst_tbl = sm8650_clk_reset_table,
>> + .clk_rst_tbl_size = ARRAY_SIZE(sm8650_clk_reset_table),
>> + .controller_rst_tbl = sm8650_controller_reset_table,
>> + .controller_rst_tbl_size = ARRAY_SIZE(sm8650_controller_reset_table),
>> + .bw_tbl_dec = sm8550_bw_table_dec,
>> + .bw_tbl_dec_size = ARRAY_SIZE(sm8550_bw_table_dec),
>> + .pmdomain_tbl = sm8550_pmdomain_table,
>> + .pmdomain_tbl_size = ARRAY_SIZE(sm8550_pmdomain_table),
>> + .opp_pd_tbl = sm8550_opp_pd_table,
>> + .opp_pd_tbl_size = ARRAY_SIZE(sm8550_opp_pd_table),
>> + .clk_tbl = sm8550_clk_table,
>> + .clk_tbl_size = ARRAY_SIZE(sm8550_clk_table),
>> + /* Upper bound of DMA address range */
>> + .dma_mask = 0xe0000000 - 1,
>> + .fwname = "qcom/vpu/vpu33_p4.mbn",
>> + .pas_id = IRIS_PAS_ID,
>> + .inst_caps = &platform_inst_cap_sm8550,
>> + .inst_fw_caps = inst_fw_cap_sm8550,
>> + .inst_fw_caps_size = ARRAY_SIZE(inst_fw_cap_sm8550),
>> + .tz_cp_config_data = &tz_cp_config_sm8550,
>> + .core_arch = VIDEO_ARCH_LX,
>> + .hw_response_timeout = HW_RESPONSE_TIMEOUT_VALUE,
>> + .ubwc_config = &ubwc_config_sm8550,
>> + .num_vpp_pipe = 4,
>> + .max_session_count = 16,
>> + .max_core_mbpf = ((8192 * 4352) / 256) * 2,
>> + .input_config_params =
>> + sm8550_vdec_input_config_params,
>> + .input_config_params_size =
>> + ARRAY_SIZE(sm8550_vdec_input_config_params),
>> + .output_config_params =
>> + sm8550_vdec_output_config_params,
>> + .output_config_params_size =
>> + ARRAY_SIZE(sm8550_vdec_output_config_params),
>> + .dec_input_prop = sm8550_vdec_subscribe_input_properties,
>> + .dec_input_prop_size = ARRAY_SIZE(sm8550_vdec_subscribe_input_properties),
>> + .dec_output_prop = sm8550_vdec_subscribe_output_properties,
>> + .dec_output_prop_size = ARRAY_SIZE(sm8550_vdec_subscribe_output_properties),
>> +
>> + .dec_ip_int_buf_tbl = sm8550_dec_ip_int_buf_tbl,
>> + .dec_ip_int_buf_tbl_size = ARRAY_SIZE(sm8550_dec_ip_int_buf_tbl),
>> + .dec_op_int_buf_tbl = sm8550_dec_op_int_buf_tbl,
>> + .dec_op_int_buf_tbl_size = ARRAY_SIZE(sm8550_dec_op_int_buf_tbl),
>> +};
>> diff --git a/drivers/media/platform/qcom/iris/iris_platform_sm8550.h b/drivers/media/platform/qcom/iris/iris_platform_sm8550.h
>> new file mode 100644
>> index 0000000000000000000000000000000000000000..ac8847edb585e4a9ce6b669a3a5988e7809972af
>> --- /dev/null
>> +++ b/drivers/media/platform/qcom/iris/iris_platform_sm8550.h
>> @@ -0,0 +1,11 @@
>> +/* SPDX-License-Identifier: GPL-2.0-only */
>> +/*
>> + * Copyright (c) 2022-2024 Qualcomm Innovation Center, Inc. All rights reserved.
>> + */
>> +
>> +#ifndef __IRIS_PLATFORM_SM8550_H__
>> +#define __IRIS_PLATFORM_SM8550_H__
>> +
>> +static const char * const sm8550_clk_reset_table[] = { "bus" };
>> +
>> +#endif
> There is no need of iris_platform_sm8550.h, you can keep this entry in
> gen2.c file itself. As we are making that our base.
> You can just have iris_platform_sm8650.h which overrides this entry with
> SOC specific reset requirements for SM8650.
Ok, so this was requested by Vikash, but it seemed weird, but as Dmitry sais
kind of symmetrical and ok in fact.
But I'll respin without this file if you request it.
neil
>
> Thanks,
> Dikshita
>> diff --git a/drivers/media/platform/qcom/iris/iris_platform_sm8650.h b/drivers/media/platform/qcom/iris/iris_platform_sm8650.h
>> new file mode 100644
>> index 0000000000000000000000000000000000000000..75e9d572e788de043a56cf85a4cb634bd02226b9
>> --- /dev/null
>> +++ b/drivers/media/platform/qcom/iris/iris_platform_sm8650.h
>> @@ -0,0 +1,13 @@
>> +/* SPDX-License-Identifier: GPL-2.0-only */
>> +/*
>> + * Copyright (c) 2022-2024 Qualcomm Innovation Center, Inc. All rights reserved.
>> + */
>> +
>> +#ifndef __IRIS_PLATFORM_SM8650_H__
>> +#define __IRIS_PLATFORM_SM8650_H__
>> +
>> +static const char * const sm8650_clk_reset_table[] = { "bus", "core" };
>> +
>> +static const char * const sm8650_controller_reset_table[] = { "xo" };
>> +
>> +#endif
>> diff --git a/drivers/media/platform/qcom/iris/iris_probe.c b/drivers/media/platform/qcom/iris/iris_probe.c
>> index 4f8bce6e2002bffee4c93dcaaf6e52bf4e40992e..7cd8650fbe9c09598670530103e3d5edf32953e7 100644
>> --- a/drivers/media/platform/qcom/iris/iris_probe.c
>> +++ b/drivers/media/platform/qcom/iris/iris_probe.c
>> @@ -345,6 +345,10 @@ static const struct of_device_id iris_dt_match[] = {
>> .data = &sm8250_data,
>> },
>> #endif
>> + {
>> + .compatible = "qcom,sm8650-iris",
>> + .data = &sm8650_data,
>> + },
>> { },
>> };
>> MODULE_DEVICE_TABLE(of, iris_dt_match);
>>
next prev parent reply other threads:[~2025-04-17 8:53 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-15 13:47 [PATCH v6 0/7] media: qcom: iris: add support for SM8650 Neil Armstrong
2025-04-15 13:47 ` [PATCH v6 1/7] dt-bindings: media: qcom,sm8550-iris: document SM8650 IRIS accelerator Neil Armstrong
2025-04-15 13:47 ` [PATCH v6 2/7] media: platform: qcom/iris: add power_off_controller to vpu_ops Neil Armstrong
2025-04-15 13:47 ` [PATCH v6 3/7] media: platform: qcom/iris: introduce optional controller_rst_tbl Neil Armstrong
2025-04-16 7:46 ` Dikshita Agarwal
2025-04-15 13:47 ` [PATCH v6 4/7] media: platform: qcom/iris: rename iris_vpu3 to iris_vpu3x Neil Armstrong
2025-04-15 13:47 ` [PATCH v6 5/7] media: platform: qcom/iris: add support for vpu33 Neil Armstrong
2025-04-15 13:47 ` [PATCH v6 6/7] media: platform: qcom/iris: rename platform_sm8550 to platform_gen2 Neil Armstrong
2025-04-15 14:20 ` Bryan O'Donoghue
2025-04-15 13:47 ` [PATCH v6 7/7] media: platform: qcom/iris: add sm8650 support Neil Armstrong
2025-04-15 14:19 ` Bryan O'Donoghue
2025-04-16 10:25 ` Dikshita Agarwal
2025-04-16 11:23 ` Dmitry Baryshkov
2025-04-16 12:03 ` Dikshita Agarwal
2025-04-17 8:50 ` Neil Armstrong [this message]
2025-04-17 14:06 ` Vikash Garodia
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=68313fff-89d6-4a17-9006-75db971554c0@linaro.org \
--to=neil.armstrong@linaro.org \
--cc=bryan.odonoghue@linaro.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=krzk+dt@kernel.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=mchehab@kernel.org \
--cc=p.zabel@pengutronix.de \
--cc=quic_abhinavk@quicinc.com \
--cc=quic_dikshita@quicinc.com \
--cc=quic_vgarodia@quicinc.com \
--cc=robh@kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®