kern/87782: [sound] snd_t4dwave and pcm0:record:0: record
interrupt timeout, channel dead
Marian Cerny
jojo at matfyz.cz
Sun Nov 8 01:10:04 UTC 2009
The following reply was made to PR kern/87782; it has been noted by GNATS.
From: Marian Cerny <jojo at matfyz.cz>
To: bug-followup at FreeBSD.org
Cc:
Subject: Re: kern/87782: [sound] snd_t4dwave and pcm0:record:0: record interrupt
timeout, channel dead
Date: Sun, 08 Nov 2009 01:56:32 +0100
This is a multi-part message in MIME format.
--------------090104070104060404070603
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
I don't have the hardware available, so I can't reproduce this problem
any more. I am forwarding some old follow-ups on freebsd-multimedia, so
that they are noted in GNATS.
Regards,
Marian
-------- Original Message --------
Date: Wed, 11 Oct 2006 10:18:18 +0900
From: Pyun YongHyeon
To: Anish Mistry
CC: freebsd-multimedia at freebsd.org, Marian Cerny
On Tue, Oct 10, 2006 at 03:59:20PM -0400, Anish Mistry wrote:
> On Tuesday 10 October 2006 03:16, Pyun YongHyeon wrote:
> > On Sat, Oct 07, 2006 at 04:52:02PM -0400, Anish Mistry wrote:
> > > On Monday 21 November 2005 10:30, Marian Cerny wrote:
> > > > The following reply was made to PR kern/87782; it has been
> > > > noted by GNATS.
> > > >
> > > > From: Marian Cerny<jojo at matfyz.cz>
> > > > To: bug-followup at FreeBSD.org, freebsd at fadesa.es
> > > > Cc:
> > > > Subject: Re: kern/87782: [sound] snd_t4dwave and
> > > > pcm0:record:0: record interrupt timeout, channel dead Date:
> > > > Mon, 21 Nov 2005 16:29:00 +0100
> > > >
> > > > I have the same problem on FreeBSD 5.4-RELEASE-p1.
> > > >
> > > > # dmesg | grep pcm
> > > > pcm0:<Acer Labs M5451> port 0x8400-0x84ff mem
> > > > 0xf0011000-0xf0011fff irq 5 at device 8.0 on pci0 pcm0:
> > > > <Analog Devices AD1886A AC97 Codec>
> > > > pcm0:record:0: record interrupt timeout, channel dead
> > >
> > > pcm0:<Acer Labs M5451> port 0x1000-0x10ff mem
> > > 0xfc101000-0xfc101fff irq 9 at device 4.0 on pci0
> > > pcm0:<SigmaTel STAC9756/57 AC97 Codec>
> > > pcm0:<Acer Labs M5451> at io 0x1000 irq 9 kld snd_t4dwave
> > > (4p/1r/1v channels duplex default)
> > >
> > > I'm still seeing this with -CURRENT. I can give access to
> > > someone if they need access.
> >
> > Hmm... I think I've posted a possible fix log time ago but got no
> > reply. Would you please try attached patch?
> > If it work for you I'll make complete patch.
> The patch does not work. I don't see the channel dead message when
> using wmrecord, but the app sort of hangs (I can stop the recording,
> but the timer doesn't advance) and doesn't record anything. There
> seems to be data in the wav file but it isn't playable. Attached.
>
Did recording ever work on your M5451?
I have no idea why t4dwave(4) still uses legacy capturing mode(Sound
Blaster compatible mode). It seems that M5451 support code lacks codec
initialization. So I guess its ADC part was not activated.
Try attached patch and let me know the result.
--
Regards,
Pyun YongHyeon
--------------090104070104060404070603
Content-Type: text/plain;
name="t4dwave.diff2"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
filename="t4dwave.diff2"
--- t4dwave.c.orig Tue Mar 1 17:58:05 2005
+++ t4dwave.c Wed Oct 11 09:57:42 2006
@@ -93,6 +93,7 @@
struct mtx *lock;
+ u_int32_t numchans;
u_int32_t playchns;
unsigned int bufsz;
@@ -725,7 +726,7 @@
intsrc = tr_rd(tr, TR_REG_MISCINT, 4);
if (intsrc & TR_INT_ADDR) {
chnum = 0;
- while (chnum < 64) {
+ while (chnum < tr->numchans) {
mask = 0x00000001;
active = tr_rd(tr, (chnum < 32)? TR_REG_ADDRINTA : TR_REG_ADDRINTB, 4);
bufhalf = tr_rd(tr, (chnum < 32)? TR_REG_CSPF_A : TR_REG_CSPF_B, 4);
@@ -773,6 +774,7 @@
tr_wr(tr, SPA_REG_CODECST, SPA_RST_OFF, 4);
break;
case TDX_PCI_ID:
+ case ALI_PCI_ID:
tr_wr(tr, TDX_REG_CODECST, TDX_CDC_ON, 4);
break;
case TNX_PCI_ID:
@@ -846,6 +848,10 @@
device_printf(dev, "unable to initialize the card\n");
goto bad;
}
+ if (tr->type == ALI_PCI_ID)
+ tr->numchans = 32;
+ else
+ tr->numchans = 64;
tr->playchns = 0;
codec = AC97_CREATE(dev, tr, tr_ac97);
--------------090104070104060404070603--
More information about the freebsd-multimedia
mailing list