From: Dikshita Agarwal <quic_dikshita@quicinc.com>
To: Bryan O'Donoghue <bryan.odonoghue@linaro.org>,
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>
Cc: <linux-media@vger.kernel.org>, <linux-arm-msm@vger.kernel.org>,
<devicetree@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
Vedang Nagar <quic_vnagar@quicinc.com>
Subject: Re: [PATCH v3 20/29] media: iris: subscribe parameters and properties to firmware for hfi_gen2
Date: Thu, 26 Sep 2024 16:25:52 +0530 [thread overview]
Message-ID: <ca3cd653-9ab1-93e6-7862-bca8a45e34d0@quicinc.com> (raw)
In-Reply-To: <b259f304-77a2-4b0e-a8b3-c8d0fb8f9750@linaro.org>
On 9/24/2024 8:46 PM, Bryan O'Donoghue wrote:
> On 27/08/2024 11:05, Dikshita Agarwal via B4 Relay wrote:
>> From: Vedang Nagar <quic_vnagar@quicinc.com>
>>
>> For hfi_gen2, subscribe for different bitstream parameters to
>> firmware to get notified for change in any of the subscribed
>> parameters.
>>
>> Signed-off-by: Vedang Nagar <quic_vnagar@quicinc.com>
>> Signed-off-by: Dikshita Agarwal <quic_dikshita@quicinc.com>
>> ---
>> drivers/media/platform/qcom/iris/iris_hfi_gen2.h | 6 +
>> .../platform/qcom/iris/iris_hfi_gen2_command.c | 179
>> +++++++++++++++++++++
>> .../platform/qcom/iris/iris_hfi_gen2_defines.h | 9 ++
>> .../platform/qcom/iris/iris_platform_common.h | 4 +
>> .../platform/qcom/iris/iris_platform_sm8550.c | 13 ++
>> 5 files changed, 211 insertions(+)
>>
>> diff --git a/drivers/media/platform/qcom/iris/iris_hfi_gen2.h
>> b/drivers/media/platform/qcom/iris/iris_hfi_gen2.h
>> index 8170c1fef569..5fbbab844025 100644
>> --- a/drivers/media/platform/qcom/iris/iris_hfi_gen2.h
>> +++ b/drivers/media/platform/qcom/iris/iris_hfi_gen2.h
>> @@ -18,12 +18,18 @@ struct iris_core;
>> *
>> * @inst: pointer to iris_instance structure
>> * @packet: HFI packet
>> + * @ipsc_properties_set: boolean to set ipsc properties to fw
>> + * @opsc_properties_set: boolean to set opsc properties to fw
>> * @src_subcr_params: subscription params to fw on input port
>> + * @dst_subcr_params: subscription params to fw on output port
>> */
>> struct iris_inst_hfi_gen2 {
>> struct iris_inst inst;
>> struct iris_hfi_header *packet;
>> + bool ipsc_properties_set;
>> + bool opsc_properties_set;
>> struct hfi_subscription_params src_subcr_params;
>> + struct hfi_subscription_params dst_subcr_params;
>> };
>> void iris_hfi_gen2_command_ops_init(struct iris_core *core);
>> diff --git a/drivers/media/platform/qcom/iris/iris_hfi_gen2_command.c
>> b/drivers/media/platform/qcom/iris/iris_hfi_gen2_command.c
>> index e50f00021f6d..791b535a3584 100644
>> --- a/drivers/media/platform/qcom/iris/iris_hfi_gen2_command.c
>> +++ b/drivers/media/platform/qcom/iris/iris_hfi_gen2_command.c
>> @@ -472,6 +472,9 @@ static int iris_hfi_gen2_session_open(struct
>> iris_inst *inst)
>> if (inst->state != IRIS_INST_DEINIT)
>> return -EALREADY;
>> + inst_hfi_gen2->ipsc_properties_set = false;
>> + inst_hfi_gen2->opsc_properties_set = false;
>> +
>> inst_hfi_gen2->packet = kzalloc(4096, GFP_KERNEL);
>> if (!inst_hfi_gen2->packet)
>> return -ENOMEM;
>> @@ -536,9 +539,185 @@ static int iris_hfi_gen2_session_close(struct
>> iris_inst *inst)
>> return ret;
>> }
>> +static int iris_hfi_gen2_session_subscribe_mode(struct iris_inst *inst,
>> + u32 cmd, u32 plane, u32 payload_type,
>> + void *payload, u32 payload_size)
>> +{
>> + struct iris_inst_hfi_gen2 *inst_hfi_gen2 = to_iris_inst_hfi_gen2(inst);
>> +
>> + iris_hfi_gen2_packet_session_command(inst,
>> + cmd,
>> + (HFI_HOST_FLAGS_RESPONSE_REQUIRED |
>> + HFI_HOST_FLAGS_INTR_REQUIRED),
>> + iris_hfi_gen2_get_port(plane),
>> + inst->session_id,
>> + payload_type,
>> + payload,
>> + payload_size);
>> +
>> + return iris_hfi_queue_cmd_write(inst->core, inst_hfi_gen2->packet,
>> + inst_hfi_gen2->packet->size);
>> +}
>> +
>> +static int iris_hfi_gen2_subscribe_change_param(struct iris_inst *inst,
>> u32 plane)
>> +{
>> + struct iris_inst_hfi_gen2 *inst_hfi_gen2 = to_iris_inst_hfi_gen2(inst);
>> + struct hfi_subscription_params subsc_params;
>> + u32 prop_type, payload_size, payload_type;
>> + struct iris_core *core = inst->core;
>> + const u32 *change_param = NULL;
>> + u32 change_param_size = 0;
>> + u32 payload[32] = {0};
>> + u32 hfi_port = 0;
>> + int ret;
>> + u32 i;
>> +
>> + if ((V4L2_TYPE_IS_OUTPUT(plane) &&
>> inst_hfi_gen2->ipsc_properties_set) ||
>> + (V4L2_TYPE_IS_CAPTURE(plane) &&
>> inst_hfi_gen2->opsc_properties_set)) {
>> + dev_err(core->dev, "invalid plane\n");
>> + return 0;
>> + }
>> +
>> + change_param = core->iris_platform_data->input_config_params;
>> + change_param_size = core->iris_platform_data->input_config_params_size;
>> +
>> + if (!change_param || !change_param_size)
>> + return -EINVAL;
>
> That's an odd one, checking for zero but _not_ bounds checking
> chanage_param_size < (sizeof(payload)/sizeof(u32)) - 1
>
> I'm not sure where inpug_config_param_size gets populated but I'd rather
> check that type of parameter - for exactly that reason - than the defensive
> coding done on your inputs elsewhere.
>
> TL;DR why do you trust change_param_size < your array size but not
> change_param_size >= 1 ?
>
These NULL checks here are actually not needed as we will make sure this is
filled in platform data. Will remove these checks in next version and will
see if bound check is required.
> ---
> bod
next prev parent reply other threads:[~2024-09-26 10:56 UTC|newest]
Thread overview: 93+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-08-27 10:05 [PATCH v3 00/29] Qualcomm iris video decoder driver Dikshita Agarwal via B4 Relay
2024-08-27 10:05 ` [PATCH v3 01/29] dt-bindings: media: Add sm8550 dt schema Dikshita Agarwal via B4 Relay
2024-08-27 10:42 ` Krzysztof Kozlowski
2024-09-05 5:41 ` Dikshita Agarwal
2024-08-27 10:05 ` [PATCH v3 02/29] media: MAINTAINERS: Add Qualcomm Iris video accelerator driver Dikshita Agarwal via B4 Relay
2024-08-27 10:42 ` Krzysztof Kozlowski
2024-09-05 5:47 ` Dikshita Agarwal
2024-09-05 10:10 ` Dmitry Baryshkov
2024-09-05 11:02 ` Dikshita Agarwal
2024-09-05 11:02 ` Dmitry Baryshkov
2024-09-05 11:14 ` Dikshita Agarwal
2024-08-27 10:05 ` [PATCH v3 03/29] media: iris: add platform driver for iris video device Dikshita Agarwal via B4 Relay
2024-08-27 14:08 ` Bryan O'Donoghue
2024-08-29 9:13 ` Dmitry Baryshkov
2024-08-29 9:36 ` Bryan O'Donoghue
2024-09-05 6:12 ` Dikshita Agarwal
2024-09-05 6:15 ` Dikshita Agarwal
2024-09-05 10:11 ` Dmitry Baryshkov
2024-09-05 10:59 ` Dikshita Agarwal
2024-09-05 11:07 ` Dmitry Baryshkov
2024-09-05 11:13 ` Dikshita Agarwal
2024-08-27 10:05 ` [PATCH v3 04/29] media: iris: initialize power resources Dikshita Agarwal via B4 Relay
2024-08-27 10:51 ` Krzysztof Kozlowski
2024-09-05 11:53 ` Dikshita Agarwal
2024-09-05 11:57 ` Krzysztof Kozlowski
2024-09-06 11:21 ` Vikash Garodia
2024-09-06 12:04 ` Krzysztof Kozlowski
2024-09-06 19:47 ` Vikash Garodia
2024-09-07 9:07 ` Krzysztof Kozlowski
2024-08-27 10:05 ` [PATCH v3 05/29] media: iris: implement iris v4l2 file ops Dikshita Agarwal via B4 Relay
2024-09-06 19:05 ` Markus Elfring
2024-09-07 8:52 ` Markus Elfring
2024-08-27 10:05 ` [PATCH v3 06/29] media: iris: introduce iris core state management with shared queues Dikshita Agarwal via B4 Relay
2024-08-28 2:38 ` kernel test robot
2024-08-27 10:05 ` [PATCH v3 07/29] media: iris: implement video firmware load/unload Dikshita Agarwal via B4 Relay
2024-08-27 23:13 ` kernel test robot
2024-08-31 13:18 ` Bryan O'Donoghue
2024-09-02 0:04 ` Dmitry Baryshkov
2024-09-05 6:17 ` Dikshita Agarwal
2024-08-27 10:05 ` [PATCH v3 08/29] media: iris: implement boot sequence of the firmware Dikshita Agarwal via B4 Relay
2024-09-05 12:34 ` Bryan O'Donoghue
2024-09-06 11:27 ` Vikash Garodia
2024-08-27 10:05 ` [PATCH v3 09/29] media: iris: introduce Host firmware interface with necessary hooks Dikshita Agarwal via B4 Relay
2024-09-05 12:36 ` Bryan O'Donoghue
2024-09-24 9:13 ` Dikshita Agarwal
2024-09-05 13:10 ` Bryan O'Donoghue
2024-09-06 13:31 ` Vikash Garodia
2024-08-27 10:05 ` [PATCH v3 10/29] media: iris: implement power management Dikshita Agarwal via B4 Relay
2024-09-05 13:23 ` Bryan O'Donoghue
2024-09-05 13:46 ` Krzysztof Kozlowski
2024-09-24 8:38 ` Dikshita Agarwal
2024-09-24 8:36 ` Dikshita Agarwal
2024-08-27 10:05 ` [PATCH v3 11/29] media: iris: implement reqbuf ioctl with vb2_queue_setup Dikshita Agarwal via B4 Relay
2024-09-06 12:50 ` Bryan O'Donoghue
2024-09-06 13:05 ` Bryan O'Donoghue
2024-09-26 10:47 ` Dikshita Agarwal
2024-08-27 10:05 ` [PATCH v3 12/29] media: iris: implement s_fmt, g_fmt and try_fmt ioctls Dikshita Agarwal via B4 Relay
2024-09-24 14:41 ` Bryan O'Donoghue
2024-09-26 10:49 ` Dikshita Agarwal
2024-08-27 10:05 ` [PATCH v3 13/29] media: iris: implement g_selection ioctl Dikshita Agarwal via B4 Relay
2024-08-27 10:05 ` [PATCH v3 14/29] media: iris: implement enum_fmt and enum_frameintervals ioctls Dikshita Agarwal via B4 Relay
2024-08-27 10:05 ` [PATCH v3 15/29] media: iris: implement subscribe_event and unsubscribe_event ioctls Dikshita Agarwal via B4 Relay
2024-08-27 10:05 ` [PATCH v3 16/29] media: iris: implement iris v4l2_ctrl_ops and prepare capabilities Dikshita Agarwal via B4 Relay
2024-08-29 9:33 ` Dmitry Baryshkov
2024-10-01 13:01 ` Vedang Nagar
2024-10-06 16:46 ` Dmitry Baryshkov
2024-08-27 10:05 ` [PATCH v3 17/29] media: iris: implement query_cap, query_ctrl and query_menu ioctls Dikshita Agarwal via B4 Relay
2024-09-24 14:49 ` Bryan O'Donoghue
2024-09-26 10:50 ` Dikshita Agarwal
2024-08-27 10:05 ` [PATCH v3 18/29] media: iris: implement vb2 streaming ops Dikshita Agarwal via B4 Relay
2024-08-28 0:26 ` kernel test robot
2024-08-27 10:05 ` [PATCH v3 19/29] media: iris: implement set properties to firmware during streamon Dikshita Agarwal via B4 Relay
2024-09-24 15:09 ` Bryan O'Donoghue
2024-08-27 10:05 ` [PATCH v3 20/29] media: iris: subscribe parameters and properties to firmware for hfi_gen2 Dikshita Agarwal via B4 Relay
2024-09-24 15:16 ` Bryan O'Donoghue
2024-09-26 10:55 ` Dikshita Agarwal [this message]
2024-08-27 10:05 ` [PATCH v3 21/29] media: iris: allocate, initialize and queue internal buffers Dikshita Agarwal via B4 Relay
2024-08-27 10:05 ` [PATCH v3 22/29] media: iris: implement vb2 ops for buf_queue and firmware response Dikshita Agarwal via B4 Relay
2024-08-27 10:05 ` [PATCH v3 23/29] media: iris: add support for dynamic resolution change Dikshita Agarwal via B4 Relay
2024-08-27 10:05 ` [PATCH v3 24/29] media: iris: handle streamoff/on from client in " Dikshita Agarwal via B4 Relay
2024-08-27 10:05 ` [PATCH v3 25/29] media: iris: add support for drain sequence Dikshita Agarwal via B4 Relay
2024-08-27 10:05 ` [PATCH v3 26/29] media: iris: add check whether the video session is supported or not Dikshita Agarwal via B4 Relay
2024-08-27 10:05 ` [PATCH v3 27/29] media: iris: implement power scaling for vpu2 and vpu3 Dikshita Agarwal via B4 Relay
2024-08-27 10:05 ` [PATCH v3 28/29] media: iris: add allow checks for v4l2 ioctls Dikshita Agarwal via B4 Relay
2024-08-27 10:05 ` [PATCH v3 29/29] media: iris: add check to allow sub states transitions Dikshita Agarwal via B4 Relay
2024-08-27 13:41 ` [PATCH v3 00/29] Qualcomm iris video decoder driver neil.armstrong
2024-09-24 9:13 ` Dikshita Agarwal
2024-10-01 13:28 ` Neil Armstrong
2024-08-31 15:18 ` Bryan O'Donoghue
2024-09-02 0:02 ` Dmitry Baryshkov
2024-09-06 14:19 ` Nicolas Dufresne
2024-09-06 19:26 ` Vikash Garodia
2024-09-06 16:28 ` Abhinav Kumar
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=ca3cd653-9ab1-93e6-7862-bca8a45e34d0@quicinc.com \
--to=quic_dikshita@quicinc.com \
--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_vgarodia@quicinc.com \
--cc=quic_vnagar@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®