Thread (36 messages) 36 messages, 5 authors, 2024-01-22

Re: [PATCH 1/6] media: dt-bindings: Document SC8280XP/SM8350 Venus

From: Konrad Dybcio <hidden>
Date: 2023-08-07 18:45:39
Also in: linux-arm-msm, linux-media, lkml

On 7.08.2023 20:44, Bryan O'Donoghue wrote:
On 07/08/2023 16:02, Konrad Dybcio wrote:
quoted
On 7.08.2023 16:04, Krzysztof Kozlowski wrote:
quoted
On 07/08/2023 14:41, Konrad Dybcio wrote:
quoted
On 5.08.2023 21:29, Krzysztof Kozlowski wrote:
quoted
On 04/08/2023 22:09, Konrad Dybcio wrote:
quoted
Both of these SoCs implement an IRIS2 block, with SC8280XP being able
to clock it a bit higher.
...
quoted
+
+  iommus:
+    maxItems: 1
+
+  video-decoder:
+    type: object
+
+    properties:
+      compatible:
+        const: venus-decoder
That's not how compatibles are constructed... missing vendor prefix, SoC
or IP block name.
quoted
+
+    required:
+      - compatible
+
+    additionalProperties: false
Why do you need this child node? Child nodes without properties are
usually useless.
For both comments: I aligned with what was there..

The driver abuses these compats to probe enc/dec submodules, even though
every Venus implementation (to my knowledge) is implicitly enc/dec capable..
Holy crap, I see...
quoted
Perhaps a bigger clean-up is due. I guess I could just create the venc/vdec
devices from the venus core probe and get rid of this fake stuff?
Few devices (qcom,msm8996-venus.yaml, sdm660, sdm845) have clocks there,
so we actually could stay with these subnodes, just correct the
compatibles to a list with correct prefixes:

qcom,sc8280xp-venus-decoder + qcom,venus-decoder
Hm.. looks like pre-845-v2 (with the v2 being "v2 binding" and not
"v2 chip" or "v2 hardware") these were used to look up clocks but
then they were moved to the root node.

I am not quite sure if it makes sense to distinguish e.g.
sc8280xp-venus-decoder within sc8280xp-venus..

Perhaps deprecating the "8916 way" (clocks under subnodes), adding
some boilerplate to look up clocks/pds in both places and converting
everybody to the "7180 way" way of doing things (clocks under venus),
and then getting rid of venus encoder/decoder completely (by calling
device creation from venus probe) would be better. WDYT?

Konrad
As I understand it though, for some classes of venus hardware - earlier, it was possible to have two encoders or two decoders and it really didn't - perhaps still doesn't matter which order they are declared in.

That's the logic behind having a compat string that assigns either encoder or decoder to one of the logical blocks.

You can have any mixture of
- encoder
- decoder

- encoder
- encoder

- decoder
- decoder

- decoder
- encoder

- encoder

- decoder

I think it should *still* be the case - whether it is a practical reality or not, that any of those mapping can be selected and supported.
That can be taken care of with match data.

Konrad
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help