/sound/firewire/dice/ |
D | dice-stream.c | 32 int snd_dice_stream_get_rate_mode(struct snd_dice *dice, unsigned int rate, in snd_dice_stream_get_rate_mode() argument 48 if (!(dice->clock_caps & BIT(i))) in snd_dice_stream_get_rate_mode() 60 static int select_clock(struct snd_dice *dice, unsigned int rate) in select_clock() argument 67 err = snd_dice_transaction_read_global(dice, GLOBAL_CLOCK_SELECT, in select_clock() 83 if (completion_done(&dice->clock_accepted)) in select_clock() 84 reinit_completion(&dice->clock_accepted); in select_clock() 87 err = snd_dice_transaction_write_global(dice, GLOBAL_CLOCK_SELECT, in select_clock() 92 if (wait_for_completion_timeout(&dice->clock_accepted, in select_clock() 101 static int get_register_params(struct snd_dice *dice, in get_register_params() argument 108 err = snd_dice_transaction_read_tx(dice, TX_NUMBER, reg, sizeof(reg)); in get_register_params() [all …]
|
D | dice-transaction.c | 11 static u64 get_subaddr(struct snd_dice *dice, enum snd_dice_addr_type type, in get_subaddr() argument 16 offset += dice->tx_offset; in get_subaddr() 19 offset += dice->rx_offset; in get_subaddr() 22 offset += dice->sync_offset; in get_subaddr() 25 offset += dice->rsrv_offset; in get_subaddr() 29 offset += dice->global_offset; in get_subaddr() 36 int snd_dice_transaction_write(struct snd_dice *dice, in snd_dice_transaction_write() argument 40 return snd_fw_transaction(dice->unit, in snd_dice_transaction_write() 43 get_subaddr(dice, type, offset), buf, len, 0); in snd_dice_transaction_write() 46 int snd_dice_transaction_read(struct snd_dice *dice, in snd_dice_transaction_read() argument [all …]
|
D | dice.h | 73 typedef int (*snd_dice_detect_formats_t)(struct snd_dice *dice); 125 int snd_dice_transaction_write(struct snd_dice *dice, 129 int snd_dice_transaction_read(struct snd_dice *dice, 133 static inline int snd_dice_transaction_write_global(struct snd_dice *dice, in snd_dice_transaction_write_global() argument 137 return snd_dice_transaction_write(dice, in snd_dice_transaction_write_global() 141 static inline int snd_dice_transaction_read_global(struct snd_dice *dice, in snd_dice_transaction_read_global() argument 145 return snd_dice_transaction_read(dice, in snd_dice_transaction_read_global() 149 static inline int snd_dice_transaction_write_tx(struct snd_dice *dice, in snd_dice_transaction_write_tx() argument 153 return snd_dice_transaction_write(dice, SND_DICE_ADDR_TYPE_TX, offset, in snd_dice_transaction_write_tx() 156 static inline int snd_dice_transaction_read_tx(struct snd_dice *dice, in snd_dice_transaction_read_tx() argument [all …]
|
D | dice-hwdep.c | 14 struct snd_dice *dice = hwdep->private_data; in hwdep_read() local 18 spin_lock_irq(&dice->lock); in hwdep_read() 20 while (!dice->dev_lock_changed && dice->notification_bits == 0) { in hwdep_read() 21 prepare_to_wait(&dice->hwdep_wait, &wait, TASK_INTERRUPTIBLE); in hwdep_read() 22 spin_unlock_irq(&dice->lock); in hwdep_read() 24 finish_wait(&dice->hwdep_wait, &wait); in hwdep_read() 27 spin_lock_irq(&dice->lock); in hwdep_read() 31 if (dice->dev_lock_changed) { in hwdep_read() 33 event.lock_status.status = dice->dev_lock_count > 0; in hwdep_read() 34 dice->dev_lock_changed = false; in hwdep_read() [all …]
|
D | dice-pcm.c | 15 struct snd_dice *dice = substream->private_data; in dice_rate_constraint() local 30 pcm_channels = dice->tx_pcm_chs[index]; in dice_rate_constraint() 32 pcm_channels = dice->rx_pcm_chs[index]; in dice_rate_constraint() 36 if (snd_dice_stream_get_rate_mode(dice, rate, &mode) < 0) in dice_rate_constraint() 53 struct snd_dice *dice = substream->private_data; in dice_channels_constraint() local 68 pcm_channels = dice->tx_pcm_chs[index]; in dice_channels_constraint() 70 pcm_channels = dice->rx_pcm_chs[index]; in dice_channels_constraint() 74 if (snd_dice_stream_get_rate_mode(dice, rate, &mode) < 0) in dice_channels_constraint() 87 static int limit_channels_and_rates(struct snd_dice *dice, in limit_channels_and_rates() argument 97 pcm_channels = dice->tx_pcm_chs[index]; in limit_channels_and_rates() [all …]
|
D | dice-midi.c | 11 struct snd_dice *dice = substream->rmidi->private_data; in midi_open() local 14 err = snd_dice_stream_lock_try(dice); in midi_open() 18 mutex_lock(&dice->mutex); in midi_open() 20 err = snd_dice_stream_reserve_duplex(dice, 0, 0, 0); in midi_open() 22 ++dice->substreams_counter; in midi_open() 23 err = snd_dice_stream_start_duplex(dice); in midi_open() 25 --dice->substreams_counter; in midi_open() 28 mutex_unlock(&dice->mutex); in midi_open() 31 snd_dice_stream_lock_release(dice); in midi_open() 38 struct snd_dice *dice = substream->rmidi->private_data; in midi_close() local [all …]
|
D | dice.c | 73 static int check_clock_caps(struct snd_dice *dice) in check_clock_caps() argument 79 if (dice->clock_caps > 0) { in check_clock_caps() 80 err = snd_dice_transaction_read_global(dice, in check_clock_caps() 85 dice->clock_caps = be32_to_cpu(value); in check_clock_caps() 88 dice->clock_caps = CLOCK_CAP_RATE_44100 | in check_clock_caps() 97 static void dice_card_strings(struct snd_dice *dice) in dice_card_strings() argument 99 struct snd_card *card = dice->card; in dice_card_strings() 100 struct fw_device *dev = fw_parent_device(dice->unit); in dice_card_strings() 109 err = snd_dice_transaction_read_global(dice, GLOBAL_NICK_NAME, in dice_card_strings() 123 fw_csr_string(dice->unit->directory, CSR_MODEL, model, sizeof(model)); in dice_card_strings() [all …]
|
D | dice-alesis.c | 22 int snd_dice_detect_alesis_formats(struct snd_dice *dice) in snd_dice_detect_alesis_formats() argument 29 err = snd_dice_transaction_read_tx(dice, TX_NUMBER_AUDIO, ®, in snd_dice_detect_alesis_formats() 36 memcpy(dice->tx_pcm_chs, alesis_io14_tx_pcm_chs, in snd_dice_detect_alesis_formats() 40 memcpy(dice->tx_pcm_chs, alesis_io26_tx_pcm_chs, in snd_dice_detect_alesis_formats() 46 dice->rx_pcm_chs[0][i] = 8; in snd_dice_detect_alesis_formats() 48 dice->tx_midi_ports[0] = 1; in snd_dice_detect_alesis_formats() 49 dice->rx_midi_ports[0] = 1; in snd_dice_detect_alesis_formats() 54 int snd_dice_detect_alesis_mastercontrol_formats(struct snd_dice *dice) in snd_dice_detect_alesis_mastercontrol_formats() argument 58 dice->tx_pcm_chs[0][SND_DICE_RATE_MODE_LOW] = 16; in snd_dice_detect_alesis_mastercontrol_formats() 59 dice->tx_pcm_chs[1][SND_DICE_RATE_MODE_LOW] = 12; in snd_dice_detect_alesis_mastercontrol_formats() [all …]
|
D | Makefile | 2 snd-dice-objs := dice-transaction.o dice-stream.o dice-proc.o dice-midi.o \ 3 dice-pcm.o dice-hwdep.o dice.o dice-tcelectronic.o \ 4 dice-alesis.o dice-extension.o dice-mytek.o dice-presonus.o \ 5 dice-harman.o 6 obj-$(CONFIG_SND_DICE) += snd-dice.o
|
D | dice-extension.c | 50 static inline int read_transaction(struct snd_dice *dice, u64 section_addr, in read_transaction() argument 53 return snd_fw_transaction(dice->unit, in read_transaction() 59 static int read_stream_entries(struct snd_dice *dice, u64 section_addr, in read_stream_entries() argument 72 err = read_transaction(dice, section_addr, in read_stream_entries() 84 static int detect_stream_formats(struct snd_dice *dice, u64 section_addr) in detect_stream_formats() argument 107 if (!(cap & dice->clock_caps)) in detect_stream_formats() 112 err = read_transaction(dice, section_addr, in detect_stream_formats() 120 err = read_stream_entries(dice, section_addr, base_offset, in detect_stream_formats() 122 dice->tx_pcm_chs, in detect_stream_formats() 123 dice->tx_midi_ports); in detect_stream_formats() [all …]
|
D | dice-proc.c | 11 static int dice_proc_read_mem(struct snd_dice *dice, void *buffer, in dice_proc_read_mem() argument 17 err = snd_fw_transaction(dice->unit, TCODE_READ_BLOCK_REQUEST, in dice_proc_read_mem() 70 struct snd_dice *dice = entry->private_data; in dice_proc_read() local 117 if (dice_proc_read_mem(dice, sections, 0, ARRAY_SIZE(sections)) < 0) in dice_proc_read() 126 if (dice_proc_read_mem(dice, &buf.global, sections[0], quadlets) < 0) in dice_proc_read() 170 if (dice_proc_read_mem(dice, &tx_rx_header, sections[2], 2) < 0) in dice_proc_read() 174 if (dice_proc_read_mem(dice, &buf.tx, sections[2] + 2 + in dice_proc_read() 196 if (dice_proc_read_mem(dice, &tx_rx_header, sections[4], 2) < 0) in dice_proc_read() 200 if (dice_proc_read_mem(dice, &buf.rx, sections[4] + 2 + in dice_proc_read() 224 if (dice_proc_read_mem(dice, &buf.ext_sync, in dice_proc_read() [all …]
|
D | dice-harman.c | 8 int snd_dice_detect_harman_formats(struct snd_dice *dice) in snd_dice_detect_harman_formats() argument 17 dice->tx_pcm_chs[0][i] = 12; in snd_dice_detect_harman_formats() 18 dice->tx_midi_ports[0] = 1; in snd_dice_detect_harman_formats() 19 dice->rx_pcm_chs[0][i] = 10; in snd_dice_detect_harman_formats() 20 dice->rx_midi_ports[0] = 1; in snd_dice_detect_harman_formats()
|
D | dice-presonus.c | 20 int snd_dice_detect_presonus_formats(struct snd_dice *dice) in snd_dice_detect_presonus_formats() argument 33 fw_csr_iterator_init(&it, dice->unit->directory); in snd_dice_detect_presonus_formats() 49 memcpy(dice->tx_pcm_chs, entry->spec->tx_pcm_chs, in snd_dice_detect_presonus_formats() 51 memcpy(dice->rx_pcm_chs, entry->spec->rx_pcm_chs, in snd_dice_detect_presonus_formats() 55 dice->tx_midi_ports[0] = 1; in snd_dice_detect_presonus_formats() 56 dice->rx_midi_ports[0] = 1; in snd_dice_detect_presonus_formats()
|
D | dice-mytek.c | 28 int snd_dice_detect_mytek_formats(struct snd_dice *dice) in snd_dice_detect_mytek_formats() argument 35 memcpy(dice->tx_pcm_chs, dev->tx_pcm_chs, in snd_dice_detect_mytek_formats() 37 memcpy(dice->rx_pcm_chs, dev->rx_pcm_chs, in snd_dice_detect_mytek_formats() 41 dice->tx_midi_ports[i] = 0; in snd_dice_detect_mytek_formats() 42 dice->rx_midi_ports[i] = 0; in snd_dice_detect_mytek_formats()
|
D | dice-tcelectronic.c | 58 int snd_dice_detect_tcelectronic_formats(struct snd_dice *dice) in snd_dice_detect_tcelectronic_formats() argument 77 fw_csr_iterator_init(&it, dice->unit->directory); in snd_dice_detect_tcelectronic_formats() 93 memcpy(dice->tx_pcm_chs, entry->spec->tx_pcm_chs, in snd_dice_detect_tcelectronic_formats() 95 memcpy(dice->rx_pcm_chs, entry->spec->rx_pcm_chs, in snd_dice_detect_tcelectronic_formats() 99 dice->tx_midi_ports[0] = 1; in snd_dice_detect_tcelectronic_formats() 100 dice->rx_midi_ports[0] = 1; in snd_dice_detect_tcelectronic_formats()
|
/sound/firewire/ |
D | Makefile | 10 obj-$(CONFIG_SND_DICE) += dice/
|
D | Kconfig | 42 will be called snd-dice.
|