Re: no sound with SondBlast PCI (ens1371)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 22-07-08 09:56, Jason Hitt wrote:

Rene Herman <rene.herman <at> keyaccess.nl> writes:

If you'd be able to test the new patch (I'll attach it again here for convenience) that would be interesting.

Well, not as interesting as you may have hoped.  I reverted the file and applied
the new patch.  The only output in kern.log is:

ACPI: PCI Interrupt 0000:01:09.0[A] -> Link [APC2] -> GSI 17 (level, low)
    -> IRQ 17

I reloaded the module, upped all the alsamixer lines, and no audio.  No errors,
but no audio.

An earlier found report said the thing stopped working in 2.6.11 which made me have hopes for that one....

Here's the next attempt. Again applies to a virgin (2.6.26) ens1370.c. If it's easier, the entire file as it should now look after this patch is at:

http://members.home.nl/rene.herman/ens1371/ens1370-src-delay.c

Rename it to plain "ens1370.c" and just copy it over the ens1370.c you are compiling.

If this does not work, I noticed another difference in the OSS driver but that one looks like a plain bug in it so let's try this one first.

Rene.
diff --git a/sound/pci/ens1370.c b/sound/pci/ens1370.c
index 9bf9536..b9ea284 100644
--- a/sound/pci/ens1370.c
+++ b/sound/pci/ens1370.c
@@ -622,12 +622,14 @@ static void snd_es1371_codec_write(struct snd_ac97 *ac97,
 				if ((inl(ES_REG(ensoniq, 1371_SMPRATE)) & 0x00870000) ==
 				    0x00000000)
 					break;
+				udelay(1);
 			}
 			/* wait for a SAFE time to write addr/data and then do it, dammit */
 			for (t = 0; t < POLL_COUNT; t++) {
 				if ((inl(ES_REG(ensoniq, 1371_SMPRATE)) & 0x00870000) ==
 				    0x00010000)
 					break;
+				udelay(1);
 			}
 			outl(ES_1371_CODEC_WRITE(reg, val), ES_REG(ensoniq, 1371_CODEC));
 			/* restore SRC reg */
@@ -663,12 +665,14 @@ static unsigned short snd_es1371_codec_read(struct snd_ac97 *ac97,
 				if ((inl(ES_REG(ensoniq, 1371_SMPRATE)) & 0x00870000) ==
 				    0x00000000)
 					break;
+				udelay(1);
 			}
 			/* wait for a SAFE time to write addr/data and then do it, dammit */
 			for (t = 0; t < POLL_COUNT; t++) {
 				if ((inl(ES_REG(ensoniq, 1371_SMPRATE)) & 0x00870000) ==
 				    0x00010000)
 					break;
+				udelay(1);
 			}
 			outl(ES_1371_CODEC_READS(reg), ES_REG(ensoniq, 1371_CODEC));
 			/* restore SRC reg */
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Alsa-user mailing list
Alsa-user@xxxxxxxxxxxxxxxxxxxxx
https://lists.sourceforge.net/lists/listinfo/alsa-user

[Index of Archives]     [ALSA Devel]     [Linux Audio Users]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [Yosemite Photos]     [KDE Users]     [Fedora Tools]

  Powered by Linux