Lines Matching refs:prm
156 struct uac_rtd_params *prm = req->context;
157 struct snd_uac_chip *uac = prm->uac;
163 if (!prm->ep_enabled) {
179 substream = prm->ss;
202 pitched_rate_mil = (unsigned long long) prm->srate * prm->pitch;
209 prm->srate, prm->pitch, p_interval_mil, frames);
242 hw_ptr = prm->hw_ptr;
268 prm->hw_ptr = (hw_ptr + req->actual) % runtime->dma_bytes;
269 hw_ptr = prm->hw_ptr;
283 struct uac_rtd_params *prm = req->context;
284 struct snd_uac_chip *uac = prm->uac;
289 if (!prm->fb_ep_enabled) {
307 prm->srate, prm->pitch,
317 struct uac_rtd_params *prm;
326 prm = &uac->p_prm;
328 prm = &uac->c_prm;
331 prm->hw_ptr = 0;
336 prm->ss = substream;
340 prm->ss = NULL;
347 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK && !prm->ss)
348 memset(prm->rbuf, 0, prm->max_psize * params->req_number);
356 struct uac_rtd_params *prm;
359 prm = &uac->p_prm;
361 prm = &uac->c_prm;
363 return bytes_to_frames(substream->runtime, prm->hw_ptr);
391 struct uac_rtd_params *prm;
408 prm = &uac->p_prm;
412 prm = &uac->c_prm;
415 runtime->hw.period_bytes_min = 2 * prm->max_psize
417 runtime->hw.rate_min = prm->srate;
440 static inline void free_ep(struct uac_rtd_params *prm, struct usb_ep *ep)
442 struct snd_uac_chip *uac = prm->uac;
447 if (!prm->ep_enabled)
454 if (prm->reqs[i]) {
455 if (usb_ep_dequeue(ep, prm->reqs[i]))
456 usb_ep_free_request(ep, prm->reqs[i]);
463 prm->reqs[i] = NULL;
467 prm->ep_enabled = false;
473 static inline void free_ep_fback(struct uac_rtd_params *prm, struct usb_ep *ep)
475 struct snd_uac_chip *uac = prm->uac;
477 if (!prm->fb_ep_enabled)
480 if (prm->req_fback) {
481 if (usb_ep_dequeue(ep, prm->req_fback)) {
482 kfree(prm->req_fback->buf);
483 usb_ep_free_request(ep, prm->req_fback);
485 prm->req_fback = NULL;
488 prm->fb_ep_enabled = false;
494 static void set_active(struct uac_rtd_params *prm, bool active)
497 struct snd_kcontrol *kctl = prm->snd_kctl_rate;
500 spin_lock_irqsave(&prm->lock, flags);
501 if (prm->active != active) {
502 prm->active = active;
503 snd_ctl_notify(prm->uac->card, SNDRV_CTL_EVENT_MASK_VALUE,
506 spin_unlock_irqrestore(&prm->lock, flags);
513 struct uac_rtd_params *prm;
518 prm = &uac->c_prm;
521 spin_lock_irqsave(&prm->lock, flags);
522 prm->srate = srate;
523 spin_unlock_irqrestore(&prm->lock, flags);
537 struct uac_rtd_params *prm;
540 prm = &uac->c_prm;
541 spin_lock_irqsave(&prm->lock, flags);
542 *val = prm->srate;
543 spin_unlock_irqrestore(&prm->lock, flags);
552 struct uac_rtd_params *prm;
557 prm = &uac->p_prm;
560 spin_lock_irqsave(&prm->lock, flags);
561 prm->srate = srate;
562 spin_unlock_irqrestore(&prm->lock, flags);
576 struct uac_rtd_params *prm;
579 prm = &uac->p_prm;
580 spin_lock_irqsave(&prm->lock, flags);
581 *val = prm->srate;
582 spin_unlock_irqrestore(&prm->lock, flags);
594 struct uac_rtd_params *prm;
598 prm = &uac->c_prm;
599 dev_dbg(dev, "start capture with rate %d\n", prm->srate);
604 prm->ep_enabled = true;
608 if (!prm->reqs[i]) {
613 prm->reqs[i] = req;
616 req->context = prm;
619 req->buf = prm->rbuf + i * ep->maxpacket;
622 if (usb_ep_queue(ep, prm->reqs[i], GFP_ATOMIC))
634 prm->fb_ep_enabled = true;
642 prm->req_fback = req_fback;
644 req_fback->context = prm;
657 prm->pitch = 1000000;
659 prm->srate, prm->pitch,
687 struct uac_rtd_params *prm;
694 prm = &uac->p_prm;
695 dev_dbg(dev, "start playback with rate %d\n", prm->srate);
703 prm->pitch = 1000000;
717 (prm->srate / uac->p_interval),
723 prm->ep_enabled = true;
727 if (!prm->reqs[i]) {
732 prm->reqs[i] = req;
735 req->context = prm;
738 req->buf = prm->rbuf + i * ep->maxpacket;
741 if (usb_ep_queue(ep, prm->reqs[i], GFP_ATOMIC))
772 struct uac_rtd_params *prm;
776 prm = &uac->p_prm;
778 prm = &uac->c_prm;
780 spin_lock_irqsave(&prm->lock, flags);
781 *val = prm->volume;
782 spin_unlock_irqrestore(&prm->lock, flags);
791 struct uac_rtd_params *prm;
796 prm = &uac->p_prm;
798 prm = &uac->c_prm;
800 spin_lock_irqsave(&prm->lock, flags);
801 val = clamp(val, prm->volume_min, prm->volume_max);
802 if (prm->volume != val) {
803 prm->volume = val;
806 spin_unlock_irqrestore(&prm->lock, flags);
810 &prm->snd_kctl_volume->id);
819 struct uac_rtd_params *prm;
823 prm = &uac->p_prm;
825 prm = &uac->c_prm;
827 spin_lock_irqsave(&prm->lock, flags);
828 *val = prm->mute;
829 spin_unlock_irqrestore(&prm->lock, flags);
838 struct uac_rtd_params *prm;
844 prm = &uac->p_prm;
846 prm = &uac->c_prm;
850 spin_lock_irqsave(&prm->lock, flags);
851 if (prm->mute != mute) {
852 prm->mute = mute;
855 spin_unlock_irqrestore(&prm->lock, flags);
859 &prm->snd_kctl_mute->id);
869 struct uac_rtd_params *prm = snd_kcontrol_chip(kcontrol);
870 struct snd_uac_chip *uac = prm->uac;
889 struct uac_rtd_params *prm = snd_kcontrol_chip(kcontrol);
891 ucontrol->value.integer.value[0] = prm->pitch;
899 struct uac_rtd_params *prm = snd_kcontrol_chip(kcontrol);
900 struct snd_uac_chip *uac = prm->uac;
917 if (prm->pitch != val) {
918 prm->pitch = val;
940 struct uac_rtd_params *prm = snd_kcontrol_chip(kcontrol);
943 spin_lock_irqsave(&prm->lock, flags);
944 ucontrol->value.integer.value[0] = !prm->mute;
945 spin_unlock_irqrestore(&prm->lock, flags);
953 struct uac_rtd_params *prm = snd_kcontrol_chip(kcontrol);
954 struct snd_uac_chip *uac = prm->uac;
962 spin_lock_irqsave(&prm->lock, flags);
963 if (val != prm->mute) {
964 prm->mute = val;
967 spin_unlock_irqrestore(&prm->lock, flags);
970 audio_dev->notify(audio_dev, prm->fu_id, UAC_FU_MUTE);
981 struct uac_rtd_params *prm = snd_kcontrol_chip(kcontrol);
988 scale[2] = (prm->volume_min * 100) / 256;
989 scale[3] = (prm->volume_max * 100) / 256;
999 struct uac_rtd_params *prm = snd_kcontrol_chip(kcontrol);
1005 (prm->volume_max - prm->volume_min + prm->volume_res - 1)
1006 / prm->volume_res;
1015 struct uac_rtd_params *prm = snd_kcontrol_chip(kcontrol);
1018 spin_lock_irqsave(&prm->lock, flags);
1020 (prm->volume - prm->volume_min) / prm->volume_res;
1021 spin_unlock_irqrestore(&prm->lock, flags);
1029 struct uac_rtd_params *prm = snd_kcontrol_chip(kcontrol);
1030 struct snd_uac_chip *uac = prm->uac;
1039 spin_lock_irqsave(&prm->lock, flags);
1040 volume = (val * prm->volume_res) + prm->volume_min;
1041 volume = clamp(volume, prm->volume_min, prm->volume_max);
1042 if (volume != prm->volume) {
1043 prm->volume = volume;
1046 spin_unlock_irqrestore(&prm->lock, flags);
1049 audio_dev->notify(audio_dev, prm->fu_id, UAC_FU_VOLUME);
1084 struct uac_rtd_params *prm = snd_kcontrol_chip(kcontrol);
1085 struct snd_uac_chip *uac = prm->uac;
1092 if (prm == &uac->c_prm)
1104 struct uac_rtd_params *prm = snd_kcontrol_chip(kcontrol);
1107 spin_lock_irqsave(&prm->lock, flags);
1108 if (prm->active)
1109 ucontrol->value.integer.value[0] = prm->srate;
1113 spin_unlock_irqrestore(&prm->lock, flags);
1180 struct uac_rtd_params *prm = &uac->c_prm;
1182 spin_lock_init(&prm->lock);
1184 prm->max_psize = g_audio->out_ep_maxpsize;
1185 prm->srate = params->c_srates[0];
1187 prm->reqs = kcalloc(params->req_number,
1190 if (!prm->reqs) {
1195 prm->rbuf = kcalloc(params->req_number, prm->max_psize,
1197 if (!prm->rbuf) {
1198 prm->max_psize = 0;
1205 struct uac_rtd_params *prm = &uac->p_prm;
1207 spin_lock_init(&prm->lock);
1209 prm->max_psize = g_audio->in_ep_maxpsize;
1210 prm->srate = params->p_srates[0];
1212 prm->reqs = kcalloc(params->req_number,
1215 if (!prm->reqs) {
1220 prm->rbuf = kcalloc(params->req_number, prm->max_psize,
1222 if (!prm->rbuf) {
1223 prm->max_psize = 0;
1295 struct uac_rtd_params *prm;
1304 prm = &uac->p_prm;
1308 prm = &uac->c_prm;
1313 prm->fu_id = fu->id;
1322 prm);
1334 prm->snd_kctl_mute = kctl;
1335 prm->mute = 0;
1345 prm);
1362 prm->snd_kctl_volume = kctl;
1363 prm->volume = fu->volume_max;
1364 prm->volume_max = fu->volume_max;
1365 prm->volume_min = fu->volume_min;
1366 prm->volume_res = fu->volume_res;
1374 kctl = snd_ctl_new1(&u_audio_controls[UAC_RATE_CTRL], prm);
1386 prm->snd_kctl_rate = kctl;