Bug 25442

Summary: T20 CS4624/CS4297a sound problems: "pcm0: play interrupt timeout, channel dead"
Product: Base System Reporter: stannous <stannous>
Component: i386Assignee: cg
Status: Closed FIXED    
Severity: Affects Only Me    
Priority: Normal    
Version: Unspecified   
Hardware: Any   
OS: Any   

Description stannous 2001-02-28 02:30:01 UTC
I have a CS4624/CS4297a.  (It's a T20, model 2647 44U)

I'm having problems getting sound working properly:
I've almost got it working but
when I play an mp3 file (or use XMMS), I get:
   
   pcm0: play interrupt timeout, channel dead

I'm using FreeBSD 4.2 Stable and I recompiled
the kernel with (and all the permutations of...)
options PNPBIOS
device  pcm
> cat /dev/sndstat 
FreeBSD Audio Driver (newpcm) Feb  7 2001 22:00:05
Installed devices:
pcm0: <CS461x PCM Audio> at irq 11 (1p/1r channels duplex)
>

Fix: 

None that I know of.  I've asked on freebsd-questions and 
freebsd-mobile and the consensus is that it's a bug.

(let me know if you need a tester).
Regards,
Sam
How-To-Repeat: Compile the 4.2 Release kernel on the IBM T20 (model 2647 44U)
(which IBM claims is a CS4624/CS4297a chip).  Then reboot,
and play an mp3 file.  You should hear nothing and see 

pcm0: play interrupt timeout, channel dead

in your /var/log/messages.  

The mixer seems to work fine (contolling volume on the 
CD player) and I can play CD's and 
hear the music.
Comment 1 stannous 2001-02-28 13:49:41 UTC
I forgot to mention that I did 
try the latest Stable source (I believe 
it was #6) and had the same problems.

I also failed to mention that I 
tried adding "device csa" in my kernel
config (as well as "options PNPBIOS"
and "device pcm"....in fact, I tried
every permutation of these three and
nothing worked (of course, the kernel wouldn't
recognize the chip without option PNPBIOS).

Thanks,
Sam
Comment 2 Kris Kennaway 2001-03-13 02:26:10 UTC
On Tue, Feb 27, 2001 at 06:27:22PM -0800, stannous@cisco.com wrote:

> I'm having problems getting sound working properly:
> I've almost got it working but
> when I play an mp3 file (or use XMMS), I get:
>    
>    pcm0: play interrupt timeout, channel dead


There have been a number of PCM fixes in 4.x in recent weeks - can you
upgrade and verify whether the problem persists?

Kris
Comment 3 Kris Kennaway freebsd_committer freebsd_triage 2001-03-13 02:26:14 UTC
State Changed
From-To: open->feedback

Problem may already be resolved 


Comment 4 Kris Kennaway freebsd_committer freebsd_triage 2001-03-13 02:26:14 UTC
Responsible Changed
From-To: freebsd-bugs->cg

cg is Mr Sound
Comment 5 Kris Kennaway 2001-03-13 11:07:07 UTC
On Tue, Mar 13, 2001 at 03:52:34AM -0500, Sam Tannous wrote:
> On Tue, Mar 13, 2001 at 12:08:42AM -0800, Kris Kennaway wrote:
> > 4.x = -stable, 5.x = -current.
> 
> still no joy.
> 
> [stannous-dsl3 ~] > uname -a
> FreeBSD stannous-dsl3.cisco.com 4.3-BETA FreeBSD 4.3-BETA #3: Tue Mar 13 03:40:27 EST 2001     stannous@stannous-dsl3.cisco.com:/usr/src/sys/compile/MYKERNEL  i386
> 
> Let me know if you need any other information
> (or want me to try something else).


Okay, thanks for checking. Now it's up to Cameron to figure out :-)

Kris
Comment 6 stannous 2001-05-11 14:06:30 UTC
I did manage to try OpenBSD 2.8 and the sound card 
worked fine.  Of course, compiling some applications
was "challenging" so I wiped it clean and put FreeBSD
4.3 on.   I haven't compared the pcm driver on OpenBSD
to that on FreeBSD (perhaps I'm being too simplistic
is assuming that the underlying architecture is similar...)

Let me know if you need any other information
or if I can be of help in any other way.

Regards,
Sam
Comment 7 stannous 2001-06-01 16:13:47 UTC
Sound works fine (as does the Lucent modem) if you 
follow the directions located here (even though this
is a A21p, the information is valid for the T20
as they share the same sound card (CS4614) and modem):

http://www.personal.psu.edu/faculty/r/e/reh18/A21p/A21p.html

Basically, you have to patch csa.c (I believe the 
patch has already been committed to the source tree)
and recompile the kernel with only "device pcm" 
"device csa" (you don't need "options PNPBIOS").
(also note that you must go into the bios 
configuration and disable the power management 
for pci as descibed above).

The patch is here:

Index: csa.c
===================================================================
RCS file: /usr/home/ncvs/src/sys/dev/sound/pci/csa.c,v
retrieving revision 1.8.2.3
diff -u -r1.8.2.3 csa.c
--- csa.c       2001/02/03 01:29:10     1.8.2.3
+++ csa.c       2001/05/06 00:27:07
@@ -128,10 +128,10 @@
        scp->dev = dev;
 
        /* Wake up the device. */
-       stcmd = pci_read_config(dev, PCIR_COMMAND, 4);
+       stcmd = pci_read_config(dev, PCIR_COMMAND, 2);
        if ((stcmd & PCIM_CMD_MEMEN) == 0 || (stcmd & PCIM_CMD_BUSMASTEREN) == 0) {
                stcmd |= (PCIM_CMD_MEMEN | PCIM_CMD_BUSMASTEREN);
-               pci_write_config(dev, PCIR_COMMAND, 4, stcmd);
+               pci_write_config(dev, PCIR_COMMAND, stcmd, 2);
        }
 
        /* Allocate the resources. */


Regards,
Sam
Comment 8 stannous 2001-07-25 12:27:09 UTC
This PR can be closed

-- Sam
Comment 9 Poul-Henning Kamp freebsd_committer freebsd_triage 2001-08-20 20:00:15 UTC
State Changed
From-To: feedback->closed

see log