/sound/firewire/tascam/ |
D | tascam-stream.c | 16 static int get_clock(struct snd_tscm *tscm, u32 *data) in get_clock() argument 23 err = snd_fw_transaction(tscm->unit, TCODE_READ_QUADLET_REQUEST, in get_clock() 44 static int set_clock(struct snd_tscm *tscm, unsigned int rate, in set_clock() argument 51 err = get_clock(tscm, &data); in set_clock() 81 err = snd_fw_transaction(tscm->unit, TCODE_WRITE_QUADLET_REQUEST, in set_clock() 92 return snd_fw_transaction(tscm->unit, TCODE_WRITE_QUADLET_REQUEST, in set_clock() 97 int snd_tscm_stream_get_rate(struct snd_tscm *tscm, unsigned int *rate) in snd_tscm_stream_get_rate() argument 102 err = get_clock(tscm, &data); in snd_tscm_stream_get_rate() 125 int snd_tscm_stream_get_clock(struct snd_tscm *tscm, enum snd_tscm_clock *clock) in snd_tscm_stream_get_clock() argument 130 err = get_clock(tscm, &data); in snd_tscm_stream_get_clock() [all …]
|
D | tascam-hwdep.c | 18 static long tscm_hwdep_read_locked(struct snd_tscm *tscm, char __user *buf, in tscm_hwdep_read_locked() argument 20 __releases(&tscm->lock) in tscm_hwdep_read_locked() 26 event.status = (tscm->dev_lock_count > 0); in tscm_hwdep_read_locked() 27 tscm->dev_lock_changed = false; in tscm_hwdep_read_locked() 30 spin_unlock_irq(&tscm->lock); in tscm_hwdep_read_locked() 38 static long tscm_hwdep_read_queue(struct snd_tscm *tscm, char __user *buf, in tscm_hwdep_read_queue() argument 40 __releases(&tscm->lock) in tscm_hwdep_read_queue() 44 struct snd_firewire_tascam_change *entries = tscm->queue; in tscm_hwdep_read_queue() 49 spin_unlock_irq(&tscm->lock); in tscm_hwdep_read_queue() 63 if (tscm->pull_pos == tscm->push_pos) in tscm_hwdep_read_queue() [all …]
|
D | tascam-pcm.c | 10 static int pcm_init_hw_params(struct snd_tscm *tscm, in pcm_init_hw_params() argument 20 stream = &tscm->tx_stream; in pcm_init_hw_params() 21 pcm_channels = tscm->spec->pcm_capture_analog_channels; in pcm_init_hw_params() 24 stream = &tscm->rx_stream; in pcm_init_hw_params() 25 pcm_channels = tscm->spec->pcm_playback_analog_channels; in pcm_init_hw_params() 28 if (tscm->spec->has_adat) in pcm_init_hw_params() 30 if (tscm->spec->has_spdif) in pcm_init_hw_params() 45 struct snd_tscm *tscm = substream->private_data; in pcm_open() local 46 struct amdtp_domain *d = &tscm->domain; in pcm_open() 50 err = snd_tscm_stream_lock_try(tscm); in pcm_open() [all …]
|
D | tascam.c | 44 static int identify_model(struct snd_tscm *tscm) in identify_model() argument 46 struct fw_device *fw_dev = fw_parent_device(tscm->unit); in identify_model() 53 dev_err(&tscm->unit->device, in identify_model() 69 tscm->spec = &model_specs[i]; in identify_model() 73 if (tscm->spec == NULL) in identify_model() 76 strcpy(tscm->card->driver, "FW-TASCAM"); in identify_model() 77 strcpy(tscm->card->shortname, model); in identify_model() 78 strcpy(tscm->card->mixername, model); in identify_model() 79 snprintf(tscm->card->longname, sizeof(tscm->card->longname), in identify_model() 82 dev_name(&tscm->unit->device), 100 << fw_dev->max_speed); in identify_model() [all …]
|
D | tascam-midi.c | 18 struct snd_tscm *tscm = substream->rmidi->private_data; in midi_playback_open() local 20 snd_fw_async_midi_port_init(&tscm->out_ports[substream->number]); in midi_playback_open() 38 struct snd_tscm *tscm = substream->rmidi->private_data; in midi_playback_drain() local 40 snd_fw_async_midi_port_finish(&tscm->out_ports[substream->number]); in midi_playback_drain() 45 struct snd_tscm *tscm = substrm->rmidi->private_data; in midi_capture_trigger() local 48 spin_lock_irqsave(&tscm->lock, flags); in midi_capture_trigger() 51 tscm->tx_midi_substreams[substrm->number] = substrm; in midi_capture_trigger() 53 tscm->tx_midi_substreams[substrm->number] = NULL; in midi_capture_trigger() 55 spin_unlock_irqrestore(&tscm->lock, flags); in midi_capture_trigger() 60 struct snd_tscm *tscm = substrm->rmidi->private_data; in midi_playback_trigger() local [all …]
|
D | tascam-transaction.c | 250 struct snd_tscm *tscm = callback_data; in handle_midi_tx() local 259 if (offset != tscm->async_handler.offset) in handle_midi_tx() 268 if (port >= tscm->spec->midi_capture_ports) in handle_midi_tx() 284 substream = READ_ONCE(tscm->tx_midi_substreams[port]); in handle_midi_tx() 292 int snd_tscm_transaction_register(struct snd_tscm *tscm) in snd_tscm_transaction_register() argument 306 tscm->async_handler.length = 8 * 8; in snd_tscm_transaction_register() 307 tscm->async_handler.address_callback = handle_midi_tx; in snd_tscm_transaction_register() 308 tscm->async_handler.callback_data = tscm; in snd_tscm_transaction_register() 310 err = fw_core_add_address_handler(&tscm->async_handler, in snd_tscm_transaction_register() 315 err = snd_tscm_transaction_reregister(tscm); in snd_tscm_transaction_register() [all …]
|
D | tascam.h | 165 int snd_tscm_stream_get_rate(struct snd_tscm *tscm, unsigned int *rate); 166 int snd_tscm_stream_get_clock(struct snd_tscm *tscm, 168 int snd_tscm_stream_init_duplex(struct snd_tscm *tscm); 169 void snd_tscm_stream_update_duplex(struct snd_tscm *tscm); 170 void snd_tscm_stream_destroy_duplex(struct snd_tscm *tscm); 171 int snd_tscm_stream_reserve_duplex(struct snd_tscm *tscm, unsigned int rate, 174 int snd_tscm_stream_start_duplex(struct snd_tscm *tscm, unsigned int rate); 175 void snd_tscm_stream_stop_duplex(struct snd_tscm *tscm); 177 void snd_tscm_stream_lock_changed(struct snd_tscm *tscm); 178 int snd_tscm_stream_lock_try(struct snd_tscm *tscm); [all …]
|
D | tascam-proc.c | 13 struct snd_tscm *tscm = entry->private_data; in proc_read_firmware() local 18 err = snd_fw_transaction(tscm->unit, TCODE_READ_QUADLET_REQUEST, in proc_read_firmware() 25 err = snd_fw_transaction(tscm->unit, TCODE_READ_QUADLET_REQUEST, in proc_read_firmware() 32 err = snd_fw_transaction(tscm->unit, TCODE_READ_QUADLET_REQUEST, in proc_read_firmware() 39 err = snd_fw_transaction(tscm->unit, TCODE_READ_QUADLET_REQUEST, in proc_read_firmware() 52 static void add_node(struct snd_tscm *tscm, struct snd_info_entry *root, in add_node() argument 59 entry = snd_info_create_card_entry(tscm->card, name, root); in add_node() 61 snd_info_set_text_ops(entry, tscm, op); in add_node() 64 void snd_tscm_proc_init(struct snd_tscm *tscm) in snd_tscm_proc_init() argument 72 root = snd_info_create_card_entry(tscm->card, "firewire", in snd_tscm_proc_init() [all …]
|
D | amdtp-tascam.c | 132 struct snd_tscm *tscm = container_of(s, struct snd_tscm, tx_stream); in read_status_messages() local 133 bool used = READ_ONCE(tscm->hwdep->used); in read_status_messages() 142 before = tscm->state[index]; in read_status_messages() 159 &tscm->queue[tscm->push_pos]; in read_status_messages() 162 spin_lock_irqsave(&tscm->lock, flag); in read_status_messages() 166 if (++tscm->push_pos >= SND_TSCM_QUEUE_COUNT) in read_status_messages() 167 tscm->push_pos = 0; in read_status_messages() 168 spin_unlock_irqrestore(&tscm->lock, flag); in read_status_messages() 170 wake_up(&tscm->hwdep_wait); in read_status_messages() 174 tscm->state[index] = after; in read_status_messages()
|