| /kernel/linux/linux-6.6/sound/firewire/dice/ |
| D | dice-stream.c | 3 * dice_stream.c - a part of driver for DICE based devices 9 #include "dice.h" 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() [all …]
|
| D | dice-transaction.c | 3 * dice_transaction.c - a part of driver for Dice based devices 9 #include "dice.h" 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() [all …]
|
| D | dice.h | 3 * dice.h - a part of driver for Dice based devices 40 #include "dice-interface.h" 46 * In documents for ASICs called with a name of 'DICE': 47 * - ASIC for DICE II: 50 * - TCD2210/2210-E (so-called 'Dice Mini'): 53 * - TCD2220/2220-E (so-called 'Dice Jr.') 56 * - TCD3070-CH (so-called 'Dice III') 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, [all …]
|
| D | dice-hwdep.c | 3 * dice_hwdep.c - a part of driver for DICE based devices 9 #include "dice.h" 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() [all …]
|
| D | dice-pcm.c | 3 * dice_pcm.c - a part of driver for DICE based devices 9 #include "dice.h" 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() [all …]
|
| D | dice-midi.c | 3 * dice_midi.c - a part of driver for Dice based devices 7 #include "dice.h" 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() [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 dice-focusrite.o dice-weiss.o 6 obj-$(CONFIG_SND_DICE) += snd-dice.o
|
| D | dice-alesis.c | 3 * dice-alesis.c - a part of driver for DICE based devices 8 #include "dice.h" 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 [all …]
|
| D | dice.c | 8 #include "dice.h" 10 MODULE_DESCRIPTION("DICE driver"); 41 * Check that GUID and unit directory are constructed according to DICE in check_dice_category() 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() [all …]
|
| D | dice-focusrite.c | 2 // dice-focusrite.c - a part of driver for DICE based devices 6 #include "dice.h" 8 int snd_dice_detect_focusrite_pro40_tcd3070_formats(struct snd_dice *dice) in snd_dice_detect_focusrite_pro40_tcd3070_formats() argument 12 dice->tx_pcm_chs[0][0] = 20; in snd_dice_detect_focusrite_pro40_tcd3070_formats() 13 dice->tx_midi_ports[0] = 1; in snd_dice_detect_focusrite_pro40_tcd3070_formats() 14 dice->rx_pcm_chs[0][0] = 20; in snd_dice_detect_focusrite_pro40_tcd3070_formats() 15 dice->rx_midi_ports[0] = 1; in snd_dice_detect_focusrite_pro40_tcd3070_formats() 17 dice->tx_pcm_chs[0][1] = 16; in snd_dice_detect_focusrite_pro40_tcd3070_formats() 18 dice->tx_midi_ports[1] = 1; in snd_dice_detect_focusrite_pro40_tcd3070_formats() 19 dice->rx_pcm_chs[0][1] = 16; in snd_dice_detect_focusrite_pro40_tcd3070_formats() [all …]
|
| D | dice-extension.c | 3 * dice-extension.c - a part of driver for DICE based devices 8 #include "dice.h" 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() [all …]
|
| D | dice-proc.c | 3 * dice_proc.c - a part of driver for Dice based devices 9 #include "dice.h" 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() [all …]
|
| D | dice-harman.c | 2 // dice-harman.c - a part of driver for DICE based devices 6 #include "dice.h" 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()
|
| /kernel/linux/linux-5.10/sound/firewire/dice/ |
| D | dice-stream.c | 3 * dice_stream.c - a part of driver for DICE based devices 9 #include "dice.h" 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() 64 static int ensure_phase_lock(struct snd_dice *dice, unsigned int rate) in ensure_phase_lock() argument 71 err = snd_dice_transaction_read_global(dice, GLOBAL_CLOCK_SELECT, in ensure_phase_lock() 87 if (completion_done(&dice->clock_accepted)) in ensure_phase_lock() 88 reinit_completion(&dice->clock_accepted); in ensure_phase_lock() 91 err = snd_dice_transaction_write_global(dice, GLOBAL_CLOCK_SELECT, in ensure_phase_lock() 96 if (wait_for_completion_timeout(&dice->clock_accepted, in ensure_phase_lock() [all …]
|
| D | dice-transaction.c | 3 * dice_transaction.c - a part of driver for Dice based devices 9 #include "dice.h" 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() [all …]
|
| D | dice-hwdep.c | 3 * dice_hwdep.c - a part of driver for DICE based devices 9 #include "dice.h" 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() [all …]
|
| D | dice.h | 3 * dice.h - a part of driver for Dice based devices 40 #include "dice-interface.h" 46 * In documents for ASICs called with a name of 'DICE': 47 * - ASIC for DICE II: 50 * - TCD2210/2210-E (so-called 'Dice Mini'): 53 * - TCD2220/2220-E (so-called 'Dice Jr.') 56 * - TCD3070-CH (so-called 'Dice III') 73 typedef int (*snd_dice_detect_formats_t)(struct snd_dice *dice); 128 int snd_dice_transaction_write(struct snd_dice *dice, 132 int snd_dice_transaction_read(struct snd_dice *dice, [all …]
|
| D | dice.c | 8 #include "dice.h" 10 MODULE_DESCRIPTION("DICE driver"); 38 * Check that GUID and unit directory are constructed according to DICE in check_dice_category() 68 static int check_clock_caps(struct snd_dice *dice) in check_clock_caps() argument 74 if (dice->clock_caps > 0) { in check_clock_caps() 75 err = snd_dice_transaction_read_global(dice, in check_clock_caps() 80 dice->clock_caps = be32_to_cpu(value); in check_clock_caps() 83 dice->clock_caps = CLOCK_CAP_RATE_44100 | in check_clock_caps() 92 static void dice_card_strings(struct snd_dice *dice) in dice_card_strings() argument 94 struct snd_card *card = dice->card; in dice_card_strings() [all …]
|
| D | dice-pcm.c | 3 * dice_pcm.c - a part of driver for DICE based devices 9 #include "dice.h" 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() [all …]
|
| D | dice-midi.c | 3 * dice_midi.c - a part of driver for Dice based devices 7 #include "dice.h" 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() [all …]
|
| D | dice-alesis.c | 3 * dice-alesis.c - a part of driver for DICE based devices 8 #include "dice.h" 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 [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 obj-$(CONFIG_SND_DICE) += snd-dice.o
|
| D | dice-extension.c | 3 * dice-extension.c - a part of driver for DICE based devices 8 #include "dice.h" 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() [all …]
|
| D | dice-proc.c | 3 * dice_proc.c - a part of driver for Dice based devices 9 #include "dice.h" 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() [all …]
|
| /kernel/linux/linux-6.6/Documentation/devicetree/bindings/reserved-memory/ |
| D | google,open-dice.yaml | 4 $id: http://devicetree.org/schemas/reserved-memory/google,open-dice.yaml# 7 title: Open Profile for DICE 11 generated by the Open Profile for DICE protocol. 13 See https://pigweed.googlesource.com/open-dice/ 23 const: google,open-dice 26 description: page-aligned region of memory containing DICE data 41 dice: dice@12340000 { 42 compatible = "google,open-dice";
|