From: Cristian Marussi <cristian.marussi@arm.com>
To: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org
Cc: sudeep.holla@arm.com, lukasz.luba@arm.com,
james.quinlan@broadcom.com, Jonathan.Cameron@Huawei.com,
f.fainelli@gmail.com, etienne.carriere@linaro.org,
thara.gopinath@linaro.org, vincent.guittot@linaro.org,
souvik.chakravarty@arm.com, cristian.marussi@arm.com
Subject: [PATCH v7 32/38] firmware: arm_scmi: cleanup legacy protocol init code
Date: Tue, 16 Mar 2021 12:48:57 +0000 [thread overview]
Message-ID: <20210316124903.35011-33-cristian.marussi@arm.com> (raw)
In-Reply-To: <20210316124903.35011-1-cristian.marussi@arm.com>
Now that all protocols and drivers have been ported to the new interface
based on protocol handles and get/put operations, remove all the legacy
transient initialization code.
Signed-off-by: Cristian Marussi <cristian.marussi@arm.com>
---
drivers/firmware/arm_scmi/bus.c | 26 +-------------------------
drivers/firmware/arm_scmi/common.h | 5 +----
2 files changed, 2 insertions(+), 29 deletions(-)
diff --git a/drivers/firmware/arm_scmi/bus.c b/drivers/firmware/arm_scmi/bus.c
index 4e8f6ea355dd..992d50e10111 100644
--- a/drivers/firmware/arm_scmi/bus.c
+++ b/drivers/firmware/arm_scmi/bus.c
@@ -66,27 +66,11 @@ const struct scmi_protocol *scmi_protocol_get(int protocol_id)
return proto;
}
-static int scmi_protocol_init(int protocol_id, struct scmi_handle *handle)
-{
- const struct scmi_protocol *proto;
-
- proto = scmi_protocol_get(protocol_id);
- if (!proto)
- return -EINVAL;
- return proto->init(handle);
-}
-
-static int scmi_protocol_dummy_init(struct scmi_handle *handle)
-{
- return 0;
-}
-
static int scmi_dev_probe(struct device *dev)
{
struct scmi_driver *scmi_drv = to_scmi_driver(dev->driver);
struct scmi_device *scmi_dev = to_scmi_dev(dev);
const struct scmi_device_id *id;
- int ret;
id = scmi_dev_match_id(scmi_dev, scmi_drv);
if (!id)
@@ -95,14 +79,6 @@ static int scmi_dev_probe(struct device *dev)
if (!scmi_dev->handle)
return -EPROBE_DEFER;
- ret = scmi_protocol_init(scmi_dev->protocol_id, scmi_dev->handle);
- if (ret)
- return ret;
-
- /* Skip protocol initialisation for additional devices */
- idr_replace(&scmi_protocols, &scmi_protocol_dummy_init,
- scmi_dev->protocol_id);
-
return scmi_drv->probe(scmi_dev);
}
@@ -219,7 +195,7 @@ int scmi_protocol_register(const struct scmi_protocol *proto)
return -EINVAL;
}
- if (!proto->init && !proto->instance_init) {
+ if (!proto->instance_init) {
pr_err("missing init for protocol 0x%x\n", proto->id);
return -EINVAL;
}
diff --git a/drivers/firmware/arm_scmi/common.h b/drivers/firmware/arm_scmi/common.h
index 988f806bcf74..378e9d713ec7 100644
--- a/drivers/firmware/arm_scmi/common.h
+++ b/drivers/firmware/arm_scmi/common.h
@@ -224,14 +224,12 @@ int scmi_version_get(const struct scmi_handle *h, u8 protocol, u32 *version);
void scmi_setup_protocol_implemented(const struct scmi_protocol_handle *ph,
u8 *prot_imp);
-typedef int (*scmi_prot_init_fn_t)(struct scmi_handle *);
typedef int (*scmi_prot_init_ph_fn_t)(const struct scmi_protocol_handle *);
/**
* struct scmi_protocol - Protocol descriptor
* @id: Protocol ID.
- * @init: Mandatory protocol initialization function.
- * @instance_init: Optional protocol instance initialization function.
+ * @instance_init: Mandatory protocol initialization function.
* @instance_deinit: Optional protocol de-initialization function.
* @ops: Optional reference to the operations provided by the protocol and
* exposed in scmi_protocol.h.
@@ -239,7 +237,6 @@ typedef int (*scmi_prot_init_ph_fn_t)(const struct scmi_protocol_handle *);
*/
struct scmi_protocol {
const u8 id;
- const scmi_prot_init_fn_t init;
const scmi_prot_init_ph_fn_t instance_init;
const scmi_prot_init_ph_fn_t instance_deinit;
const void *ops;
--
2.17.1
next prev parent reply other threads:[~2021-03-16 12:54 UTC|newest]
Thread overview: 61+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-03-16 12:48 [PATCH v7 00/38] SCMI vendor protocols and modularization Cristian Marussi
2021-03-16 12:48 ` [PATCH v7 01/38] firmware: arm_scmi: review protocol registration interface Cristian Marussi
2021-03-16 12:48 ` [PATCH v7 02/38] firmware: arm_scmi: introduce protocol handle definitions Cristian Marussi
2021-03-16 12:48 ` [PATCH v7 03/38] firmware: arm_scmi: introduce devres get/put protocols operations Cristian Marussi
2021-03-16 12:48 ` [PATCH v7 04/38] firmware: arm_scmi: make notifications aware of protocols users Cristian Marussi
2021-03-16 12:48 ` [PATCH v7 05/38] firmware: arm_scmi: introduce new devres notification ops Cristian Marussi
2021-03-16 12:48 ` [PATCH v7 06/38] firmware: arm_scmi: refactor events registration Cristian Marussi
2021-03-16 12:48 ` [PATCH v7 07/38] firmware: arm_scmi: convert events registration to protocol handles Cristian Marussi
2021-03-16 12:48 ` [PATCH v7 08/38] firmware: arm_scmi: add new protocol handle core xfer ops Cristian Marussi
2021-03-16 12:48 ` [PATCH v7 09/38] firmware: arm_scmi: add helper to access revision area memory Cristian Marussi
2021-03-16 12:48 ` [PATCH v7 10/38] firmware: arm_scmi: port Base protocol to new interface Cristian Marussi
2021-03-16 12:48 ` [PATCH v7 11/38] firmware: arm_scmi: port Perf protocol to new protocols interface Cristian Marussi
2021-03-16 12:48 ` [PATCH v7 12/38] cpufreq: scmi: port driver to the new scmi_perf_proto_ops interface Cristian Marussi
2021-03-16 12:48 ` [PATCH v7 13/38] firmware: arm_scmi: remove legacy scmi_perf_ops protocol interface Cristian Marussi
2021-03-16 12:48 ` [PATCH v7 14/38] firmware: arm_scmi: port Power protocol to new protocols interface Cristian Marussi
2021-03-16 12:48 ` [PATCH v7 15/38] firmware: arm_scmi: port GenPD driver to the new scmi_power_proto_ops interface Cristian Marussi
2021-03-16 12:48 ` [PATCH v7 16/38] firmware: arm_scmi: remove legacy scmi_power_ops protocol interface Cristian Marussi
2021-03-16 12:48 ` [PATCH v7 17/38] firmware: arm_scmi: port Clock protocol to new protocols interface Cristian Marussi
2021-03-16 12:48 ` [PATCH v7 18/38] clk: scmi: port driver to the new scmi_clk_proto_ops interface Cristian Marussi
2021-03-23 9:46 ` Sudeep Holla
2021-03-26 0:08 ` Stephen Boyd
2021-03-26 11:02 ` Cristian Marussi
2021-03-26 13:28 ` [PATCH v8 " Cristian Marussi
2021-03-26 18:15 ` Stephen Boyd
2021-03-16 12:48 ` [PATCH v7 19/38] firmware: arm_scmi: remove legacy scmi_clk_ops protocol interface Cristian Marussi
2021-03-16 12:48 ` [PATCH v7 20/38] firmware: arm_scmi: port Reset protocol to new protocols interface Cristian Marussi
2021-03-16 12:48 ` [PATCH v7 21/38] reset: reset-scmi: port driver to the new scmi_reset_proto_ops interface Cristian Marussi
2021-03-16 12:48 ` [PATCH v7 22/38] firmware: arm_scmi: remove legacy scmi_reset_ops protocol interface Cristian Marussi
2021-03-16 12:48 ` [PATCH v7 23/38] firmware: arm_scmi: port Sensor protocol to new protocols interface Cristian Marussi
2021-03-16 12:48 ` [PATCH v7 24/38] hwmon: (scmi) port driver to the new scmi_sensor_proto_ops interface Cristian Marussi
2021-03-16 12:48 ` [PATCH v7 25/38] iio/scmi: " Cristian Marussi
2021-03-16 17:51 ` Jyoti Bhayana
2021-03-16 22:22 ` Cristian Marussi
2021-03-17 5:38 ` Jyoti Bhayana
2021-03-18 12:12 ` Sudeep Holla
2021-03-19 17:00 ` Jyoti Bhayana
2021-03-23 9:48 ` Sudeep Holla
2021-03-30 11:22 ` Jonathan Cameron
2021-03-30 11:33 ` Jonathan Cameron
2021-03-30 12:51 ` Cristian Marussi
2021-03-30 17:34 ` Jonathan Cameron
2021-03-31 8:32 ` Cristian Marussi
2021-03-31 12:28 ` Jonathan Cameron
2021-03-30 13:47 ` [PATCH v8 25/38] iio/scmi: Port " Cristian Marussi
2021-03-30 17:40 ` Jonathan Cameron
2021-03-16 12:48 ` [PATCH v7 26/38] firmware: arm_scmi: remove legacy scmi_sensor_ops protocol interface Cristian Marussi
2021-03-16 12:48 ` [PATCH v7 27/38] firmware: arm_scmi: port SystemPower protocol to new protocols interface Cristian Marussi
2021-03-16 12:48 ` [PATCH v7 28/38] firmware: arm_scmi: port Voltage " Cristian Marussi
2021-03-16 12:48 ` [PATCH v7 29/38] regulator: scmi: port driver to the new scmi_voltage_proto_ops interface Cristian Marussi
2021-03-16 12:48 ` [PATCH v7 30/38] firmware: arm_scmi: remove legacy scmi_voltage_ops protocol interface Cristian Marussi
2021-03-16 12:48 ` [PATCH v7 31/38] firmware: arm_scmi: make references to handle const Cristian Marussi
2021-03-16 12:48 ` Cristian Marussi [this message]
2021-03-16 12:48 ` [PATCH v7 33/38] firmware: arm_scmi: cleanup unused core xfer wrappers Cristian Marussi
2021-03-16 12:48 ` [PATCH v7 34/38] firmware: arm_scmi: cleanup events registration transient code Cristian Marussi
2021-03-16 12:49 ` [PATCH v7 35/38] firmware: arm_scmi: make notify_priv really private Cristian Marussi
2021-03-16 12:49 ` [PATCH v7 36/38] firmware: arm_scmi: rename non devres notify_ops Cristian Marussi
2021-03-16 12:49 ` [PATCH v7 37/38] firmware: arm_scmi: add protocol modularization support Cristian Marussi
2021-03-16 12:49 ` [PATCH v7 38/38] firmware: arm_scmi: add dynamic scmi devices creation Cristian Marussi
2021-03-26 4:09 ` [PATCH v7 00/38] SCMI vendor protocols and modularization Florian Fainelli
2021-03-26 11:04 ` Cristian Marussi
2021-03-31 8:22 ` Sudeep Holla
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210316124903.35011-33-cristian.marussi@arm.com \
--to=cristian.marussi@arm.com \
--cc=Jonathan.Cameron@Huawei.com \
--cc=etienne.carriere@linaro.org \
--cc=f.fainelli@gmail.com \
--cc=james.quinlan@broadcom.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lukasz.luba@arm.com \
--cc=souvik.chakravarty@arm.com \
--cc=sudeep.holla@arm.com \
--cc=thara.gopinath@linaro.org \
--cc=vincent.guittot@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).