summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJaroslav Kysela <perex@suse.cz>2005-07-09 12:07:55 +0400
committerJaroslav Kysela <perex@suse.cz>2005-07-28 14:22:09 +0400
commit072c01194df6e4843582d09380b780987f642d6d (patch)
tree2212bb4b69de1187c4c9ee9f838360f374acf4e9
parent856def8a4695066e6cbd2919c5987f1df23dbe8a (diff)
downloadlinux-072c01194df6e4843582d09380b780987f642d6d.tar.xz
[ALSA] ens1371 - added extra delay for ac97 codec initialization
ENS1370/1+ driver Signed-off-by: Jaroslav Kysela <perex@suse.cz>
-rw-r--r--sound/pci/ens1370.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/sound/pci/ens1370.c b/sound/pci/ens1370.c
index 4e63498a58b2..d4287338c042 100644
--- a/sound/pci/ens1370.c
+++ b/sound/pci/ens1370.c
@@ -685,6 +685,15 @@ static unsigned short snd_es1371_codec_read(ac97_t *ac97,
return 0;
}
+static void snd_es1371_codec_wait(ac97_t *ac97)
+{
+ msleep(750);
+ snd_es1371_codec_read(ac97, AC97_RESET);
+ snd_es1371_codec_read(ac97, AC97_VENDOR_ID1);
+ snd_es1371_codec_read(ac97, AC97_VENDOR_ID2);
+ msleep(50);
+}
+
static void snd_es1371_adc_rate(ensoniq_t * ensoniq, unsigned int rate)
{
unsigned int n, truncm, freq, result;
@@ -1585,6 +1594,7 @@ static int snd_ensoniq_1371_mixer(ensoniq_t * ensoniq)
static ac97_bus_ops_t ops = {
.write = snd_es1371_codec_write,
.read = snd_es1371_codec_read,
+ .wait = snd_es1371_codec_wait,
};
if ((err = snd_ac97_bus(card, 0, &ops, NULL, &pbus)) < 0)