mirror of
https://github.com/torvalds/linux.git
synced 2024-12-28 13:51:44 +00:00
[ALSA] sound - fix .iface field of mixer control elements
Documentation,CS46xx driver,EMU10K1/EMU10K2 driver,AD1848 driver SB16/AWE driver,CMIPCI driver,ENS1370/1+ driver,RME32 driver RME96 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver RME HDSP driver,RME9652 driver This patch changes .iface to SNDRV_CTL_ELEM_IFACE_MIXER whre _PCM or _HWDEP was used in controls that are not associated with a specific PCM (sub)stream or hwdep device, and changes some controls that got inconsitent .iface values due to copy+paste errors. Furthermore, it makes sure that all control that do use _PCM or _HWDEP use the correct number in the .device field. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
This commit is contained in:
parent
42dfd0adab
commit
67ed4161f6
@ -3422,10 +3422,17 @@ struct _snd_pcm_runtime {
|
||||
|
||||
<para>
|
||||
The <structfield>iface</structfield> field specifies the type of
|
||||
the control,
|
||||
<constant>SNDRV_CTL_ELEM_IFACE_XXX</constant>. There are
|
||||
<constant>MIXER</constant>, <constant>PCM</constant>,
|
||||
<constant>CARD</constant>, etc.
|
||||
the control, <constant>SNDRV_CTL_ELEM_IFACE_XXX</constant>, which
|
||||
is usually <constant>MIXER</constant>.
|
||||
Use <constant>CARD</constant> for global controls that are not
|
||||
logically part of the mixer.
|
||||
If the control is closely associated with some specific device on
|
||||
the sound card, use <constant>HWDEP</constant>,
|
||||
<constant>PCM</constant>, <constant>RAWMIDI</constant>,
|
||||
<constant>TIMER</constant>, or <constant>SEQUENCER</constant>, and
|
||||
specify the device number with the
|
||||
<structfield>device</structfield> and
|
||||
<structfield>subdevice</structfield> fields.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
|
@ -1748,7 +1748,7 @@ int snd_cs46xx_pcm(cs46xx_t *chip, int device, snd_pcm_t **rpcm);
|
||||
int snd_cs46xx_pcm_rear(cs46xx_t *chip, int device, snd_pcm_t **rpcm);
|
||||
int snd_cs46xx_pcm_iec958(cs46xx_t *chip, int device, snd_pcm_t **rpcm);
|
||||
int snd_cs46xx_pcm_center_lfe(cs46xx_t *chip, int device, snd_pcm_t **rpcm);
|
||||
int snd_cs46xx_mixer(cs46xx_t *chip);
|
||||
int snd_cs46xx_mixer(cs46xx_t *chip, int spdif_device);
|
||||
int snd_cs46xx_midi(cs46xx_t *chip, int device, snd_rawmidi_t **rmidi);
|
||||
int snd_cs46xx_start_dsp(cs46xx_t *chip);
|
||||
int snd_cs46xx_gameport(cs46xx_t *chip);
|
||||
|
@ -1178,7 +1178,7 @@ int snd_p16v_free(emu10k1_t * emu);
|
||||
int snd_p16v_mixer(emu10k1_t * emu);
|
||||
int snd_emu10k1_pcm_multi(emu10k1_t * emu, int device, snd_pcm_t ** rpcm);
|
||||
int snd_emu10k1_fx8010_pcm(emu10k1_t * emu, int device, snd_pcm_t ** rpcm);
|
||||
int snd_emu10k1_mixer(emu10k1_t * emu);
|
||||
int snd_emu10k1_mixer(emu10k1_t * emu, int pcm_device, int multi_device);
|
||||
int snd_emu10k1_timer(emu10k1_t * emu, int device);
|
||||
int snd_emu10k1_fx8010_new(emu10k1_t *emu, int device, snd_hwdep_t ** rhwdep);
|
||||
|
||||
|
@ -1196,6 +1196,7 @@ int snd_ad1848_add_ctl(ad1848_t *chip, const char *name, int index, int type, un
|
||||
.put = snd_ad1848_put_double,
|
||||
},
|
||||
[AD1848_MIX_CAPTURE] = {
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.info = snd_ad1848_info_mux,
|
||||
.get = snd_ad1848_get_mux,
|
||||
.put = snd_ad1848_put_mux,
|
||||
|
@ -729,7 +729,7 @@ static int snd_sb16_dma_control_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_valu
|
||||
}
|
||||
|
||||
static snd_kcontrol_new_t snd_sb16_dma_control = {
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_PCM,
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_CARD,
|
||||
.name = "16-bit DMA Allocation",
|
||||
.info = snd_sb16_dma_control_info,
|
||||
.get = snd_sb16_dma_control_get,
|
||||
|
@ -1029,7 +1029,7 @@ static int snd_cmipci_spdif_mask_get(snd_kcontrol_t * kcontrol,
|
||||
static snd_kcontrol_new_t snd_cmipci_spdif_mask __devinitdata =
|
||||
{
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READ,
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_PCM,
|
||||
.name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,CON_MASK),
|
||||
.info = snd_cmipci_spdif_mask_info,
|
||||
.get = snd_cmipci_spdif_mask_get,
|
||||
|
@ -113,7 +113,7 @@ static int __devinit snd_card_cs46xx_probe(struct pci_dev *pci,
|
||||
return err;
|
||||
}
|
||||
#endif
|
||||
if ((err = snd_cs46xx_mixer(chip)) < 0) {
|
||||
if ((err = snd_cs46xx_mixer(chip, 2)) < 0) {
|
||||
snd_card_free(card);
|
||||
return err;
|
||||
}
|
||||
|
@ -2440,7 +2440,7 @@ static int __devinit cs46xx_detect_codec(cs46xx_t *chip, int codec)
|
||||
return -ENXIO;
|
||||
}
|
||||
|
||||
int __devinit snd_cs46xx_mixer(cs46xx_t *chip)
|
||||
int __devinit snd_cs46xx_mixer(cs46xx_t *chip, int spdif_device)
|
||||
{
|
||||
snd_card_t *card = chip->card;
|
||||
snd_ctl_elem_id_t id;
|
||||
@ -2476,6 +2476,8 @@ int __devinit snd_cs46xx_mixer(cs46xx_t *chip)
|
||||
for (idx = 0; idx < ARRAY_SIZE(snd_cs46xx_controls); idx++) {
|
||||
snd_kcontrol_t *kctl;
|
||||
kctl = snd_ctl_new1(&snd_cs46xx_controls[idx], chip);
|
||||
if (kctl && kctl->id.iface == SNDRV_CTL_ELEM_IFACE_PCM)
|
||||
kctl->id.device = spdif_device;
|
||||
if ((err = snd_ctl_add(card, kctl)) < 0)
|
||||
return err;
|
||||
}
|
||||
|
@ -149,7 +149,7 @@ static int __devinit snd_card_emu10k1_probe(struct pci_dev *pci,
|
||||
}
|
||||
}
|
||||
|
||||
if ((err = snd_emu10k1_mixer(emu)) < 0) {
|
||||
if ((err = snd_emu10k1_mixer(emu, 0, 3)) < 0) {
|
||||
snd_card_free(card);
|
||||
return err;
|
||||
}
|
||||
|
@ -295,7 +295,7 @@ static int snd_emu10k1_send_routing_put(snd_kcontrol_t * kcontrol,
|
||||
static snd_kcontrol_new_t snd_emu10k1_send_routing_control =
|
||||
{
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE | SNDRV_CTL_ELEM_ACCESS_INACTIVE,
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_PCM,
|
||||
.name = "EMU10K1 PCM Send Routing",
|
||||
.count = 32,
|
||||
.info = snd_emu10k1_send_routing_info,
|
||||
@ -364,7 +364,7 @@ static int snd_emu10k1_send_volume_put(snd_kcontrol_t * kcontrol,
|
||||
static snd_kcontrol_new_t snd_emu10k1_send_volume_control =
|
||||
{
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE | SNDRV_CTL_ELEM_ACCESS_INACTIVE,
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_PCM,
|
||||
.name = "EMU10K1 PCM Send Volume",
|
||||
.count = 32,
|
||||
.info = snd_emu10k1_send_volume_info,
|
||||
@ -427,7 +427,7 @@ static int snd_emu10k1_attn_put(snd_kcontrol_t * kcontrol,
|
||||
static snd_kcontrol_new_t snd_emu10k1_attn_control =
|
||||
{
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE | SNDRV_CTL_ELEM_ACCESS_INACTIVE,
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_PCM,
|
||||
.name = "EMU10K1 PCM Volume",
|
||||
.count = 32,
|
||||
.info = snd_emu10k1_attn_info,
|
||||
@ -737,7 +737,8 @@ static int rename_ctl(snd_card_t *card, const char *src, const char *dst)
|
||||
return -ENOENT;
|
||||
}
|
||||
|
||||
int __devinit snd_emu10k1_mixer(emu10k1_t *emu)
|
||||
int __devinit snd_emu10k1_mixer(emu10k1_t *emu,
|
||||
int pcm_device, int multi_device)
|
||||
{
|
||||
int err, pcm;
|
||||
snd_kcontrol_t *kctl;
|
||||
@ -852,29 +853,35 @@ int __devinit snd_emu10k1_mixer(emu10k1_t *emu)
|
||||
|
||||
if ((kctl = emu->ctl_send_routing = snd_ctl_new1(&snd_emu10k1_send_routing_control, emu)) == NULL)
|
||||
return -ENOMEM;
|
||||
kctl->id.device = pcm_device;
|
||||
if ((err = snd_ctl_add(card, kctl)))
|
||||
return err;
|
||||
if ((kctl = emu->ctl_send_volume = snd_ctl_new1(&snd_emu10k1_send_volume_control, emu)) == NULL)
|
||||
return -ENOMEM;
|
||||
kctl->id.device = pcm_device;
|
||||
if ((err = snd_ctl_add(card, kctl)))
|
||||
return err;
|
||||
if ((kctl = emu->ctl_attn = snd_ctl_new1(&snd_emu10k1_attn_control, emu)) == NULL)
|
||||
return -ENOMEM;
|
||||
kctl->id.device = pcm_device;
|
||||
if ((err = snd_ctl_add(card, kctl)))
|
||||
return err;
|
||||
|
||||
if ((kctl = emu->ctl_efx_send_routing = snd_ctl_new1(&snd_emu10k1_efx_send_routing_control, emu)) == NULL)
|
||||
return -ENOMEM;
|
||||
kctl->id.device = multi_device;
|
||||
if ((err = snd_ctl_add(card, kctl)))
|
||||
return err;
|
||||
|
||||
if ((kctl = emu->ctl_efx_send_volume = snd_ctl_new1(&snd_emu10k1_efx_send_volume_control, emu)) == NULL)
|
||||
return -ENOMEM;
|
||||
kctl->id.device = multi_device;
|
||||
if ((err = snd_ctl_add(card, kctl)))
|
||||
return err;
|
||||
|
||||
if ((kctl = emu->ctl_efx_attn = snd_ctl_new1(&snd_emu10k1_efx_attn_control, emu)) == NULL)
|
||||
return -ENOMEM;
|
||||
kctl->id.device = multi_device;
|
||||
if ((err = snd_ctl_add(card, kctl)))
|
||||
return err;
|
||||
|
||||
|
@ -1682,6 +1682,7 @@ static void snd_emu10k1_pcm_efx_free(snd_pcm_t *pcm)
|
||||
int __devinit snd_emu10k1_pcm_efx(emu10k1_t * emu, int device, snd_pcm_t ** rpcm)
|
||||
{
|
||||
snd_pcm_t *pcm;
|
||||
snd_kcontrol_t *kctl;
|
||||
int err;
|
||||
|
||||
if (rpcm)
|
||||
@ -1714,7 +1715,11 @@ int __devinit snd_emu10k1_pcm_efx(emu10k1_t * emu, int device, snd_pcm_t ** rpcm
|
||||
emu->efx_voices_mask[0] = 0xffff0000;
|
||||
emu->efx_voices_mask[1] = 0;
|
||||
}
|
||||
snd_ctl_add(emu->card, snd_ctl_new1(&snd_emu10k1_pcm_efx_voices_mask, emu));
|
||||
kctl = snd_ctl_new1(&snd_emu10k1_pcm_efx_voices_mask, emu);
|
||||
if (!kctl)
|
||||
return -ENOMEM;
|
||||
kctl->id.device = device;
|
||||
snd_ctl_add(emu->card, kctl);
|
||||
|
||||
snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_DEV, snd_dma_pci_data(emu->pci), 64*1024, 64*1024);
|
||||
|
||||
|
@ -1446,7 +1446,7 @@ static int snd_es1371_spdif_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t
|
||||
static snd_kcontrol_new_t snd_es1371_mixer_spdif[] __devinitdata = {
|
||||
ES1371_SPDIF("IEC958 Playback Switch"),
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_PCM,
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,DEFAULT),
|
||||
.info = snd_ens1373_spdif_info,
|
||||
.get = snd_ens1373_spdif_default_get,
|
||||
@ -1454,13 +1454,13 @@ static snd_kcontrol_new_t snd_es1371_mixer_spdif[] __devinitdata = {
|
||||
},
|
||||
{
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READ,
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_PCM,
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,MASK),
|
||||
.info = snd_ens1373_spdif_info,
|
||||
.get = snd_ens1373_spdif_mask_get
|
||||
},
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_PCM,
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,PCM_STREAM),
|
||||
.info = snd_ens1373_spdif_info,
|
||||
.get = snd_ens1373_spdif_stream_get,
|
||||
|
@ -618,15 +618,15 @@ static int __devinit snd_ice1712_delta_init(ice1712_t *ice)
|
||||
*/
|
||||
|
||||
static snd_kcontrol_new_t snd_ice1712_delta1010_wordclock_select __devinitdata =
|
||||
ICE1712_GPIO(SNDRV_CTL_ELEM_IFACE_PCM, "Word Clock Sync", 0, ICE1712_DELTA_WORD_CLOCK_SELECT, 1, 0);
|
||||
ICE1712_GPIO(SNDRV_CTL_ELEM_IFACE_MIXER, "Word Clock Sync", 0, ICE1712_DELTA_WORD_CLOCK_SELECT, 1, 0);
|
||||
static snd_kcontrol_new_t snd_ice1712_delta1010lt_wordclock_select __devinitdata =
|
||||
ICE1712_GPIO(SNDRV_CTL_ELEM_IFACE_PCM, "Word Clock Sync", 0, ICE1712_DELTA_1010LT_WORDCLOCK, 1, 0);
|
||||
ICE1712_GPIO(SNDRV_CTL_ELEM_IFACE_MIXER, "Word Clock Sync", 0, ICE1712_DELTA_1010LT_WORDCLOCK, 1, 0);
|
||||
static snd_kcontrol_new_t snd_ice1712_delta1010_wordclock_status __devinitdata =
|
||||
ICE1712_GPIO(SNDRV_CTL_ELEM_IFACE_PCM, "Word Clock Status", 0, ICE1712_DELTA_WORD_CLOCK_STATUS, 1, SNDRV_CTL_ELEM_ACCESS_READ | SNDRV_CTL_ELEM_ACCESS_VOLATILE);
|
||||
ICE1712_GPIO(SNDRV_CTL_ELEM_IFACE_MIXER, "Word Clock Status", 0, ICE1712_DELTA_WORD_CLOCK_STATUS, 1, SNDRV_CTL_ELEM_ACCESS_READ | SNDRV_CTL_ELEM_ACCESS_VOLATILE);
|
||||
static snd_kcontrol_new_t snd_ice1712_deltadio2496_spdif_in_select __devinitdata =
|
||||
ICE1712_GPIO(SNDRV_CTL_ELEM_IFACE_PCM, "IEC958 Input Optical", 0, ICE1712_DELTA_SPDIF_INPUT_SELECT, 0, 0);
|
||||
ICE1712_GPIO(SNDRV_CTL_ELEM_IFACE_MIXER, "IEC958 Input Optical", 0, ICE1712_DELTA_SPDIF_INPUT_SELECT, 0, 0);
|
||||
static snd_kcontrol_new_t snd_ice1712_delta_spdif_in_status __devinitdata =
|
||||
ICE1712_GPIO(SNDRV_CTL_ELEM_IFACE_PCM, "Delta IEC958 Input Status", 0, ICE1712_DELTA_SPDIF_IN_STAT, 1, SNDRV_CTL_ELEM_ACCESS_READ | SNDRV_CTL_ELEM_ACCESS_VOLATILE);
|
||||
ICE1712_GPIO(SNDRV_CTL_ELEM_IFACE_MIXER, "Delta IEC958 Input Status", 0, ICE1712_DELTA_SPDIF_IN_STAT, 1, SNDRV_CTL_ELEM_ACCESS_READ | SNDRV_CTL_ELEM_ACCESS_VOLATILE);
|
||||
|
||||
|
||||
static int __devinit snd_ice1712_delta_add_controls(ice1712_t *ice)
|
||||
|
@ -1715,7 +1715,7 @@ static int snd_ice1712_spdif_maskp_get(snd_kcontrol_t * kcontrol,
|
||||
static snd_kcontrol_new_t snd_ice1712_spdif_maskc __devinitdata =
|
||||
{
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READ,
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_PCM,
|
||||
.name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,CON_MASK),
|
||||
.info = snd_ice1712_spdif_info,
|
||||
.get = snd_ice1712_spdif_maskc_get,
|
||||
@ -1724,7 +1724,7 @@ static snd_kcontrol_new_t snd_ice1712_spdif_maskc __devinitdata =
|
||||
static snd_kcontrol_new_t snd_ice1712_spdif_maskp __devinitdata =
|
||||
{
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READ,
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_PCM,
|
||||
.name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,PRO_MASK),
|
||||
.info = snd_ice1712_spdif_info,
|
||||
.get = snd_ice1712_spdif_maskp_get,
|
||||
|
@ -1414,7 +1414,7 @@ static int snd_vt1724_spdif_maskp_get(snd_kcontrol_t * kcontrol,
|
||||
static snd_kcontrol_new_t snd_vt1724_spdif_maskc __devinitdata =
|
||||
{
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READ,
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_PCM,
|
||||
.name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,CON_MASK),
|
||||
.info = snd_vt1724_spdif_info,
|
||||
.get = snd_vt1724_spdif_maskc_get,
|
||||
@ -1423,7 +1423,7 @@ static snd_kcontrol_new_t snd_vt1724_spdif_maskc __devinitdata =
|
||||
static snd_kcontrol_new_t snd_vt1724_spdif_maskp __devinitdata =
|
||||
{
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READ,
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_PCM,
|
||||
.name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,PRO_MASK),
|
||||
.info = snd_vt1724_spdif_info,
|
||||
.get = snd_vt1724_spdif_maskp_get,
|
||||
|
@ -2067,7 +2067,7 @@ static int snd_korg1212_control_sync_put(snd_kcontrol_t * kcontrol, snd_ctl_elem
|
||||
}, \
|
||||
{ \
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READ | SNDRV_CTL_ELEM_ACCESS_WRITE, \
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_PCM, \
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER, \
|
||||
.name = c_name " Monitor Phase Invert", \
|
||||
.info = snd_korg1212_control_phase_info, \
|
||||
.get = snd_korg1212_control_phase_get, \
|
||||
@ -2082,7 +2082,7 @@ static snd_kcontrol_new_t snd_korg1212_controls[] = {
|
||||
MON_MIXER(4, "ADAT-5"), MON_MIXER(5, "ADAT-6"), MON_MIXER(6, "ADAT-7"), MON_MIXER(7, "ADAT-8"),
|
||||
{
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READ | SNDRV_CTL_ELEM_ACCESS_WRITE,
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_PCM,
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.name = "Sync Source",
|
||||
.info = snd_korg1212_control_sync_info,
|
||||
.get = snd_korg1212_control_sync_get,
|
||||
|
@ -1900,7 +1900,7 @@ static snd_kcontrol_new_t snd_rme32_controls[] = {
|
||||
},
|
||||
{
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READ,
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_PCM,
|
||||
.name = SNDRV_CTL_NAME_IEC958("", PLAYBACK, CON_MASK),
|
||||
.info = snd_rme32_control_spdif_mask_info,
|
||||
.get = snd_rme32_control_spdif_mask_get,
|
||||
@ -1908,7 +1908,7 @@ static snd_kcontrol_new_t snd_rme32_controls[] = {
|
||||
},
|
||||
{
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READ,
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_PCM,
|
||||
.name = SNDRV_CTL_NAME_IEC958("", PLAYBACK, PRO_MASK),
|
||||
.info = snd_rme32_control_spdif_mask_info,
|
||||
.get = snd_rme32_control_spdif_mask_get,
|
||||
|
@ -2266,7 +2266,7 @@ static snd_kcontrol_new_t snd_rme96_controls[] = {
|
||||
},
|
||||
{
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READ,
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_PCM,
|
||||
.name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,CON_MASK),
|
||||
.info = snd_rme96_control_spdif_mask_info,
|
||||
.get = snd_rme96_control_spdif_mask_get,
|
||||
@ -2276,7 +2276,7 @@ static snd_kcontrol_new_t snd_rme96_controls[] = {
|
||||
},
|
||||
{
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READ,
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_PCM,
|
||||
.name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,PRO_MASK),
|
||||
.info = snd_rme96_control_spdif_mask_info,
|
||||
.get = snd_rme96_control_spdif_mask_get,
|
||||
|
@ -1524,7 +1524,7 @@ static int snd_hdsp_control_spdif_mask_get(snd_kcontrol_t * kcontrol, snd_ctl_el
|
||||
}
|
||||
|
||||
#define HDSP_SPDIF_IN(xname, xindex) \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_PCM, \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, \
|
||||
.name = xname, \
|
||||
.index = xindex, \
|
||||
.info = snd_hdsp_info_spdif_in, \
|
||||
@ -1584,7 +1584,7 @@ static int snd_hdsp_put_spdif_in(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t
|
||||
}
|
||||
|
||||
#define HDSP_SPDIF_OUT(xname, xindex) \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_HWDEP, .name = xname, .index = xindex, \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, .index = xindex, \
|
||||
.info = snd_hdsp_info_spdif_bits, \
|
||||
.get = snd_hdsp_get_spdif_out, .put = snd_hdsp_put_spdif_out }
|
||||
|
||||
@ -1638,7 +1638,7 @@ static int snd_hdsp_put_spdif_out(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_
|
||||
}
|
||||
|
||||
#define HDSP_SPDIF_PROFESSIONAL(xname, xindex) \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_HWDEP, .name = xname, .index = xindex, \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, .index = xindex, \
|
||||
.info = snd_hdsp_info_spdif_bits, \
|
||||
.get = snd_hdsp_get_spdif_professional, .put = snd_hdsp_put_spdif_professional }
|
||||
|
||||
@ -1683,7 +1683,7 @@ static int snd_hdsp_put_spdif_professional(snd_kcontrol_t * kcontrol, snd_ctl_el
|
||||
}
|
||||
|
||||
#define HDSP_SPDIF_EMPHASIS(xname, xindex) \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_HWDEP, .name = xname, .index = xindex, \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, .index = xindex, \
|
||||
.info = snd_hdsp_info_spdif_bits, \
|
||||
.get = snd_hdsp_get_spdif_emphasis, .put = snd_hdsp_put_spdif_emphasis }
|
||||
|
||||
@ -1728,7 +1728,7 @@ static int snd_hdsp_put_spdif_emphasis(snd_kcontrol_t * kcontrol, snd_ctl_elem_v
|
||||
}
|
||||
|
||||
#define HDSP_SPDIF_NON_AUDIO(xname, xindex) \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_HWDEP, .name = xname, .index = xindex, \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, .index = xindex, \
|
||||
.info = snd_hdsp_info_spdif_bits, \
|
||||
.get = snd_hdsp_get_spdif_nonaudio, .put = snd_hdsp_put_spdif_nonaudio }
|
||||
|
||||
@ -1773,7 +1773,7 @@ static int snd_hdsp_put_spdif_nonaudio(snd_kcontrol_t * kcontrol, snd_ctl_elem_v
|
||||
}
|
||||
|
||||
#define HDSP_SPDIF_SAMPLE_RATE(xname, xindex) \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_HWDEP, \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, \
|
||||
.name = xname, \
|
||||
.index = xindex, \
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READ, \
|
||||
@ -1834,7 +1834,7 @@ static int snd_hdsp_get_spdif_sample_rate(snd_kcontrol_t * kcontrol, snd_ctl_ele
|
||||
}
|
||||
|
||||
#define HDSP_SYSTEM_SAMPLE_RATE(xname, xindex) \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_HWDEP, \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, \
|
||||
.name = xname, \
|
||||
.index = xindex, \
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READ, \
|
||||
@ -1858,7 +1858,7 @@ static int snd_hdsp_get_system_sample_rate(snd_kcontrol_t * kcontrol, snd_ctl_el
|
||||
}
|
||||
|
||||
#define HDSP_AUTOSYNC_SAMPLE_RATE(xname, xindex) \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_PCM, \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, \
|
||||
.name = xname, \
|
||||
.index = xindex, \
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READ, \
|
||||
@ -1918,7 +1918,7 @@ static int snd_hdsp_get_autosync_sample_rate(snd_kcontrol_t * kcontrol, snd_ctl_
|
||||
}
|
||||
|
||||
#define HDSP_SYSTEM_CLOCK_MODE(xname, xindex) \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_HWDEP, \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, \
|
||||
.name = xname, \
|
||||
.index = xindex, \
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READ, \
|
||||
@ -1958,7 +1958,7 @@ static int snd_hdsp_get_system_clock_mode(snd_kcontrol_t * kcontrol, snd_ctl_ele
|
||||
}
|
||||
|
||||
#define HDSP_CLOCK_SOURCE(xname, xindex) \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_PCM, \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, \
|
||||
.name = xname, \
|
||||
.index = xindex, \
|
||||
.info = snd_hdsp_info_clock_source, \
|
||||
@ -2124,7 +2124,7 @@ static int snd_hdsp_put_clock_source_lock(snd_kcontrol_t * kcontrol, snd_ctl_ele
|
||||
}
|
||||
|
||||
#define HDSP_DA_GAIN(xname, xindex) \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_HWDEP, \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, \
|
||||
.name = xname, \
|
||||
.index = xindex, \
|
||||
.info = snd_hdsp_info_da_gain, \
|
||||
@ -2210,7 +2210,7 @@ static int snd_hdsp_put_da_gain(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t
|
||||
}
|
||||
|
||||
#define HDSP_AD_GAIN(xname, xindex) \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_HWDEP, \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, \
|
||||
.name = xname, \
|
||||
.index = xindex, \
|
||||
.info = snd_hdsp_info_ad_gain, \
|
||||
@ -2296,7 +2296,7 @@ static int snd_hdsp_put_ad_gain(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t
|
||||
}
|
||||
|
||||
#define HDSP_PHONE_GAIN(xname, xindex) \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_HWDEP, \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, \
|
||||
.name = xname, \
|
||||
.index = xindex, \
|
||||
.info = snd_hdsp_info_phone_gain, \
|
||||
@ -2382,7 +2382,7 @@ static int snd_hdsp_put_phone_gain(snd_kcontrol_t * kcontrol, snd_ctl_elem_value
|
||||
}
|
||||
|
||||
#define HDSP_XLR_BREAKOUT_CABLE(xname, xindex) \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_HWDEP, \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, \
|
||||
.name = xname, \
|
||||
.index = xindex, \
|
||||
.info = snd_hdsp_info_xlr_breakout_cable, \
|
||||
@ -2447,7 +2447,7 @@ static int snd_hdsp_put_xlr_breakout_cable(snd_kcontrol_t * kcontrol, snd_ctl_el
|
||||
Switching this on desactivates external ADAT
|
||||
*/
|
||||
#define HDSP_AEB(xname, xindex) \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_HWDEP, \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, \
|
||||
.name = xname, \
|
||||
.index = xindex, \
|
||||
.info = snd_hdsp_info_aeb, \
|
||||
@ -2508,7 +2508,7 @@ static int snd_hdsp_put_aeb(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * uc
|
||||
}
|
||||
|
||||
#define HDSP_PREF_SYNC_REF(xname, xindex) \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_HWDEP, \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, \
|
||||
.name = xname, \
|
||||
.index = xindex, \
|
||||
.info = snd_hdsp_info_pref_sync_ref, \
|
||||
@ -2641,7 +2641,7 @@ static int snd_hdsp_put_pref_sync_ref(snd_kcontrol_t * kcontrol, snd_ctl_elem_va
|
||||
}
|
||||
|
||||
#define HDSP_AUTOSYNC_REF(xname, xindex) \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_HWDEP, \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, \
|
||||
.name = xname, \
|
||||
.index = xindex, \
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READ, \
|
||||
@ -2697,7 +2697,7 @@ static int snd_hdsp_get_autosync_ref(snd_kcontrol_t * kcontrol, snd_ctl_elem_val
|
||||
}
|
||||
|
||||
#define HDSP_LINE_OUT(xname, xindex) \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_HWDEP, \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, \
|
||||
.name = xname, \
|
||||
.index = xindex, \
|
||||
.info = snd_hdsp_info_line_out, \
|
||||
@ -2757,7 +2757,7 @@ static int snd_hdsp_put_line_out(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t
|
||||
}
|
||||
|
||||
#define HDSP_PRECISE_POINTER(xname, xindex) \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_HWDEP, \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_CARD, \
|
||||
.name = xname, \
|
||||
.index = xindex, \
|
||||
.info = snd_hdsp_info_precise_pointer, \
|
||||
@ -2811,7 +2811,7 @@ static int snd_hdsp_put_precise_pointer(snd_kcontrol_t * kcontrol, snd_ctl_elem_
|
||||
}
|
||||
|
||||
#define HDSP_USE_MIDI_TASKLET(xname, xindex) \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_HWDEP, \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_CARD, \
|
||||
.name = xname, \
|
||||
.index = xindex, \
|
||||
.info = snd_hdsp_info_use_midi_tasklet, \
|
||||
@ -2868,6 +2868,7 @@ static int snd_hdsp_put_use_midi_tasklet(snd_kcontrol_t * kcontrol, snd_ctl_elem
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_HWDEP, \
|
||||
.name = xname, \
|
||||
.index = xindex, \
|
||||
.device = 0, \
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE | \
|
||||
SNDRV_CTL_ELEM_ACCESS_VOLATILE, \
|
||||
.info = snd_hdsp_info_mixer, \
|
||||
@ -2939,7 +2940,7 @@ static int snd_hdsp_put_mixer(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *
|
||||
}
|
||||
|
||||
#define HDSP_WC_SYNC_CHECK(xname, xindex) \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_HWDEP, \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, \
|
||||
.name = xname, \
|
||||
.index = xindex, \
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READ | SNDRV_CTL_ELEM_ACCESS_VOLATILE, \
|
||||
@ -2983,7 +2984,7 @@ static int snd_hdsp_get_wc_sync_check(snd_kcontrol_t * kcontrol, snd_ctl_elem_va
|
||||
}
|
||||
|
||||
#define HDSP_SPDIF_SYNC_CHECK(xname, xindex) \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_HWDEP, \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, \
|
||||
.name = xname, \
|
||||
.index = xindex, \
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READ | SNDRV_CTL_ELEM_ACCESS_VOLATILE, \
|
||||
@ -3015,7 +3016,7 @@ static int snd_hdsp_get_spdif_sync_check(snd_kcontrol_t * kcontrol, snd_ctl_elem
|
||||
}
|
||||
|
||||
#define HDSP_ADATSYNC_SYNC_CHECK(xname, xindex) \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_HWDEP, \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, \
|
||||
.name = xname, \
|
||||
.index = xindex, \
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READ | SNDRV_CTL_ELEM_ACCESS_VOLATILE, \
|
||||
@ -3046,7 +3047,7 @@ static int snd_hdsp_get_adatsync_sync_check(snd_kcontrol_t * kcontrol, snd_ctl_e
|
||||
}
|
||||
|
||||
#define HDSP_ADAT_SYNC_CHECK \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_HWDEP, \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, \
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READ | SNDRV_CTL_ELEM_ACCESS_VOLATILE, \
|
||||
.info = snd_hdsp_info_sync_check, \
|
||||
.get = snd_hdsp_get_adat_sync_check \
|
||||
@ -3103,7 +3104,7 @@ HDSP_XLR_BREAKOUT_CABLE("XLR Breakout Cable", 0)
|
||||
|
||||
static snd_kcontrol_new_t snd_hdsp_controls[] = {
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_PCM,
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,DEFAULT),
|
||||
.info = snd_hdsp_control_spdif_info,
|
||||
.get = snd_hdsp_control_spdif_get,
|
||||
@ -3111,7 +3112,7 @@ static snd_kcontrol_new_t snd_hdsp_controls[] = {
|
||||
},
|
||||
{
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE | SNDRV_CTL_ELEM_ACCESS_INACTIVE,
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_PCM,
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,PCM_STREAM),
|
||||
.info = snd_hdsp_control_spdif_stream_info,
|
||||
.get = snd_hdsp_control_spdif_stream_get,
|
||||
@ -3146,8 +3147,6 @@ HDSP_SPDIF_NON_AUDIO("IEC958 Non-audio Bit", 0),
|
||||
/* 'Sample Clock Source' complies with the alsa control naming scheme */
|
||||
HDSP_CLOCK_SOURCE("Sample Clock Source", 0),
|
||||
{
|
||||
/* FIXME: should be PCM or MIXER? */
|
||||
/* .iface = SNDRV_CTL_ELEM_IFACE_PCM, */
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.name = "Sample Clock Source Locking",
|
||||
.info = snd_hdsp_info_clock_source_lock,
|
||||
|
@ -1168,7 +1168,7 @@ static void hdspm_midi_tasklet(unsigned long arg)
|
||||
/* get the system sample rate which is set */
|
||||
|
||||
#define HDSPM_SYSTEM_SAMPLE_RATE(xname, xindex) \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_HWDEP, \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, \
|
||||
.name = xname, \
|
||||
.index = xindex, \
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READ, \
|
||||
@ -1195,7 +1195,7 @@ static int snd_hdspm_get_system_sample_rate(snd_kcontrol_t * kcontrol,
|
||||
}
|
||||
|
||||
#define HDSPM_AUTOSYNC_SAMPLE_RATE(xname, xindex) \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_PCM, \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, \
|
||||
.name = xname, \
|
||||
.index = xindex, \
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READ, \
|
||||
@ -1264,7 +1264,7 @@ static int snd_hdspm_get_autosync_sample_rate(snd_kcontrol_t * kcontrol,
|
||||
}
|
||||
|
||||
#define HDSPM_SYSTEM_CLOCK_MODE(xname, xindex) \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_HWDEP, \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, \
|
||||
.name = xname, \
|
||||
.index = xindex, \
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READ, \
|
||||
@ -1310,7 +1310,7 @@ static int snd_hdspm_get_system_clock_mode(snd_kcontrol_t * kcontrol,
|
||||
}
|
||||
|
||||
#define HDSPM_CLOCK_SOURCE(xname, xindex) \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_PCM, \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, \
|
||||
.name = xname, \
|
||||
.index = xindex, \
|
||||
.info = snd_hdspm_info_clock_source, \
|
||||
@ -1457,7 +1457,7 @@ static int snd_hdspm_put_clock_source(snd_kcontrol_t * kcontrol,
|
||||
}
|
||||
|
||||
#define HDSPM_PREF_SYNC_REF(xname, xindex) \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_HWDEP, \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, \
|
||||
.name = xname, \
|
||||
.index = xindex, \
|
||||
.info = snd_hdspm_info_pref_sync_ref, \
|
||||
@ -1547,7 +1547,7 @@ static int snd_hdspm_put_pref_sync_ref(snd_kcontrol_t * kcontrol,
|
||||
}
|
||||
|
||||
#define HDSPM_AUTOSYNC_REF(xname, xindex) \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_HWDEP, \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, \
|
||||
.name = xname, \
|
||||
.index = xindex, \
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READ, \
|
||||
@ -1604,7 +1604,7 @@ static int snd_hdspm_get_autosync_ref(snd_kcontrol_t * kcontrol,
|
||||
}
|
||||
|
||||
#define HDSPM_LINE_OUT(xname, xindex) \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_HWDEP, \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, \
|
||||
.name = xname, \
|
||||
.index = xindex, \
|
||||
.info = snd_hdspm_info_line_out, \
|
||||
@ -1668,7 +1668,7 @@ static int snd_hdspm_put_line_out(snd_kcontrol_t * kcontrol,
|
||||
}
|
||||
|
||||
#define HDSPM_TX_64(xname, xindex) \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_HWDEP, \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, \
|
||||
.name = xname, \
|
||||
.index = xindex, \
|
||||
.info = snd_hdspm_info_tx_64, \
|
||||
@ -1731,7 +1731,7 @@ static int snd_hdspm_put_tx_64(snd_kcontrol_t * kcontrol,
|
||||
}
|
||||
|
||||
#define HDSPM_C_TMS(xname, xindex) \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_HWDEP, \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, \
|
||||
.name = xname, \
|
||||
.index = xindex, \
|
||||
.info = snd_hdspm_info_c_tms, \
|
||||
@ -1794,7 +1794,7 @@ static int snd_hdspm_put_c_tms(snd_kcontrol_t * kcontrol,
|
||||
}
|
||||
|
||||
#define HDSPM_SAFE_MODE(xname, xindex) \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_HWDEP, \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, \
|
||||
.name = xname, \
|
||||
.index = xindex, \
|
||||
.info = snd_hdspm_info_safe_mode, \
|
||||
@ -1857,7 +1857,7 @@ static int snd_hdspm_put_safe_mode(snd_kcontrol_t * kcontrol,
|
||||
}
|
||||
|
||||
#define HDSPM_INPUT_SELECT(xname, xindex) \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_HWDEP, \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, \
|
||||
.name = xname, \
|
||||
.index = xindex, \
|
||||
.info = snd_hdspm_info_input_select, \
|
||||
@ -1941,6 +1941,7 @@ static int snd_hdspm_put_input_select(snd_kcontrol_t * kcontrol,
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_HWDEP, \
|
||||
.name = xname, \
|
||||
.index = xindex, \
|
||||
.device = 0, \
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE | \
|
||||
SNDRV_CTL_ELEM_ACCESS_VOLATILE, \
|
||||
.info = snd_hdspm_info_mixer, \
|
||||
@ -2124,7 +2125,7 @@ static int snd_hdspm_put_playback_mixer(snd_kcontrol_t * kcontrol,
|
||||
}
|
||||
|
||||
#define HDSPM_WC_SYNC_CHECK(xname, xindex) \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_HWDEP, \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, \
|
||||
.name = xname, \
|
||||
.index = xindex, \
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READ | SNDRV_CTL_ELEM_ACCESS_VOLATILE, \
|
||||
@ -2170,7 +2171,7 @@ static int snd_hdspm_get_wc_sync_check(snd_kcontrol_t * kcontrol,
|
||||
|
||||
|
||||
#define HDSPM_MADI_SYNC_CHECK(xname, xindex) \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_HWDEP, \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, \
|
||||
.name = xname, \
|
||||
.index = xindex, \
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READ | SNDRV_CTL_ELEM_ACCESS_VOLATILE, \
|
||||
|
@ -893,7 +893,7 @@ static int snd_rme9652_control_spdif_mask_get(snd_kcontrol_t * kcontrol, snd_ctl
|
||||
}
|
||||
|
||||
#define RME9652_ADAT1_IN(xname, xindex) \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_PCM, .name = xname, .index = xindex, \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, .index = xindex, \
|
||||
.info = snd_rme9652_info_adat1_in, \
|
||||
.get = snd_rme9652_get_adat1_in, \
|
||||
.put = snd_rme9652_put_adat1_in }
|
||||
@ -971,7 +971,7 @@ static int snd_rme9652_put_adat1_in(snd_kcontrol_t * kcontrol, snd_ctl_elem_valu
|
||||
}
|
||||
|
||||
#define RME9652_SPDIF_IN(xname, xindex) \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_PCM, .name = xname, .index = xindex, \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, .index = xindex, \
|
||||
.info = snd_rme9652_info_spdif_in, \
|
||||
.get = snd_rme9652_get_spdif_in, .put = snd_rme9652_put_spdif_in }
|
||||
|
||||
@ -1042,7 +1042,7 @@ static int snd_rme9652_put_spdif_in(snd_kcontrol_t * kcontrol, snd_ctl_elem_valu
|
||||
}
|
||||
|
||||
#define RME9652_SPDIF_OUT(xname, xindex) \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_PCM, .name = xname, .index = xindex, \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, .index = xindex, \
|
||||
.info = snd_rme9652_info_spdif_out, \
|
||||
.get = snd_rme9652_get_spdif_out, .put = snd_rme9652_put_spdif_out }
|
||||
|
||||
@ -1110,7 +1110,7 @@ static int snd_rme9652_put_spdif_out(snd_kcontrol_t * kcontrol, snd_ctl_elem_val
|
||||
}
|
||||
|
||||
#define RME9652_SYNC_MODE(xname, xindex) \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_PCM, .name = xname, .index = xindex, \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, .index = xindex, \
|
||||
.info = snd_rme9652_info_sync_mode, \
|
||||
.get = snd_rme9652_get_sync_mode, .put = snd_rme9652_put_sync_mode }
|
||||
|
||||
@ -1195,7 +1195,7 @@ static int snd_rme9652_put_sync_mode(snd_kcontrol_t * kcontrol, snd_ctl_elem_val
|
||||
}
|
||||
|
||||
#define RME9652_SYNC_PREF(xname, xindex) \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_PCM, .name = xname, .index = xindex, \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, .index = xindex, \
|
||||
.info = snd_rme9652_info_sync_pref, \
|
||||
.get = snd_rme9652_get_sync_pref, .put = snd_rme9652_put_sync_pref }
|
||||
|
||||
@ -1340,7 +1340,7 @@ static int snd_rme9652_put_thru(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t
|
||||
}
|
||||
|
||||
#define RME9652_PASSTHRU(xname, xindex) \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_PCM, .name = xname, .index = xindex, \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, .index = xindex, \
|
||||
.info = snd_rme9652_info_passthru, \
|
||||
.put = snd_rme9652_put_passthru, \
|
||||
.get = snd_rme9652_get_passthru }
|
||||
@ -1386,7 +1386,7 @@ static int snd_rme9652_put_passthru(snd_kcontrol_t * kcontrol, snd_ctl_elem_valu
|
||||
/* Read-only switches */
|
||||
|
||||
#define RME9652_SPDIF_RATE(xname, xindex) \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_PCM, .name = xname, .index = xindex, \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, .index = xindex, \
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READ | SNDRV_CTL_ELEM_ACCESS_VOLATILE, \
|
||||
.info = snd_rme9652_info_spdif_rate, \
|
||||
.get = snd_rme9652_get_spdif_rate }
|
||||
@ -1411,7 +1411,7 @@ static int snd_rme9652_get_spdif_rate(snd_kcontrol_t * kcontrol, snd_ctl_elem_va
|
||||
}
|
||||
|
||||
#define RME9652_ADAT_SYNC(xname, xindex, xidx) \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_PCM, .name = xname, .index = xindex, \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, .index = xindex, \
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READ | SNDRV_CTL_ELEM_ACCESS_VOLATILE, \
|
||||
.info = snd_rme9652_info_adat_sync, \
|
||||
.get = snd_rme9652_get_adat_sync, .private_value = xidx }
|
||||
@ -1447,7 +1447,7 @@ static int snd_rme9652_get_adat_sync(snd_kcontrol_t * kcontrol, snd_ctl_elem_val
|
||||
}
|
||||
|
||||
#define RME9652_TC_VALID(xname, xindex) \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_PCM, .name = xname, .index = xindex, \
|
||||
{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, .index = xindex, \
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READ | SNDRV_CTL_ELEM_ACCESS_VOLATILE, \
|
||||
.info = snd_rme9652_info_tc_valid, \
|
||||
.get = snd_rme9652_get_tc_valid }
|
||||
@ -1529,7 +1529,7 @@ static int snd_rme9652_get_tc_value(void *private_data,
|
||||
|
||||
static snd_kcontrol_new_t snd_rme9652_controls[] = {
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_PCM,
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,DEFAULT),
|
||||
.info = snd_rme9652_control_spdif_info,
|
||||
.get = snd_rme9652_control_spdif_get,
|
||||
@ -1537,7 +1537,7 @@ static snd_kcontrol_new_t snd_rme9652_controls[] = {
|
||||
},
|
||||
{
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE | SNDRV_CTL_ELEM_ACCESS_INACTIVE,
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_PCM,
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,PCM_STREAM),
|
||||
.info = snd_rme9652_control_spdif_stream_info,
|
||||
.get = snd_rme9652_control_spdif_stream_get,
|
||||
@ -1568,7 +1568,7 @@ RME9652_SPDIF_OUT("IEC958 Output also on ADAT1", 0),
|
||||
RME9652_SYNC_MODE("Sync Mode", 0),
|
||||
RME9652_SYNC_PREF("Preferred Sync Source", 0),
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_PCM,
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.name = "Channels Thru",
|
||||
.index = 0,
|
||||
.info = snd_rme9652_info_thru,
|
||||
|
Loading…
Reference in New Issue
Block a user