Lines Matching refs:bebob

135 get_meter(struct snd_bebob *bebob, void *buf, unsigned int size)  in get_meter()  argument
137 return snd_fw_transaction(bebob->unit, TCODE_READ_BLOCK_REQUEST, in get_meter()
143 check_clk_sync(struct snd_bebob *bebob, unsigned int size, bool *sync) in check_clk_sync() argument
152 err = get_meter(bebob, buf, size); in check_clk_sync()
168 avc_maudio_set_special_clk(struct snd_bebob *bebob, unsigned int clk_src, in avc_maudio_set_special_clk() argument
172 struct special_params *params = bebob->maudio_special_quirk; in avc_maudio_set_special_clk()
176 if (amdtp_stream_running(&bebob->rx_stream) || in avc_maudio_set_special_clk()
177 amdtp_stream_running(&bebob->tx_stream)) in avc_maudio_set_special_clk()
197 err = fcp_avc_transaction(bebob->unit, buf, 12, buf, 12, in avc_maudio_set_special_clk()
216 snd_ctl_notify(bebob->card, SNDRV_CTL_EVENT_MASK_VALUE, in avc_maudio_set_special_clk()
225 special_stream_formation_set(struct snd_bebob *bebob) in special_stream_formation_set() argument
235 struct special_params *params = bebob->maudio_special_quirk; in special_stream_formation_set()
243 bebob->tx_stream_formations[i + 1].pcm = in special_stream_formation_set()
245 bebob->tx_stream_formations[i + 1].midi = 1; in special_stream_formation_set()
247 bebob->rx_stream_formations[i + 1].pcm = in special_stream_formation_set()
249 bebob->rx_stream_formations[i + 1].midi = 1; in special_stream_formation_set()
253 static int add_special_controls(struct snd_bebob *bebob);
255 snd_bebob_maudio_special_discover(struct snd_bebob *bebob, bool is1814) in snd_bebob_maudio_special_discover() argument
264 mutex_lock(&bebob->mutex); in snd_bebob_maudio_special_discover()
266 bebob->maudio_special_quirk = (void *)params; in snd_bebob_maudio_special_discover()
270 bebob->rx_stream.context = ERR_PTR(-1); in snd_bebob_maudio_special_discover()
271 bebob->tx_stream.context = ERR_PTR(-1); in snd_bebob_maudio_special_discover()
272 err = avc_maudio_set_special_clk(bebob, 0x03, 0x00, 0x00, 0x00); in snd_bebob_maudio_special_discover()
274 dev_err(&bebob->unit->device, in snd_bebob_maudio_special_discover()
279 err = add_special_controls(bebob); in snd_bebob_maudio_special_discover()
283 special_stream_formation_set(bebob); in snd_bebob_maudio_special_discover()
286 bebob->midi_input_ports = 1; in snd_bebob_maudio_special_discover()
287 bebob->midi_output_ports = 1; in snd_bebob_maudio_special_discover()
289 bebob->midi_input_ports = 2; in snd_bebob_maudio_special_discover()
290 bebob->midi_output_ports = 2; in snd_bebob_maudio_special_discover()
295 bebob->maudio_special_quirk = NULL; in snd_bebob_maudio_special_discover()
297 mutex_unlock(&bebob->mutex); in snd_bebob_maudio_special_discover()
302 static int special_get_rate(struct snd_bebob *bebob, unsigned int *rate) in special_get_rate() argument
308 err = avc_general_get_sig_fmt(bebob->unit, rate, in special_get_rate()
314 static int special_set_rate(struct snd_bebob *bebob, unsigned int rate) in special_set_rate() argument
316 struct special_params *params = bebob->maudio_special_quirk; in special_set_rate()
319 err = avc_general_set_sig_fmt(bebob->unit, rate, in special_set_rate()
330 err = avc_general_set_sig_fmt(bebob->unit, rate, in special_set_rate()
336 snd_ctl_notify(bebob->card, SNDRV_CTL_EVENT_MASK_VALUE, in special_set_rate()
346 static int special_clk_get(struct snd_bebob *bebob, unsigned int *id) in special_clk_get() argument
348 struct special_params *params = bebob->maudio_special_quirk; in special_clk_get()
361 struct snd_bebob *bebob = snd_kcontrol_chip(kctl); in special_clk_ctl_get() local
362 struct special_params *params = bebob->maudio_special_quirk; in special_clk_ctl_get()
369 struct snd_bebob *bebob = snd_kcontrol_chip(kctl); in special_clk_ctl_put() local
370 struct special_params *params = bebob->maudio_special_quirk; in special_clk_ctl_put()
377 mutex_lock(&bebob->mutex); in special_clk_ctl_put()
379 err = avc_maudio_set_special_clk(bebob, id, in special_clk_ctl_put()
383 mutex_unlock(&bebob->mutex); in special_clk_ctl_put()
413 struct snd_bebob *bebob = snd_kcontrol_chip(kctl); in special_sync_ctl_get() local
417 err = check_clk_sync(bebob, METER_SIZE_SPECIAL, &synced); in special_sync_ctl_get()
445 struct snd_bebob *bebob = snd_kcontrol_chip(kctl); in special_dig_in_iface_ctl_get() local
446 struct special_params *params = bebob->maudio_special_quirk; in special_dig_in_iface_ctl_get()
450 mutex_lock(&bebob->mutex); in special_dig_in_iface_ctl_get()
452 err = avc_audio_get_selector(bebob->unit, 0x00, 0x04, in special_dig_in_iface_ctl_get()
455 dev_err(&bebob->unit->device, in special_dig_in_iface_ctl_get()
469 mutex_unlock(&bebob->mutex); in special_dig_in_iface_ctl_get()
475 struct snd_bebob *bebob = snd_kcontrol_chip(kctl); in special_dig_in_iface_ctl_set() local
476 struct special_params *params = bebob->maudio_special_quirk; in special_dig_in_iface_ctl_set()
488 mutex_lock(&bebob->mutex); in special_dig_in_iface_ctl_set()
490 err = avc_maudio_set_special_clk(bebob, in special_dig_in_iface_ctl_set()
505 err = avc_audio_set_selector(bebob->unit, 0x00, 0x04, dig_in_iface); in special_dig_in_iface_ctl_set()
507 dev_err(&bebob->unit->device, in special_dig_in_iface_ctl_set()
511 special_stream_formation_set(bebob); in special_dig_in_iface_ctl_set()
512 mutex_unlock(&bebob->mutex); in special_dig_in_iface_ctl_set()
538 struct snd_bebob *bebob = snd_kcontrol_chip(kctl); in special_dig_out_iface_ctl_get() local
539 struct special_params *params = bebob->maudio_special_quirk; in special_dig_out_iface_ctl_get()
540 mutex_lock(&bebob->mutex); in special_dig_out_iface_ctl_get()
542 mutex_unlock(&bebob->mutex); in special_dig_out_iface_ctl_get()
548 struct snd_bebob *bebob = snd_kcontrol_chip(kctl); in special_dig_out_iface_ctl_set() local
549 struct special_params *params = bebob->maudio_special_quirk; in special_dig_out_iface_ctl_set()
557 mutex_lock(&bebob->mutex); in special_dig_out_iface_ctl_set()
559 err = avc_maudio_set_special_clk(bebob, in special_dig_out_iface_ctl_set()
564 special_stream_formation_set(bebob); in special_dig_out_iface_ctl_set()
568 mutex_unlock(&bebob->mutex); in special_dig_out_iface_ctl_set()
580 static int add_special_controls(struct snd_bebob *bebob) in add_special_controls() argument
583 struct special_params *params = bebob->maudio_special_quirk; in add_special_controls()
586 kctl = snd_ctl_new1(&special_clk_ctl, bebob); in add_special_controls()
587 err = snd_ctl_add(bebob->card, kctl); in add_special_controls()
591 kctl = snd_ctl_new1(&special_sync_ctl, bebob); in add_special_controls()
592 err = snd_ctl_add(bebob->card, kctl); in add_special_controls()
597 kctl = snd_ctl_new1(&special_dig_in_iface_ctl, bebob); in add_special_controls()
598 err = snd_ctl_add(bebob->card, kctl); in add_special_controls()
602 kctl = snd_ctl_new1(&special_dig_out_iface_ctl, bebob); in add_special_controls()
603 err = snd_ctl_add(bebob->card, kctl); in add_special_controls()
620 special_meter_get(struct snd_bebob *bebob, u32 *target, unsigned int size) in special_meter_get() argument
635 err = get_meter(bebob, (void *)buf, METER_SIZE_SPECIAL - 4); in special_meter_get()
679 normal_meter_get(struct snd_bebob *bebob, u32 *buf, unsigned int size) in normal_meter_get() argument
681 struct snd_bebob_meter_spec *spec = bebob->spec->meter; in normal_meter_get()
689 err = get_meter(bebob, (void *)buf, size); in normal_meter_get()