Thread (83 messages) 83 messages, 8 authors, 2017-11-03

[PATCH v3 10/22] firmware: arm_scmi: probe and initialise all the supported protocols

From: arnd@arndb.de (Arnd Bergmann)
Date: 2017-10-04 11:06:23
Also in: linux-devicetree, lkml

On Thu, Sep 28, 2017 at 3:11 PM, Sudeep Holla [off-list ref] wrote:
+static const struct scmi_protocol_match scmi_protocols[] = {
+       {
+               .protocol_id = SCMI_PROTOCOL_PERF,
+               .fn = scmi_perf_protocol_init,
+               .name = "scmi-cpufreq",
+       }, {
+               .protocol_id = SCMI_PROTOCOL_CLOCK,
+               .fn = scmi_clock_protocol_init,
+               .name = "scmi-clocks",
+       }, {
+               .protocol_id = SCMI_PROTOCOL_POWER,
+               .fn = scmi_power_protocol_init,
+               .name = "scmi-power-domain",
+       }, {
+               .protocol_id = SCMI_PROTOCOL_SENSOR,
+               .fn = scmi_sensors_protocol_init,
+               .name = "scmi-hwmon",
+       },
+       {}
+};
This looks backwards from what we do elsewhere in the kernel,
and could be considered a layering violation: it requires a generic
part of of the driver to know about all the more specific ones,
and it means that we have to modify the global table here each
time we add another protocol.

Can you rewrite this to allow dynamic registration of the protocols?

       Arnd
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help