diff -u alsa-kernel/pci/emu10k1/emufx.c alsa-kernel/pci/emu10k1/emufx.c --- alsa-kernel/pci/emu10k1/emufx.c 21 Feb 2005 13:33:30 -0000 +++ alsa-kernel/pci/emu10k1/emufx.c 21 Feb 2005 13:33:52 -0000 @@ -934,7 +934,7 @@ return err; } -#define SND_EMU10K1_GPR_CONTROLS 41 +#define SND_EMU10K1_GPR_CONTROLS 43 #define SND_EMU10K1_INPUTS 10 #define SND_EMU10K1_PLAYBACK_CHANNELS 8 #define SND_EMU10K1_CAPTURE_CHANNELS 4 @@ -1780,6 +1780,19 @@ } /* + * Master Volume + */ + for (z = 0; z < 6; z++) { + SWITCH(icode, &ptr, playback + z, playback + z, gpr + 0); + VOLUME(icode, &ptr, playback + z, playback + z, gpr + 1); + } + + snd_emu10k1_init_mono_onoff_control(controls + i++, "Master Digital Playback Switch", gpr + 0, 0); + snd_emu10k1_init_mono_control(controls + i++, "Master Digital Playback Volume", gpr + 1, 0); + gpr += 2; + + + /* * Process tone control */ OP(icode, &ptr, iACC3, GPR(playback + SND_EMU10K1_PLAYBACK_CHANNELS + 0), GPR(playback + 0), C_00000000, C_00000000); /* left */