aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJaroslav Kysela <perex@suse.cz>2005-07-09 04:07:55 -0400
committerJaroslav Kysela <perex@suse.cz>2005-07-28 06:22:09 -0400
commit072c01194df6e4843582d09380b780987f642d6d (patch)
tree2212bb4b69de1187c4c9ee9f838360f374acf4e9
parent856def8a4695066e6cbd2919c5987f1df23dbe8a (diff)
[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,
685 return 0; 685 return 0;
686} 686}
687 687
688static void snd_es1371_codec_wait(ac97_t *ac97)
689{
690 msleep(750);
691 snd_es1371_codec_read(ac97, AC97_RESET);
692 snd_es1371_codec_read(ac97, AC97_VENDOR_ID1);
693 snd_es1371_codec_read(ac97, AC97_VENDOR_ID2);
694 msleep(50);
695}
696
688static void snd_es1371_adc_rate(ensoniq_t * ensoniq, unsigned int rate) 697static void snd_es1371_adc_rate(ensoniq_t * ensoniq, unsigned int rate)
689{ 698{
690 unsigned int n, truncm, freq, result; 699 unsigned int n, truncm, freq, result;
@@ -1585,6 +1594,7 @@ static int snd_ensoniq_1371_mixer(ensoniq_t * ensoniq)
1585 static ac97_bus_ops_t ops = { 1594 static ac97_bus_ops_t ops = {
1586 .write = snd_es1371_codec_write, 1595 .write = snd_es1371_codec_write,
1587 .read = snd_es1371_codec_read, 1596 .read = snd_es1371_codec_read,
1597 .wait = snd_es1371_codec_wait,
1588 }; 1598 };
1589 1599
1590 if ((err = snd_ac97_bus(card, 0, &ops, NULL, &pbus)) < 0) 1600 if ((err = snd_ac97_bus(card, 0, &ops, NULL, &pbus)) < 0)