Re: [PATCH v2 2/5] media: qcom: camss: Convert to per-VFE pointer for power-domain linkages

From: Bryan O'Donoghue
Date: Fri Oct 27 2023 - 05:10:37 EST


On 26/10/2023 21:08, Konrad Dybcio wrote:
+    if (vfe->id >= camss->res->vfe_num)
          return 0;
P.S. this seems better suited for some warning, I think

Noo this indicates VFE lite !

power-domains = <VFE_0>,
<VFE_1>,
<TITAN_TOP>; // the controller pd

vfe-set = <VFE_0>, // has its own PD vfe->id = 0
<VFE_1>, // has its own PD vfe->id = 1
<VFE_LITE_N>; // has no PD vfe->id = 2

The basic problem this series fixes is magic indexing.

In the first instance, using named power-domains so that the ordering of declaration doesn't matter and we don't have funky code inferring if a power-domain belongs to the TOP or not.

Secondly though, which is what the first patch in the series does - is as I rebased I realised the VFE/VFE Lite thing was still there.

what vfe->id >= camss->res->vfe_num does is checks to see if the vfe->id <= a VFE not a VFE Lite id.

in other words we have yet another magic indexing problem requiring VFE_LITE_N to always be declared after VFE.

The solution here is

1. Make the driver support not caring about indexes any more
This series.
2. Name the power-domains in the various dtsis
Populating the struct resources in CAMSS to match
Next series
3. Gate new SoCs to _require_ named pds
Deprecate the legacy indexing support of 'n' kernel releases
4. Profit

So yeah the check above is I'm sorry to say not an error at all it implies VFE Lite...

---
bod