Lines Matching defs:proto
84 * @proto: A reference to the protocol descriptor.
96 const struct scmi_protocol *proto;
190 const struct scmi_protocol *proto;
192 proto = idr_find(&scmi_protocols, protocol_id);
193 if (!proto || !try_module_get(proto->owner)) {
200 return proto;
205 const struct scmi_protocol *proto;
207 proto = idr_find(&scmi_protocols, protocol_id);
208 if (proto)
209 module_put(proto->owner);
212 int scmi_protocol_register(const struct scmi_protocol *proto)
216 if (!proto) {
221 if (!proto->instance_init) {
222 pr_err("missing init for protocol 0x%x\n", proto->id);
227 ret = idr_alloc(&scmi_protocols, (void *)proto,
228 proto->id, proto->id + 1, GFP_ATOMIC);
230 if (ret != proto->id) {
232 proto->id, ret);
236 pr_debug("Registered SCMI Protocol 0x%x\n", proto->id);
242 void scmi_protocol_unregister(const struct scmi_protocol *proto)
245 idr_remove(&scmi_protocols, proto->id);
248 pr_debug("Unregistered SCMI Protocol 0x%x\n", proto->id);
1182 cinfo = idr_find(&info->tx_idr, pi->proto->id);
1195 xfer->hdr.protocol_id = pi->proto->id;
1696 pi->proto->id, message_id, domain);
1712 pi->proto->id, message_id, domain, ret);
1780 * @proto: The protocol descriptor.
1782 * Allocate a new protocol instance descriptor, using the provided @proto
1789 * or ERR_PTR on failure. On failure the @proto reference is at first
1794 const struct scmi_protocol *proto)
1804 scmi_protocol_put(proto->id);
1813 pi->proto = proto;
1821 /* proto->init is assured NON NULL by scmi_protocol_register */
1822 ret = pi->proto->instance_init(&pi->ph);
1826 ret = idr_alloc(&info->protocols, pi, proto->id, proto->id + 1,
1828 if (ret != proto->id)
1835 if (pi->proto->events) {
1836 ret = scmi_register_protocol_events(handle, pi->proto->id,
1838 pi->proto->events);
1842 pi->proto->id, ret);
1846 dev_dbg(handle->dev, "Initialized protocol: 0x%X\n", pi->proto->id);
1852 scmi_protocol_put(proto->id);
1883 const struct scmi_protocol *proto;
1886 proto = scmi_protocol_get(protocol_id);
1887 if (proto)
1888 pi = scmi_alloc_init_protocol_instance(info, proto);
1933 if (pi->proto->events)
1936 if (pi->proto->instance_deinit)
1937 pi->proto->instance_deinit(&pi->ph);
2046 return pi->proto->ops;