* [PATCH 0/3] arm_scmi: Constify ops pointers in struct scmi_handle
@ 2020-09-06 23:04 Rikard Falkeborn
2020-09-06 23:04 ` [PATCH 1/3] cpufreq: arm_scmi: Constify scmi_perf_ops pointers Rikard Falkeborn
` (3 more replies)
0 siblings, 4 replies; 9+ messages in thread
From: Rikard Falkeborn @ 2020-09-06 23:04 UTC (permalink / raw)
To: linux-arm-kernel, linux-pm, linux-kernel
Cc: Sudeep Holla, Rafael J. Wysocki, Viresh Kumar, Rikard Falkeborn
A small patch series aiming to constify static scmi_*_ops structs in
drivers/firmware/arm_scmi. Since these are not modified, constify them
to allow the compiler to put them in read-only memory.
Rikard Falkeborn (3):
cpufreq: arm_scmi: Constify scmi_perf_ops pointers
firmware: arm_scmi: Constify ops pointers in scmi_handle
firmware: arm_scmi: Constify static scmi-ops
drivers/cpufreq/scmi-cpufreq.c | 6 +++---
drivers/firmware/arm_scmi/clock.c | 2 +-
drivers/firmware/arm_scmi/common.h | 2 +-
drivers/firmware/arm_scmi/mailbox.c | 2 +-
drivers/firmware/arm_scmi/notify.c | 2 +-
drivers/firmware/arm_scmi/perf.c | 2 +-
drivers/firmware/arm_scmi/power.c | 2 +-
drivers/firmware/arm_scmi/reset.c | 2 +-
drivers/firmware/arm_scmi/sensors.c | 2 +-
drivers/firmware/arm_scmi/smc.c | 2 +-
include/linux/scmi_protocol.h | 12 ++++++------
11 files changed, 18 insertions(+), 18 deletions(-)
--
2.28.0
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 1/3] cpufreq: arm_scmi: Constify scmi_perf_ops pointers
2020-09-06 23:04 [PATCH 0/3] arm_scmi: Constify ops pointers in struct scmi_handle Rikard Falkeborn
@ 2020-09-06 23:04 ` Rikard Falkeborn
2020-09-07 10:22 ` Sudeep Holla
2020-09-06 23:04 ` [PATCH 2/3] firmware: arm_scmi: Constify ops pointers in scmi_handle Rikard Falkeborn
` (2 subsequent siblings)
3 siblings, 1 reply; 9+ messages in thread
From: Rikard Falkeborn @ 2020-09-06 23:04 UTC (permalink / raw)
To: linux-arm-kernel, linux-pm, linux-kernel
Cc: Sudeep Holla, Rafael J. Wysocki, Viresh Kumar, Rikard Falkeborn
The perf_ops are not modified through this pointer. Make them const to
indicate that. This is in preparation to make the scmi-ops pointers in
scmi_handle const.
Signed-off-by: Rikard Falkeborn <rikard.falkeborn@gmail.com>
---
drivers/cpufreq/scmi-cpufreq.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/cpufreq/scmi-cpufreq.c b/drivers/cpufreq/scmi-cpufreq.c
index fb42e3390377..46b268095421 100644
--- a/drivers/cpufreq/scmi-cpufreq.c
+++ b/drivers/cpufreq/scmi-cpufreq.c
@@ -29,7 +29,7 @@ static const struct scmi_handle *handle;
static unsigned int scmi_cpufreq_get_rate(unsigned int cpu)
{
struct cpufreq_policy *policy = cpufreq_cpu_get_raw(cpu);
- struct scmi_perf_ops *perf_ops = handle->perf_ops;
+ const struct scmi_perf_ops *perf_ops = handle->perf_ops;
struct scmi_data *priv = policy->driver_data;
unsigned long rate;
int ret;
@@ -50,7 +50,7 @@ scmi_cpufreq_set_target(struct cpufreq_policy *policy, unsigned int index)
{
int ret;
struct scmi_data *priv = policy->driver_data;
- struct scmi_perf_ops *perf_ops = handle->perf_ops;
+ const struct scmi_perf_ops *perf_ops = handle->perf_ops;
u64 freq = policy->freq_table[index].frequency;
ret = perf_ops->freq_set(handle, priv->domain_id, freq * 1000, false);
@@ -64,7 +64,7 @@ static unsigned int scmi_cpufreq_fast_switch(struct cpufreq_policy *policy,
unsigned int target_freq)
{
struct scmi_data *priv = policy->driver_data;
- struct scmi_perf_ops *perf_ops = handle->perf_ops;
+ const struct scmi_perf_ops *perf_ops = handle->perf_ops;
if (!perf_ops->freq_set(handle, priv->domain_id,
target_freq * 1000, true)) {
--
2.28.0
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 2/3] firmware: arm_scmi: Constify ops pointers in scmi_handle
2020-09-06 23:04 [PATCH 0/3] arm_scmi: Constify ops pointers in struct scmi_handle Rikard Falkeborn
2020-09-06 23:04 ` [PATCH 1/3] cpufreq: arm_scmi: Constify scmi_perf_ops pointers Rikard Falkeborn
@ 2020-09-06 23:04 ` Rikard Falkeborn
2020-09-06 23:04 ` [PATCH 3/3] firmware: arm_scmi: Constify static scmi-ops Rikard Falkeborn
2020-09-08 12:51 ` [PATCH 0/3] arm_scmi: Constify ops pointers in struct scmi_handle Sudeep Holla
3 siblings, 0 replies; 9+ messages in thread
From: Rikard Falkeborn @ 2020-09-06 23:04 UTC (permalink / raw)
To: linux-arm-kernel, linux-pm, linux-kernel
Cc: Sudeep Holla, Rafael J. Wysocki, Viresh Kumar, Rikard Falkeborn
These are never modified, so make them const to allow drivers to make
them const.
Signed-off-by: Rikard Falkeborn <rikard.falkeborn@gmail.com>
---
include/linux/scmi_protocol.h | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/include/linux/scmi_protocol.h b/include/linux/scmi_protocol.h
index 7e5dd7d1e221..05570afc7f74 100644
--- a/include/linux/scmi_protocol.h
+++ b/include/linux/scmi_protocol.h
@@ -279,12 +279,12 @@ struct scmi_notify_ops {
struct scmi_handle {
struct device *dev;
struct scmi_revision_info *version;
- struct scmi_perf_ops *perf_ops;
- struct scmi_clk_ops *clk_ops;
- struct scmi_power_ops *power_ops;
- struct scmi_sensor_ops *sensor_ops;
- struct scmi_reset_ops *reset_ops;
- struct scmi_notify_ops *notify_ops;
+ const struct scmi_perf_ops *perf_ops;
+ const struct scmi_clk_ops *clk_ops;
+ const struct scmi_power_ops *power_ops;
+ const struct scmi_sensor_ops *sensor_ops;
+ const struct scmi_reset_ops *reset_ops;
+ const struct scmi_notify_ops *notify_ops;
/* for protocol internal use */
void *perf_priv;
void *clk_priv;
--
2.28.0
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 3/3] firmware: arm_scmi: Constify static scmi-ops
2020-09-06 23:04 [PATCH 0/3] arm_scmi: Constify ops pointers in struct scmi_handle Rikard Falkeborn
2020-09-06 23:04 ` [PATCH 1/3] cpufreq: arm_scmi: Constify scmi_perf_ops pointers Rikard Falkeborn
2020-09-06 23:04 ` [PATCH 2/3] firmware: arm_scmi: Constify ops pointers in scmi_handle Rikard Falkeborn
@ 2020-09-06 23:04 ` Rikard Falkeborn
2020-09-08 12:51 ` [PATCH 0/3] arm_scmi: Constify ops pointers in struct scmi_handle Sudeep Holla
3 siblings, 0 replies; 9+ messages in thread
From: Rikard Falkeborn @ 2020-09-06 23:04 UTC (permalink / raw)
To: linux-arm-kernel, linux-pm, linux-kernel
Cc: Sudeep Holla, Rafael J. Wysocki, Viresh Kumar, Rikard Falkeborn
These are never modified, so make them const to allow the compiler to
put them in read-only memory.
Signed-off-by: Rikard Falkeborn <rikard.falkeborn@gmail.com>
---
drivers/firmware/arm_scmi/clock.c | 2 +-
drivers/firmware/arm_scmi/common.h | 2 +-
drivers/firmware/arm_scmi/mailbox.c | 2 +-
drivers/firmware/arm_scmi/notify.c | 2 +-
drivers/firmware/arm_scmi/perf.c | 2 +-
drivers/firmware/arm_scmi/power.c | 2 +-
drivers/firmware/arm_scmi/reset.c | 2 +-
drivers/firmware/arm_scmi/sensors.c | 2 +-
drivers/firmware/arm_scmi/smc.c | 2 +-
9 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/drivers/firmware/arm_scmi/clock.c b/drivers/firmware/arm_scmi/clock.c
index 75e39882746e..a3b90be28009 100644
--- a/drivers/firmware/arm_scmi/clock.c
+++ b/drivers/firmware/arm_scmi/clock.c
@@ -318,7 +318,7 @@ scmi_clock_info_get(const struct scmi_handle *handle, u32 clk_id)
return clk;
}
-static struct scmi_clk_ops clk_ops = {
+static const struct scmi_clk_ops clk_ops = {
.count_get = scmi_clock_count_get,
.info_get = scmi_clock_info_get,
.rate_get = scmi_clock_rate_get,
diff --git a/drivers/firmware/arm_scmi/common.h b/drivers/firmware/arm_scmi/common.h
index c113e578cc6c..233700a42bff 100644
--- a/drivers/firmware/arm_scmi/common.h
+++ b/drivers/firmware/arm_scmi/common.h
@@ -210,7 +210,7 @@ struct scmi_transport_ops {
* @max_msg_size: Maximum size of data per message that can be handled.
*/
struct scmi_desc {
- struct scmi_transport_ops *ops;
+ const struct scmi_transport_ops *ops;
int max_rx_timeout_ms;
int max_msg;
int max_msg_size;
diff --git a/drivers/firmware/arm_scmi/mailbox.c b/drivers/firmware/arm_scmi/mailbox.c
index 6998dc86b5ce..cc2de207fe10 100644
--- a/drivers/firmware/arm_scmi/mailbox.c
+++ b/drivers/firmware/arm_scmi/mailbox.c
@@ -181,7 +181,7 @@ mailbox_poll_done(struct scmi_chan_info *cinfo, struct scmi_xfer *xfer)
return shmem_poll_done(smbox->shmem, xfer);
}
-static struct scmi_transport_ops scmi_mailbox_ops = {
+static const struct scmi_transport_ops scmi_mailbox_ops = {
.chan_available = mailbox_chan_available,
.chan_setup = mailbox_chan_setup,
.chan_free = mailbox_chan_free,
diff --git a/drivers/firmware/arm_scmi/notify.c b/drivers/firmware/arm_scmi/notify.c
index 4731daaacd19..2754f9d01636 100644
--- a/drivers/firmware/arm_scmi/notify.c
+++ b/drivers/firmware/arm_scmi/notify.c
@@ -1421,7 +1421,7 @@ static void scmi_protocols_late_init(struct work_struct *work)
* notify_ops are attached to the handle so that can be accessed
* directly from an scmi_driver to register its own notifiers.
*/
-static struct scmi_notify_ops notify_ops = {
+static const struct scmi_notify_ops notify_ops = {
.register_event_notifier = scmi_register_notifier,
.unregister_event_notifier = scmi_unregister_notifier,
};
diff --git a/drivers/firmware/arm_scmi/perf.c b/drivers/firmware/arm_scmi/perf.c
index 3e1e87012c95..a3e7b1bfab00 100644
--- a/drivers/firmware/arm_scmi/perf.c
+++ b/drivers/firmware/arm_scmi/perf.c
@@ -748,7 +748,7 @@ static bool scmi_fast_switch_possible(const struct scmi_handle *handle,
return dom->fc_info && dom->fc_info->level_set_addr;
}
-static struct scmi_perf_ops perf_ops = {
+static const struct scmi_perf_ops perf_ops = {
.limits_set = scmi_perf_limits_set,
.limits_get = scmi_perf_limits_get,
.level_set = scmi_perf_level_set,
diff --git a/drivers/firmware/arm_scmi/power.c b/drivers/firmware/arm_scmi/power.c
index 46f213644c49..32bcf5821ea9 100644
--- a/drivers/firmware/arm_scmi/power.c
+++ b/drivers/firmware/arm_scmi/power.c
@@ -184,7 +184,7 @@ static char *scmi_power_name_get(const struct scmi_handle *handle, u32 domain)
return dom->name;
}
-static struct scmi_power_ops power_ops = {
+static const struct scmi_power_ops power_ops = {
.num_domains_get = scmi_power_num_domains_get,
.name_get = scmi_power_name_get,
.state_set = scmi_power_state_set,
diff --git a/drivers/firmware/arm_scmi/reset.c b/drivers/firmware/arm_scmi/reset.c
index 3691bafca057..4e2dc5fc43d9 100644
--- a/drivers/firmware/arm_scmi/reset.c
+++ b/drivers/firmware/arm_scmi/reset.c
@@ -194,7 +194,7 @@ scmi_reset_domain_deassert(const struct scmi_handle *handle, u32 domain)
return scmi_domain_reset(handle, domain, 0, ARCH_COLD_RESET);
}
-static struct scmi_reset_ops reset_ops = {
+static const struct scmi_reset_ops reset_ops = {
.num_domains_get = scmi_reset_num_domains_get,
.name_get = scmi_reset_name_get,
.latency_get = scmi_reset_latency_get,
diff --git a/drivers/firmware/arm_scmi/sensors.c b/drivers/firmware/arm_scmi/sensors.c
index 1af0ad362e82..7d83680198de 100644
--- a/drivers/firmware/arm_scmi/sensors.c
+++ b/drivers/firmware/arm_scmi/sensors.c
@@ -275,7 +275,7 @@ static int scmi_sensor_count_get(const struct scmi_handle *handle)
return si->num_sensors;
}
-static struct scmi_sensor_ops sensor_ops = {
+static const struct scmi_sensor_ops sensor_ops = {
.count_get = scmi_sensor_count_get,
.info_get = scmi_sensor_info_get,
.trip_point_config = scmi_sensor_trip_point_config,
diff --git a/drivers/firmware/arm_scmi/smc.c b/drivers/firmware/arm_scmi/smc.c
index a1537d123e38..1a03c3ec0230 100644
--- a/drivers/firmware/arm_scmi/smc.c
+++ b/drivers/firmware/arm_scmi/smc.c
@@ -137,7 +137,7 @@ smc_poll_done(struct scmi_chan_info *cinfo, struct scmi_xfer *xfer)
return shmem_poll_done(scmi_info->shmem, xfer);
}
-static struct scmi_transport_ops scmi_smc_ops = {
+static const struct scmi_transport_ops scmi_smc_ops = {
.chan_available = smc_chan_available,
.chan_setup = smc_chan_setup,
.chan_free = smc_chan_free,
--
2.28.0
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH 1/3] cpufreq: arm_scmi: Constify scmi_perf_ops pointers
2020-09-06 23:04 ` [PATCH 1/3] cpufreq: arm_scmi: Constify scmi_perf_ops pointers Rikard Falkeborn
@ 2020-09-07 10:22 ` Sudeep Holla
2020-09-07 10:25 ` Viresh Kumar
0 siblings, 1 reply; 9+ messages in thread
From: Sudeep Holla @ 2020-09-07 10:22 UTC (permalink / raw)
To: Rikard Falkeborn
Cc: linux-arm-kernel, linux-pm, linux-kernel, Rafael J. Wysocki,
Sudeep Holla, Viresh Kumar
Hi Viresh,
On Mon, Sep 07, 2020 at 01:04:50AM +0200, Rikard Falkeborn wrote:
> The perf_ops are not modified through this pointer. Make them const to
> indicate that. This is in preparation to make the scmi-ops pointers in
> scmi_handle const.
>
Your ack needed to take this as series via {arm-,}soc
--
Regards,
Sudeep
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 1/3] cpufreq: arm_scmi: Constify scmi_perf_ops pointers
2020-09-07 10:22 ` Sudeep Holla
@ 2020-09-07 10:25 ` Viresh Kumar
2020-09-07 10:44 ` Sudeep Holla
0 siblings, 1 reply; 9+ messages in thread
From: Viresh Kumar @ 2020-09-07 10:25 UTC (permalink / raw)
To: Sudeep Holla
Cc: Rikard Falkeborn, linux-arm-kernel, linux-pm, linux-kernel,
Rafael J. Wysocki
On 07-09-20, 11:22, Sudeep Holla wrote:
> Hi Viresh,
>
> On Mon, Sep 07, 2020 at 01:04:50AM +0200, Rikard Falkeborn wrote:
> > The perf_ops are not modified through this pointer. Make them const to
> > indicate that. This is in preparation to make the scmi-ops pointers in
> > scmi_handle const.
> >
>
> Your ack needed to take this as series via {arm-,}soc
Can I just pick the first patch and you do the rest ? Will it result
in any warnings at either end ?
--
viresh
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 1/3] cpufreq: arm_scmi: Constify scmi_perf_ops pointers
2020-09-07 10:25 ` Viresh Kumar
@ 2020-09-07 10:44 ` Sudeep Holla
2020-09-07 10:46 ` Viresh Kumar
0 siblings, 1 reply; 9+ messages in thread
From: Sudeep Holla @ 2020-09-07 10:44 UTC (permalink / raw)
To: Viresh Kumar
Cc: Rikard Falkeborn, linux-arm-kernel, linux-pm, linux-kernel,
Sudeep Holla, Rafael J. Wysocki
On Mon, Sep 07, 2020 at 03:55:51PM +0530, Viresh Kumar wrote:
> On 07-09-20, 11:22, Sudeep Holla wrote:
> > Hi Viresh,
> >
> > On Mon, Sep 07, 2020 at 01:04:50AM +0200, Rikard Falkeborn wrote:
> > > The perf_ops are not modified through this pointer. Make them const to
> > > indicate that. This is in preparation to make the scmi-ops pointers in
> > > scmi_handle const.
> > >
> >
> > Your ack needed to take this as series via {arm-,}soc
>
> Can I just pick the first patch and you do the rest ? Will it result
> in any warnings at either end ?
>
Initially I thought out suggesting the same, but then I realised(not
checked though), without this change in arm-soc the scmi-cpufreq driver
might produce warnings as the const value gets assigned to non const.
No ?
--
Regards,
Sudeep
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 1/3] cpufreq: arm_scmi: Constify scmi_perf_ops pointers
2020-09-07 10:44 ` Sudeep Holla
@ 2020-09-07 10:46 ` Viresh Kumar
0 siblings, 0 replies; 9+ messages in thread
From: Viresh Kumar @ 2020-09-07 10:46 UTC (permalink / raw)
To: Sudeep Holla
Cc: Rikard Falkeborn, linux-arm-kernel, linux-pm, linux-kernel,
Rafael J. Wysocki
On 07-09-20, 11:44, Sudeep Holla wrote:
> On Mon, Sep 07, 2020 at 03:55:51PM +0530, Viresh Kumar wrote:
> > On 07-09-20, 11:22, Sudeep Holla wrote:
> > > Hi Viresh,
> > >
> > > On Mon, Sep 07, 2020 at 01:04:50AM +0200, Rikard Falkeborn wrote:
> > > > The perf_ops are not modified through this pointer. Make them const to
> > > > indicate that. This is in preparation to make the scmi-ops pointers in
> > > > scmi_handle const.
> > > >
> > >
> > > Your ack needed to take this as series via {arm-,}soc
> >
> > Can I just pick the first patch and you do the rest ? Will it result
> > in any warnings at either end ?
> >
>
> Initially I thought out suggesting the same, but then I realised(not
> checked though), without this change in arm-soc the scmi-cpufreq driver
> might produce warnings as the const value gets assigned to non const.
> No ?
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
--
viresh
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 0/3] arm_scmi: Constify ops pointers in struct scmi_handle
2020-09-06 23:04 [PATCH 0/3] arm_scmi: Constify ops pointers in struct scmi_handle Rikard Falkeborn
` (2 preceding siblings ...)
2020-09-06 23:04 ` [PATCH 3/3] firmware: arm_scmi: Constify static scmi-ops Rikard Falkeborn
@ 2020-09-08 12:51 ` Sudeep Holla
3 siblings, 0 replies; 9+ messages in thread
From: Sudeep Holla @ 2020-09-08 12:51 UTC (permalink / raw)
To: Rikard Falkeborn, linux-pm, linux-arm-kernel, linux-kernel
Cc: Sudeep Holla, Viresh Kumar, Rafael J. Wysocki
On Mon, 7 Sep 2020 01:04:49 +0200, Rikard Falkeborn wrote:
> A small patch series aiming to constify static scmi_*_ops structs in
> drivers/firmware/arm_scmi. Since these are not modified, constify them
> to allow the compiler to put them in read-only memory.
>
> Rikard Falkeborn (3):
> cpufreq: arm_scmi: Constify scmi_perf_ops pointers
> firmware: arm_scmi: Constify ops pointers in scmi_handle
> firmware: arm_scmi: Constify static scmi-ops
>
> [...]
Applied to sudeep.holla/linux (for-next/scmi), thanks!
[1/3] cpufreq: arm_scmi: Constify scmi_perf_ops pointers
https://git.kernel.org/sudeep.holla/c/69ecb3230b
[2/3] firmware: arm_scmi: Constify ops pointers in scmi_handle
https://git.kernel.org/sudeep.holla/c/82894c1d39
[3/3] firmware: arm_scmi: Constify static scmi-ops
https://git.kernel.org/sudeep.holla/c/3de7b83017
--
Regards,
Sudeep
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2020-09-08 16:45 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-09-06 23:04 [PATCH 0/3] arm_scmi: Constify ops pointers in struct scmi_handle Rikard Falkeborn
2020-09-06 23:04 ` [PATCH 1/3] cpufreq: arm_scmi: Constify scmi_perf_ops pointers Rikard Falkeborn
2020-09-07 10:22 ` Sudeep Holla
2020-09-07 10:25 ` Viresh Kumar
2020-09-07 10:44 ` Sudeep Holla
2020-09-07 10:46 ` Viresh Kumar
2020-09-06 23:04 ` [PATCH 2/3] firmware: arm_scmi: Constify ops pointers in scmi_handle Rikard Falkeborn
2020-09-06 23:04 ` [PATCH 3/3] firmware: arm_scmi: Constify static scmi-ops Rikard Falkeborn
2020-09-08 12:51 ` [PATCH 0/3] arm_scmi: Constify ops pointers in struct scmi_handle Sudeep Holla
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).