On 5/18/22 15:11, Vladimir Zapolskiy wrote:
QCOM SM8250 camera subsystem depends on three power domains, at the moment all of them are not differentiated one from another, however the power domains compose a hierarchical structure with vfe0 and vfe1 as subdomains of titan_top, also managing vfe0 and vfe1 separately allows to get more fine-grained power control in runtime. The change relates to my review comment for v2 of CAMSS on SM8250 submission: https://lore.kernel.org/all/13ad033e-cd5d-3a8c-b036-50a3ac4245c0@xxxxxxxxxx/ Apparently it becomes important to manage CAMSS power domains much better for newer platforms, this referes to platforms with Titan GDSC, for instance CAMSS on SM8450 has 6 power domains, and dealing with them in bulk is not an option. There was a note in commit 2f6f8af67203 ("media: camss: Refactor VFE power domain toggling") about problems with power VFE domains on/off, but perhaps it's related to the fact that Titan GDSC is a special power domain and VFE are subdomains, the latter shall not be enabled earlier than the Titan, but the driver did not construct a proper hierarchy and leaves a room for races. The change should have no implications on any SM8250 CAMSS users, since none of the supported in upstream boards enables the camss device tree node. The correspondent changes in the driver will follow this dt specific series. Most likely a similar change is required for SDM845 platform, but it would need additional investigation and testing. Vladimir Zapolskiy (2): media: dt-bindings: media: sm8250-camss: Add power-domain-names property arm64: dts: qcom: sm8250: camss: Add power-domain-names property .../devicetree/bindings/media/qcom,sm8250-camss.yaml | 7 +++++++ arch/arm64/boot/dts/qcom/sm8250.dtsi | 1 + 2 files changed, 8 insertions(+)
These changes will be unneeded, if it is reliable to state that the order of 'power-domains' array values is fixed. From Documentation/devicetree/bindings/media/qcom,sm8250-camss.yaml power-domains: items: - description: IFE0 GDSC - Image Front End, Global Distributed Switch Controller. - description: IFE1 GDSC - Image Front End, Global Distributed Switch Controller. - description: Titan GDSC - Titan ISP Block, Global Distributed Switch Controller. Apparently it's insufficient to ensure the fixed order of the power domains by running a check against the schema, and likely it can not be improved, but please correct me here, if I'm wrong. That's said, what is the preferred way here? Leave everything as is and rely on the order of item descriptions, or add a new power-domain-names property? -- Best wishes, Vladimir