[PATCH 0/4] media: qcom: camss: share VFE clock sources on SM8250

From: Atanas Filipov

Date: Fri Oct 23 2026 - 11:36:02 EST


On SM8250 several VFE clocks are fed by one clock source: the AREG
clocks of the two full VFEs share the fast AHB source, the two VFE Lite
share one core clock source, and all four VFEs share the camera NoC AXI
source. Each VFE sets such a source to its own rate, so the last VFE to
power on wins and can lower the rate under a VFE that is still running.
The CSID also sets the VFE core clocks to their lowest level when it
powers on after the VFE, and nothing sets the camera NoC AXI rate, so
the camera NoC runs from XO and two concurrent streams stall.

This series lets the VFE own its clock rates and aggregates the shared
sources within CAMSS:

- Patch 1 clamps each VFE clock to its highest listed rate instead of
failing, as the VFE clock rate tables need not have the same number
of levels.
- Patch 2 stops the CSID from setting the VFE core clock rates.
- Patch 3 groups the VFE clocks by clock source, so that a shared
source runs at the highest rate requested by the running VFEs. It is
enabled per SoC, so far only on SM8250, and also lets the VFE set the
AREG clock rate.
- Patch 4 drops the unused camera NoC AXI RCG from the VFE clocks and
lets the VFE set the camera NoC AXI rate.

The aggregation only covers the CAMSS VFEs. Drivers outside CAMSS that
use the same shared clock sources are not covered and are left to a
separate change.

Tested on RB5 (QRB5165) with imx577 and ov9282 sensors and the CSID test
pattern generator, on single, concurrent test pattern plus sensor, and
concurrent dual sensor RDI captures on all four VFEs: all streams
complete, the shared sources stay at the highest requested rate while
another VFE runs, dedicated clocks drop to XO on power off, and the
camera NoC AXI clock runs at 300 or 400 MHz while streaming, without
the concurrent capture stalls seen before the series.

Atanas Filipov (4):
media: qcom: camss: clamp VFE clock rates to the highest level
media: qcom: camss: sm8250: do not set VFE core clock rates from CSID
media: qcom: camss: share VFE clock sources by the highest rate
media: qcom: camss: sm8250: set the camera NoC AXI rate from the VFE

drivers/media/platform/qcom/camss/camss-vfe.c | 32 ++-
drivers/media/platform/qcom/camss/camss.c | 211 ++++++++++++++++--
drivers/media/platform/qcom/camss/camss.h | 13 ++
3 files changed, 224 insertions(+), 32 deletions(-)


base-commit: bd1ecbb61afefc6a8b876ccbc31e9228b44e9eab
--
2.34.1