Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 8 Nov 2009 01:10:03 GMT
From:      Marian Cerny <jojo@matfyz.cz>
To:        freebsd-multimedia@FreeBSD.org
Subject:   Re: kern/87782: [sound] snd_t4dwave and pcm0:record:0: record interrupt timeout, channel dead
Message-ID:  <200911080110.nA81A3th049624@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
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
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@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
 
 
 --------------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--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200911080110.nA81A3th049624>