root/sound/firewire/dice/dice-mytek.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. snd_dice_detect_mytek_formats

   1 // SPDX-License-Identifier: GPL-2.0
   2 /*
   3  * dice-mytek.c - a part of driver for DICE based devices
   4  *
   5  * Copyright (c) 2018 Melvin Vermeeren
   6  */
   7 
   8 #include "dice.h"
   9 
  10 struct dice_mytek_spec {
  11         unsigned int tx_pcm_chs[MAX_STREAMS][SND_DICE_RATE_MODE_COUNT];
  12         unsigned int rx_pcm_chs[MAX_STREAMS][SND_DICE_RATE_MODE_COUNT];
  13 };
  14 
  15 static const struct dice_mytek_spec stereo_192_dsd_dac = {
  16         /* AES, TOSLINK, SPDIF, ADAT inputs on device */
  17         .tx_pcm_chs = {{8, 8, 8}, {0, 0, 0} },
  18         /* PCM 44.1-192, native DSD64/DSD128 to device */
  19         .rx_pcm_chs = {{4, 4, 4}, {0, 0, 0} }
  20 };
  21 
  22 /*
  23  * Mytek has a few other firewire-capable devices, though newer models appear
  24  * to lack the port more often than not. As I don't have access to any of them
  25  * they are missing here. An example is the Mytek 8x192 ADDA, which is DICE.
  26  */
  27 
  28 int snd_dice_detect_mytek_formats(struct snd_dice *dice)
  29 {
  30         int i;
  31         const struct dice_mytek_spec *dev;
  32 
  33         dev = &stereo_192_dsd_dac;
  34 
  35         memcpy(dice->tx_pcm_chs, dev->tx_pcm_chs,
  36                MAX_STREAMS * SND_DICE_RATE_MODE_COUNT * sizeof(unsigned int));
  37         memcpy(dice->rx_pcm_chs, dev->rx_pcm_chs,
  38                MAX_STREAMS * SND_DICE_RATE_MODE_COUNT * sizeof(unsigned int));
  39 
  40         for (i = 0; i < MAX_STREAMS; ++i) {
  41                 dice->tx_midi_ports[i] = 0;
  42                 dice->rx_midi_ports[i] = 0;
  43         }
  44 
  45         return 0;
  46 }

/* [<][>][^][v][top][bottom][index][help] */