Lines Matching refs:prm
156 struct uac_rtd_params *prm = req->context; in u_audio_iso_complete() local
157 struct snd_uac_chip *uac = prm->uac; in u_audio_iso_complete()
163 if (!prm->ep_enabled) { in u_audio_iso_complete()
179 substream = prm->ss; in u_audio_iso_complete()
202 pitched_rate_mil = (unsigned long long) prm->srate * prm->pitch; in u_audio_iso_complete()
209 prm->srate, prm->pitch, p_interval_mil, frames); in u_audio_iso_complete()
242 hw_ptr = prm->hw_ptr; in u_audio_iso_complete()
268 prm->hw_ptr = (hw_ptr + req->actual) % runtime->dma_bytes; in u_audio_iso_complete()
269 hw_ptr = prm->hw_ptr; in u_audio_iso_complete()
283 struct uac_rtd_params *prm = req->context; in u_audio_iso_fback_complete() local
284 struct snd_uac_chip *uac = prm->uac; in u_audio_iso_fback_complete()
289 if (!prm->fb_ep_enabled) { in u_audio_iso_fback_complete()
307 prm->srate, prm->pitch, in u_audio_iso_fback_complete()
317 struct uac_rtd_params *prm; in uac_pcm_trigger() local
326 prm = &uac->p_prm; in uac_pcm_trigger()
328 prm = &uac->c_prm; in uac_pcm_trigger()
331 prm->hw_ptr = 0; in uac_pcm_trigger()
336 prm->ss = substream; in uac_pcm_trigger()
340 prm->ss = NULL; in uac_pcm_trigger()
347 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK && !prm->ss) in uac_pcm_trigger()
348 memset(prm->rbuf, 0, prm->max_psize * params->req_number); in uac_pcm_trigger()
356 struct uac_rtd_params *prm; in uac_pcm_pointer() local
359 prm = &uac->p_prm; in uac_pcm_pointer()
361 prm = &uac->c_prm; in uac_pcm_pointer()
363 return bytes_to_frames(substream->runtime, prm->hw_ptr); in uac_pcm_pointer()
391 struct uac_rtd_params *prm; in uac_pcm_open() local
408 prm = &uac->p_prm; in uac_pcm_open()
412 prm = &uac->c_prm; in uac_pcm_open()
415 runtime->hw.period_bytes_min = 2 * prm->max_psize in uac_pcm_open()
417 runtime->hw.rate_min = prm->srate; in uac_pcm_open()
440 static inline void free_ep(struct uac_rtd_params *prm, struct usb_ep *ep) in free_ep() argument
442 struct snd_uac_chip *uac = prm->uac; in free_ep()
447 if (!prm->ep_enabled) in free_ep()
454 if (prm->reqs[i]) { in free_ep()
455 if (usb_ep_dequeue(ep, prm->reqs[i])) in free_ep()
456 usb_ep_free_request(ep, prm->reqs[i]); in free_ep()
463 prm->reqs[i] = NULL; in free_ep()
467 prm->ep_enabled = false; in free_ep()
473 static inline void free_ep_fback(struct uac_rtd_params *prm, struct usb_ep *ep) in free_ep_fback() argument
475 struct snd_uac_chip *uac = prm->uac; in free_ep_fback()
477 if (!prm->fb_ep_enabled) in free_ep_fback()
480 if (prm->req_fback) { in free_ep_fback()
481 if (usb_ep_dequeue(ep, prm->req_fback)) { in free_ep_fback()
482 kfree(prm->req_fback->buf); in free_ep_fback()
483 usb_ep_free_request(ep, prm->req_fback); in free_ep_fback()
485 prm->req_fback = NULL; in free_ep_fback()
488 prm->fb_ep_enabled = false; in free_ep_fback()
494 static void set_active(struct uac_rtd_params *prm, bool active) in set_active() argument
499 spin_lock_irqsave(&prm->lock, flags); in set_active()
500 if (prm->active != active) { in set_active()
501 prm->active = active; in set_active()
502 snd_ctl_notify(prm->uac->card, SNDRV_CTL_EVENT_MASK_VALUE, in set_active()
503 &prm->snd_kctl_rate_id); in set_active()
505 spin_unlock_irqrestore(&prm->lock, flags); in set_active()
512 struct uac_rtd_params *prm; in u_audio_set_capture_srate() local
517 prm = &uac->c_prm; in u_audio_set_capture_srate()
520 spin_lock_irqsave(&prm->lock, flags); in u_audio_set_capture_srate()
521 prm->srate = srate; in u_audio_set_capture_srate()
522 spin_unlock_irqrestore(&prm->lock, flags); in u_audio_set_capture_srate()
536 struct uac_rtd_params *prm; in u_audio_get_capture_srate() local
539 prm = &uac->c_prm; in u_audio_get_capture_srate()
540 spin_lock_irqsave(&prm->lock, flags); in u_audio_get_capture_srate()
541 *val = prm->srate; in u_audio_get_capture_srate()
542 spin_unlock_irqrestore(&prm->lock, flags); in u_audio_get_capture_srate()
551 struct uac_rtd_params *prm; in u_audio_set_playback_srate() local
556 prm = &uac->p_prm; in u_audio_set_playback_srate()
559 spin_lock_irqsave(&prm->lock, flags); in u_audio_set_playback_srate()
560 prm->srate = srate; in u_audio_set_playback_srate()
561 spin_unlock_irqrestore(&prm->lock, flags); in u_audio_set_playback_srate()
575 struct uac_rtd_params *prm; in u_audio_get_playback_srate() local
578 prm = &uac->p_prm; in u_audio_get_playback_srate()
579 spin_lock_irqsave(&prm->lock, flags); in u_audio_get_playback_srate()
580 *val = prm->srate; in u_audio_get_playback_srate()
581 spin_unlock_irqrestore(&prm->lock, flags); in u_audio_get_playback_srate()
593 struct uac_rtd_params *prm; in u_audio_start_capture() local
597 prm = &uac->c_prm; in u_audio_start_capture()
598 dev_dbg(dev, "start capture with rate %d\n", prm->srate); in u_audio_start_capture()
608 prm->ep_enabled = true; in u_audio_start_capture()
616 if (!prm->reqs[i]) { in u_audio_start_capture()
621 prm->reqs[i] = req; in u_audio_start_capture()
624 req->context = prm; in u_audio_start_capture()
627 req->buf = prm->rbuf + i * ep->maxpacket; in u_audio_start_capture()
630 if (usb_ep_queue(ep, prm->reqs[i], GFP_ATOMIC)) in u_audio_start_capture()
647 prm->fb_ep_enabled = true; in u_audio_start_capture()
659 prm->req_fback = req_fback; in u_audio_start_capture()
661 req_fback->context = prm; in u_audio_start_capture()
674 prm->pitch = 1000000; in u_audio_start_capture()
676 prm->srate, prm->pitch, in u_audio_start_capture()
704 struct uac_rtd_params *prm; in u_audio_start_playback() local
711 prm = &uac->p_prm; in u_audio_start_playback()
712 dev_dbg(dev, "start playback with rate %d\n", prm->srate); in u_audio_start_playback()
724 prm->pitch = 1000000; in u_audio_start_playback()
738 (prm->srate / uac->p_interval), in u_audio_start_playback()
744 prm->ep_enabled = true; in u_audio_start_playback()
752 if (!prm->reqs[i]) { in u_audio_start_playback()
757 prm->reqs[i] = req; in u_audio_start_playback()
760 req->context = prm; in u_audio_start_playback()
763 req->buf = prm->rbuf + i * ep->maxpacket; in u_audio_start_playback()
766 if (usb_ep_queue(ep, prm->reqs[i], GFP_ATOMIC)) in u_audio_start_playback()
797 struct uac_rtd_params *prm; in u_audio_get_volume() local
801 prm = &uac->p_prm; in u_audio_get_volume()
803 prm = &uac->c_prm; in u_audio_get_volume()
805 spin_lock_irqsave(&prm->lock, flags); in u_audio_get_volume()
806 *val = prm->volume; in u_audio_get_volume()
807 spin_unlock_irqrestore(&prm->lock, flags); in u_audio_get_volume()
816 struct uac_rtd_params *prm; in u_audio_set_volume() local
821 prm = &uac->p_prm; in u_audio_set_volume()
823 prm = &uac->c_prm; in u_audio_set_volume()
825 spin_lock_irqsave(&prm->lock, flags); in u_audio_set_volume()
826 val = clamp(val, prm->volume_min, prm->volume_max); in u_audio_set_volume()
827 if (prm->volume != val) { in u_audio_set_volume()
828 prm->volume = val; in u_audio_set_volume()
831 spin_unlock_irqrestore(&prm->lock, flags); in u_audio_set_volume()
835 &prm->snd_kctl_volume_id); in u_audio_set_volume()
844 struct uac_rtd_params *prm; in u_audio_get_mute() local
848 prm = &uac->p_prm; in u_audio_get_mute()
850 prm = &uac->c_prm; in u_audio_get_mute()
852 spin_lock_irqsave(&prm->lock, flags); in u_audio_get_mute()
853 *val = prm->mute; in u_audio_get_mute()
854 spin_unlock_irqrestore(&prm->lock, flags); in u_audio_get_mute()
863 struct uac_rtd_params *prm; in u_audio_set_mute() local
869 prm = &uac->p_prm; in u_audio_set_mute()
871 prm = &uac->c_prm; in u_audio_set_mute()
875 spin_lock_irqsave(&prm->lock, flags); in u_audio_set_mute()
876 if (prm->mute != mute) { in u_audio_set_mute()
877 prm->mute = mute; in u_audio_set_mute()
880 spin_unlock_irqrestore(&prm->lock, flags); in u_audio_set_mute()
884 &prm->snd_kctl_mute_id); in u_audio_set_mute()
894 struct uac_rtd_params *prm = snd_kcontrol_chip(kcontrol); in u_audio_pitch_info() local
895 struct snd_uac_chip *uac = prm->uac; in u_audio_pitch_info()
914 struct uac_rtd_params *prm = snd_kcontrol_chip(kcontrol); in u_audio_pitch_get() local
916 ucontrol->value.integer.value[0] = prm->pitch; in u_audio_pitch_get()
924 struct uac_rtd_params *prm = snd_kcontrol_chip(kcontrol); in u_audio_pitch_put() local
925 struct snd_uac_chip *uac = prm->uac; in u_audio_pitch_put()
942 if (prm->pitch != val) { in u_audio_pitch_put()
943 prm->pitch = val; in u_audio_pitch_put()
965 struct uac_rtd_params *prm = snd_kcontrol_chip(kcontrol); in u_audio_mute_get() local
968 spin_lock_irqsave(&prm->lock, flags); in u_audio_mute_get()
969 ucontrol->value.integer.value[0] = !prm->mute; in u_audio_mute_get()
970 spin_unlock_irqrestore(&prm->lock, flags); in u_audio_mute_get()
978 struct uac_rtd_params *prm = snd_kcontrol_chip(kcontrol); in u_audio_mute_put() local
979 struct snd_uac_chip *uac = prm->uac; in u_audio_mute_put()
987 spin_lock_irqsave(&prm->lock, flags); in u_audio_mute_put()
988 if (val != prm->mute) { in u_audio_mute_put()
989 prm->mute = val; in u_audio_mute_put()
992 spin_unlock_irqrestore(&prm->lock, flags); in u_audio_mute_put()
995 audio_dev->notify(audio_dev, prm->fu_id, UAC_FU_MUTE); in u_audio_mute_put()
1006 struct uac_rtd_params *prm = snd_kcontrol_chip(kcontrol); in u_audio_volume_tlv() local
1013 scale[2] = (prm->volume_min * 100) / 256; in u_audio_volume_tlv()
1014 scale[3] = (prm->volume_max * 100) / 256; in u_audio_volume_tlv()
1024 struct uac_rtd_params *prm = snd_kcontrol_chip(kcontrol); in u_audio_volume_info() local
1030 (prm->volume_max - prm->volume_min + prm->volume_res - 1) in u_audio_volume_info()
1031 / prm->volume_res; in u_audio_volume_info()
1040 struct uac_rtd_params *prm = snd_kcontrol_chip(kcontrol); in u_audio_volume_get() local
1043 spin_lock_irqsave(&prm->lock, flags); in u_audio_volume_get()
1045 (prm->volume - prm->volume_min) / prm->volume_res; in u_audio_volume_get()
1046 spin_unlock_irqrestore(&prm->lock, flags); in u_audio_volume_get()
1054 struct uac_rtd_params *prm = snd_kcontrol_chip(kcontrol); in u_audio_volume_put() local
1055 struct snd_uac_chip *uac = prm->uac; in u_audio_volume_put()
1064 spin_lock_irqsave(&prm->lock, flags); in u_audio_volume_put()
1065 volume = (val * prm->volume_res) + prm->volume_min; in u_audio_volume_put()
1066 volume = clamp(volume, prm->volume_min, prm->volume_max); in u_audio_volume_put()
1067 if (volume != prm->volume) { in u_audio_volume_put()
1068 prm->volume = volume; in u_audio_volume_put()
1071 spin_unlock_irqrestore(&prm->lock, flags); in u_audio_volume_put()
1074 audio_dev->notify(audio_dev, prm->fu_id, UAC_FU_VOLUME); in u_audio_volume_put()
1109 struct uac_rtd_params *prm = snd_kcontrol_chip(kcontrol); in u_audio_rate_info() local
1110 struct snd_uac_chip *uac = prm->uac; in u_audio_rate_info()
1117 if (prm == &uac->c_prm) in u_audio_rate_info()
1129 struct uac_rtd_params *prm = snd_kcontrol_chip(kcontrol); in u_audio_rate_get() local
1132 spin_lock_irqsave(&prm->lock, flags); in u_audio_rate_get()
1133 if (prm->active) in u_audio_rate_get()
1134 ucontrol->value.integer.value[0] = prm->srate; in u_audio_rate_get()
1138 spin_unlock_irqrestore(&prm->lock, flags); in u_audio_rate_get()
1205 struct uac_rtd_params *prm = &uac->c_prm; in g_audio_setup() local
1207 spin_lock_init(&prm->lock); in g_audio_setup()
1209 prm->max_psize = g_audio->out_ep_maxpsize; in g_audio_setup()
1210 prm->srate = params->c_srates[0]; in g_audio_setup()
1212 prm->reqs = kcalloc(params->req_number, in g_audio_setup()
1215 if (!prm->reqs) { in g_audio_setup()
1220 prm->rbuf = kcalloc(params->req_number, prm->max_psize, in g_audio_setup()
1222 if (!prm->rbuf) { in g_audio_setup()
1223 prm->max_psize = 0; in g_audio_setup()
1230 struct uac_rtd_params *prm = &uac->p_prm; in g_audio_setup() local
1232 spin_lock_init(&prm->lock); in g_audio_setup()
1234 prm->max_psize = g_audio->in_ep_maxpsize; in g_audio_setup()
1235 prm->srate = params->p_srates[0]; in g_audio_setup()
1237 prm->reqs = kcalloc(params->req_number, in g_audio_setup()
1240 if (!prm->reqs) { in g_audio_setup()
1245 prm->rbuf = kcalloc(params->req_number, prm->max_psize, in g_audio_setup()
1247 if (!prm->rbuf) { in g_audio_setup()
1248 prm->max_psize = 0; in g_audio_setup()
1320 struct uac_rtd_params *prm; in g_audio_setup() local
1329 prm = &uac->p_prm; in g_audio_setup()
1333 prm = &uac->c_prm; in g_audio_setup()
1338 prm->fu_id = fu->id; in g_audio_setup()
1347 prm); in g_audio_setup()
1359 prm->snd_kctl_mute_id = kctl->id; in g_audio_setup()
1360 prm->mute = 0; in g_audio_setup()
1370 prm); in g_audio_setup()
1387 prm->snd_kctl_volume_id = kctl->id; in g_audio_setup()
1388 prm->volume = fu->volume_max; in g_audio_setup()
1389 prm->volume_max = fu->volume_max; in g_audio_setup()
1390 prm->volume_min = fu->volume_min; in g_audio_setup()
1391 prm->volume_res = fu->volume_res; in g_audio_setup()
1399 kctl = snd_ctl_new1(&u_audio_controls[UAC_RATE_CTRL], prm); in g_audio_setup()
1411 prm->snd_kctl_rate_id = kctl->id; in g_audio_setup()