Lines Matching refs:cinfo
459 static inline int scmi_msg_response_validate(struct scmi_chan_info *cinfo, in scmi_msg_response_validate() argument
470 dev_err(cinfo->dev, in scmi_msg_response_validate()
486 dev_warn(cinfo->dev, in scmi_msg_response_validate()
548 scmi_xfer_command_acquire(struct scmi_chan_info *cinfo, u32 msg_hdr) in scmi_xfer_command_acquire() argument
553 struct scmi_info *info = handle_to_scmi_info(cinfo->handle); in scmi_xfer_command_acquire()
562 dev_err(cinfo->dev, in scmi_xfer_command_acquire()
572 ret = scmi_msg_response_validate(cinfo, msg_type, xfer); in scmi_xfer_command_acquire()
587 dev_err(cinfo->dev, in scmi_xfer_command_acquire()
606 struct scmi_chan_info *cinfo) in scmi_clear_channel() argument
609 info->desc->ops->clear_channel(cinfo); in scmi_clear_channel()
612 static void scmi_handle_notification(struct scmi_chan_info *cinfo, in scmi_handle_notification() argument
616 struct device *dev = cinfo->dev; in scmi_handle_notification()
617 struct scmi_info *info = handle_to_scmi_info(cinfo->handle); in scmi_handle_notification()
622 xfer = scmi_xfer_get(cinfo->handle, minfo, false); in scmi_handle_notification()
626 scmi_clear_channel(info, cinfo); in scmi_handle_notification()
633 info->desc->ops->fetch_notification(cinfo, info->desc->max_msg_size, in scmi_handle_notification()
635 scmi_notify(cinfo->handle, xfer->hdr.protocol_id, in scmi_handle_notification()
644 scmi_clear_channel(info, cinfo); in scmi_handle_notification()
647 static void scmi_handle_response(struct scmi_chan_info *cinfo, in scmi_handle_response() argument
651 struct scmi_info *info = handle_to_scmi_info(cinfo->handle); in scmi_handle_response()
653 xfer = scmi_xfer_command_acquire(cinfo, msg_hdr); in scmi_handle_response()
655 scmi_clear_channel(info, cinfo); in scmi_handle_response()
665 info->desc->ops->fetch_response(cinfo, xfer); in scmi_handle_response()
672 scmi_clear_channel(info, cinfo); in scmi_handle_response()
694 void scmi_rx_callback(struct scmi_chan_info *cinfo, u32 msg_hdr, void *priv) in scmi_rx_callback() argument
700 scmi_handle_notification(cinfo, msg_hdr, priv); in scmi_rx_callback()
704 scmi_handle_response(cinfo, msg_hdr, priv); in scmi_rx_callback()
729 static bool scmi_xfer_done_no_timeout(struct scmi_chan_info *cinfo, in scmi_xfer_done_no_timeout() argument
732 struct scmi_info *info = handle_to_scmi_info(cinfo->handle); in scmi_xfer_done_no_timeout()
738 return info->desc->ops->poll_done(cinfo, xfer) || in scmi_xfer_done_no_timeout()
761 struct scmi_chan_info *cinfo; in do_xfer() local
777 cinfo = idr_find(&info->tx_idr, xfer->hdr.protocol_id); in do_xfer()
778 if (unlikely(!cinfo)) in do_xfer()
795 ret = info->desc->ops->send_message(cinfo, xfer); in do_xfer()
804 spin_until_cond(scmi_xfer_done_no_timeout(cinfo, xfer, stop)); in do_xfer()
814 info->desc->ops->fetch_response(cinfo, xfer); in do_xfer()
835 info->desc->ops->mark_txdone(cinfo, ret); in do_xfer()
1473 struct scmi_chan_info *cinfo; in scmi_chan_setup() local
1481 cinfo = idr_find(idr, prot_id); in scmi_chan_setup()
1482 if (cinfo) in scmi_chan_setup()
1486 cinfo = idr_find(idr, SCMI_PROTOCOL_BASE); in scmi_chan_setup()
1487 if (unlikely(!cinfo)) /* Possible only if platform has no Rx */ in scmi_chan_setup()
1492 cinfo = devm_kzalloc(info->dev, sizeof(*cinfo), GFP_KERNEL); in scmi_chan_setup()
1493 if (!cinfo) in scmi_chan_setup()
1496 cinfo->dev = dev; in scmi_chan_setup()
1498 ret = info->desc->ops->chan_setup(cinfo, info->dev, tx); in scmi_chan_setup()
1503 ret = idr_alloc(idr, cinfo, prot_id, prot_id + 1, GFP_KERNEL); in scmi_chan_setup()
1509 cinfo->handle = &info->handle; in scmi_chan_setup()
1911 void scmi_free_channel(struct scmi_chan_info *cinfo, struct idr *idr, int id) in scmi_free_channel() argument