Audio problems.

Erik Udo erik.u at dnainternet.net
Thu Dec 30 14:01:27 PST 2004


I have the latest FreeBSD 5.3-STABLE on Asus a7v880.
It has integrated AD1888 AC97. I almost got it working
using snd_via8233, but no sound came out.
I got the audio working with the following patch:

--- sys/dev/sound/pcm/ac97.c.orig       Tue Nov 11 23:15:17 2003
+++ sys/dev/sound/pcm/ac97.c    Tue Aug 10 23:58:11 2004
@@ -124,6 +124,7 @@
         { 0x41445360, 0x00, 0, "AD1885",        0 },
         { 0x41445361, 0x00, 0, "AD1886",        ad1886_patch },
         { 0x41445362, 0x00, 0, "AD1887",        0 },
+       { 0x41445368, 0x00, 0, "AD1888",        ad198x_patch },
         { 0x41445363, 0x00, 0, "AD1886A",       0 },
         { 0x41445370, 0x00, 0, "AD1980",        ad198x_patch },
         { 0x41445372, 0x00, 0, "AD1981A",       0 },

The patch made my sound working but it goes too fast.
I once had that kind of problems but i solved it by
changing the hw,snd.pcm0.vchans and ac97rate. Now i dont
have sysctl hw.snd.pcm0.ac97rate! So if only i could
get the sound going at the normal speed i'd be very happy :)

Here is some info:
pcm0: <VIA VT8237> port 0xe400-0xe4ff irq 22 at device 17.5 on pci0
pcm0: [GIANT-LOCKED]
pcm0: <Analog Devices AD1888 AC97 Codec>
pcm0: <VIA VT8237> port 0xe400-0xe4ff irq 22 at device 17.5 on pci0
pcm0: Reserved 0x100 bytes for rid 0x10 type 4 at 0xe400
pcm0: [GIANT-LOCKED]
pcm0: <Analog Devices AD1888 AC97 Codec (id = 0x41445368)>
pcm0: Codec features headphone, 20 bit DAC, 5 bit master volume, no 3D 
Stereo Enhancement
pcm0: Primary codec extended features variable rate PCM, double rate 
PCM, reserved 1, center DAC, surround DAC, LFE DAC, AMAP
pcm0: sndbuf_setmap 2bb000, 1000; 0xc16a7000 -> 2bb000
pcm0: sndbuf_setmap 2d2000, 1000; 0xc16be000 -> 2d2000
pcm0: sndbuf_setmap 2f0000, 1000; 0xc16bc000 -> 2f0000
pcm0: sndbuf_setmap 2ce000, 1000; 0xc16ba000 -> 2ce000
pcm0: sndbuf_setmap 2ec000, 1000; 0xc16b8000 -> 2ec000
pcm0: sndbuf_setmap 2ea000, 1000; 0xc16b6000 -> 2ea000


FreeBSD Audio Driver (newpcm)
Installed devices:
pcm0: <VIA VT8237> at io 0xe400 irq 22  (5p/1r/6v channels duplex default)
         [pcm0:play:0]: spd 44100/48000, fmt 0x10000010, flags 
0x00001000, 0x00000010
         interrupts 0, underruns 0, ready 0
         {userland} -> feeder_vchan_s16(0x10000010) -> feeder_rate(44100 
-> 48000) -> {hardware}
         [pcm0:play:1]: spd 0, fmt 0x00000000/0x00000008, flags 
0x00000000, 0x00000000
         interrupts 0, underruns 0, ready 0
         {userland} -> feeder_root(0x00000000) -> {hardware}
         [pcm0:play:2]: spd 0, fmt 0x00000000/0x00000008, flags 
0x00000000, 0x00000000
         interrupts 0, underruns 0, ready 0
         {userland} -> feeder_root(0x00000000) -> {hardware}
         [pcm0:play:3]: spd 0, fmt 0x00000000/0x00000008, flags 
0x00000000, 0x00000000
         interrupts 0, underruns 0, ready 0
         {userland} -> feeder_root(0x00000000) -> {hardware}
         [pcm0:play:4]: spd 0, fmt 0x00000000/0x00000008, flags 
0x00000000, 0x00000000
         interrupts 0, underruns 0, ready 0
         {userland} -> feeder_root(0x00000000) -> {hardware}
         [pcm0:record:0]: spd 0, fmt 0x00000000/0x00000008, flags 
0x00000000, 0x00000000
         interrupts 0, overruns 0, hfree 4096, sfree 0
         {hardware} -> feeder_root(0x00000000) -> {userland}
         pcm0:play:0[pcm0:virtual:0]: spd 0, fmt 0x00000000/0x00000008, 
flags 0x10000000, 0x00000000
         interrupts 0, underruns 0, ready 0
         {userland} -> feeder_root(0x00000000) -> {hardware}
         pcm0:play:0[pcm0:virtual:1]: spd 0, fmt 0x00000000/0x00000008, 
flags 0x10000000, 0x00000000
         interrupts 0, underruns 0, ready 0
         {userland} -> feeder_root(0x00000000) -> {hardware}
         pcm0:play:0[pcm0:virtual:2]: spd 0, fmt 0x00000000/0x00000008, 
flags 0x10000000, 0x00000000
         interrupts 0, underruns 0, ready 0
         {userland} -> feeder_root(0x00000000) -> {hardware}
         pcm0:play:0[pcm0:virtual:3]: spd 0, fmt 0x00000000/0x00000008, 
flags 0x10000000, 0x00000000
         interrupts 0, underruns 0, ready 0
         {userland} -> feeder_root(0x00000000) -> {hardware}
         pcm0:play:0[pcm0:virtual:4]: spd 0, fmt 0x00000000/0x00000008, 
flags 0x10000000, 0x00000000
         interrupts 0, underruns 0, ready 0
         {userland} -> feeder_root(0x00000000) -> {hardware}
         pcm0:play:0[pcm0:virtual:5]: spd 0, fmt 0x00000000/0x00000008, 
flags 0x10000000, 0x00000000
         interrupts 0, underruns 0, ready 0
         {userland} -> feeder_root(0x00000000) -> {hardware}


More information about the freebsd-multimedia mailing list