Lines Matching refs:channels
44 * @free_list: List of unused scmi_vio_msg, maintained for Tx channels only
390 struct scmi_vio_channel *channels, *vioch = NULL;
395 channels = (struct scmi_vio_channel *)scmi_vdev->priv;
399 vioch = &channels[VIRTIO_SCMI_VQ_TX];
403 vioch = &channels[VIRTIO_SCMI_VQ_RX];
486 * the channels: doing it later holding vioch->lock creates unsafe
810 struct scmi_vio_channel *channels;
827 channels = devm_kcalloc(dev, vq_cnt, sizeof(*channels), GFP_KERNEL);
828 if (!channels)
832 channels[VIRTIO_SCMI_VQ_RX].is_rx = true;
844 spin_lock_init(&channels[i].lock);
845 spin_lock_init(&channels[i].free_lock);
846 INIT_LIST_HEAD(&channels[i].free_list);
847 spin_lock_init(&channels[i].pending_lock);
848 INIT_LIST_HEAD(&channels[i].pending_cmds_list);
849 channels[i].vqueue = vqs[i];
851 sz = virtqueue_get_vring_size(channels[i].vqueue);
853 if (!channels[i].is_rx)
859 channels[i].is_rx ? "rx" : "tx",
863 channels[i].max_msg = sz;
866 vdev->priv = channels;
878 * virtio channels will have been already marked NOT ready, causing any