Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 28 Jan 2000 03:44:04 +0000
From:      Alex <ak@freenet.co.uk>
To:        freebsd-current@freebsd.org
Cc:        gandalf@vilnya.demon.co.uk, dfr@freebsd.org, tanimura@freebsd.org
Subject:   The Commit That Broke PCM
Message-ID:  <38911084.49CF773D@freenet.co.uk>

next in thread | raw e-mail | index | archive | help
PCM has been broken for me since December 1999.   I would very much
appreciate if someone could help me fix it before the code freeze (cg,
dfr and tanimura CC'd).

I have an unknown MSS-compatible non-PnP ISA sound card, which
identifies itself as a CS4231.   Unknown, because it's inside a
laptop.   Before you ask, it has always been identified as a CS4231, and
always worked very well.   The last kernel that I have which still works
is dated 6 Dec 1999, and I'm playing mp3's with it right now.  Here's
its verbose boot message:

mss_detect - chip revision 0x0a
mss_detect() - Detected CS4231
pcm0: <CS4231> at port 0x530-0x53f,0x310-0x311 irq 5 drq 1 flags 0xa210
on isa0
pcm: setmap 30000, ff00; 0xc8421000 -> 30000
pcm: setmap 40000, ff00; 0xc8431000 -> 40000
isa_probe_children: probing PnP devices


Kernels built after 26 Dec 1999 print the following:

mss_detect - chip revision 0x0a
mss_detect() - Detected CS4231
pcm0: <CS4231> at port 0x530-0x537,0x538-0x539 irq 5 drq 1 flags 0xa110
on isa0
pcm: setmap 30000, ff00; 0xc840e000 -> 30000
pcm: setmap 40000, ff00; 0xc841e000 -> 40000
isa_probe_children: probing PnP devices
mss_intr: irq, but not from mss

and screw up the card - there is no sound and the driver gets stuck in
"pcmwr".  Something was committed between the 6th and 26th of December
that broke pcm.   The question is: which commit broke it?

What has changed?

1) I/O port allocation and flags in dmesg:  0x310-0x311 vs 0x538-0x539,
and 0xa210 vs 0xa110

2) The "mss_intr: irq, but not from mss" line

Why?   My config file hasn't changed a bit, neither has my hardware or
BIOS setup.    I don't have "controller pnp" in my config file, so it
probably has nothing to do with PnP.

The list of commits that might have broken it is appended below for your
convenience.   Please let me know if I have missed something obvious.

Thank you for your attention

Alex

-----------------------------


cg          1999/12/11 18:18:59 PST

  Modified files:
    sys/dev/sound/pcm    datatypes.h dsp.c sound.c sound.h 
  Log:
  move channel-swapping support to the hardware driver since it knows
the card
  state best
  
  Revision  Changes    Path
  1.6       +3 -1      src/sys/dev/sound/pcm/datatypes.h
  1.11      +2 -11     src/sys/dev/sound/pcm/dsp.c
  1.11      +8 -1      src/sys/dev/sound/pcm/sound.c
  1.7       +2 -3      src/sys/dev/sound/pcm/sound.h


cg          1999/12/12 19:29:10 PST

  Modified files:
    sys/dev/sound/pcm    channel.c channel.h datatypes.h dsp.c 
  Log:
  more dma underrun fixes, using a per-channel 2nd buffer
  
  Submitted by: tanimura
  
  Revision  Changes    Path
  1.10      +247 -87   src/sys/dev/sound/pcm/channel.c
  1.4       +10 -1     src/sys/dev/sound/pcm/channel.h
  1.7       +2 -1      src/sys/dev/sound/pcm/datatypes.h
  1.12      +2 -2      src/sys/dev/sound/pcm/dsp.c


cg          1999/12/18 14:24:50 PST

  Modified files:
    sys/dev/sound/pcm    channel.c 
  Log:
  fix the buffer repetition on ^c problem
  
  Revision  Changes    Path
  1.11      +10 -13    src/sys/dev/sound/pcm/channel.c


cg          1999/12/19 07:27:26 PST

  Modified files:
    sys/dev/sound/pcm    sound.c 
  Log:
  move make_dev operations for audio channels to pcm_addchan().  in
theory,
  with modifications to MAKEDEV this will allow use of multiple output
streams
  on cards supporting it, eg trident 4dwave.
  
  Revision  Changes    Path
  1.12      +12 -11    src/sys/dev/sound/pcm/sound.c


cg          1999/12/19 14:32:56 PST

  Modified files:
    sys/dev/sound/pcm    channel.c 
  Log:
  stop playing if we underrun; if there is more data to come, the next
write
  will restart
  
  Revision  Changes    Path
  1.12      +3 -1      src/sys/dev/sound/pcm/channel.c


cg          1999/12/19 16:56:53 PST

  Modified files:
    sys/dev/sound/pcm    sound.c 
  Log:
  allow (broken) apps to use mixer ioctls on dsp devices. eg: vmware
  
  Submitted by: "Vladimir N. Silyaev" <vsilyaev@mindspring.com>
  
  Revision  Changes    Path
  1.13      +5 -2      src/sys/dev/sound/pcm/sound.c


cg          1999/12/20 06:57:46 PST

  Modified files:
    sys/dev/sound/isa    sb.c 
    sys/dev/sound/pcm    channel.c 
  Log:
  minor cosmetics
  
  Revision  Changes    Path
  1.42      +1 -2      src/sys/dev/sound/isa/sb.c
  1.13      +6 -7      src/sys/dev/sound/pcm/channel.c


cg          1999/12/21 00:43:28 PST

  Modified files:
    sys/dev/sound/isa    mss.c 
    sys/dev/sound/pcm    channel.c 
  Log:
  minor cleanup
  
  Parts Submitted by:   Ville-Pertti Keinonen <will@ztango.com>
  
  Revision  Changes    Path
  1.38      +20 -23    src/sys/dev/sound/isa/mss.c
  1.14      +2 -13     src/sys/dev/sound/pcm/channel.c


peter       1999/12/21 06:09:22 PST

  Modified files:
    sys/dev/sound/isa    mss.c 
  Log:
  Collapse a bunch of unused MD_CS42nn tags into a single one.  This
saves
  going to a lot of trouble to identify it and set the tag and then not
use
  it.  Convert the pnp id matching to the preferred table based system.
  @@@0001 (CMI8330 ldn 0) is a mss, not a SB.
  
  Revision  Changes    Path
  1.39      +37 -90    src/sys/dev/sound/isa/mss.c


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




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