Commit 5549d549 authored by Clemens Ladisch's avatar Clemens Ladisch Committed by Jaroslav Kysela

[ALSA] use PCM interface for IEC958 controls

Digigram VX core,ENS1370/1+ driver,CA0106 driver,EMU10K1/EMU10K2 driver
RME HDSP driver,RME9652 driver
For consistency, use the PCM interface instead of MIXER for IEC958
default/mask/stream mixer controls.
Signed-off-by: default avatarClemens Ladisch <clemens@ladisch.de>
parent 10e8d78a
...@@ -796,14 +796,14 @@ static int vx_iec958_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontro ...@@ -796,14 +796,14 @@ static int vx_iec958_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontro
static snd_kcontrol_new_t vx_control_iec958_mask = { static snd_kcontrol_new_t vx_control_iec958_mask = {
.access = SNDRV_CTL_ELEM_ACCESS_READ, .access = SNDRV_CTL_ELEM_ACCESS_READ,
.iface = SNDRV_CTL_ELEM_IFACE_MIXER, .iface = SNDRV_CTL_ELEM_IFACE_PCM,
.name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,MASK), .name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,MASK),
.info = vx_iec958_info, /* shared */ .info = vx_iec958_info, /* shared */
.get = vx_iec958_mask_get, .get = vx_iec958_mask_get,
}; };
static snd_kcontrol_new_t vx_control_iec958 = { static snd_kcontrol_new_t vx_control_iec958 = {
.iface = SNDRV_CTL_ELEM_IFACE_MIXER, .iface = SNDRV_CTL_ELEM_IFACE_PCM,
.name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,DEFAULT), .name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,DEFAULT),
.info = vx_iec958_info, .info = vx_iec958_info,
.get = vx_iec958_get, .get = vx_iec958_get,
......
...@@ -297,7 +297,7 @@ static int snd_ca0106_spdif_put(snd_kcontrol_t * kcontrol, ...@@ -297,7 +297,7 @@ static int snd_ca0106_spdif_put(snd_kcontrol_t * kcontrol,
static snd_kcontrol_new_t snd_ca0106_spdif_mask_control = static snd_kcontrol_new_t snd_ca0106_spdif_mask_control =
{ {
.access = SNDRV_CTL_ELEM_ACCESS_READ, .access = SNDRV_CTL_ELEM_ACCESS_READ,
.iface = SNDRV_CTL_ELEM_IFACE_MIXER, .iface = SNDRV_CTL_ELEM_IFACE_PCM,
.name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,MASK), .name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,MASK),
.count = 4, .count = 4,
.info = snd_ca0106_spdif_info, .info = snd_ca0106_spdif_info,
...@@ -306,7 +306,7 @@ static snd_kcontrol_new_t snd_ca0106_spdif_mask_control = ...@@ -306,7 +306,7 @@ static snd_kcontrol_new_t snd_ca0106_spdif_mask_control =
static snd_kcontrol_new_t snd_ca0106_spdif_control = static snd_kcontrol_new_t snd_ca0106_spdif_control =
{ {
.iface = SNDRV_CTL_ELEM_IFACE_MIXER, .iface = SNDRV_CTL_ELEM_IFACE_PCM,
.name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,DEFAULT), .name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,DEFAULT),
.count = 4, .count = 4,
.info = snd_ca0106_spdif_info, .info = snd_ca0106_spdif_info,
......
...@@ -1183,7 +1183,7 @@ static int snd_emu10k1x_spdif_put(snd_kcontrol_t * kcontrol, ...@@ -1183,7 +1183,7 @@ static int snd_emu10k1x_spdif_put(snd_kcontrol_t * kcontrol,
static snd_kcontrol_new_t snd_emu10k1x_spdif_mask_control = static snd_kcontrol_new_t snd_emu10k1x_spdif_mask_control =
{ {
.access = SNDRV_CTL_ELEM_ACCESS_READ, .access = SNDRV_CTL_ELEM_ACCESS_READ,
.iface = SNDRV_CTL_ELEM_IFACE_MIXER, .iface = SNDRV_CTL_ELEM_IFACE_PCM,
.name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,MASK), .name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,MASK),
.count = 3, .count = 3,
.info = snd_emu10k1x_spdif_info, .info = snd_emu10k1x_spdif_info,
...@@ -1192,7 +1192,7 @@ static snd_kcontrol_new_t snd_emu10k1x_spdif_mask_control = ...@@ -1192,7 +1192,7 @@ static snd_kcontrol_new_t snd_emu10k1x_spdif_mask_control =
static snd_kcontrol_new_t snd_emu10k1x_spdif_control = static snd_kcontrol_new_t snd_emu10k1x_spdif_control =
{ {
.iface = SNDRV_CTL_ELEM_IFACE_MIXER, .iface = SNDRV_CTL_ELEM_IFACE_PCM,
.name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,DEFAULT), .name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,DEFAULT),
.count = 3, .count = 3,
.info = snd_emu10k1x_spdif_info, .info = snd_emu10k1x_spdif_info,
......
...@@ -181,7 +181,7 @@ static int snd_emu10k1_spdif_put(snd_kcontrol_t * kcontrol, ...@@ -181,7 +181,7 @@ static int snd_emu10k1_spdif_put(snd_kcontrol_t * kcontrol,
static snd_kcontrol_new_t snd_emu10k1_spdif_mask_control = static snd_kcontrol_new_t snd_emu10k1_spdif_mask_control =
{ {
.access = SNDRV_CTL_ELEM_ACCESS_READ, .access = SNDRV_CTL_ELEM_ACCESS_READ,
.iface = SNDRV_CTL_ELEM_IFACE_MIXER, .iface = SNDRV_CTL_ELEM_IFACE_PCM,
.name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,MASK), .name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,MASK),
.count = 4, .count = 4,
.info = snd_emu10k1_spdif_info, .info = snd_emu10k1_spdif_info,
...@@ -190,7 +190,7 @@ static snd_kcontrol_new_t snd_emu10k1_spdif_mask_control = ...@@ -190,7 +190,7 @@ static snd_kcontrol_new_t snd_emu10k1_spdif_mask_control =
static snd_kcontrol_new_t snd_emu10k1_spdif_control = static snd_kcontrol_new_t snd_emu10k1_spdif_control =
{ {
.iface = SNDRV_CTL_ELEM_IFACE_MIXER, .iface = SNDRV_CTL_ELEM_IFACE_PCM,
.name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,DEFAULT), .name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,DEFAULT),
.count = 4, .count = 4,
.info = snd_emu10k1_spdif_info, .info = snd_emu10k1_spdif_info,
...@@ -931,10 +931,14 @@ int __devinit snd_emu10k1_mixer(emu10k1_t *emu, ...@@ -931,10 +931,14 @@ int __devinit snd_emu10k1_mixer(emu10k1_t *emu,
/* sb live! and audigy */ /* sb live! and audigy */
if ((kctl = snd_ctl_new1(&snd_emu10k1_spdif_mask_control, emu)) == NULL) if ((kctl = snd_ctl_new1(&snd_emu10k1_spdif_mask_control, emu)) == NULL)
return -ENOMEM; return -ENOMEM;
if (!emu->audigy)
kctl->id.device = emu->pcm_efx->device;
if ((err = snd_ctl_add(card, kctl))) if ((err = snd_ctl_add(card, kctl)))
return err; return err;
if ((kctl = snd_ctl_new1(&snd_emu10k1_spdif_control, emu)) == NULL) if ((kctl = snd_ctl_new1(&snd_emu10k1_spdif_control, emu)) == NULL)
return -ENOMEM; return -ENOMEM;
if (!emu->audigy)
kctl->id.device = emu->pcm_efx->device;
if ((err = snd_ctl_add(card, kctl))) if ((err = snd_ctl_add(card, kctl)))
return err; return err;
} }
......
...@@ -1446,7 +1446,7 @@ static int snd_es1371_spdif_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t ...@@ -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 = { static snd_kcontrol_new_t snd_es1371_mixer_spdif[] __devinitdata = {
ES1371_SPDIF(SNDRV_CTL_NAME_IEC958("",PLAYBACK,SWITCH)), ES1371_SPDIF(SNDRV_CTL_NAME_IEC958("",PLAYBACK,SWITCH)),
{ {
.iface = SNDRV_CTL_ELEM_IFACE_MIXER, .iface = SNDRV_CTL_ELEM_IFACE_PCM,
.name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,DEFAULT), .name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,DEFAULT),
.info = snd_ens1373_spdif_info, .info = snd_ens1373_spdif_info,
.get = snd_ens1373_spdif_default_get, .get = snd_ens1373_spdif_default_get,
...@@ -1454,13 +1454,13 @@ static snd_kcontrol_new_t snd_es1371_mixer_spdif[] __devinitdata = { ...@@ -1454,13 +1454,13 @@ static snd_kcontrol_new_t snd_es1371_mixer_spdif[] __devinitdata = {
}, },
{ {
.access = SNDRV_CTL_ELEM_ACCESS_READ, .access = SNDRV_CTL_ELEM_ACCESS_READ,
.iface = SNDRV_CTL_ELEM_IFACE_MIXER, .iface = SNDRV_CTL_ELEM_IFACE_PCM,
.name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,MASK), .name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,MASK),
.info = snd_ens1373_spdif_info, .info = snd_ens1373_spdif_info,
.get = snd_ens1373_spdif_mask_get .get = snd_ens1373_spdif_mask_get
}, },
{ {
.iface = SNDRV_CTL_ELEM_IFACE_MIXER, .iface = SNDRV_CTL_ELEM_IFACE_PCM,
.name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,PCM_STREAM), .name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,PCM_STREAM),
.info = snd_ens1373_spdif_info, .info = snd_ens1373_spdif_info,
.get = snd_ens1373_spdif_stream_get, .get = snd_ens1373_spdif_stream_get,
......
...@@ -3104,7 +3104,7 @@ HDSP_XLR_BREAKOUT_CABLE("XLR Breakout Cable", 0) ...@@ -3104,7 +3104,7 @@ HDSP_XLR_BREAKOUT_CABLE("XLR Breakout Cable", 0)
static snd_kcontrol_new_t snd_hdsp_controls[] = { static snd_kcontrol_new_t snd_hdsp_controls[] = {
{ {
.iface = SNDRV_CTL_ELEM_IFACE_MIXER, .iface = SNDRV_CTL_ELEM_IFACE_PCM,
.name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,DEFAULT), .name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,DEFAULT),
.info = snd_hdsp_control_spdif_info, .info = snd_hdsp_control_spdif_info,
.get = snd_hdsp_control_spdif_get, .get = snd_hdsp_control_spdif_get,
...@@ -3112,7 +3112,7 @@ static snd_kcontrol_new_t snd_hdsp_controls[] = { ...@@ -3112,7 +3112,7 @@ static snd_kcontrol_new_t snd_hdsp_controls[] = {
}, },
{ {
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE | SNDRV_CTL_ELEM_ACCESS_INACTIVE, .access = SNDRV_CTL_ELEM_ACCESS_READWRITE | SNDRV_CTL_ELEM_ACCESS_INACTIVE,
.iface = SNDRV_CTL_ELEM_IFACE_MIXER, .iface = SNDRV_CTL_ELEM_IFACE_PCM,
.name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,PCM_STREAM), .name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,PCM_STREAM),
.info = snd_hdsp_control_spdif_stream_info, .info = snd_hdsp_control_spdif_stream_info,
.get = snd_hdsp_control_spdif_stream_get, .get = snd_hdsp_control_spdif_stream_get,
...@@ -3120,7 +3120,7 @@ static snd_kcontrol_new_t snd_hdsp_controls[] = { ...@@ -3120,7 +3120,7 @@ static snd_kcontrol_new_t snd_hdsp_controls[] = {
}, },
{ {
.access = SNDRV_CTL_ELEM_ACCESS_READ, .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), .name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,CON_MASK),
.info = snd_hdsp_control_spdif_mask_info, .info = snd_hdsp_control_spdif_mask_info,
.get = snd_hdsp_control_spdif_mask_get, .get = snd_hdsp_control_spdif_mask_get,
...@@ -3130,7 +3130,7 @@ static snd_kcontrol_new_t snd_hdsp_controls[] = { ...@@ -3130,7 +3130,7 @@ static snd_kcontrol_new_t snd_hdsp_controls[] = {
}, },
{ {
.access = SNDRV_CTL_ELEM_ACCESS_READ, .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), .name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,PRO_MASK),
.info = snd_hdsp_control_spdif_mask_info, .info = snd_hdsp_control_spdif_mask_info,
.get = snd_hdsp_control_spdif_mask_get, .get = snd_hdsp_control_spdif_mask_get,
......
...@@ -1529,7 +1529,7 @@ static int snd_rme9652_get_tc_value(void *private_data, ...@@ -1529,7 +1529,7 @@ static int snd_rme9652_get_tc_value(void *private_data,
static snd_kcontrol_new_t snd_rme9652_controls[] = { static snd_kcontrol_new_t snd_rme9652_controls[] = {
{ {
.iface = SNDRV_CTL_ELEM_IFACE_MIXER, .iface = SNDRV_CTL_ELEM_IFACE_PCM,
.name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,DEFAULT), .name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,DEFAULT),
.info = snd_rme9652_control_spdif_info, .info = snd_rme9652_control_spdif_info,
.get = snd_rme9652_control_spdif_get, .get = snd_rme9652_control_spdif_get,
...@@ -1537,7 +1537,7 @@ static snd_kcontrol_new_t snd_rme9652_controls[] = { ...@@ -1537,7 +1537,7 @@ static snd_kcontrol_new_t snd_rme9652_controls[] = {
}, },
{ {
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE | SNDRV_CTL_ELEM_ACCESS_INACTIVE, .access = SNDRV_CTL_ELEM_ACCESS_READWRITE | SNDRV_CTL_ELEM_ACCESS_INACTIVE,
.iface = SNDRV_CTL_ELEM_IFACE_MIXER, .iface = SNDRV_CTL_ELEM_IFACE_PCM,
.name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,PCM_STREAM), .name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,PCM_STREAM),
.info = snd_rme9652_control_spdif_stream_info, .info = snd_rme9652_control_spdif_stream_info,
.get = snd_rme9652_control_spdif_stream_get, .get = snd_rme9652_control_spdif_stream_get,
...@@ -1545,7 +1545,7 @@ static snd_kcontrol_new_t snd_rme9652_controls[] = { ...@@ -1545,7 +1545,7 @@ static snd_kcontrol_new_t snd_rme9652_controls[] = {
}, },
{ {
.access = SNDRV_CTL_ELEM_ACCESS_READ, .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), .name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,CON_MASK),
.info = snd_rme9652_control_spdif_mask_info, .info = snd_rme9652_control_spdif_mask_info,
.get = snd_rme9652_control_spdif_mask_get, .get = snd_rme9652_control_spdif_mask_get,
...@@ -1555,7 +1555,7 @@ static snd_kcontrol_new_t snd_rme9652_controls[] = { ...@@ -1555,7 +1555,7 @@ static snd_kcontrol_new_t snd_rme9652_controls[] = {
}, },
{ {
.access = SNDRV_CTL_ELEM_ACCESS_READ, .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), .name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,PRO_MASK),
.info = snd_rme9652_control_spdif_mask_info, .info = snd_rme9652_control_spdif_mask_info,
.get = snd_rme9652_control_spdif_mask_get, .get = snd_rme9652_control_spdif_mask_get,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment