This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: qcom: camss: Pass icc bandwidth table as a platform parameter
Author:  Bryan O'Donoghue <bryan.odonog...@linaro.org>
Date:    Mon Sep 25 16:46:54 2023 +0100

Pass the bandwidth table as a platform parameter not if/else derived
pointer to the static table.

Signed-off-by: Bryan O'Donoghue <bryan.odonog...@linaro.org>
Acked-by: Konrad Dybcio <konrad.dyb...@linaro.org>
Reviewed-by: Laurent Pinchart <laurent.pinch...@ideasonboard.com>
Signed-off-by: Hans Verkuil <hverkuil-ci...@xs4all.nl>

 drivers/media/platform/qcom/camss/camss.c | 29 +++++++++--------------------
 drivers/media/platform/qcom/camss/camss.h |  3 ++-
 2 files changed, 11 insertions(+), 21 deletions(-)

---

diff --git a/drivers/media/platform/qcom/camss/camss.c 
b/drivers/media/platform/qcom/camss/camss.c
index 8fa5dee75672..f502b4d9e07c 100644
--- a/drivers/media/platform/qcom/camss/camss.c
+++ b/drivers/media/platform/qcom/camss/camss.c
@@ -1485,21 +1485,15 @@ fail_pm:
 static int camss_icc_get(struct camss *camss)
 {
        const struct resources_icc *icc_res;
-       int nbr_icc_paths = 0;
        int i;
 
-       if (camss->version == CAMSS_8250) {
-               icc_res = &icc_res_sm8250[0];
-               nbr_icc_paths = ICC_SM8250_COUNT;
-       }
+       icc_res = camss->res->icc_res;
 
-       for (i = 0; i < nbr_icc_paths; i++) {
+       for (i = 0; i < camss->res->icc_path_num; i++) {
                camss->icc_path[i] = devm_of_icc_get(camss->dev,
                                                     icc_res[i].name);
                if (IS_ERR(camss->icc_path[i]))
                        return PTR_ERR(camss->icc_path[i]);
-
-               camss->icc_bw_tbl[i] = icc_res[i].icc_bw_tbl;
        }
 
        return 0;
@@ -1742,6 +1736,8 @@ static const struct camss_resources sm8250_resources = {
        .csiphy_res = csiphy_res_8250,
        .csid_res = csid_res_8250,
        .vfe_res = vfe_res_8250,
+       .icc_res = icc_res_sm8250,
+       .icc_path_num = ARRAY_SIZE(icc_res_sm8250),
 };
 
 static const struct of_device_id camss_dt_match[] = {
@@ -1758,14 +1754,10 @@ MODULE_DEVICE_TABLE(of, camss_dt_match);
 static int __maybe_unused camss_runtime_suspend(struct device *dev)
 {
        struct camss *camss = dev_get_drvdata(dev);
-       int nbr_icc_paths = 0;
        int i;
        int ret;
 
-       if (camss->version == CAMSS_8250)
-               nbr_icc_paths = ICC_SM8250_COUNT;
-
-       for (i = 0; i < nbr_icc_paths; i++) {
+       for (i = 0; i < camss->res->icc_path_num; i++) {
                ret = icc_set_bw(camss->icc_path[i], 0, 0);
                if (ret)
                        return ret;
@@ -1777,17 +1769,14 @@ static int __maybe_unused camss_runtime_suspend(struct 
device *dev)
 static int __maybe_unused camss_runtime_resume(struct device *dev)
 {
        struct camss *camss = dev_get_drvdata(dev);
-       int nbr_icc_paths = 0;
+       const struct resources_icc *icc_res = camss->res->icc_res;
        int i;
        int ret;
 
-       if (camss->version == CAMSS_8250)
-               nbr_icc_paths = ICC_SM8250_COUNT;
-
-       for (i = 0; i < nbr_icc_paths; i++) {
+       for (i = 0; i < camss->res->icc_path_num; i++) {
                ret = icc_set_bw(camss->icc_path[i],
-                                camss->icc_bw_tbl[i].avg,
-                                camss->icc_bw_tbl[i].peak);
+                                icc_res[i].icc_bw_tbl.avg,
+                                icc_res[i].icc_bw_tbl.peak);
                if (ret)
                        return ret;
        }
diff --git a/drivers/media/platform/qcom/camss/camss.h 
b/drivers/media/platform/qcom/camss/camss.h
index 20c84e832888..8b2e4adb923e 100644
--- a/drivers/media/platform/qcom/camss/camss.h
+++ b/drivers/media/platform/qcom/camss/camss.h
@@ -84,6 +84,8 @@ struct camss_resources {
        const struct camss_subdev_resources *csid_res;
        const struct camss_subdev_resources *ispif_res;
        const struct camss_subdev_resources *vfe_res;
+       const struct resources_icc *icc_res;
+       const unsigned int icc_path_num;
 };
 
 struct camss {
@@ -105,7 +107,6 @@ struct camss {
        struct device **genpd;
        struct device_link **genpd_link;
        struct icc_path *icc_path[ICC_SM8250_COUNT];
-       struct icc_bw_tbl icc_bw_tbl[ICC_SM8250_COUNT];
        const struct camss_resources *res;
 };
 

_______________________________________________
linuxtv-commits mailing list
linuxtv-commits@linuxtv.org
https://www.linuxtv.org/cgi-bin/mailman/listinfo/linuxtv-commits

Reply via email to