Lines Matching refs:cinfo

207 static void scmi_handle_notification(struct scmi_chan_info *cinfo, u32 msg_hdr)
210 struct device *dev = cinfo->dev;
211 struct scmi_info *info = handle_to_scmi_info(cinfo->handle);
216 xfer = scmi_xfer_get(cinfo->handle, minfo);
220 info->desc->ops->clear_channel(cinfo);
226 info->desc->ops->fetch_notification(cinfo, info->desc->max_msg_size,
228 scmi_notify(cinfo->handle, xfer->hdr.protocol_id,
237 info->desc->ops->clear_channel(cinfo);
240 static void scmi_handle_response(struct scmi_chan_info *cinfo,
244 struct device *dev = cinfo->dev;
245 struct scmi_info *info = handle_to_scmi_info(cinfo->handle);
251 info->desc->ops->clear_channel(cinfo);
266 info->desc->ops->clear_channel(cinfo);
278 info->desc->ops->fetch_response(cinfo, xfer);
285 info->desc->ops->clear_channel(cinfo);
295 * @cinfo: SCMI channel info
304 void scmi_rx_callback(struct scmi_chan_info *cinfo, u32 msg_hdr)
311 scmi_handle_notification(cinfo, msg_hdr);
315 scmi_handle_response(cinfo, xfer_id, msg_type);
338 static bool scmi_xfer_done_no_timeout(struct scmi_chan_info *cinfo,
341 struct scmi_info *info = handle_to_scmi_info(cinfo->handle);
343 return info->desc->ops->poll_done(cinfo, xfer) ||
363 struct scmi_chan_info *cinfo;
365 cinfo = idr_find(&info->tx_idr, xfer->hdr.protocol_id);
366 if (unlikely(!cinfo))
373 ret = info->desc->ops->send_message(cinfo, xfer);
382 spin_until_cond(scmi_xfer_done_no_timeout(cinfo, xfer, stop));
385 info->desc->ops->fetch_response(cinfo, xfer);
402 info->desc->ops->mark_txdone(cinfo, ret);
669 struct scmi_chan_info *cinfo;
677 cinfo = idr_find(idr, prot_id);
678 if (cinfo)
682 cinfo = idr_find(idr, SCMI_PROTOCOL_BASE);
683 if (unlikely(!cinfo)) /* Possible only if platform has no Rx */
688 cinfo = devm_kzalloc(info->dev, sizeof(*cinfo), GFP_KERNEL);
689 if (!cinfo)
692 cinfo->dev = dev;
694 ret = info->desc->ops->chan_setup(cinfo, info->dev, tx);
699 ret = idr_alloc(idr, cinfo, prot_id, prot_id + 1, GFP_KERNEL);
705 cinfo->handle = &info->handle;
853 void scmi_free_channel(struct scmi_chan_info *cinfo, struct idr *idr, int id)