Lines Matching refs:proto
81 const struct scmi_protocol *proto; in scmi_protocol_get() local
83 proto = idr_find(&scmi_protocols, protocol_id); in scmi_protocol_get()
84 if (!proto || !try_module_get(proto->owner)) { in scmi_protocol_get()
91 return proto; in scmi_protocol_get()
96 const struct scmi_protocol *proto; in scmi_protocol_put() local
98 proto = idr_find(&scmi_protocols, protocol_id); in scmi_protocol_put()
99 if (proto) in scmi_protocol_put()
100 module_put(proto->owner); in scmi_protocol_put()
235 int scmi_protocol_register(const struct scmi_protocol *proto) in scmi_protocol_register() argument
239 if (!proto) { in scmi_protocol_register()
244 if (!proto->instance_init) { in scmi_protocol_register()
245 pr_err("missing init for protocol 0x%x\n", proto->id); in scmi_protocol_register()
250 ret = idr_alloc(&scmi_protocols, (void *)proto, in scmi_protocol_register()
251 proto->id, proto->id + 1, GFP_ATOMIC); in scmi_protocol_register()
253 if (ret != proto->id) { in scmi_protocol_register()
255 proto->id, ret); in scmi_protocol_register()
259 pr_debug("Registered SCMI Protocol 0x%x\n", proto->id); in scmi_protocol_register()
265 void scmi_protocol_unregister(const struct scmi_protocol *proto) in scmi_protocol_unregister() argument
268 idr_remove(&scmi_protocols, proto->id); in scmi_protocol_unregister()
271 pr_debug("Unregistered SCMI Protocol 0x%x\n", proto->id); in scmi_protocol_unregister()