Home
last modified time | relevance | path

Searched refs:dice (Results 1 – 17 of 17) sorted by relevance

/sound/firewire/dice/
Ddice-stream.c32 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 …]
Ddice-transaction.c11 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 …]
Ddice.h73 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 …]
Ddice-hwdep.c14 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 …]
Ddice-pcm.c15 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 …]
Ddice-midi.c11 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 …]
Ddice.c73 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 …]
Ddice-alesis.c22 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, &reg, 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 …]
DMakefile2 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
Ddice-extension.c50 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 …]
Ddice-proc.c11 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 …]
Ddice-harman.c8 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()
Ddice-presonus.c20 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()
Ddice-mytek.c28 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()
Ddice-tcelectronic.c58 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/
DMakefile10 obj-$(CONFIG_SND_DICE) += dice/
DKconfig42 will be called snd-dice.