[PATCH 2/2] media: qcom: camss: Add missing clocks for VFE lite on 8775p

Wenmeng Liu posted 2 patches 3 weeks, 4 days ago
[PATCH 2/2] media: qcom: camss: Add missing clocks for VFE lite on 8775p
Posted by Wenmeng Liu 3 weeks, 4 days ago
Add missing required clocks (cpas_ahb and camnoc_axi) for VFE lite
instances on 8775p platform. These clocks are necessary for proper
VFE lite operation:

Fixes: e7b59e1d06fb ("media: qcom: camss: Add support for VFE 690")
Signed-off-by: Wenmeng Liu <wenmeng.liu@oss.qualcomm.com>
---
 drivers/media/platform/qcom/camss/camss.c | 40 +++++++++++++++++++------------
 1 file changed, 25 insertions(+), 15 deletions(-)

diff --git a/drivers/media/platform/qcom/camss/camss.c b/drivers/media/platform/qcom/camss/camss.c
index 4a0bf8acd7645f8cd8c1b4cb9b6ff6f3a54d42e8..d325539defbecc7f4fbcb9d20fb69884e109a459 100644
--- a/drivers/media/platform/qcom/camss/camss.c
+++ b/drivers/media/platform/qcom/camss/camss.c
@@ -3746,15 +3746,17 @@ static const struct camss_subdev_resources vfe_res_8775p[] = {
 	/* VFE2 (lite) */
 	{
 		.regulators = {},
-		.clock = { "cpas_vfe_lite", "vfe_lite_ahb",
+		.clock = { "cpas_ahb", "cpas_vfe_lite", "vfe_lite_ahb",
 			   "vfe_lite_csid", "vfe_lite_cphy_rx",
-			   "vfe_lite"},
+			   "vfe_lite", "camnoc_axi"},
 		.clock_rate = {
-			{ 0, 0, 0, 0  },
+			{ 0 },
+			{ 0 },
 			{ 300000000, 400000000, 400000000, 400000000 },
 			{ 400000000, 400000000, 400000000, 400000000 },
 			{ 400000000, 400000000, 400000000, 400000000 },
 			{ 480000000, 600000000, 600000000, 600000000 },
+			{ 400000000 },
 		},
 		.reg = { "vfe_lite0" },
 		.interrupt = { "vfe_lite0" },
@@ -3769,15 +3771,17 @@ static const struct camss_subdev_resources vfe_res_8775p[] = {
 	/* VFE3 (lite) */
 	{
 		.regulators = {},
-		.clock = { "cpas_vfe_lite", "vfe_lite_ahb",
+		.clock = { "cpas_ahb", "cpas_vfe_lite", "vfe_lite_ahb",
 			   "vfe_lite_csid", "vfe_lite_cphy_rx",
-			   "vfe_lite"},
+			   "vfe_lite", "camnoc_axi"},
 		.clock_rate = {
-			{ 0, 0, 0, 0  },
+			{ 0 },
+			{ 0 },
 			{ 300000000, 400000000, 400000000, 400000000 },
 			{ 400000000, 400000000, 400000000, 400000000 },
 			{ 400000000, 400000000, 400000000, 400000000 },
 			{ 480000000, 600000000, 600000000, 600000000 },
+			{ 400000000 },
 		},
 		.reg = { "vfe_lite1" },
 		.interrupt = { "vfe_lite1" },
@@ -3792,15 +3796,17 @@ static const struct camss_subdev_resources vfe_res_8775p[] = {
 	/* VFE4 (lite) */
 	{
 		.regulators = {},
-		.clock = { "cpas_vfe_lite", "vfe_lite_ahb",
+		.clock = { "cpas_ahb", "cpas_vfe_lite", "vfe_lite_ahb",
 			   "vfe_lite_csid", "vfe_lite_cphy_rx",
-			   "vfe_lite"},
+			   "vfe_lite", "camnoc_axi"},
 		.clock_rate = {
-			{ 0, 0, 0, 0  },
+			{ 0 },
+			{ 0 },
 			{ 300000000, 400000000, 400000000, 400000000 },
 			{ 400000000, 400000000, 400000000, 400000000 },
 			{ 400000000, 400000000, 400000000, 400000000 },
 			{ 480000000, 600000000, 600000000, 600000000 },
+			{ 400000000 },
 		},
 		.reg = { "vfe_lite2" },
 		.interrupt = { "vfe_lite2" },
@@ -3815,15 +3821,17 @@ static const struct camss_subdev_resources vfe_res_8775p[] = {
 	/* VFE5 (lite) */
 	{
 		.regulators = {},
-		.clock = { "cpas_vfe_lite", "vfe_lite_ahb",
+		.clock = { "cpas_ahb", "cpas_vfe_lite", "vfe_lite_ahb",
 			   "vfe_lite_csid", "vfe_lite_cphy_rx",
-			   "vfe_lite"},
+			   "vfe_lite", "camnoc_axi"},
 		.clock_rate = {
-			{ 0, 0, 0, 0  },
+			{ 0 },
+			{ 0 },
 			{ 300000000, 400000000, 400000000, 400000000 },
 			{ 400000000, 400000000, 400000000, 400000000 },
 			{ 400000000, 400000000, 400000000, 400000000 },
 			{ 480000000, 600000000, 600000000, 600000000 },
+			{ 400000000 },
 		},
 		.reg = { "vfe_lite3" },
 		.interrupt = { "vfe_lite3" },
@@ -3838,15 +3846,17 @@ static const struct camss_subdev_resources vfe_res_8775p[] = {
 	/* VFE6 (lite) */
 	{
 		.regulators = {},
-		.clock = { "cpas_vfe_lite", "vfe_lite_ahb",
+		.clock = { "cpas_ahb", "cpas_vfe_lite", "vfe_lite_ahb",
 			   "vfe_lite_csid", "vfe_lite_cphy_rx",
-			   "vfe_lite"},
+			   "vfe_lite", "camnoc_axi"},
 		.clock_rate = {
-			{ 0, 0, 0, 0  },
+			{ 0 },
+			{ 0 },
 			{ 300000000, 400000000, 400000000, 400000000 },
 			{ 400000000, 400000000, 400000000, 400000000 },
 			{ 400000000, 400000000, 400000000, 400000000 },
 			{ 480000000, 600000000, 600000000, 600000000 },
+			{ 400000000 },
 		},
 		.reg = { "vfe_lite4" },
 		.interrupt = { "vfe_lite4" },

-- 
2.34.1
Re: [PATCH 2/2] media: qcom: camss: Add missing clocks for VFE lite on 8775p
Posted by Bryan O'Donoghue 3 weeks, 4 days ago
On 13/03/2026 09:42, Wenmeng Liu wrote:
> Add missing required clocks (cpas_ahb and camnoc_axi) for VFE lite
> instances on 8775p platform. These clocks are necessary for proper
> VFE lite operation:
> 
> Fixes: e7b59e1d06fb ("media: qcom: camss: Add support for VFE 690")
> Signed-off-by: Wenmeng Liu <wenmeng.liu@oss.qualcomm.com>
> ---
>   drivers/media/platform/qcom/camss/camss.c | 40 +++++++++++++++++++------------
>   1 file changed, 25 insertions(+), 15 deletions(-)
> 
> diff --git a/drivers/media/platform/qcom/camss/camss.c b/drivers/media/platform/qcom/camss/camss.c
> index 4a0bf8acd7645f8cd8c1b4cb9b6ff6f3a54d42e8..d325539defbecc7f4fbcb9d20fb69884e109a459 100644
> --- a/drivers/media/platform/qcom/camss/camss.c
> +++ b/drivers/media/platform/qcom/camss/camss.c
> @@ -3746,15 +3746,17 @@ static const struct camss_subdev_resources vfe_res_8775p[] = {
>   	/* VFE2 (lite) */
>   	{
>   		.regulators = {},
> -		.clock = { "cpas_vfe_lite", "vfe_lite_ahb",
> +		.clock = { "cpas_ahb", "cpas_vfe_lite", "vfe_lite_ahb",
>   			   "vfe_lite_csid", "vfe_lite_cphy_rx",
> -			   "vfe_lite"},
> +			   "vfe_lite", "camnoc_axi"},
>   		.clock_rate = {
> -			{ 0, 0, 0, 0  },
> +			{ 0 },
> +			{ 0 },
>   			{ 300000000, 400000000, 400000000, 400000000 },
>   			{ 400000000, 400000000, 400000000, 400000000 },
>   			{ 400000000, 400000000, 400000000, 400000000 },
>   			{ 480000000, 600000000, 600000000, 600000000 },
> +			{ 400000000 },
>   		},
>   		.reg = { "vfe_lite0" },
>   		.interrupt = { "vfe_lite0" },
> @@ -3769,15 +3771,17 @@ static const struct camss_subdev_resources vfe_res_8775p[] = {
>   	/* VFE3 (lite) */
>   	{
>   		.regulators = {},
> -		.clock = { "cpas_vfe_lite", "vfe_lite_ahb",
> +		.clock = { "cpas_ahb", "cpas_vfe_lite", "vfe_lite_ahb",
>   			   "vfe_lite_csid", "vfe_lite_cphy_rx",
> -			   "vfe_lite"},
> +			   "vfe_lite", "camnoc_axi"},
>   		.clock_rate = {
> -			{ 0, 0, 0, 0  },
> +			{ 0 },
> +			{ 0 },
>   			{ 300000000, 400000000, 400000000, 400000000 },
>   			{ 400000000, 400000000, 400000000, 400000000 },
>   			{ 400000000, 400000000, 400000000, 400000000 },
>   			{ 480000000, 600000000, 600000000, 600000000 },
> +			{ 400000000 },
>   		},
>   		.reg = { "vfe_lite1" },
>   		.interrupt = { "vfe_lite1" },
> @@ -3792,15 +3796,17 @@ static const struct camss_subdev_resources vfe_res_8775p[] = {
>   	/* VFE4 (lite) */
>   	{
>   		.regulators = {},
> -		.clock = { "cpas_vfe_lite", "vfe_lite_ahb",
> +		.clock = { "cpas_ahb", "cpas_vfe_lite", "vfe_lite_ahb",
>   			   "vfe_lite_csid", "vfe_lite_cphy_rx",
> -			   "vfe_lite"},
> +			   "vfe_lite", "camnoc_axi"},
>   		.clock_rate = {
> -			{ 0, 0, 0, 0  },
> +			{ 0 },
> +			{ 0 },
>   			{ 300000000, 400000000, 400000000, 400000000 },
>   			{ 400000000, 400000000, 400000000, 400000000 },
>   			{ 400000000, 400000000, 400000000, 400000000 },
>   			{ 480000000, 600000000, 600000000, 600000000 },
> +			{ 400000000 },
>   		},
>   		.reg = { "vfe_lite2" },
>   		.interrupt = { "vfe_lite2" },
> @@ -3815,15 +3821,17 @@ static const struct camss_subdev_resources vfe_res_8775p[] = {
>   	/* VFE5 (lite) */
>   	{
>   		.regulators = {},
> -		.clock = { "cpas_vfe_lite", "vfe_lite_ahb",
> +		.clock = { "cpas_ahb", "cpas_vfe_lite", "vfe_lite_ahb",
>   			   "vfe_lite_csid", "vfe_lite_cphy_rx",
> -			   "vfe_lite"},
> +			   "vfe_lite", "camnoc_axi"},
>   		.clock_rate = {
> -			{ 0, 0, 0, 0  },
> +			{ 0 },
> +			{ 0 },
>   			{ 300000000, 400000000, 400000000, 400000000 },
>   			{ 400000000, 400000000, 400000000, 400000000 },
>   			{ 400000000, 400000000, 400000000, 400000000 },
>   			{ 480000000, 600000000, 600000000, 600000000 },
> +			{ 400000000 },
>   		},
>   		.reg = { "vfe_lite3" },
>   		.interrupt = { "vfe_lite3" },
> @@ -3838,15 +3846,17 @@ static const struct camss_subdev_resources vfe_res_8775p[] = {
>   	/* VFE6 (lite) */
>   	{
>   		.regulators = {},
> -		.clock = { "cpas_vfe_lite", "vfe_lite_ahb",
> +		.clock = { "cpas_ahb", "cpas_vfe_lite", "vfe_lite_ahb",
>   			   "vfe_lite_csid", "vfe_lite_cphy_rx",
> -			   "vfe_lite"},
> +			   "vfe_lite", "camnoc_axi"},
>   		.clock_rate = {
> -			{ 0, 0, 0, 0  },
> +			{ 0 },
> +			{ 0 },
>   			{ 300000000, 400000000, 400000000, 400000000 },
>   			{ 400000000, 400000000, 400000000, 400000000 },
>   			{ 400000000, 400000000, 400000000, 400000000 },
>   			{ 480000000, 600000000, 600000000, 600000000 },
> +			{ 400000000 },
>   		},
>   		.reg = { "vfe_lite4" },
>   		.interrupt = { "vfe_lite4" },
> 

Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>

---
bod