[PATCH AUTOSEL 6.19-6.18] media: qcom: camss: Do not enable cpas fast ahb clock for SM8550 VFE lite

Sasha Levin
2026-02-14T01:05:17Z

From: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>

[ Upstream commit a89e490ba3551823511588b7b3828d67f8b82954 ]

The clock is needed to stream images over a full VFE IP on SM8550 CAMSS,
and it should not be enabled, when an image stream is routed over any of
two lite VFE IPs on the SoC.

Signed-off-by: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
Acked-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Signed-off-by: Bryan O'Donoghue <bod@kernel.org>
Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---

LLM Generated explanations, may be completely bogus:

SM8550 CAMSS support was added in v6.15. This means the fix would only
be applicable to 6.15.y and newer stable trees.

### Impact Assessment

- **Who is affected**: Users of SM8550-based devices (Qualcomm
Snapdragon 8 Gen 2 platforms) using the camera lite VFE paths
- **Severity**: This is a correctness fix — enabling the wrong clock
could cause streaming failures or incorrect behavior on VFE lite paths
- **Scope**: Very narrow — only SM8550 CAMSS lite VFEs

### Decision

This is a small, well-contained hardware configuration fix that corrects
incorrect clock settings for SM8550 VFE lite IPs. It:
- Fixes a real bug (wrong clock enabled for lite VFE IPs causing
incorrect behavior)
- Is extremely small and low-risk (only static data changes)
- Is obviously correct (lite VFEs don't need the full VFE's fast AHB
clock)
- Has proper review (Acked-by subsystem maintainer)
- Falls into the "hardware quirk/workaround" category

The fix is similar to a device tree correction — it fixes incorrect
hardware resource descriptions in static driver data. While the SM8550
CAMSS support is relatively new (6.15+), the fix is safe and beneficial
for users of that hardware.

**YES**

drivers/media/platform/qcom/camss/camss.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/media/platform/qcom/camss/camss.c b/drivers/media/platform/qcom/camss/camss.c
index fcc2b2c3cba07..757c548af485a 100644
--- a/drivers/media/platform/qcom/camss/camss.c
+++ b/drivers/media/platform/qcom/camss/camss.c
@@ -2704,12 +2704,11 @@ static const struct camss_subdev_resources vfe_res_8550[] = {
/* VFE3 lite */
{
.regulators = {},
- .clock = { "gcc_axi_hf", "cpas_ahb", "cpas_fast_ahb_clk", "vfe_lite_ahb",
+ .clock = { "gcc_axi_hf", "cpas_ahb", "vfe_lite_ahb",
"vfe_lite", "cpas_ife_lite", "camnoc_axi" },
.clock_rate = { { 0 },
{ 80000000 },
{ 300000000, 400000000 },
- { 300000000, 400000000 },
{ 400000000, 480000000 },
{ 300000000, 400000000 },
{ 300000000, 400000000 } },
@@ -2726,12 +2725,11 @@ static const struct camss_subdev_resources vfe_res_8550[] = {
/* VFE4 lite */
{
.regulators = {},
- .clock = { "gcc_axi_hf", "cpas_ahb", "cpas_fast_ahb_clk", "vfe_lite_ahb",
+ .clock = { "gcc_axi_hf", "cpas_ahb", "vfe_lite_ahb",
"vfe_lite", "cpas_ife_lite", "camnoc_axi" },
.clock_rate = { { 0 },
{ 80000000 },
{ 300000000, 400000000 },
- { 300000000, 400000000 },
{ 400000000, 480000000 },
{ 300000000, 400000000 },
{ 300000000, 400000000 } },
--
2.51.0