Bug 87782

Summary: [sound] snd_t4dwave and pcm0:record:0: record interrupt timeout, channel dead
Product: Base System Reporter: José M. Fandiño <freebsd>
Component: kernAssignee: freebsd-bugs (Nobody) <bugs>
Status: Open ---    
Severity: Affects Only Me CC: christos
Priority: Normal    
Version: Unspecified   
Hardware: Any   
OS: Any   
Attachments:
Description Flags
t4dwave.diff none

Description José M. Fandiño 2005-10-21 14:00:23 UTC
Each time I use the snd_t4dwave for recording I get the following error:
pcm0:record:0: record interrupt timeout, channel dead

pcm0: <Acer Labs M5451> port 0x1800-0x18ff mem 0xe0000000-0xe0000fff irq 11 at device 6.0 on pci0
pcm0: <Cirrus Logic CS4299 AC97 Codec>

How-To-Repeat: dd if=/dev/audio of=foo
pcm0:record:0: record interrupt timeout, channel dead
0+0 records in
0+0 records out
0 bytes transferred in 0.999230 secs (0 bytes/sec)
Comment 1 Mark Linimon freebsd_committer freebsd_triage 2005-10-21 17:35:38 UTC
Responsible Changed
From-To: freebsd-bugs->freebsd-multimedia

Over to maintainer(s).
Comment 2 Marian Cerny 2005-11-21 15:29:00 UTC
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

-- 
Marian Cerny <jojo@matfyz.cz>
Comment 3 Marian Cerny 2009-11-08 00:56:32 UTC
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@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@matfyz.cz>
  >  >   >  >  To: bug-followup@FreeBSD.org, freebsd@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
Comment 4 gildororonar 2012-04-14 09:42:32 UTC
I have the same error message but on playback. Device is SiS 7018.

[zhangweiwu@lugdunnum ~]$ dmesg | tail
ath0: <Atheros 5212> irq 11 at device 0.0 on cardbus0
ath0: AR5212 mac 5.9 RF5112 phy 4.3
uhub0: 3 ports with 3 removable, self powered
uhub1: 3 ports with 3 removable, self powered
Trying to mount root from ufs:/dev/ada0s2a [rw]...
wlan0: Ethernet address: 00:40:96:ae:79:d3
drm0: <SiS 630> on vgapci0
info: [drm] AGP at 0xe0000000 64MB
info: [drm] Initialized sis 1.3.0 20070626
pcm0: chn_write(): pcm0:play:dsp0.p1: play interrupt timeout, channel dead


Note the last line of error message is only after playback for about 3
seconds. The first 3 seconds playback fine though, with any software
(tried mpg321 and xine -A oss).

Since the patch you offered no longer can apply, I did the minimum
change on t4dwave.c and compiled a new kernel, tried, without luck (same
error mssage). What I did is:

@@ -725,7 +726,7 @@
 	intsrc = tr_rd(tr, TR_REG_MISCINT, 4);
 	if (intsrc & TR_INT_ADDR) {
 		chnum = 0;
-		while (chnum < 64) {
+		while (chnum < 32) {
 			mask = 0x00000001;
 			active = tr_rd(tr, (chnum < 32)? TR_REG_ADDRINTA : TR_REG_ADDRINTB, 4);
 			bufhalf = tr_rd(tr, (chnum < 32)? TR


Looking at the source code the problem triggered by "while (chnum < 64)"
should have been fixed already, thus this bug should be closed, mine is
probably a different one.

Anything to try for me?
Comment 5 Eitan Adler freebsd_committer freebsd_triage 2017-12-31 08:01:39 UTC
For bugs matching the following criteria:

Status: In Progress Changed: (is less than) 2014-06-01

Reset to default assignee and clear in-progress tags.

Mail being skipped
Comment 6 Christos Margiolis freebsd_committer freebsd_triage 2024-10-17 14:09:30 UTC
(In reply to gildororonar from comment #4)
Is this still an issue in current versions of FreeBSD?