ChangeSet 1.2181.25.42, 2005/03/24 11:52:53+01:00, [EMAIL PROTECTED]

        [ALSA] Fixes AC3 output on Audigy2 sound cards
        
        EMU10K1/EMU10K2 driver
        This patch adds a DSP patch to fix an spdif_bug on some Audigy2 cards.
        
        Signed-off-by: James Courtier-Dutton
        Signed-off-by: Takashi Iwai <[EMAIL PROTECTED]>



 emufx.c |   10 +++++++++-
 1 files changed, 9 insertions(+), 1 deletion(-)


diff -Nru a/sound/pci/emu10k1/emufx.c b/sound/pci/emu10k1/emufx.c
--- a/sound/pci/emu10k1/emufx.c 2005-03-30 16:19:07 -08:00
+++ b/sound/pci/emu10k1/emufx.c 2005-03-30 16:19:07 -08:00
@@ -1367,6 +1367,7 @@
        /* A_PUT_STEREO_OUTPUT(A_EXTOUT_FRONT_L, A_EXTOUT_FRONT_R, playback + 
SND_EMU10K1_PLAYBACK_CHANNELS); */
 
        /* IEC958 Optical Raw Playback Switch */ 
+       gpr_map[gpr++] = 0;
        gpr_map[gpr++] = 0x1008;
        gpr_map[gpr++] = 0xffff0000;
        for (z = 0; z < 2; z++) {
@@ -1377,7 +1378,14 @@
                A_SWITCH(icode, &ptr, tmp + 0, tmp + 2, gpr + z);
                A_SWITCH_NEG(icode, &ptr, tmp + 1, gpr + z);
                A_SWITCH(icode, &ptr, tmp + 1, playback + 
SND_EMU10K1_PLAYBACK_CHANNELS + z, tmp + 1);
-               A_OP(icode, &ptr, iACC3, A_EXTOUT(A_EXTOUT_FRONT_L + z), 
A_GPR(tmp + 0), A_GPR(tmp + 1), A_C_00000000);
+               if ((z==1) && (emu->card_capabilities->spdif_bug)) {
+                       /* Due to a SPDIF output bug on some Audigy cards, this 
code delays the Right channel by 1 sample */
+                       snd_printk("Installing spdif_bug patch: %s\n", 
emu->card_capabilities->name);
+                       A_OP(icode, &ptr, iACC3, A_EXTOUT(A_EXTOUT_FRONT_L + 
z), A_GPR(gpr - 3), A_C_00000000, A_C_00000000);
+                       A_OP(icode, &ptr, iACC3, A_GPR(gpr - 3), A_GPR(tmp + 
0), A_GPR(tmp + 1), A_C_00000000);
+               } else {
+                       A_OP(icode, &ptr, iACC3, A_EXTOUT(A_EXTOUT_FRONT_L + 
z), A_GPR(tmp + 0), A_GPR(tmp + 1), A_C_00000000);
+               }
        }
        snd_emu10k1_init_stereo_onoff_control(controls + nctl++, "IEC958 
Optical Raw Playback Switch", gpr, 0);
        gpr += 2;
-
To unsubscribe from this list: send the line "unsubscribe bk-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to