interconnect: constify of_phandle_args in xlate
authorKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Tue, 20 Feb 2024 07:22:13 +0000 (08:22 +0100)
committerGeorgi Djakov <djakov@kernel.org>
Sun, 25 Feb 2024 22:38:17 +0000 (00:38 +0200)
The xlate callbacks are supposed to translate of_phandle_args to proper
provider without modifying the of_phandle_args.  Make the argument
pointer to const for code safety and readability.

Acked-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Acked-by: Thierry Reding <treding@nvidia.com> # Tegra
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Acked-by: Alim Akhtar <alim.akhtar@samsung.com> # Samsung
Link: https://lore.kernel.org/r/20240220072213.35779-1-krzysztof.kozlowski@linaro.org
Signed-off-by: Georgi Djakov <djakov@kernel.org>
14 files changed:
drivers/interconnect/core.c
drivers/interconnect/qcom/icc-common.c
drivers/interconnect/qcom/icc-common.h
drivers/interconnect/samsung/exynos.c
drivers/memory/tegra/mc.c
drivers/memory/tegra/tegra124-emc.c
drivers/memory/tegra/tegra124.c
drivers/memory/tegra/tegra186-emc.c
drivers/memory/tegra/tegra20-emc.c
drivers/memory/tegra/tegra20.c
drivers/memory/tegra/tegra30-emc.c
drivers/memory/tegra/tegra30.c
include/linux/interconnect-provider.h
include/soc/tegra/mc.h

index 50bac2d79d9b5e4bea6cf76a8ffa32658ebb70ad..5d1010cafed8d3a3b65349dd58a0741d445ffcd7 100644 (file)
@@ -343,7 +343,7 @@ EXPORT_SYMBOL_GPL(icc_std_aggregate);
  * an array of icc nodes specified in the icc_onecell_data struct when
  * registering the provider.
  */
-struct icc_node *of_icc_xlate_onecell(struct of_phandle_args *spec,
+struct icc_node *of_icc_xlate_onecell(const struct of_phandle_args *spec,
                                      void *data)
 {
        struct icc_onecell_data *icc_data = data;
@@ -368,7 +368,7 @@ EXPORT_SYMBOL_GPL(of_icc_xlate_onecell);
  * Returns a valid pointer to struct icc_node_data on success or ERR_PTR()
  * on failure.
  */
-struct icc_node_data *of_icc_get_from_provider(struct of_phandle_args *spec)
+struct icc_node_data *of_icc_get_from_provider(const struct of_phandle_args *spec)
 {
        struct icc_node *node = ERR_PTR(-EPROBE_DEFER);
        struct icc_node_data *data = NULL;
index f27f4fdc453170fc60bb4cedea2d0004b7dad9f7..9b9ee113f1727fb0aca0c60a350656d161ee4358 100644 (file)
@@ -9,7 +9,8 @@
 
 #include "icc-common.h"
 
-struct icc_node_data *qcom_icc_xlate_extended(struct of_phandle_args *spec, void *data)
+struct icc_node_data *qcom_icc_xlate_extended(const struct of_phandle_args *spec,
+                                             void *data)
 {
        struct icc_node_data *ndata;
        struct icc_node *node;
index 33bb2c38dff339fd6ac1cde49b203abc1da036dd..21c39b1639486b144df856adfb2a4141a53f919b 100644 (file)
@@ -8,6 +8,7 @@
 
 #include <linux/interconnect-provider.h>
 
-struct icc_node_data *qcom_icc_xlate_extended(struct of_phandle_args *spec, void *data);
+struct icc_node_data *qcom_icc_xlate_extended(const struct of_phandle_args *spec,
+                                             void *data);
 
 #endif
index 1ba14cb45d5a2a42378802feaf293c798b893ad2..c9e5361e17c5b03c2c250e601d6ee6a63c88064e 100644 (file)
@@ -82,7 +82,7 @@ static int exynos_generic_icc_set(struct icc_node *src, struct icc_node *dst)
        return 0;
 }
 
-static struct icc_node *exynos_generic_icc_xlate(struct of_phandle_args *spec,
+static struct icc_node *exynos_generic_icc_xlate(const struct of_phandle_args *spec,
                                                 void *data)
 {
        struct exynos_icc_priv *priv = data;
index a083921a8968ba8471b440fe1259e00ac4f3c812..224b488794e5bcb1ad58fdfe23713e4e93b894d3 100644 (file)
@@ -755,7 +755,7 @@ const char *const tegra_mc_error_names[8] = {
        [6] = "SMMU translation error",
 };
 
-struct icc_node *tegra_mc_icc_xlate(struct of_phandle_args *spec, void *data)
+struct icc_node *tegra_mc_icc_xlate(const struct of_phandle_args *spec, void *data)
 {
        struct tegra_mc *mc = icc_provider_to_tegra_mc(data);
        struct icc_node *node;
index 00ed2b6a0d1b27e0466bd2ab14e82b7efc6c1ae0..47c0c19e13fd5a3af043836d29119a4db5feed7b 100644 (file)
@@ -1285,7 +1285,7 @@ to_tegra_emc_provider(struct icc_provider *provider)
 }
 
 static struct icc_node_data *
-emc_of_icc_xlate_extended(struct of_phandle_args *spec, void *data)
+emc_of_icc_xlate_extended(const struct of_phandle_args *spec, void *data)
 {
        struct icc_provider *provider = data;
        struct icc_node_data *ndata;
index 470b7dbab2c2fc0904a0a035d59508f660665398..9d7393e19f125663a0e03e9c56137ef6baf22b01 100644 (file)
@@ -1170,7 +1170,7 @@ static int tegra124_mc_icc_aggreate(struct icc_node *node, u32 tag, u32 avg_bw,
 }
 
 static struct icc_node_data *
-tegra124_mc_of_icc_xlate_extended(struct of_phandle_args *spec, void *data)
+tegra124_mc_of_icc_xlate_extended(const struct of_phandle_args *spec, void *data)
 {
        struct tegra_mc *mc = icc_provider_to_tegra_mc(data);
        const struct tegra_mc_client *client;
index fcd4aea48bda9cec22c02c970a987c3ca9cbb76b..57d9ae12fcfe1a8e0fe04ceff0e9f94350c8a3e2 100644 (file)
@@ -236,7 +236,7 @@ static int tegra_emc_icc_set_bw(struct icc_node *src, struct icc_node *dst)
 }
 
 static struct icc_node *
-tegra_emc_of_icc_xlate(struct of_phandle_args *spec, void *data)
+tegra_emc_of_icc_xlate(const struct of_phandle_args *spec, void *data)
 {
        struct icc_provider *provider = data;
        struct icc_node *node;
index fd595c851a27865bb9044818596062e797ed80f6..97cf59523b0b1705d3bd6e23c0176756c89d58ba 100644 (file)
@@ -950,7 +950,7 @@ to_tegra_emc_provider(struct icc_provider *provider)
 }
 
 static struct icc_node_data *
-emc_of_icc_xlate_extended(struct of_phandle_args *spec, void *data)
+emc_of_icc_xlate_extended(const struct of_phandle_args *spec, void *data)
 {
        struct icc_provider *provider = data;
        struct icc_node_data *ndata;
index aa4b97d5e73236f2c5185430d06a6fcf69f32c09..a3022e715deef14e31490f1456f4dd102459afe3 100644 (file)
@@ -390,7 +390,7 @@ static int tegra20_mc_icc_aggreate(struct icc_node *node, u32 tag, u32 avg_bw,
 }
 
 static struct icc_node_data *
-tegra20_mc_of_icc_xlate_extended(struct of_phandle_args *spec, void *data)
+tegra20_mc_of_icc_xlate_extended(const struct of_phandle_args *spec, void *data)
 {
        struct tegra_mc *mc = icc_provider_to_tegra_mc(data);
        unsigned int i, idx = spec->args[0];
index 9eae25c57ec6ec1ca2e1b39cfb794f01a6541291..d7b0a23c2d7dbdd6f095ef3f3cee6691dba60e3c 100644 (file)
@@ -1468,7 +1468,7 @@ to_tegra_emc_provider(struct icc_provider *provider)
 }
 
 static struct icc_node_data *
-emc_of_icc_xlate_extended(struct of_phandle_args *spec, void *data)
+emc_of_icc_xlate_extended(const struct of_phandle_args *spec, void *data)
 {
        struct icc_provider *provider = data;
        struct icc_node_data *ndata;
index 06f8b35e0a149d703929f4d15bfbbbf0f6ffc34b..d3e685c8431ffaa30ee099f5e09df23585b3e1e1 100644 (file)
@@ -1332,7 +1332,7 @@ static int tegra30_mc_icc_aggreate(struct icc_node *node, u32 tag, u32 avg_bw,
 }
 
 static struct icc_node_data *
-tegra30_mc_of_icc_xlate_extended(struct of_phandle_args *spec, void *data)
+tegra30_mc_of_icc_xlate_extended(const struct of_phandle_args *spec, void *data)
 {
        struct tegra_mc *mc = icc_provider_to_tegra_mc(data);
        const struct tegra_mc_client *client;
index 7ba183f221f1828f35cd90a6c09310f6bfb62409..f5aef8784692102d41f84132ba3f7bf9353c14c8 100644 (file)
@@ -36,7 +36,7 @@ struct icc_onecell_data {
        struct icc_node *nodes[] __counted_by(num_nodes);
 };
 
-struct icc_node *of_icc_xlate_onecell(struct of_phandle_args *spec,
+struct icc_node *of_icc_xlate_onecell(const struct of_phandle_args *spec,
                                      void *data);
 
 /**
@@ -65,8 +65,9 @@ struct icc_provider {
                         u32 peak_bw, u32 *agg_avg, u32 *agg_peak);
        void (*pre_aggregate)(struct icc_node *node);
        int (*get_bw)(struct icc_node *node, u32 *avg, u32 *peak);
-       struct icc_node* (*xlate)(struct of_phandle_args *spec, void *data);
-       struct icc_node_data* (*xlate_extended)(struct of_phandle_args *spec, void *data);
+       struct icc_node* (*xlate)(const struct of_phandle_args *spec, void *data);
+       struct icc_node_data* (*xlate_extended)(const struct of_phandle_args *spec,
+                                               void *data);
        struct device           *dev;
        int                     users;
        bool                    inter_set;
@@ -124,7 +125,7 @@ int icc_nodes_remove(struct icc_provider *provider);
 void icc_provider_init(struct icc_provider *provider);
 int icc_provider_register(struct icc_provider *provider);
 void icc_provider_deregister(struct icc_provider *provider);
-struct icc_node_data *of_icc_get_from_provider(struct of_phandle_args *spec);
+struct icc_node_data *of_icc_get_from_provider(const struct of_phandle_args *spec);
 void icc_sync_state(struct device *dev);
 
 #else
@@ -171,7 +172,7 @@ static inline int icc_provider_register(struct icc_provider *provider)
 
 static inline void icc_provider_deregister(struct icc_provider *provider) { }
 
-static inline struct icc_node_data *of_icc_get_from_provider(struct of_phandle_args *spec)
+static inline struct icc_node_data *of_icc_get_from_provider(const struct of_phandle_args *spec)
 {
        return ERR_PTR(-ENOTSUPP);
 }
index af1d73a7f0cd10736e2e403be2f3e3942f1687a7..6ee4c59db6201f9e2d415349f4385ce8d07226a3 100644 (file)
@@ -146,13 +146,14 @@ struct tegra_mc_icc_ops {
        int (*set)(struct icc_node *src, struct icc_node *dst);
        int (*aggregate)(struct icc_node *node, u32 tag, u32 avg_bw,
                         u32 peak_bw, u32 *agg_avg, u32 *agg_peak);
-       struct icc_node* (*xlate)(struct of_phandle_args *spec, void *data);
-       struct icc_node_data *(*xlate_extended)(struct of_phandle_args *spec,
+       struct icc_node* (*xlate)(const struct of_phandle_args *spec, void *data);
+       struct icc_node_data *(*xlate_extended)(const struct of_phandle_args *spec,
                                                void *data);
        int (*get_bw)(struct icc_node *node, u32 *avg, u32 *peak);
 };
 
-struct icc_node *tegra_mc_icc_xlate(struct of_phandle_args *spec, void *data);
+struct icc_node *tegra_mc_icc_xlate(const struct of_phandle_args *spec,
+                                   void *data);
 extern const struct tegra_mc_icc_ops tegra_mc_icc_ops;
 
 struct tegra_mc_ops {