Lines Matching +full:electronic +full:- +full:serial +full:- +full:number
1 // SPDX-License-Identifier: GPL-2.0-only
37 int key, val, vendor = -1, model = -1; in check_dice_category()
43 * GUID chip ID consists of the 8-bit category ID, the 10-bit product in check_dice_category()
44 * ID, and a 22-bit serial number. in check_dice_category()
46 fw_csr_iterator_init(&it, unit->directory); in check_dice_category()
66 if (device->config_rom[3] != ((vendor << 8) | category) || in check_dice_category()
67 device->config_rom[4] >> 22 != model) in check_dice_category()
68 return -ENODEV; in check_dice_category()
79 if (dice->clock_caps > 0) { 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()
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()
105 strcpy(card->driver, "DICE"); in dice_card_strings()
107 strcpy(card->shortname, "DICE"); in dice_card_strings()
108 BUILD_BUG_ON(NICK_NAME_SIZE < sizeof(card->shortname)); in dice_card_strings()
110 card->shortname, in dice_card_strings()
111 sizeof(card->shortname)); in dice_card_strings()
113 /* DICE strings are returned in "always-wrong" endianness */ in dice_card_strings()
114 BUILD_BUG_ON(sizeof(card->shortname) % 4 != 0); in dice_card_strings()
115 for (i = 0; i < sizeof(card->shortname); i += 4) in dice_card_strings()
116 swab32s((u32 *)&card->shortname[i]); in dice_card_strings()
117 card->shortname[sizeof(card->shortname) - 1] = '\0'; in dice_card_strings()
121 fw_csr_string(dev->config_rom + 5, CSR_VENDOR, vendor, sizeof(vendor)); in dice_card_strings()
123 fw_csr_string(dice->unit->directory, CSR_MODEL, model, sizeof(model)); in dice_card_strings()
124 snprintf(card->longname, sizeof(card->longname), in dice_card_strings()
125 "%s %s (serial %u) at %s, S%d", in dice_card_strings()
126 vendor, model, dev->config_rom[4] & 0x3fffff, in dice_card_strings()
127 dev_name(&dice->unit->device), 100 << dev->max_speed); in dice_card_strings()
129 strcpy(card->mixername, "DICE"); in dice_card_strings()
134 struct snd_dice *dice = card->private_data; in dice_card_free()
139 mutex_destroy(&dice->mutex); in dice_card_free()
140 fw_unit_put(dice->unit); in dice_card_free()
150 if (!entry->driver_data && entry->vendor_id != OUI_SSL) { in dice_probe()
153 return -ENODEV; in dice_probe()
156 err = snd_card_new(&unit->device, -1, NULL, THIS_MODULE, sizeof(*dice), &card); in dice_probe()
159 card->private_free = dice_card_free; in dice_probe()
161 dice = card->private_data; in dice_probe()
162 dice->unit = fw_unit_get(unit); in dice_probe()
163 dev_set_drvdata(&unit->device, dice); in dice_probe()
164 dice->card = card; in dice_probe()
166 if (!entry->driver_data) in dice_probe()
169 detect_formats = (snd_dice_detect_formats_t)entry->driver_data; in dice_probe()
171 // Below models are compliant to IEC 61883-1/6 and have no quirk at high sampling transfer in dice_probe()
173 // * Avid M-Box 3 Pro in dice_probe()
174 // * M-Audio Profire 610 in dice_probe()
175 // * M-Audio Profire 2626 in dice_probe()
176 if (entry->vendor_id == OUI_MAUDIO || entry->vendor_id == OUI_AVID) in dice_probe()
177 dice->disable_double_pcm_frames = true; in dice_probe()
179 spin_lock_init(&dice->lock); in dice_probe()
180 mutex_init(&dice->mutex); in dice_probe()
181 init_completion(&dice->clock_accepted); in dice_probe()
182 init_waitqueue_head(&dice->hwdep_wait); in dice_probe()
228 struct snd_dice *dice = dev_get_drvdata(&unit->device); in dice_remove()
231 snd_card_free(dice->card); in dice_remove()
236 struct snd_dice *dice = dev_get_drvdata(&unit->device); in dice_bus_reset()
241 mutex_lock(&dice->mutex); in dice_bus_reset()
243 mutex_unlock(&dice->mutex); in dice_bus_reset()
262 // Avid M-Box 3 Pro. To match in probe function.
264 /* M-Audio Profire 2626 has a different value in version field. */
272 /* M-Audio Profire 610 has a different value in version field. */
280 /* TC Electronic Konnekt 24D. */
288 /* TC Electronic Konnekt 8. */
296 /* TC Electronic Studio Konnekt 48. */
304 /* TC Electronic Konnekt Live. */
312 /* TC Electronic Desktop Konnekt 6. */
320 /* TC Electronic Impact Twin. */
328 /* TC Electronic Digital Konnekt x32. */
352 /* Mytek Stereo 192 DSD-DAC. */
377 // Lexicon I-ONYX FW810S.
385 // Focusrite Saffire Pro 40 with TCD3070-CH.
395 // Weiss DAC202: 192kHz 2-channel DAC
402 // Weiss DAC202: 192kHz 2-channel DAC (Maya edition)
409 // Weiss MAN301: 192kHz 2-channel music archive network player
416 // Weiss INT202: 192kHz unidirectional 2-channel digital Firewire face
423 // Weiss INT203: 192kHz bidirectional 2-channel digital Firewire face
437 // Weiss DAC2/Minerva: 192kHz 2-channel DAC
444 // Weiss Vesta: 192kHz 2-channel Firewire to AES/EBU interface
451 // Weiss AFI1: 192kHz 24-channel Firewire to ADAT or AES/EBU face