Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e2340465ec9587362a057524d3e2163377366771
Commit:     e2340465ec9587362a057524d3e2163377366771
Parent:     01ade528d424420093973ede20d7394d2cd81190
Author:     Paul Vojta <[EMAIL PROTECTED]>
AuthorDate: Fri Jul 27 12:20:38 2007 +0200
Committer:  Jaroslav Kysela <[EMAIL PROTECTED]>
CommitDate: Tue Oct 16 15:58:08 2007 +0200

    [ALSA] Fix bugs in mode change/recalibration for opl3sa2 driver
    
    The mode change / recalibration doesn't work always with opl3sa2 devices,
    e.g. the first time it's played back.  The patch fixes the problem.
    
    Signed-off-by: Paul Vojta <[EMAIL PROTECTED]>
    Signed-off-by: Takashi Iwai <[EMAIL PROTECTED]>
    Signed-off-by: Jaroslav Kysela <[EMAIL PROTECTED]>
---
 include/sound/cs4231.h        |    2 +-
 sound/isa/cs423x/cs4231_lib.c |    2 ++
 sound/isa/opl3sa2.c           |    1 +
 3 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/include/sound/cs4231.h b/include/sound/cs4231.h
index ab51ce1..b195a73 100644
--- a/include/sound/cs4231.h
+++ b/include/sound/cs4231.h
@@ -210,7 +210,7 @@
 #define CS4231_HW_CS4239       0x0404  /* CS4239 - Crystal Clear (tm) stereo 
enhancement */
 /* compatible, but clones */
 #define CS4231_HW_INTERWAVE     0x1000 /* InterWave chip */
-#define CS4231_HW_OPL3SA2       0x1001 /* OPL3-SA2 chip */
+#define CS4231_HW_OPL3SA2       0x1101 /* OPL3-SA2 chip, similar to cs4231 */
 
 /* defines for codec.hwshare */
 #define CS4231_HWSHARE_IRQ     (1<<0)
diff --git a/sound/isa/cs423x/cs4231_lib.c b/sound/isa/cs423x/cs4231_lib.c
index 914d77b..642bdaa 100644
--- a/sound/isa/cs423x/cs4231_lib.c
+++ b/sound/isa/cs423x/cs4231_lib.c
@@ -555,6 +555,8 @@ static void snd_cs4231_playback_format(struct snd_cs4231 
*chip,
                        snd_cs4231_out(chip, CS4231_PLAYBK_FORMAT, 
chip->image[CS4231_PLAYBK_FORMAT] = pdfr);
                }
                spin_unlock_irqrestore(&chip->reg_lock, flags);
+               if (chip->hardware == CS4231_HW_OPL3SA2)
+                       udelay(100);    /* this seems to help */
                snd_cs4231_mce_down(chip);
        }
        snd_cs4231_calibrate_mute(chip, 0);
diff --git a/sound/isa/opl3sa2.c b/sound/isa/opl3sa2.c
index e70db32..244a002 100644
--- a/sound/isa/opl3sa2.c
+++ b/sound/isa/opl3sa2.c
@@ -253,6 +253,7 @@ static int __devinit snd_opl3sa2_detect(struct snd_opl3sa2 
*chip)
                /* 0x03 - YM715B */
                /* 0x04 - YM719 - OPL-SA4? */
                /* 0x05 - OPL3-SA3 - Libretto 100 */
+               /* 0x07 - unknown - Neomagic MagicWave 3D */
                break;
        }
        str[0] = chip->version + '0';
-
To unsubscribe from this list: send the line "unsubscribe git-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