Soundcard "Acer Labs M5451" not working (interrupt timeout)

Pillon Matteo matteo.pillon at gmail.com
Wed Aug 23 13:40:03 UTC 2006


Hi!

I have some troubles with snd_t4dwave driver. FreeBSD is running on a
Compaq Presario 2532eu notebook with an ALi M5451 soundcard.

scanpci:
 pci bus 0x0000 cardnum 0x06 function 0x00: vendor 0x10b9 device 0x5451
  ALi Corporation M5451 PCI AC-Link Controller Audio Device
  CardVendor 0x103c card 0x0850 (Hewlett-Packard Company, Card unknown)
   STATUS    0xc290  COMMAND 0x0007
   CLASS     0x04 0x01 0x00  REVISION 0x02
   BIST      0x00  HEADER 0x00  LATENCY 0x40  CACHE 0x00
   BASE0     0x00001001  addr 0x00001000  I/O
   BASE1     0xd0000000  addr 0xd0000000  MEM
   MAX_LAT   0x18  MIN_GNT 0x02  INT_PIN 0x01  INT_LINE 0x05

pciconf:
 pcm0 at pci0:6:0:  class=0x040100 card=0x0850103c chip=0x545110b9
rev=0x02 hdr=0x00
    vendor   = 'Acer Labs Incorporated (ALi)'
    device   = 'ALI M5451 PCI AC-Link Controller Audio Device'
    class    = multimedia
    subclass = audio

uname:
 FreeBSD watson.octopus 6.1-STABLE FreeBSD 6.1-STABLE #13: Wed Aug 23
14:05:10 CEST 2006     root at watson.octopus:/usr/obj/usr/src/sys/WATSON
 i386

snd_t4dwave gets loaded without errors:
 pcm0: <Acer Labs M5451> port 0x1000-0x10ff mem 0xd0000000-0xd0000fff
irq 5 at device 6.0 on pci0
 pcm0: <Conexant CX20468 AC97 Codec>

But when I try to play or record something, I get an interrupt timeout error:
# dd if=/dev/zero of=/dev/dsp
dd: /dev/dsp: end of device
257+0 records in
256+0 records out
131072 bytes transferred in 0.999717 secs (131109 bytes/sec)
# dmesg | grep pcm
pcm0:play:1:dsp0.2: play interrupt timeout, channel dead

# dd if=/dev/dsp of=/dev/null
0+0 records in
0+0 records out
0 bytes transferred in 1.007393 secs (0 bytes/sec)
# dmesg | grep pcm
pcm0:record:0:dsp0.0: record interrupt timeout, channel dead

# cat /dev/sndstat
FreeBSD Audio Driver (newpcm)
Installed devices:
pcm0: <Acer Labs M5451> at io 0x1000 irq 5  (4p/1r/2v channels duplex default)
        [pcm0:record:0:dsp0.0]: spd 8000, fmt 0x00000008, flags
0x00000000, 0x00000000
        interrupts 0, overruns 0, hfree 256, sfree 131072
[b:256/128/2|bs:131072/128/1024]
        {hardware} -> feeder_root(0x00000008) -> {userland}
        [pcm0:play:0:dsp0.1]: spd 48000, fmt 0x10000010, flags
0x00101000, 0x00000000
        interrupts 0, underruns 0, ready 0 [b:4096/2048/2|bs:131072/4096/32]
        {userland} -> feeder_vchan_s16(0x10000010) -> {hardware}
        [pcm0:play:1:dsp0.2]: spd 8000/7992, fmt 0x00000008, flags
0x00000000, 0x00000000
        interrupts 0, underruns 0, ready 0 [b:256/128/2|bs:131072/128/1024]
        {userland} -> feeder_root(0x00000008) -> {hardware}
        [pcm0:play:2:dsp0.3]: spd 0, fmt 0x00000000/0x00000008, flags
0x00000000, 0x00000000
        interrupts 0, underruns 0, ready 0 [b:4096/2048/2|bs:0/0/0]
        {userland} -> feeder_root(0x00000000) -> {hardware}
        [pcm0:play:3:dsp0.4]: spd 0, fmt 0x00000000/0x00000008, flags
0x00000000, 0x00000000
        interrupts 0, underruns 0, ready 0 [b:4096/2048/2|bs:0/0/0]
        {userland} -> feeder_root(0x00000000) -> {hardware}
        pcm0:play:0:dsp0.1[pcm0:virtual:0:dsp0.5]: spd 0, fmt
0x00000000/0x00000008, flags 0x10000000, 0x00000000
        interrupts 0, underruns 0, ready 0 [b:0/0/0|bs:0/0/0]
        {userland} -> feeder_root(0x00000000) -> {hardware}
        pcm0:play:0:dsp0.1[pcm0:virtual:1:dsp0.6]: spd 0, fmt
0x00000000/0x00000008, flags 0x10000000, 0x00000000
        interrupts 0, underruns 0, ready 0 [b:0/0/0|bs:0/0/0]
        {userland} -> feeder_root(0x00000000) -> {hardware}

File Versions:
$FreeBSD: src/sys/dev/sound/pcm/sound.c,v 1.93.2.3 2006/04/04 17:43:48
ariff Exp $
$FreeBSD: src/sys/dev/sound/pcm/sndstat.c,v 1.20.2.2 2005/12/30
19:55:54 netchild Exp $
$FreeBSD: src/sys/dev/sound/pcm/mixer.c,v 1.43.2.4 2006/04/04 17:43:48
ariff Exp $
$FreeBSD: src/sys/dev/sound/pcm/feeder_volume.c,v 1.2.2.1 2005/12/30
19:55:54 netchild Exp $
$FreeBSD: src/sys/dev/sound/pcm/feeder_rate.c,v 1.11.2.2 2006/01/29
02:27:28 ariff Exp $
$FreeBSD: src/sys/dev/sound/pcm/feeder_fmt.c,v 1.14.2.2 2006/01/29
02:27:28 ariff Exp $
$FreeBSD: src/sys/dev/sound/pcm/feeder.c,v 1.33.2.3 2006/03/07
15:51:19 jhb Exp $
$FreeBSD: src/sys/dev/sound/pcm/fake.c,v 1.14.2.1 2005/12/30 19:55:54
netchild Exp $
$FreeBSD: src/sys/dev/sound/pcm/dsp.c,v 1.80.2.6 2006/04/04 17:43:48 ariff Exp $
$FreeBSD: src/sys/dev/sound/pcm/channel.c,v 1.99.2.4 2006/04/04
17:37:51 ariff Exp $
$FreeBSD: src/sys/dev/sound/pcm/buffer.c,v 1.25.2.1 2005/12/30
19:55:54 netchild Exp $
$FreeBSD: src/sys/dev/sound/pcm/ac97_patch.c,v 1.3.2.1 2005/12/30
19:55:54 netchild Exp $
$FreeBSD: src/sys/dev/sound/pcm/ac97.c,v 1.53.2.3 2006/01/09 02:06:42
ariff Exp $
$FreeBSD: src/sys/dev/sound/pci/t4dwave.c,v 1.48 2005/03/01 08:58:05 imp Exp $
$FreeBSD: src/sys/dev/sound/isa/sndbuf_dma.c,v 1.3 2005/01/06 01:43:17 imp Exp $
$FreeBSD: src/sys/dev/sound/pcm/vchan.c,v 1.17.2.4 2006/04/04 17:43:49
ariff Exp $

I also tried Ariff Abdullah patches without success.

Any suggestion?

I tried searching the archives, but this problem is different from
others, as no data is played/recorded since boot.

Thanks.
Bye.

-- 
 * Matteo Pillon


More information about the freebsd-multimedia mailing list