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()
224 int scmi_protocol_register(const struct scmi_protocol *proto) in scmi_protocol_register() argument
228 if (!proto) { in scmi_protocol_register()
233 if (!proto->instance_init) { in scmi_protocol_register()
234 pr_err("missing init for protocol 0x%x\n", proto->id); in scmi_protocol_register()
239 ret = idr_alloc(&scmi_protocols, (void *)proto, in scmi_protocol_register()
240 proto->id, proto->id + 1, GFP_ATOMIC); in scmi_protocol_register()
242 if (ret != proto->id) { in scmi_protocol_register()
244 proto->id, ret); in scmi_protocol_register()
248 pr_debug("Registered SCMI Protocol 0x%x\n", proto->id); in scmi_protocol_register()
254 void scmi_protocol_unregister(const struct scmi_protocol *proto) in scmi_protocol_unregister() argument
257 idr_remove(&scmi_protocols, proto->id); in scmi_protocol_unregister()
260 pr_debug("Unregistered SCMI Protocol 0x%x\n", proto->id); in scmi_protocol_unregister()