aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci/emu10k1/emufx.c
diff options
context:
space:
mode:
authorMikael Magnusson <mikma@users.sourceforge.net>2005-09-13 05:32:58 -0400
committerJaroslav Kysela <perex@suse.cz>2005-11-04 07:15:36 -0500
commitedf8e4565c44bffbb4d09e8984df941d0ae9e6e8 (patch)
tree717847acaec7b4007ae5e8e6e72328fdcda69744 /sound/pci/emu10k1/emufx.c
parent0f3278d14f0255e4cd9e07ccefc33ff12d8bb59c (diff)
[ALSA] emu10k1: Front channels via fxbus 8 and 9
Modules: EMU10K1/EMU10K2 driver Adds left and right front channel outputs using fxbus 8 and 9 and 'Front' playback and capture volume controls. Signed-off-by: Mikael Magnusson <mikma@users.sourceforge.net> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci/emu10k1/emufx.c')
-rw-r--r--sound/pci/emu10k1/emufx.c23
1 files changed, 20 insertions, 3 deletions
diff --git a/sound/pci/emu10k1/emufx.c b/sound/pci/emu10k1/emufx.c
index 646b5d972e6f..20db3ac6cd61 100644
--- a/sound/pci/emu10k1/emufx.c
+++ b/sound/pci/emu10k1/emufx.c
@@ -964,8 +964,8 @@ static int snd_emu10k1_ipcm_peek(emu10k1_t *emu, emu10k1_fx8010_pcm_t *ipcm)
964 return err; 964 return err;
965} 965}
966 966
967#define SND_EMU10K1_GPR_CONTROLS 41 967#define SND_EMU10K1_GPR_CONTROLS 44
968#define SND_EMU10K1_INPUTS 10 968#define SND_EMU10K1_INPUTS 12
969#define SND_EMU10K1_PLAYBACK_CHANNELS 8 969#define SND_EMU10K1_PLAYBACK_CHANNELS 8
970#define SND_EMU10K1_CAPTURE_CHANNELS 4 970#define SND_EMU10K1_CAPTURE_CHANNELS 4
971 971
@@ -1527,7 +1527,7 @@ static int __devinit _snd_emu10k1_init_efx(emu10k1_t *emu)
1527 1527
1528 strcpy(icode->name, "SB Live! FX8010 code for ALSA v1.2 by Jaroslav Kysela"); 1528 strcpy(icode->name, "SB Live! FX8010 code for ALSA v1.2 by Jaroslav Kysela");
1529 ptr = 0; i = 0; 1529 ptr = 0; i = 0;
1530 /* we have 10 inputs */ 1530 /* we have 12 inputs */
1531 playback = SND_EMU10K1_INPUTS; 1531 playback = SND_EMU10K1_INPUTS;
1532 /* we have 6 playback channels and tone control doubles */ 1532 /* we have 6 playback channels and tone control doubles */
1533 capture = playback + (SND_EMU10K1_PLAYBACK_CHANNELS * 2); 1533 capture = playback + (SND_EMU10K1_PLAYBACK_CHANNELS * 2);
@@ -1551,6 +1551,8 @@ static int __devinit _snd_emu10k1_init_efx(emu10k1_t *emu)
1551 OP(icode, &ptr, iMACINT0, GPR(7), C_00000000, FXBUS(FXBUS_PCM_LFE), C_00000004); 1551 OP(icode, &ptr, iMACINT0, GPR(7), C_00000000, FXBUS(FXBUS_PCM_LFE), C_00000004);
1552 OP(icode, &ptr, iMACINT0, GPR(8), C_00000000, C_00000000, C_00000000); /* S/PDIF left */ 1552 OP(icode, &ptr, iMACINT0, GPR(8), C_00000000, C_00000000, C_00000000); /* S/PDIF left */
1553 OP(icode, &ptr, iMACINT0, GPR(9), C_00000000, C_00000000, C_00000000); /* S/PDIF right */ 1553 OP(icode, &ptr, iMACINT0, GPR(9), C_00000000, C_00000000, C_00000000); /* S/PDIF right */
1554 OP(icode, &ptr, iMACINT0, GPR(10), C_00000000, FXBUS(FXBUS_PCM_LEFT_FRONT), C_00000004);
1555 OP(icode, &ptr, iMACINT0, GPR(11), C_00000000, FXBUS(FXBUS_PCM_RIGHT_FRONT), C_00000004);
1554 1556
1555 /* Raw S/PDIF PCM */ 1557 /* Raw S/PDIF PCM */
1556 ipcm->substream = 0; 1558 ipcm->substream = 0;
@@ -1697,6 +1699,21 @@ static int __devinit _snd_emu10k1_init_efx(emu10k1_t *emu)
1697 VOLUME_ADD(icode, &ptr, playback + 5, 7, gpr); 1699 VOLUME_ADD(icode, &ptr, playback + 5, 7, gpr);
1698 snd_emu10k1_init_mono_control(controls + i++, "LFE Digital Playback Volume", gpr++, 100); 1700 snd_emu10k1_init_mono_control(controls + i++, "LFE Digital Playback Volume", gpr++, 100);
1699 1701
1702 /* Front Playback Volume */
1703 for (z = 0; z < 2; z++)
1704 VOLUME_ADD(icode, &ptr, playback + z, 10 + z, gpr + z);
1705 snd_emu10k1_init_stereo_control(controls + i++, "Front Playback Volume", gpr, 100);
1706 gpr += 2;
1707
1708 /* Front Capture Volume + Switch */
1709 for (z = 0; z < 2; z++) {
1710 SWITCH(icode, &ptr, tmp + 0, 10 + z, gpr + 2);
1711 VOLUME_ADD(icode, &ptr, capture + z, tmp + 0, gpr + z);
1712 }
1713 snd_emu10k1_init_stereo_control(controls + i++, "Front Capture Volume", gpr, 0);
1714 snd_emu10k1_init_mono_onoff_control(controls + i++, "Front Capture Switch", gpr + 2, 0);
1715 gpr += 3;
1716
1700 /* 1717 /*
1701 * Process inputs 1718 * Process inputs
1702 */ 1719 */