From: "Gjorgji Rosikopulos (Consultant)" <gjorgji.rosikopulos@oss.qualcomm.com>
To: Loic Poulain <loic.poulain@oss.qualcomm.com>, bryan.odonoghue@linaro.org
Cc: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>,
Mauro Carvalho Chehab <mchehab@kernel.org>,
linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org,
linux-kernel@vger.kernel.org, Bryan O'Donoghue <bod@kernel.org>
Subject: Re: [PATCH v3 08/11] media: qcom: camss: Switch on frame_sync_en logic for csid-gen3.
Date: Tue, 10 Nov 2026 08:38:31 +0200 [thread overview]
Message-ID: <1f09c9ee-393b-4660-945d-8176f823b8f1@oss.qualcomm.com> (raw)
In-Reply-To: <CAFEp6-0t_r7yH3hGRFH6amgfNUK7sTMe68HXQ2WEuUffHMQF2A@mail.gmail.com>
Hi Loic, Bryan,
On 11/9/2026 11:56 AM, Loic Poulain wrote:
> On Sat, Nov 7, 2026 at 2:02 AM <bryan.odonoghue@linaro.org> wrote:
>>
>> From: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
>>
>> Switch frame_sync_en to true to track and consume SOF/EOF data.
>>
>> Tested-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org> # sm8650-hdk
>> Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
>> Signed-off-by: Bryan O'Donoghue <bod@kernel.org>
>
> I would have preferred this to be defined directly in the
> corresponding CSID implementations rather than in the resource
> descriptors, so that the component implementing frame synchronization
> is also the one advertising support for it. In other words, something
> along the lines of a csid_hw_ops.features flag or a dedicated
> csid_hw_ops.has_frame_sync callback/field. That said, this is more of
> a design preference than a blocking concern for me, so:
I double that. It make more sense to introduce capability field, only drawback is
that as of today once the feature is validated for the SoC (which may contain
same csid or vfe version) is marked as supported which may not be the case
with caps, however the risk of breaking something is low.
Note that in multistream support we are introducing new field per SoC stream api
which also can be taken based on the caps.
~Gjorgji
>
> Reviewed-by: Loic Poulain <loic.poulain@oss.qualcomm.com>
>
>> ---
>> drivers/media/platform/qcom/camss/camss.c | 17 +++++++++++++++++
>> 1 file changed, 17 insertions(+)
>>
>> diff --git a/drivers/media/platform/qcom/camss/camss.c b/drivers/media/platform/qcom/camss/camss.c
>> index 52bb19f5fbf3b..b7821019241d7 100644
>> --- a/drivers/media/platform/qcom/camss/camss.c
>> +++ b/drivers/media/platform/qcom/camss/camss.c
>> @@ -3120,6 +3120,7 @@ static const struct camss_subdev_resources csid_res_8550[] = {
>> .reg = { "csid0" },
>> .interrupt = { "csid0" },
>> .csid = {
>> + .frame_sync_en = true,
>> .is_lite = false,
>> .parent_dev_ops = &vfe_parent_dev_ops,
>> .hw_ops = &csid_ops_gen3,
>> @@ -3135,6 +3136,7 @@ static const struct camss_subdev_resources csid_res_8550[] = {
>> .reg = { "csid1" },
>> .interrupt = { "csid1" },
>> .csid = {
>> + .frame_sync_en = true,
>> .is_lite = false,
>> .parent_dev_ops = &vfe_parent_dev_ops,
>> .hw_ops = &csid_ops_gen3,
>> @@ -3150,6 +3152,7 @@ static const struct camss_subdev_resources csid_res_8550[] = {
>> .reg = { "csid2" },
>> .interrupt = { "csid2" },
>> .csid = {
>> + .frame_sync_en = true,
>> .is_lite = false,
>> .parent_dev_ops = &vfe_parent_dev_ops,
>> .hw_ops = &csid_ops_gen3,
>> @@ -3165,6 +3168,7 @@ static const struct camss_subdev_resources csid_res_8550[] = {
>> .reg = { "csid_lite0" },
>> .interrupt = { "csid_lite0" },
>> .csid = {
>> + .frame_sync_en = true,
>> .is_lite = true,
>> .parent_dev_ops = &vfe_parent_dev_ops,
>> .hw_ops = &csid_ops_gen3,
>> @@ -3180,6 +3184,7 @@ static const struct camss_subdev_resources csid_res_8550[] = {
>> .reg = { "csid_lite1" },
>> .interrupt = { "csid_lite1" },
>> .csid = {
>> + .frame_sync_en = true,
>> .is_lite = true,
>> .parent_dev_ops = &vfe_parent_dev_ops,
>> .hw_ops = &csid_ops_gen3,
>> @@ -3433,6 +3438,7 @@ static const struct camss_subdev_resources csid_res_sm8650[] = {
>> .reg = { "csid0" },
>> .interrupt = { "csid0" },
>> .csid = {
>> + .frame_sync_en = true,
>> .parent_dev_ops = &vfe_parent_dev_ops,
>> .hw_ops = &csid_ops_gen3,
>> .formats = &csid_formats_gen2,
>> @@ -3447,6 +3453,7 @@ static const struct camss_subdev_resources csid_res_sm8650[] = {
>> .reg = { "csid1" },
>> .interrupt = { "csid1" },
>> .csid = {
>> + .frame_sync_en = true,
>> .parent_dev_ops = &vfe_parent_dev_ops,
>> .hw_ops = &csid_ops_gen3,
>> .formats = &csid_formats_gen2,
>> @@ -3461,6 +3468,7 @@ static const struct camss_subdev_resources csid_res_sm8650[] = {
>> .reg = { "csid2" },
>> .interrupt = { "csid2" },
>> .csid = {
>> + .frame_sync_en = true,
>> .parent_dev_ops = &vfe_parent_dev_ops,
>> .hw_ops = &csid_ops_gen3,
>> .formats = &csid_formats_gen2,
>> @@ -3476,6 +3484,7 @@ static const struct camss_subdev_resources csid_res_sm8650[] = {
>> .reg = { "csid_lite0" },
>> .interrupt = { "csid_lite0" },
>> .csid = {
>> + .frame_sync_en = true,
>> .is_lite = true,
>> .parent_dev_ops = &vfe_parent_dev_ops,
>> .hw_ops = &csid_ops_gen3,
>> @@ -3492,6 +3501,7 @@ static const struct camss_subdev_resources csid_res_sm8650[] = {
>> .reg = { "csid_lite1" },
>> .interrupt = { "csid_lite1" },
>> .csid = {
>> + .frame_sync_en = true,
>> .is_lite = true,
>> .parent_dev_ops = &vfe_parent_dev_ops,
>> .hw_ops = &csid_ops_gen3,
>> @@ -3790,6 +3800,7 @@ static const struct camss_subdev_resources csid_res_8775p[] = {
>> .reg = { "csid0" },
>> .interrupt = { "csid0" },
>> .csid = {
>> + .frame_sync_en = true,
>> .is_lite = false,
>> .hw_ops = &csid_ops_gen3,
>> .parent_dev_ops = &vfe_parent_dev_ops,
>> @@ -3807,6 +3818,7 @@ static const struct camss_subdev_resources csid_res_8775p[] = {
>> .reg = { "csid1" },
>> .interrupt = { "csid1" },
>> .csid = {
>> + .frame_sync_en = true,
>> .is_lite = false,
>> .hw_ops = &csid_ops_gen3,
>> .parent_dev_ops = &vfe_parent_dev_ops,
>> @@ -3825,6 +3837,7 @@ static const struct camss_subdev_resources csid_res_8775p[] = {
>> .reg = { "csid_lite0" },
>> .interrupt = { "csid_lite0" },
>> .csid = {
>> + .frame_sync_en = true,
>> .is_lite = true,
>> .hw_ops = &csid_ops_gen3,
>> .parent_dev_ops = &vfe_parent_dev_ops,
>> @@ -3842,6 +3855,7 @@ static const struct camss_subdev_resources csid_res_8775p[] = {
>> .reg = { "csid_lite1" },
>> .interrupt = { "csid_lite1" },
>> .csid = {
>> + .frame_sync_en = true,
>> .is_lite = true,
>> .hw_ops = &csid_ops_gen3,
>> .parent_dev_ops = &vfe_parent_dev_ops,
>> @@ -3859,6 +3873,7 @@ static const struct camss_subdev_resources csid_res_8775p[] = {
>> .reg = { "csid_lite2" },
>> .interrupt = { "csid_lite2" },
>> .csid = {
>> + .frame_sync_en = true,
>> .is_lite = true,
>> .hw_ops = &csid_ops_gen3,
>> .parent_dev_ops = &vfe_parent_dev_ops,
>> @@ -3876,6 +3891,7 @@ static const struct camss_subdev_resources csid_res_8775p[] = {
>> .reg = { "csid_lite3" },
>> .interrupt = { "csid_lite3" },
>> .csid = {
>> + .frame_sync_en = true,
>> .is_lite = true,
>> .hw_ops = &csid_ops_gen3,
>> .parent_dev_ops = &vfe_parent_dev_ops,
>> @@ -3893,6 +3909,7 @@ static const struct camss_subdev_resources csid_res_8775p[] = {
>> .reg = { "csid_lite4" },
>> .interrupt = { "csid_lite4" },
>> .csid = {
>> + .frame_sync_en = true,
>> .is_lite = true,
>> .hw_ops = &csid_ops_gen3,
>> .parent_dev_ops = &vfe_parent_dev_ops,
>>
>> --
>> 2.56.0
>>
>
next prev parent reply other threads:[~2026-11-10 6:38 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-07 1:01 [PATCH v3 00/11] Add SOF sequence logic bryan.odonoghue
2026-11-07 1:01 ` [PATCH v3 01/11] media: qcom: camss: Introduce CPU latency QoS during streaming bryan.odonoghue
2026-11-07 1:01 ` [PATCH v3 02/11] media: qcom: camss: Introduce SOF sequence tracking bryan.odonoghue
2026-11-09 9:35 ` Loic Poulain
2026-11-07 1:01 ` [PATCH v3 03/11] media: qcom: camss: Use SOF sequence tracking for vb.sequence bryan.odonoghue
2026-11-09 9:49 ` Loic Poulain
2026-11-09 15:50 ` Bryan O'Donoghue
2026-11-07 1:01 ` [PATCH v3 04/11] media: qcom: camss: csid-gen3: Enable RDI SOF driving bryan.odonoghue
2026-11-07 1:01 ` [PATCH v3 05/11] media: qcom: camss: csid-680: Enable RDI SOF tracking bryan.odonoghue
2026-11-07 1:01 ` [PATCH v3 06/11] media: qcom: camss: csid-gen2: " bryan.odonoghue
2026-11-07 1:01 ` [PATCH v3 07/11] media: qcom: camss: csid-340: " bryan.odonoghue
2026-11-09 15:49 ` Bryan O'Donoghue
2026-11-07 1:01 ` [PATCH v3 08/11] media: qcom: camss: Switch on frame_sync_en logic for csid-gen3 bryan.odonoghue
2026-11-09 9:56 ` Loic Poulain
2026-11-10 6:38 ` Gjorgji Rosikopulos (Consultant) [this message]
2026-11-07 1:01 ` [PATCH v3 09/11] media: qcom: camss: Switch on frame_sync_en for x1e/x2e bryan.odonoghue
2026-11-07 1:01 ` [PATCH v3 10/11] media: qcom: camss: Switch on frame_sync_en for csid-gen2 bryan.odonoghue
2026-11-07 1:01 ` [PATCH v3 11/11] media: qcom: camss: Switch on frame_sync_en for csid-340 bryan.odonoghue
2026-11-09 15:49 ` Bryan O'Donoghue
2026-11-09 17:31 ` [PATCH v3 00/11] Add SOF sequence logic Gjorgji Rosikopulos (Consultant)
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=1f09c9ee-393b-4660-945d-8176f823b8f1@oss.qualcomm.com \
--to=gjorgji.rosikopulos@oss.qualcomm.com \
--cc=bod@kernel.org \
--cc=bryan.odonoghue@linaro.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=loic.poulain@oss.qualcomm.com \
--cc=mchehab@kernel.org \
--cc=vladimir.zapolskiy@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 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®