Home
last modified time | relevance | path

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

/Linux-v4.19/sound/firewire/dice/
Ddice-stream.c33 int snd_dice_stream_get_rate_mode(struct snd_dice *dice, unsigned int rate, in snd_dice_stream_get_rate_mode() argument
49 if (!(dice->clock_caps & BIT(i))) in snd_dice_stream_get_rate_mode()
65 static int ensure_phase_lock(struct snd_dice *dice, unsigned int rate) in ensure_phase_lock() argument
72 err = snd_dice_transaction_read_global(dice, GLOBAL_CLOCK_SELECT, in ensure_phase_lock()
88 if (completion_done(&dice->clock_accepted)) in ensure_phase_lock()
89 reinit_completion(&dice->clock_accepted); in ensure_phase_lock()
92 err = snd_dice_transaction_write_global(dice, GLOBAL_CLOCK_SELECT, in ensure_phase_lock()
97 if (wait_for_completion_timeout(&dice->clock_accepted, in ensure_phase_lock()
104 err = snd_dice_transaction_read_global(dice, GLOBAL_STATUS, in ensure_phase_lock()
115 static int get_register_params(struct snd_dice *dice, in get_register_params() argument
[all …]
Ddice-transaction.c12 static u64 get_subaddr(struct snd_dice *dice, enum snd_dice_addr_type type, in get_subaddr() argument
17 offset += dice->tx_offset; in get_subaddr()
20 offset += dice->rx_offset; in get_subaddr()
23 offset += dice->sync_offset; in get_subaddr()
26 offset += dice->rsrv_offset; in get_subaddr()
30 offset += dice->global_offset; in get_subaddr()
37 int snd_dice_transaction_write(struct snd_dice *dice, in snd_dice_transaction_write() argument
41 return snd_fw_transaction(dice->unit, in snd_dice_transaction_write()
44 get_subaddr(dice, type, offset), buf, len, 0); in snd_dice_transaction_write()
47 int snd_dice_transaction_read(struct snd_dice *dice, in snd_dice_transaction_read() argument
[all …]
Ddice.c66 static int check_clock_caps(struct snd_dice *dice) in check_clock_caps() argument
72 if (dice->clock_caps > 0) { in check_clock_caps()
73 err = snd_dice_transaction_read_global(dice, in check_clock_caps()
78 dice->clock_caps = be32_to_cpu(value); in check_clock_caps()
81 dice->clock_caps = CLOCK_CAP_RATE_44100 | in check_clock_caps()
90 static void dice_card_strings(struct snd_dice *dice) in dice_card_strings() argument
92 struct snd_card *card = dice->card; in dice_card_strings()
93 struct fw_device *dev = fw_parent_device(dice->unit); in dice_card_strings()
102 err = snd_dice_transaction_read_global(dice, GLOBAL_NICK_NAME, in dice_card_strings()
116 fw_csr_string(dice->unit->directory, CSR_MODEL, model, sizeof(model)); in dice_card_strings()
[all …]
Ddice.h74 typedef int (*snd_dice_detect_formats_t)(struct snd_dice *dice);
127 int snd_dice_transaction_write(struct snd_dice *dice,
131 int snd_dice_transaction_read(struct snd_dice *dice,
135 static inline int snd_dice_transaction_write_global(struct snd_dice *dice, in snd_dice_transaction_write_global() argument
139 return snd_dice_transaction_write(dice, in snd_dice_transaction_write_global()
143 static inline int snd_dice_transaction_read_global(struct snd_dice *dice, in snd_dice_transaction_read_global() argument
147 return snd_dice_transaction_read(dice, in snd_dice_transaction_read_global()
151 static inline int snd_dice_transaction_write_tx(struct snd_dice *dice, in snd_dice_transaction_write_tx() argument
155 return snd_dice_transaction_write(dice, SND_DICE_ADDR_TYPE_TX, offset, in snd_dice_transaction_write_tx()
158 static inline int snd_dice_transaction_read_tx(struct snd_dice *dice, in snd_dice_transaction_read_tx() argument
[all …]
Ddice-hwdep.c15 struct snd_dice *dice = hwdep->private_data; in hwdep_read() local
19 spin_lock_irq(&dice->lock); in hwdep_read()
21 while (!dice->dev_lock_changed && dice->notification_bits == 0) { in hwdep_read()
22 prepare_to_wait(&dice->hwdep_wait, &wait, TASK_INTERRUPTIBLE); in hwdep_read()
23 spin_unlock_irq(&dice->lock); in hwdep_read()
25 finish_wait(&dice->hwdep_wait, &wait); in hwdep_read()
28 spin_lock_irq(&dice->lock); in hwdep_read()
32 if (dice->dev_lock_changed) { in hwdep_read()
34 event.lock_status.status = dice->dev_lock_count > 0; in hwdep_read()
35 dice->dev_lock_changed = false; in hwdep_read()
[all …]
Ddice-pcm.c16 struct snd_dice *dice = substream->private_data; in dice_rate_constraint() local
31 pcm_channels = dice->tx_pcm_chs[index]; in dice_rate_constraint()
33 pcm_channels = dice->rx_pcm_chs[index]; in dice_rate_constraint()
37 if (snd_dice_stream_get_rate_mode(dice, rate, &mode) < 0) in dice_rate_constraint()
54 struct snd_dice *dice = substream->private_data; in dice_channels_constraint() local
69 pcm_channels = dice->tx_pcm_chs[index]; in dice_channels_constraint()
71 pcm_channels = dice->rx_pcm_chs[index]; in dice_channels_constraint()
75 if (snd_dice_stream_get_rate_mode(dice, rate, &mode) < 0) in dice_channels_constraint()
88 static int limit_channels_and_rates(struct snd_dice *dice, in limit_channels_and_rates() argument
98 pcm_channels = dice->tx_pcm_chs[index]; in limit_channels_and_rates()
[all …]
Ddice-midi.c12 struct snd_dice *dice = substream->rmidi->private_data; in midi_open() local
15 err = snd_dice_stream_lock_try(dice); in midi_open()
19 mutex_lock(&dice->mutex); in midi_open()
21 dice->substreams_counter++; in midi_open()
22 err = snd_dice_stream_start_duplex(dice, 0); in midi_open()
24 mutex_unlock(&dice->mutex); in midi_open()
27 snd_dice_stream_lock_release(dice); in midi_open()
34 struct snd_dice *dice = substream->rmidi->private_data; in midi_close() local
36 mutex_lock(&dice->mutex); in midi_close()
38 dice->substreams_counter--; in midi_close()
[all …]
DMakefile1 snd-dice-objs := dice-transaction.o dice-stream.o dice-proc.o dice-midi.o \
2 dice-pcm.o dice-hwdep.o dice.o dice-tcelectronic.o \
3 dice-alesis.o dice-extension.o dice-mytek.o
4 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.c12 static int dice_proc_read_mem(struct snd_dice *dice, void *buffer, in dice_proc_read_mem() argument
18 err = snd_fw_transaction(dice->unit, TCODE_READ_BLOCK_REQUEST, in dice_proc_read_mem()
71 struct snd_dice *dice = entry->private_data; in dice_proc_read() local
118 if (dice_proc_read_mem(dice, sections, 0, ARRAY_SIZE(sections)) < 0) in dice_proc_read()
127 if (dice_proc_read_mem(dice, &buf.global, sections[0], quadlets) < 0) in dice_proc_read()
171 if (dice_proc_read_mem(dice, &tx_rx_header, sections[2], 2) < 0) in dice_proc_read()
175 if (dice_proc_read_mem(dice, &buf.tx, sections[2] + 2 + in dice_proc_read()
197 if (dice_proc_read_mem(dice, &tx_rx_header, sections[4], 2) < 0) in dice_proc_read()
201 if (dice_proc_read_mem(dice, &buf.rx, sections[4] + 2 + in dice_proc_read()
225 if (dice_proc_read_mem(dice, &buf.ext_sync, in dice_proc_read()
[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()
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()
/Linux-v4.19/sound/firewire/
DMakefile10 obj-$(CONFIG_SND_DICE) += dice/
DKconfig24 will be called snd-dice.
/Linux-v4.19/Documentation/translations/it_IT/kernel-hacking/
Dhacking.rst236 - Avete abilitato le interruzioni (in realtà, Andy Kleen dice che
Dlocking.rst892 leggendo solamente il codice. E come dice Alan Cox: “Lock data, not code”.