Lines Matching refs:proto

96 	const struct scmi_protocol	*proto;  member
190 const struct scmi_protocol *proto; in scmi_protocol_get() local
192 proto = idr_find(&scmi_protocols, protocol_id); in scmi_protocol_get()
193 if (!proto || !try_module_get(proto->owner)) { in scmi_protocol_get()
200 return proto; in scmi_protocol_get()
205 const struct scmi_protocol *proto; in scmi_protocol_put() local
207 proto = idr_find(&scmi_protocols, protocol_id); in scmi_protocol_put()
208 if (proto) in scmi_protocol_put()
209 module_put(proto->owner); in scmi_protocol_put()
212 int scmi_protocol_register(const struct scmi_protocol *proto) in scmi_protocol_register() argument
216 if (!proto) { in scmi_protocol_register()
221 if (!proto->instance_init) { in scmi_protocol_register()
222 pr_err("missing init for protocol 0x%x\n", proto->id); in scmi_protocol_register()
227 ret = idr_alloc(&scmi_protocols, (void *)proto, in scmi_protocol_register()
228 proto->id, proto->id + 1, GFP_ATOMIC); in scmi_protocol_register()
230 if (ret != proto->id) { in scmi_protocol_register()
232 proto->id, ret); in scmi_protocol_register()
236 pr_debug("Registered SCMI Protocol 0x%x\n", proto->id); in scmi_protocol_register()
242 void scmi_protocol_unregister(const struct scmi_protocol *proto) in scmi_protocol_unregister() argument
245 idr_remove(&scmi_protocols, proto->id); in scmi_protocol_unregister()
248 pr_debug("Unregistered SCMI Protocol 0x%x\n", proto->id); in scmi_protocol_unregister()
1182 cinfo = idr_find(&info->tx_idr, pi->proto->id); in do_xfer()
1195 xfer->hdr.protocol_id = pi->proto->id; in do_xfer()
1696 pi->proto->id, message_id, domain); in scmi_common_fastchannel_init()
1712 pi->proto->id, message_id, domain, ret); in scmi_common_fastchannel_init()
1794 const struct scmi_protocol *proto) in scmi_alloc_init_protocol_instance() argument
1804 scmi_protocol_put(proto->id); in scmi_alloc_init_protocol_instance()
1813 pi->proto = proto; in scmi_alloc_init_protocol_instance()
1822 ret = pi->proto->instance_init(&pi->ph); in scmi_alloc_init_protocol_instance()
1826 ret = idr_alloc(&info->protocols, pi, proto->id, proto->id + 1, in scmi_alloc_init_protocol_instance()
1828 if (ret != proto->id) in scmi_alloc_init_protocol_instance()
1835 if (pi->proto->events) { in scmi_alloc_init_protocol_instance()
1836 ret = scmi_register_protocol_events(handle, pi->proto->id, in scmi_alloc_init_protocol_instance()
1838 pi->proto->events); in scmi_alloc_init_protocol_instance()
1842 pi->proto->id, ret); in scmi_alloc_init_protocol_instance()
1846 dev_dbg(handle->dev, "Initialized protocol: 0x%X\n", pi->proto->id); in scmi_alloc_init_protocol_instance()
1852 scmi_protocol_put(proto->id); in scmi_alloc_init_protocol_instance()
1883 const struct scmi_protocol *proto; in scmi_get_protocol_instance() local
1886 proto = scmi_protocol_get(protocol_id); in scmi_get_protocol_instance()
1887 if (proto) in scmi_get_protocol_instance()
1888 pi = scmi_alloc_init_protocol_instance(info, proto); in scmi_get_protocol_instance()
1933 if (pi->proto->events) in scmi_protocol_release()
1936 if (pi->proto->instance_deinit) in scmi_protocol_release()
1937 pi->proto->instance_deinit(&pi->ph); in scmi_protocol_release()
2046 return pi->proto->ops; in scmi_devm_protocol_get()