mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-06 10:58:48 +09:00
FROMLIST: firmware: arm_scmi: cleanup legacy protocol init code
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> Bug: 171409184 Link: https://lore.kernel.org/linux-arm-kernel/20210202221555.41167-1-cristian.marussi@arm.com/ Change-Id: Ic0870f5d5ee520aa9ba126d83e0adcdabda98fdf Signed-off-by: Rishabh Bhatnagar <quic_rishabhb@quicinc.com>
This commit is contained in:
committed by
Todd Kjos
parent
8e441da50f
commit
d09db08be5
@@ -66,27 +66,11 @@ const struct scmi_protocol *scmi_get_protocol(int protocol_id)
|
||||
return proto;
|
||||
}
|
||||
|
||||
static int scmi_protocol_init(int protocol_id, struct scmi_handle *handle)
|
||||
{
|
||||
const struct scmi_protocol *proto;
|
||||
|
||||
proto = scmi_get_protocol(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_available_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->init_instance) {
|
||||
if (!proto->init_instance) {
|
||||
pr_err("missing .init() for protocol 0x%x\n", proto->id);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
@@ -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.
|
||||
* @init_instance: Optional protocol instance initialization function.
|
||||
* @init_instance: Mandatory protocol initialization function.
|
||||
* @deinit_instance: 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 init_instance;
|
||||
const scmi_prot_init_ph_fn_t deinit_instance;
|
||||
const void *ops;
|
||||
|
||||
Reference in New Issue
Block a user