Lines Matching refs:vpcm

220 	struct virtio_pcm *vpcm;
222 list_for_each_entry(vpcm, &snd->pcm_list, list)
223 if (vpcm->nid == nid)
224 return vpcm;
241 struct virtio_pcm *vpcm;
243 vpcm = virtsnd_pcm_find(snd, nid);
244 if (!IS_ERR(vpcm))
245 return vpcm;
247 vpcm = devm_kzalloc(&vdev->dev, sizeof(*vpcm), GFP_KERNEL);
248 if (!vpcm)
251 vpcm->nid = nid;
252 list_add_tail(&vpcm->list, &snd->pcm_list);
254 return vpcm;
353 struct virtio_pcm *vpcm;
367 vpcm = virtsnd_pcm_find_or_create(snd, vss->nid);
368 if (IS_ERR(vpcm)) {
369 rc = PTR_ERR(vpcm);
387 vpcm->streams[vss->direction].nsubstreams++;
406 struct virtio_pcm *vpcm;
410 list_for_each_entry(vpcm, &snd->pcm_list, list) {
412 vpcm->streams[SNDRV_PCM_STREAM_PLAYBACK].nsubstreams;
414 vpcm->streams[SNDRV_PCM_STREAM_CAPTURE].nsubstreams;
419 rc = snd_pcm_new(snd->card, VIRTIO_SND_CARD_DRIVER, vpcm->nid,
420 npbs, ncps, &vpcm->pcm);
423 vpcm->nid, rc);
427 vpcm->pcm->info_flags = 0;
428 vpcm->pcm->dev_class = SNDRV_PCM_CLASS_GENERIC;
429 vpcm->pcm->dev_subclass = SNDRV_PCM_SUBCLASS_GENERIC_MIX;
430 snprintf(vpcm->pcm->name, sizeof(vpcm->pcm->name),
431 VIRTIO_SND_PCM_NAME " %u", vpcm->pcm->device);
432 vpcm->pcm->private_data = vpcm;
433 vpcm->pcm->nonatomic = true;
435 for (i = 0; i < ARRAY_SIZE(vpcm->streams); ++i) {
436 struct virtio_pcm_stream *stream = &vpcm->streams[i];
456 vpcm = virtsnd_pcm_find(snd, vss->nid);
457 if (IS_ERR(vpcm))
458 return PTR_ERR(vpcm);
460 vs = &vpcm->streams[vss->direction];
464 list_for_each_entry(vpcm, &snd->pcm_list, list) {
465 for (i = 0; i < ARRAY_SIZE(vpcm->streams); ++i) {
466 struct virtio_pcm_stream *vs = &vpcm->streams[i];
467 struct snd_pcm_str *ks = &vpcm->pcm->streams[i];
476 snd_pcm_set_ops(vpcm->pcm, i, &virtsnd_pcm_ops[i]);
479 snd_pcm_set_managed_buffer_all(vpcm->pcm,