]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
media: qcom: camss: Use the CSIPHY id property to find clock names
authorBryan O'Donoghue <bryan.odonoghue@linaro.org>
Fri, 14 Mar 2025 23:35:55 +0000 (23:35 +0000)
committerHans Verkuil <hverkuil@xs4all.nl>
Fri, 11 Apr 2025 11:29:06 +0000 (13:29 +0200)
Use the CSIPHY id property to find clock names instead of relying on
generating the clock names based on the control-loop index.

x1e80100 has CSIPHY0, CSIPHY1, CSIPHY2 and CSIPHY4 so simple index naming
won't work whereas and 'id' property allows any ordering and any stepping
between the CSIPHY names.

Reviewed-by: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Signed-off-by: Bryan O'Donoghue <bod@kernel.org>
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
drivers/media/platform/qcom/camss/camss-csiphy.c

index c053616558a73c4a285a576c671aca47d05290f8..c622efcc92ff3781d7fc3ace0253c2d64c91e847 100644 (file)
@@ -586,7 +586,7 @@ int msm_csiphy_subdev_init(struct camss *camss,
 {
        struct device *dev = camss->dev;
        struct platform_device *pdev = to_platform_device(dev);
-       int i, j, k;
+       int i, j;
        int ret;
 
        csiphy->camss = camss;
@@ -680,23 +680,21 @@ int msm_csiphy_subdev_init(struct camss *camss,
                for (j = 0; j < clock->nfreqs; j++)
                        clock->freq[j] = res->clock_rate[i][j];
 
-               for (k = 0; k < camss->res->csiphy_num; k++) {
-                       csiphy->rate_set[i] = csiphy_match_clock_name(clock->name,
-                                                                     "csiphy%d_timer", k);
-                       if (csiphy->rate_set[i])
-                               break;
-
-                       if (camss->res->version == CAMSS_660) {
-                               csiphy->rate_set[i] = csiphy_match_clock_name(clock->name,
-                                                                             "csi%d_phy", k);
-                               if (csiphy->rate_set[i])
-                                       break;
-                       }
+               csiphy->rate_set[i] = csiphy_match_clock_name(clock->name,
+                                                             "csiphy%d_timer",
+                                                             csiphy->id);
+               if (csiphy->rate_set[i])
+                       continue;
 
-                       csiphy->rate_set[i] = csiphy_match_clock_name(clock->name, "csiphy%d", k);
+               if (camss->res->version == CAMSS_660) {
+                       csiphy->rate_set[i] = csiphy_match_clock_name(clock->name,
+                                                                     "csi%d_phy",
+                                                                      csiphy->id);
                        if (csiphy->rate_set[i])
-                               break;
+                               continue;
                }
+
+               csiphy->rate_set[i] = csiphy_match_clock_name(clock->name, "csiphy%d", csiphy->id);
        }
 
        /* CSIPHY supplies */