aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci/mixart/mixart_mixer.c
diff options
context:
space:
mode:
Diffstat (limited to 'sound/pci/mixart/mixart_mixer.c')
-rw-r--r--sound/pci/mixart/mixart_mixer.c108
1 files changed, 54 insertions, 54 deletions
diff --git a/sound/pci/mixart/mixart_mixer.c b/sound/pci/mixart/mixart_mixer.c
index 39c15416fc80..36a7e9ddfb15 100644
--- a/sound/pci/mixart/mixart_mixer.c
+++ b/sound/pci/mixart/mixart_mixer.c
@@ -298,12 +298,12 @@ static u32 mixart_analog_level[256] = {
298#define MIXART_ANALOG_PLAYBACK_LEVEL_MAX 192 /* 0.0 dB + 1.5 dB = 1.5 dB */ 298#define MIXART_ANALOG_PLAYBACK_LEVEL_MAX 192 /* 0.0 dB + 1.5 dB = 1.5 dB */
299#define MIXART_ANALOG_PLAYBACK_ZERO_LEVEL 189 /* -1.5 dB + 1.5 dB = 0.0 dB */ 299#define MIXART_ANALOG_PLAYBACK_ZERO_LEVEL 189 /* -1.5 dB + 1.5 dB = 0.0 dB */
300 300
301static int mixart_update_analog_audio_level(mixart_t* chip, int is_capture) 301static int mixart_update_analog_audio_level(struct snd_mixart* chip, int is_capture)
302{ 302{
303 int i, err; 303 int i, err;
304 mixart_msg_t request; 304 struct mixart_msg request;
305 mixart_io_level_t io_level; 305 struct mixart_io_level io_level;
306 mixart_return_uid_t resp; 306 struct mixart_return_uid resp;
307 307
308 memset(&io_level, 0, sizeof(io_level)); 308 memset(&io_level, 0, sizeof(io_level));
309 io_level.channel = -1; /* left and right */ 309 io_level.channel = -1; /* left and right */
@@ -336,7 +336,7 @@ static int mixart_update_analog_audio_level(mixart_t* chip, int is_capture)
336/* 336/*
337 * analog level control 337 * analog level control
338 */ 338 */
339static int mixart_analog_vol_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) 339static int mixart_analog_vol_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
340{ 340{
341 uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; 341 uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
342 uinfo->count = 2; 342 uinfo->count = 2;
@@ -350,9 +350,9 @@ static int mixart_analog_vol_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t
350 return 0; 350 return 0;
351} 351}
352 352
353static int mixart_analog_vol_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) 353static int mixart_analog_vol_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
354{ 354{
355 mixart_t *chip = snd_kcontrol_chip(kcontrol); 355 struct snd_mixart *chip = snd_kcontrol_chip(kcontrol);
356 down(&chip->mgr->mixer_mutex); 356 down(&chip->mgr->mixer_mutex);
357 if(kcontrol->private_value == 0) { /* playback */ 357 if(kcontrol->private_value == 0) { /* playback */
358 ucontrol->value.integer.value[0] = chip->analog_playback_volume[0]; 358 ucontrol->value.integer.value[0] = chip->analog_playback_volume[0];
@@ -365,9 +365,9 @@ static int mixart_analog_vol_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t
365 return 0; 365 return 0;
366} 366}
367 367
368static int mixart_analog_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) 368static int mixart_analog_vol_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
369{ 369{
370 mixart_t *chip = snd_kcontrol_chip(kcontrol); 370 struct snd_mixart *chip = snd_kcontrol_chip(kcontrol);
371 int changed = 0; 371 int changed = 0;
372 int is_capture, i; 372 int is_capture, i;
373 373
@@ -386,7 +386,7 @@ static int mixart_analog_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t
386 return changed; 386 return changed;
387} 387}
388 388
389static snd_kcontrol_new_t mixart_control_analog_level = { 389static struct snd_kcontrol_new mixart_control_analog_level = {
390 .iface = SNDRV_CTL_ELEM_IFACE_MIXER, 390 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
391 /* name will be filled later */ 391 /* name will be filled later */
392 .info = mixart_analog_vol_info, 392 .info = mixart_analog_vol_info,
@@ -395,7 +395,7 @@ static snd_kcontrol_new_t mixart_control_analog_level = {
395}; 395};
396 396
397/* shared */ 397/* shared */
398static int mixart_sw_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) 398static int mixart_sw_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
399{ 399{
400 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; 400 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
401 uinfo->count = 2; 401 uinfo->count = 2;
@@ -404,9 +404,9 @@ static int mixart_sw_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo)
404 return 0; 404 return 0;
405} 405}
406 406
407static int mixart_audio_sw_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) 407static int mixart_audio_sw_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
408{ 408{
409 mixart_t *chip = snd_kcontrol_chip(kcontrol); 409 struct snd_mixart *chip = snd_kcontrol_chip(kcontrol);
410 410
411 down(&chip->mgr->mixer_mutex); 411 down(&chip->mgr->mixer_mutex);
412 ucontrol->value.integer.value[0] = chip->analog_playback_active[0]; 412 ucontrol->value.integer.value[0] = chip->analog_playback_active[0];
@@ -415,9 +415,9 @@ static int mixart_audio_sw_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *u
415 return 0; 415 return 0;
416} 416}
417 417
418static int mixart_audio_sw_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) 418static int mixart_audio_sw_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
419{ 419{
420 mixart_t *chip = snd_kcontrol_chip(kcontrol); 420 struct snd_mixart *chip = snd_kcontrol_chip(kcontrol);
421 int i, changed = 0; 421 int i, changed = 0;
422 down(&chip->mgr->mixer_mutex); 422 down(&chip->mgr->mixer_mutex);
423 for(i=0; i<2; i++) { 423 for(i=0; i<2; i++) {
@@ -431,7 +431,7 @@ static int mixart_audio_sw_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *u
431 return changed; 431 return changed;
432} 432}
433 433
434static snd_kcontrol_new_t mixart_control_output_switch = { 434static struct snd_kcontrol_new mixart_control_output_switch = {
435 .iface = SNDRV_CTL_ELEM_IFACE_MIXER, 435 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
436 .name = "Master Playback Switch", 436 .name = "Master Playback Switch",
437 .info = mixart_sw_info, /* shared */ 437 .info = mixart_sw_info, /* shared */
@@ -703,14 +703,14 @@ static u32 mixart_digital_level[256] = {
703#define MIXART_DIGITAL_ZERO_LEVEL 219 /* 0.0 dB */ 703#define MIXART_DIGITAL_ZERO_LEVEL 219 /* 0.0 dB */
704 704
705 705
706int mixart_update_playback_stream_level(mixart_t* chip, int is_aes, int idx) 706int mixart_update_playback_stream_level(struct snd_mixart* chip, int is_aes, int idx)
707{ 707{
708 int err, i; 708 int err, i;
709 int volume[2]; 709 int volume[2];
710 mixart_msg_t request; 710 struct mixart_msg request;
711 mixart_set_out_stream_level_req_t set_level; 711 struct mixart_set_out_stream_level_req set_level;
712 u32 status; 712 u32 status;
713 mixart_pipe_t *pipe; 713 struct mixart_pipe *pipe;
714 714
715 memset(&set_level, 0, sizeof(set_level)); 715 memset(&set_level, 0, sizeof(set_level));
716 set_level.nb_of_stream = 1; 716 set_level.nb_of_stream = 1;
@@ -741,7 +741,7 @@ int mixart_update_playback_stream_level(mixart_t* chip, int is_aes, int idx)
741 set_level.stream_level.out_level.right_to_out2_level = mixart_digital_level[volume[1]]; 741 set_level.stream_level.out_level.right_to_out2_level = mixart_digital_level[volume[1]];
742 742
743 request.message_id = MSG_STREAM_SET_OUT_STREAM_LEVEL; 743 request.message_id = MSG_STREAM_SET_OUT_STREAM_LEVEL;
744 request.uid = (mixart_uid_t){0,0}; 744 request.uid = (struct mixart_uid){0,0};
745 request.data = &set_level; 745 request.data = &set_level;
746 request.size = sizeof(set_level); 746 request.size = sizeof(set_level);
747 747
@@ -753,12 +753,12 @@ int mixart_update_playback_stream_level(mixart_t* chip, int is_aes, int idx)
753 return 0; 753 return 0;
754} 754}
755 755
756int mixart_update_capture_stream_level(mixart_t* chip, int is_aes) 756int mixart_update_capture_stream_level(struct snd_mixart* chip, int is_aes)
757{ 757{
758 int err, i, idx; 758 int err, i, idx;
759 mixart_pipe_t* pipe; 759 struct mixart_pipe *pipe;
760 mixart_msg_t request; 760 struct mixart_msg request;
761 mixart_set_in_audio_level_req_t set_level; 761 struct mixart_set_in_audio_level_req set_level;
762 u32 status; 762 u32 status;
763 763
764 if(is_aes) { 764 if(is_aes) {
@@ -784,7 +784,7 @@ int mixart_update_capture_stream_level(mixart_t* chip, int is_aes)
784 } 784 }
785 785
786 request.message_id = MSG_STREAM_SET_IN_AUDIO_LEVEL; 786 request.message_id = MSG_STREAM_SET_IN_AUDIO_LEVEL;
787 request.uid = (mixart_uid_t){0,0}; 787 request.uid = (struct mixart_uid){0,0};
788 request.data = &set_level; 788 request.data = &set_level;
789 request.size = sizeof(set_level); 789 request.size = sizeof(set_level);
790 790
@@ -798,7 +798,7 @@ int mixart_update_capture_stream_level(mixart_t* chip, int is_aes)
798 798
799 799
800/* shared */ 800/* shared */
801static int mixart_digital_vol_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) 801static int mixart_digital_vol_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
802{ 802{
803 uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; 803 uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
804 uinfo->count = 2; 804 uinfo->count = 2;
@@ -810,9 +810,9 @@ static int mixart_digital_vol_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t
810#define MIXART_VOL_REC_MASK 1 810#define MIXART_VOL_REC_MASK 1
811#define MIXART_VOL_AES_MASK 2 811#define MIXART_VOL_AES_MASK 2
812 812
813static int mixart_pcm_vol_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) 813static int mixart_pcm_vol_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
814{ 814{
815 mixart_t *chip = snd_kcontrol_chip(kcontrol); 815 struct snd_mixart *chip = snd_kcontrol_chip(kcontrol);
816 int idx = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id); /* index */ 816 int idx = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id); /* index */
817 int *stored_volume; 817 int *stored_volume;
818 int is_capture = kcontrol->private_value & MIXART_VOL_REC_MASK; 818 int is_capture = kcontrol->private_value & MIXART_VOL_REC_MASK;
@@ -832,9 +832,9 @@ static int mixart_pcm_vol_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *uc
832 return 0; 832 return 0;
833} 833}
834 834
835static int mixart_pcm_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) 835static int mixart_pcm_vol_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
836{ 836{
837 mixart_t *chip = snd_kcontrol_chip(kcontrol); 837 struct snd_mixart *chip = snd_kcontrol_chip(kcontrol);
838 int idx = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id); /* index */ 838 int idx = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id); /* index */
839 int changed = 0; 839 int changed = 0;
840 int is_capture = kcontrol->private_value & MIXART_VOL_REC_MASK; 840 int is_capture = kcontrol->private_value & MIXART_VOL_REC_MASK;
@@ -864,7 +864,7 @@ static int mixart_pcm_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *uc
864 return changed; 864 return changed;
865} 865}
866 866
867static snd_kcontrol_new_t snd_mixart_pcm_vol = 867static struct snd_kcontrol_new snd_mixart_pcm_vol =
868{ 868{
869 .iface = SNDRV_CTL_ELEM_IFACE_MIXER, 869 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
870 /* name will be filled later */ 870 /* name will be filled later */
@@ -875,9 +875,9 @@ static snd_kcontrol_new_t snd_mixart_pcm_vol =
875}; 875};
876 876
877 877
878static int mixart_pcm_sw_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) 878static int mixart_pcm_sw_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
879{ 879{
880 mixart_t *chip = snd_kcontrol_chip(kcontrol); 880 struct snd_mixart *chip = snd_kcontrol_chip(kcontrol);
881 int idx = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id); /* index */ 881 int idx = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id); /* index */
882 snd_assert ( idx < MIXART_PLAYBACK_STREAMS ); 882 snd_assert ( idx < MIXART_PLAYBACK_STREAMS );
883 down(&chip->mgr->mixer_mutex); 883 down(&chip->mgr->mixer_mutex);
@@ -889,9 +889,9 @@ static int mixart_pcm_sw_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *uco
889 return 0; 889 return 0;
890} 890}
891 891
892static int mixart_pcm_sw_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) 892static int mixart_pcm_sw_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
893{ 893{
894 mixart_t *chip = snd_kcontrol_chip(kcontrol); 894 struct snd_mixart *chip = snd_kcontrol_chip(kcontrol);
895 int changed = 0; 895 int changed = 0;
896 int is_aes = kcontrol->private_value & MIXART_VOL_AES_MASK; 896 int is_aes = kcontrol->private_value & MIXART_VOL_AES_MASK;
897 int idx = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id); /* index */ 897 int idx = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id); /* index */
@@ -911,7 +911,7 @@ static int mixart_pcm_sw_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *uco
911 return changed; 911 return changed;
912} 912}
913 913
914static snd_kcontrol_new_t mixart_control_pcm_switch = { 914static struct snd_kcontrol_new mixart_control_pcm_switch = {
915 .iface = SNDRV_CTL_ELEM_IFACE_MIXER, 915 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
916 /* name will be filled later */ 916 /* name will be filled later */
917 .count = MIXART_PLAYBACK_STREAMS, 917 .count = MIXART_PLAYBACK_STREAMS,
@@ -920,11 +920,11 @@ static snd_kcontrol_new_t mixart_control_pcm_switch = {
920 .put = mixart_pcm_sw_put 920 .put = mixart_pcm_sw_put
921}; 921};
922 922
923static int mixart_update_monitoring(mixart_t* chip, int channel) 923static int mixart_update_monitoring(struct snd_mixart* chip, int channel)
924{ 924{
925 int err; 925 int err;
926 mixart_msg_t request; 926 struct mixart_msg request;
927 mixart_set_out_audio_level_t audio_level; 927 struct mixart_set_out_audio_level audio_level;
928 u32 resp; 928 u32 resp;
929 929
930 if(chip->pipe_out_ana.status == PIPE_UNDEFINED) 930 if(chip->pipe_out_ana.status == PIPE_UNDEFINED)
@@ -953,9 +953,9 @@ static int mixart_update_monitoring(mixart_t* chip, int channel)
953 * monitoring level control 953 * monitoring level control
954 */ 954 */
955 955
956static int mixart_monitor_vol_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) 956static int mixart_monitor_vol_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
957{ 957{
958 mixart_t *chip = snd_kcontrol_chip(kcontrol); 958 struct snd_mixart *chip = snd_kcontrol_chip(kcontrol);
959 down(&chip->mgr->mixer_mutex); 959 down(&chip->mgr->mixer_mutex);
960 ucontrol->value.integer.value[0] = chip->monitoring_volume[0]; 960 ucontrol->value.integer.value[0] = chip->monitoring_volume[0];
961 ucontrol->value.integer.value[1] = chip->monitoring_volume[1]; 961 ucontrol->value.integer.value[1] = chip->monitoring_volume[1];
@@ -963,9 +963,9 @@ static int mixart_monitor_vol_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t
963 return 0; 963 return 0;
964} 964}
965 965
966static int mixart_monitor_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) 966static int mixart_monitor_vol_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
967{ 967{
968 mixart_t *chip = snd_kcontrol_chip(kcontrol); 968 struct snd_mixart *chip = snd_kcontrol_chip(kcontrol);
969 int changed = 0; 969 int changed = 0;
970 int i; 970 int i;
971 down(&chip->mgr->mixer_mutex); 971 down(&chip->mgr->mixer_mutex);
@@ -980,7 +980,7 @@ static int mixart_monitor_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t
980 return changed; 980 return changed;
981} 981}
982 982
983static snd_kcontrol_new_t mixart_control_monitor_vol = { 983static struct snd_kcontrol_new mixart_control_monitor_vol = {
984 .iface = SNDRV_CTL_ELEM_IFACE_MIXER, 984 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
985 .name = "Monitoring Volume", 985 .name = "Monitoring Volume",
986 .info = mixart_digital_vol_info, /* shared */ 986 .info = mixart_digital_vol_info, /* shared */
@@ -992,9 +992,9 @@ static snd_kcontrol_new_t mixart_control_monitor_vol = {
992 * monitoring switch control 992 * monitoring switch control
993 */ 993 */
994 994
995static int mixart_monitor_sw_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) 995static int mixart_monitor_sw_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
996{ 996{
997 mixart_t *chip = snd_kcontrol_chip(kcontrol); 997 struct snd_mixart *chip = snd_kcontrol_chip(kcontrol);
998 down(&chip->mgr->mixer_mutex); 998 down(&chip->mgr->mixer_mutex);
999 ucontrol->value.integer.value[0] = chip->monitoring_active[0]; 999 ucontrol->value.integer.value[0] = chip->monitoring_active[0];
1000 ucontrol->value.integer.value[1] = chip->monitoring_active[1]; 1000 ucontrol->value.integer.value[1] = chip->monitoring_active[1];
@@ -1002,9 +1002,9 @@ static int mixart_monitor_sw_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t
1002 return 0; 1002 return 0;
1003} 1003}
1004 1004
1005static int mixart_monitor_sw_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) 1005static int mixart_monitor_sw_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
1006{ 1006{
1007 mixart_t *chip = snd_kcontrol_chip(kcontrol); 1007 struct snd_mixart *chip = snd_kcontrol_chip(kcontrol);
1008 int changed = 0; 1008 int changed = 0;
1009 int i; 1009 int i;
1010 down(&chip->mgr->mixer_mutex); 1010 down(&chip->mgr->mixer_mutex);
@@ -1033,7 +1033,7 @@ static int mixart_monitor_sw_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t
1033 return (changed != 0); 1033 return (changed != 0);
1034} 1034}
1035 1035
1036static snd_kcontrol_new_t mixart_control_monitor_sw = { 1036static struct snd_kcontrol_new mixart_control_monitor_sw = {
1037 .iface = SNDRV_CTL_ELEM_IFACE_MIXER, 1037 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
1038 .name = "Monitoring Switch", 1038 .name = "Monitoring Switch",
1039 .info = mixart_sw_info, /* shared */ 1039 .info = mixart_sw_info, /* shared */
@@ -1042,7 +1042,7 @@ static snd_kcontrol_new_t mixart_control_monitor_sw = {
1042}; 1042};
1043 1043
1044 1044
1045static void mixart_reset_audio_levels(mixart_t *chip) 1045static void mixart_reset_audio_levels(struct snd_mixart *chip)
1046{ 1046{
1047 /* analog volumes can be set even if there is no pipe */ 1047 /* analog volumes can be set even if there is no pipe */
1048 mixart_update_analog_audio_level(chip, 0); 1048 mixart_update_analog_audio_level(chip, 0);
@@ -1054,15 +1054,15 @@ static void mixart_reset_audio_levels(mixart_t *chip)
1054} 1054}
1055 1055
1056 1056
1057int snd_mixart_create_mixer(mixart_mgr_t *mgr) 1057int snd_mixart_create_mixer(struct mixart_mgr *mgr)
1058{ 1058{
1059 mixart_t *chip; 1059 struct snd_mixart *chip;
1060 int err, i; 1060 int err, i;
1061 1061
1062 init_MUTEX(&mgr->mixer_mutex); /* can be in another place */ 1062 init_MUTEX(&mgr->mixer_mutex); /* can be in another place */
1063 1063
1064 for(i=0; i<mgr->num_cards; i++) { 1064 for(i=0; i<mgr->num_cards; i++) {
1065 snd_kcontrol_new_t temp; 1065 struct snd_kcontrol_new temp;
1066 chip = mgr->chip[i]; 1066 chip = mgr->chip[i];
1067 1067
1068 /* analog output level control */ 1068 /* analog output level control */