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
497 struct snd_kcontrol *kctl = prm->snd_kctl_rate; in set_active()
500 spin_lock_irqsave(&prm->lock, flags); in set_active()
501 if (prm->active != active) { in set_active()
502 prm->active = active; in set_active()
503 snd_ctl_notify(prm->uac->card, SNDRV_CTL_EVENT_MASK_VALUE, in set_active()
506 spin_unlock_irqrestore(&prm->lock, flags); in set_active()
513 struct uac_rtd_params *prm; in u_audio_set_capture_srate() local
518 prm = &uac->c_prm; in u_audio_set_capture_srate()
521 spin_lock_irqsave(&prm->lock, flags); in u_audio_set_capture_srate()
522 prm->srate = srate; in u_audio_set_capture_srate()
523 spin_unlock_irqrestore(&prm->lock, flags); in u_audio_set_capture_srate()
537 struct uac_rtd_params *prm; in u_audio_get_capture_srate() local
540 prm = &uac->c_prm; in u_audio_get_capture_srate()
541 spin_lock_irqsave(&prm->lock, flags); in u_audio_get_capture_srate()
542 *val = prm->srate; in u_audio_get_capture_srate()
543 spin_unlock_irqrestore(&prm->lock, flags); in u_audio_get_capture_srate()
552 struct uac_rtd_params *prm; in u_audio_set_playback_srate() local
557 prm = &uac->p_prm; in u_audio_set_playback_srate()
560 spin_lock_irqsave(&prm->lock, flags); in u_audio_set_playback_srate()
561 prm->srate = srate; in u_audio_set_playback_srate()
562 spin_unlock_irqrestore(&prm->lock, flags); in u_audio_set_playback_srate()
576 struct uac_rtd_params *prm; in u_audio_get_playback_srate() local
579 prm = &uac->p_prm; in u_audio_get_playback_srate()
580 spin_lock_irqsave(&prm->lock, flags); in u_audio_get_playback_srate()
581 *val = prm->srate; in u_audio_get_playback_srate()
582 spin_unlock_irqrestore(&prm->lock, flags); in u_audio_get_playback_srate()
594 struct uac_rtd_params *prm; in u_audio_start_capture() local
598 prm = &uac->c_prm; in u_audio_start_capture()
599 dev_dbg(dev, "start capture with rate %d\n", prm->srate); in u_audio_start_capture()
604 prm->ep_enabled = true; in u_audio_start_capture()
608 if (!prm->reqs[i]) { in u_audio_start_capture()
613 prm->reqs[i] = req; in u_audio_start_capture()
616 req->context = prm; in u_audio_start_capture()
619 req->buf = prm->rbuf + i * ep->maxpacket; in u_audio_start_capture()
622 if (usb_ep_queue(ep, prm->reqs[i], GFP_ATOMIC)) in u_audio_start_capture()
634 prm->fb_ep_enabled = true; in u_audio_start_capture()
642 prm->req_fback = req_fback; in u_audio_start_capture()
644 req_fback->context = prm; in u_audio_start_capture()
657 prm->pitch = 1000000; in u_audio_start_capture()
659 prm->srate, prm->pitch, in u_audio_start_capture()
687 struct uac_rtd_params *prm; in u_audio_start_playback() local
694 prm = &uac->p_prm; in u_audio_start_playback()
695 dev_dbg(dev, "start playback with rate %d\n", prm->srate); in u_audio_start_playback()
703 prm->pitch = 1000000; in u_audio_start_playback()
717 (prm->srate / uac->p_interval), in u_audio_start_playback()
723 prm->ep_enabled = true; in u_audio_start_playback()
727 if (!prm->reqs[i]) { in u_audio_start_playback()
732 prm->reqs[i] = req; in u_audio_start_playback()
735 req->context = prm; in u_audio_start_playback()
738 req->buf = prm->rbuf + i * ep->maxpacket; in u_audio_start_playback()
741 if (usb_ep_queue(ep, prm->reqs[i], GFP_ATOMIC)) in u_audio_start_playback()
772 struct uac_rtd_params *prm; in u_audio_get_volume() local
776 prm = &uac->p_prm; in u_audio_get_volume()
778 prm = &uac->c_prm; in u_audio_get_volume()
780 spin_lock_irqsave(&prm->lock, flags); in u_audio_get_volume()
781 *val = prm->volume; in u_audio_get_volume()
782 spin_unlock_irqrestore(&prm->lock, flags); in u_audio_get_volume()
791 struct uac_rtd_params *prm; in u_audio_set_volume() local
796 prm = &uac->p_prm; in u_audio_set_volume()
798 prm = &uac->c_prm; in u_audio_set_volume()
800 spin_lock_irqsave(&prm->lock, flags); in u_audio_set_volume()
801 val = clamp(val, prm->volume_min, prm->volume_max); in u_audio_set_volume()
802 if (prm->volume != val) { in u_audio_set_volume()
803 prm->volume = val; in u_audio_set_volume()
806 spin_unlock_irqrestore(&prm->lock, flags); in u_audio_set_volume()
810 &prm->snd_kctl_volume->id); in u_audio_set_volume()
819 struct uac_rtd_params *prm; in u_audio_get_mute() local
823 prm = &uac->p_prm; in u_audio_get_mute()
825 prm = &uac->c_prm; in u_audio_get_mute()
827 spin_lock_irqsave(&prm->lock, flags); in u_audio_get_mute()
828 *val = prm->mute; in u_audio_get_mute()
829 spin_unlock_irqrestore(&prm->lock, flags); in u_audio_get_mute()
838 struct uac_rtd_params *prm; in u_audio_set_mute() local
844 prm = &uac->p_prm; in u_audio_set_mute()
846 prm = &uac->c_prm; in u_audio_set_mute()
850 spin_lock_irqsave(&prm->lock, flags); in u_audio_set_mute()
851 if (prm->mute != mute) { in u_audio_set_mute()
852 prm->mute = mute; in u_audio_set_mute()
855 spin_unlock_irqrestore(&prm->lock, flags); in u_audio_set_mute()
859 &prm->snd_kctl_mute->id); in u_audio_set_mute()
869 struct uac_rtd_params *prm = snd_kcontrol_chip(kcontrol); in u_audio_pitch_info() local
870 struct snd_uac_chip *uac = prm->uac; in u_audio_pitch_info()
889 struct uac_rtd_params *prm = snd_kcontrol_chip(kcontrol); in u_audio_pitch_get() local
891 ucontrol->value.integer.value[0] = prm->pitch; in u_audio_pitch_get()
899 struct uac_rtd_params *prm = snd_kcontrol_chip(kcontrol); in u_audio_pitch_put() local
900 struct snd_uac_chip *uac = prm->uac; in u_audio_pitch_put()
917 if (prm->pitch != val) { in u_audio_pitch_put()
918 prm->pitch = val; in u_audio_pitch_put()
940 struct uac_rtd_params *prm = snd_kcontrol_chip(kcontrol); in u_audio_mute_get() local
943 spin_lock_irqsave(&prm->lock, flags); in u_audio_mute_get()
944 ucontrol->value.integer.value[0] = !prm->mute; in u_audio_mute_get()
945 spin_unlock_irqrestore(&prm->lock, flags); in u_audio_mute_get()
953 struct uac_rtd_params *prm = snd_kcontrol_chip(kcontrol); in u_audio_mute_put() local
954 struct snd_uac_chip *uac = prm->uac; in u_audio_mute_put()
962 spin_lock_irqsave(&prm->lock, flags); in u_audio_mute_put()
963 if (val != prm->mute) { in u_audio_mute_put()
964 prm->mute = val; in u_audio_mute_put()
967 spin_unlock_irqrestore(&prm->lock, flags); in u_audio_mute_put()
970 audio_dev->notify(audio_dev, prm->fu_id, UAC_FU_MUTE); in u_audio_mute_put()
981 struct uac_rtd_params *prm = snd_kcontrol_chip(kcontrol); in u_audio_volume_tlv() local
988 scale[2] = (prm->volume_min * 100) / 256; in u_audio_volume_tlv()
989 scale[3] = (prm->volume_max * 100) / 256; in u_audio_volume_tlv()
999 struct uac_rtd_params *prm = snd_kcontrol_chip(kcontrol); in u_audio_volume_info() local
1005 (prm->volume_max - prm->volume_min + prm->volume_res - 1) in u_audio_volume_info()
1006 / prm->volume_res; in u_audio_volume_info()
1015 struct uac_rtd_params *prm = snd_kcontrol_chip(kcontrol); in u_audio_volume_get() local
1018 spin_lock_irqsave(&prm->lock, flags); in u_audio_volume_get()
1020 (prm->volume - prm->volume_min) / prm->volume_res; in u_audio_volume_get()
1021 spin_unlock_irqrestore(&prm->lock, flags); in u_audio_volume_get()
1029 struct uac_rtd_params *prm = snd_kcontrol_chip(kcontrol); in u_audio_volume_put() local
1030 struct snd_uac_chip *uac = prm->uac; in u_audio_volume_put()
1039 spin_lock_irqsave(&prm->lock, flags); in u_audio_volume_put()
1040 volume = (val * prm->volume_res) + prm->volume_min; in u_audio_volume_put()
1041 volume = clamp(volume, prm->volume_min, prm->volume_max); in u_audio_volume_put()
1042 if (volume != prm->volume) { in u_audio_volume_put()
1043 prm->volume = volume; in u_audio_volume_put()
1046 spin_unlock_irqrestore(&prm->lock, flags); in u_audio_volume_put()
1049 audio_dev->notify(audio_dev, prm->fu_id, UAC_FU_VOLUME); in u_audio_volume_put()
1084 struct uac_rtd_params *prm = snd_kcontrol_chip(kcontrol); in u_audio_rate_info() local
1085 struct snd_uac_chip *uac = prm->uac; in u_audio_rate_info()
1092 if (prm == &uac->c_prm) in u_audio_rate_info()
1104 struct uac_rtd_params *prm = snd_kcontrol_chip(kcontrol); in u_audio_rate_get() local
1107 spin_lock_irqsave(&prm->lock, flags); in u_audio_rate_get()
1108 if (prm->active) in u_audio_rate_get()
1109 ucontrol->value.integer.value[0] = prm->srate; in u_audio_rate_get()
1113 spin_unlock_irqrestore(&prm->lock, flags); in u_audio_rate_get()
1180 struct uac_rtd_params *prm = &uac->c_prm; in g_audio_setup() local
1182 spin_lock_init(&prm->lock); in g_audio_setup()
1184 prm->max_psize = g_audio->out_ep_maxpsize; in g_audio_setup()
1185 prm->srate = params->c_srates[0]; in g_audio_setup()
1187 prm->reqs = kcalloc(params->req_number, in g_audio_setup()
1190 if (!prm->reqs) { in g_audio_setup()
1195 prm->rbuf = kcalloc(params->req_number, prm->max_psize, in g_audio_setup()
1197 if (!prm->rbuf) { in g_audio_setup()
1198 prm->max_psize = 0; in g_audio_setup()
1205 struct uac_rtd_params *prm = &uac->p_prm; in g_audio_setup() local
1207 spin_lock_init(&prm->lock); in g_audio_setup()
1209 prm->max_psize = g_audio->in_ep_maxpsize; in g_audio_setup()
1210 prm->srate = params->p_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()
1295 struct uac_rtd_params *prm; in g_audio_setup() local
1304 prm = &uac->p_prm; in g_audio_setup()
1308 prm = &uac->c_prm; in g_audio_setup()
1313 prm->fu_id = fu->id; in g_audio_setup()
1322 prm); in g_audio_setup()
1334 prm->snd_kctl_mute = kctl; in g_audio_setup()
1335 prm->mute = 0; in g_audio_setup()
1345 prm); in g_audio_setup()
1362 prm->snd_kctl_volume = kctl; in g_audio_setup()
1363 prm->volume = fu->volume_max; in g_audio_setup()
1364 prm->volume_max = fu->volume_max; in g_audio_setup()
1365 prm->volume_min = fu->volume_min; in g_audio_setup()
1366 prm->volume_res = fu->volume_res; in g_audio_setup()
1374 kctl = snd_ctl_new1(&u_audio_controls[UAC_RATE_CTRL], prm); in g_audio_setup()
1386 prm->snd_kctl_rate = kctl; in g_audio_setup()