Devicetree
 help / color / mirror / Atom feed
From: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
To: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Cc: "Gjorgji Rosikopulos (Consultant)"
	<gjorgji.rosikopulos@oss.qualcomm.com>,
	Atanas Filipov <atanas.filipov@oss.qualcomm.com>,
	linux-media@vger.kernel.org, bryan.odonoghue@linaro.org,
	loic.poulain@oss.qualcomm.com, mchehab@kernel.org,
	robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org,
	andersson@kernel.org, konradybcio@kernel.org,
	linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org,
	devicetree@vger.kernel.org
Subject: Re: [PATCH v4 5/5] media: qcom: jpeg: Add Qualcomm JPEG V4L2 encoder
Date: Wed, 8 Jul 2026 15:01:30 +0300	[thread overview]
Message-ID: <74608907-dc8a-42c5-b188-0bdb08d6be77@linaro.org> (raw)
In-Reply-To: <wwk4nyczcecnllwivqd2lgnbpzboumtwigk3vmundsvgqtqpy7@duq6zdulc7sc>

On 7/8/26 14:35, Dmitry Baryshkov wrote:
> On Wed, Jul 08, 2026 at 01:28:46PM +0300, Vladimir Zapolskiy wrote:
>> Hi Gjorgji.
>>
>> On 7/8/26 12:32, Gjorgji Rosikopulos (Consultant) wrote:
>>> Hi Vlad,
>>>
>>> On 7/8/2026 11:47 AM, Vladimir Zapolskiy wrote:
>>>> Hi Gjorgji.
>>>>
>>>> On 7/7/26 16:24, Gjorgji Rosikopulos (Consultant) wrote:
>>>>> Hi Vlad,
>>>>>
>>>>> On 7/6/2026 10:46 AM, Vladimir Zapolskiy wrote:
>>>>> <snip>
>>>>>>>
>>>>>>> +            interconnects = <&gem_noc MASTER_AMPSS_M0
>>>>>>> QCOM_ICC_TAG_ACTIVE_ONLY
>>>>>>> +                             &config_noc SLAVE_CAMERA_CFG
>>>>>>> QCOM_ICC_TAG_ACTIVE_ONLY>,
>>>>>>> +                            <&mmss_noc MASTER_CAMNOC_HF
>>>>>>> QCOM_ICC_TAG_ALWAYS
>>>>>>> +                             &mc_virt SLAVE_EBI_CH0
>>>>>>> QCOM_ICC_TAG_ALWAYS>,
>>>>>>> +                            <&mmss_noc MASTER_CAMNOC_SF
>>>>>>> QCOM_ICC_TAG_ALWAYS
>>>>>>> +                             &mc_virt SLAVE_EBI_CH0
>>>>>>> QCOM_ICC_TAG_ALWAYS>;
>>>>>>> +            interconnect-names = "cpu-cfg",
>>>>>>> +                                 "hf-mnoc",
>>>>>>> +                                 "sf-mnoc";
>>>>>>
>>>>>> This is the topic, which may raise a disagreement, but I'll repeat my
>>>>>> position about the need to remove all "CAMSS bus" specific resources from
>>>>>> the device node, they are found and should be allocated on parent's side.
>>>>>
>>>>> The interconnect has functionality to handle bw requests from different
>>>>> clients.
>>>>>
>>>>> Yes the best will be to have camss interconnect, so jpeg and other hw's
>>>>> to vote
>>>>>
>>>>> on that (actually it is possible in icc framework) but what is the
>>>>> benefit of moving
>>>>>
>>>>> those to camss? Is it not better to create camss icc. I understand
>>>>> you want them to be on parent side. But how to vote on bw? Most of the
>>>>> time it
>>>>
>>>> Let's concentrate on hardware bindings description, no APIs, votes etc.
>>>> at this point of discussion.
>>> I agree but there should be an API for icc voting which Jpeg need to use,
>>> currently it is fixed to some values, but voting need to become dynamic
>>> at some point of time, because it depends on runtime parameters, resolution
>>> format etc.>
>>
>> Sure, but I believe it's quite clear that any software implementation
>> should be discussed only when the hardware description is fixed.
>>
>>>> There is SM8250 CAMSS device, which serves as a hierarchical parent (or
>>>> could be considered as a "bus" device) to this new JPEG encoder device
>>>> and probably to a number of future IPs under CAMSS. All CAMSS sub-devices
>>>> get hardware descriptions as children device tree nodes of CAMSS parent
>>>> device tree node naturally.
>>> I agree the device tree is best to represent real hw topology. >
>>
>> Well, it's not just the best, it's the only possible way.
>>
>>>> Copying of the same identical information about clocks, interconnects
>>>> and power domains from the hierarchical parent device to children devices
>>>> is not needed, and practically it only lowers signal-to-noise ratio.
>>> Here also i tend to agree.>
>>>> Since information about the actual defect in hardware description is
>>>> reported, the problem can and should be avoided, the handling of a better
>>>> hardware description and dealing with any kind of complexity will be done
>>>> in the CAMSS and/or CAMSS children drivers.
>>>>
>>>> If you need to get a bit more formal point of view on the matter, I'd
>>>> prefer to see descriptions of hardware properties organised in a tree
>>>> topology rather than in the originally proposed star topology. By doing
>>>> it the system complexity is reduced from N to 1.
>>>
>>> Maybe I'm missing the whole picture of your proposal, but I want to add my
>>> point of view on this matter.
>>>
>>> The JPEG encoder HW block has no dependency on the other processing HW
>>> blocks in the camera subsystem
>>>
>>> It shares resources like camnoc, clocks, GDSC, etc.,
>>> but does not share anything with the other HW processing blocks. For me,
>>> the JPEG driver should not have SW architectural dependencies on CAMSS.
>>
>> To move forward there should be a clear answer to a simple question,
>> does Qualcomm JPEG encoder IP belong to CAMSS group of devices or not?
>>
>> If no, then JPEG encoder device tree node shall be located outside of
>> CAMSS device tree node, all resources needed for JPEG encoder device
>> operation get their descrition in this stand-alone device tree node.
>>
>> If yes, then JPEG encoder device tree node is a child of CAMSS "bus"
>> device tree node, and only resources specific to JPEG encoder device
>> are described in its device tree node, because other resources are
>> already described in the parent device tree node.
> 
> 2c from my side (for both sides of the discussion). Please keep it
> separate, if the block simply uses the resource which is also used by
> the parent (e.g. there are no special requirements on the AHB or sleep
> clocks) or if the device needs to actuall cast a vote on a particular
> resource (e.g. for this to function at this performance level, the MMCX
> needs to be at the turbo level OR for this to function at this
> performance level it will use 123 MHz of the AXI clock). In the latter
> case the resources must be described as a part of the device.
> 

Even this "description as a part of the device" might be not quite
necessary in whole, let me try to explain.

No doubts resource usage policies specific to a child device should
be naturally described in child device tree node, and it's applicable
to any kind of hardware policies (like opp tables etc.), but a list
of needed hardware resources still can be obtained (also by a driver)
from the parent, whenever it is found applicable and unambiguous.

This is to separate planes of hardware dependencies and policies/controls
needed for hardware usage.

-- 
Best wishes,
Vladimir

  reply	other threads:[~2026-07-08 12:01 UTC|newest]

Thread overview: 62+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-07-06  7:11 [PATCH v4 0/5] Add Qualcomm JPEG V4L2 encoder for SM8250 Atanas Filipov
2026-07-06  7:11 ` [PATCH v4 1/5] media: qcom: camss: Populate CAMSS child devices via DT Atanas Filipov
2026-07-06  7:23   ` sashiko-bot
2026-07-06 12:09   ` Krzysztof Kozlowski
2026-07-06 12:27     ` Bryan O'Donoghue
2026-07-06 12:36       ` Krzysztof Kozlowski
2026-07-06 12:38         ` Bryan O'Donoghue
2026-07-06 12:41   ` Dmitry Baryshkov
2026-07-06  7:11 ` [PATCH v4 2/5] dt-bindings: media: qcom,sm8250-camss: allow JPEG encoder child node Atanas Filipov
2026-07-06  7:24   ` sashiko-bot
2026-07-06 10:07   ` Bryan O'Donoghue
2026-07-06 12:11   ` Krzysztof Kozlowski
2026-07-06  7:11 ` [PATCH v4 3/5] dt-bindings: media: qcom: Add JPEG encoder binding Atanas Filipov
2026-07-06  7:18   ` sashiko-bot
2026-07-06 10:19   ` Bryan O'Donoghue
2026-07-06 12:17   ` Krzysztof Kozlowski
2026-07-06  7:11 ` [PATCH v4 4/5] arm64: dts: qcom: sm8250: Add JPEG encoder node Atanas Filipov
2026-07-06  7:29   ` sashiko-bot
2026-07-06 12:18   ` Krzysztof Kozlowski
2026-07-06 12:45   ` Dmitry Baryshkov
2026-07-06  7:11 ` [PATCH v4 5/5] media: qcom: jpeg: Add Qualcomm JPEG V4L2 encoder Atanas Filipov
2026-07-06  7:33   ` sashiko-bot
2026-07-06  7:46   ` Vladimir Zapolskiy
2026-07-07 13:24     ` Gjorgji Rosikopulos (Consultant)
2026-07-07 13:32       ` Dmitry Baryshkov
2026-07-07 13:47         ` Gjorgji Rosikopulos (Consultant)
2026-07-07 14:47           ` Dmitry Baryshkov
2026-07-07 14:51             ` Gjorgji Rosikopulos (Consultant)
2026-07-08  8:47       ` Vladimir Zapolskiy
2026-07-08  9:32         ` Gjorgji Rosikopulos (Consultant)
2026-07-08 10:28           ` Vladimir Zapolskiy
2026-07-08 11:35             ` Dmitry Baryshkov
2026-07-08 12:01               ` Vladimir Zapolskiy [this message]
2026-07-08 15:44                 ` Gjorgji Rosikopulos (Consultant)
2026-07-08 16:25                   ` Vladimir Zapolskiy
2026-07-06 10:21   ` Bryan O'Donoghue
2026-07-06 12:19   ` Krzysztof Kozlowski
2026-07-06 13:11   ` Dmitry Baryshkov
2026-07-06 17:13   ` Uwe Kleine-König
2026-07-06 10:12 ` [PATCH v4 0/5] Add Qualcomm JPEG V4L2 encoder for SM8250 Bryan O'Donoghue
2026-07-06 12:00   ` Vladimir Zapolskiy
2026-07-06 12:11     ` Bryan O'Donoghue
2026-07-06 13:02       ` Vladimir Zapolskiy
2026-07-06 13:37         ` Bryan O'Donoghue
2026-07-06 13:57           ` Vladimir Zapolskiy
2026-07-06 14:12             ` Bryan O'Donoghue
2026-07-06 14:35               ` Vladimir Zapolskiy
2026-07-06 14:49                 ` Bryan O'Donoghue
2026-07-06 15:00                   ` Vladimir Zapolskiy
2026-07-07  9:24           ` Konrad Dybcio
2026-07-07 10:00             ` Bryan O'Donoghue
2026-07-07 10:11               ` Konrad Dybcio
2026-07-07 10:41                 ` Bryan O'Donoghue
2026-07-08 12:19                   ` Konrad Dybcio
2026-07-07 12:17               ` Gjorgji Rosikopulos (Consultant)
2026-07-07 10:55     ` Gjorgji Rosikopulos (Consultant)
2026-07-07 11:13       ` Bryan O'Donoghue
2026-07-07 11:20         ` Gjorgji Rosikopulos (Consultant)
2026-07-07 11:15       ` Bryan O'Donoghue
2026-07-07 13:22         ` Dmitry Baryshkov
2026-07-07 15:49           ` Bryan O'Donoghue
2026-07-06 12:24 ` Krzysztof Kozlowski

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=74608907-dc8a-42c5-b188-0bdb08d6be77@linaro.org \
    --to=vladimir.zapolskiy@linaro.org \
    --cc=andersson@kernel.org \
    --cc=atanas.filipov@oss.qualcomm.com \
    --cc=bryan.odonoghue@linaro.org \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=dmitry.baryshkov@oss.qualcomm.com \
    --cc=gjorgji.rosikopulos@oss.qualcomm.com \
    --cc=konradybcio@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=loic.poulain@oss.qualcomm.com \
    --cc=mchehab@kernel.org \
    --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