From owner-freebsd-current Thu Jan 27 19:42:56 2000 Delivered-To: freebsd-current@freebsd.org Received: from alpha.netvision.net.il (alpha.netvision.net.il [194.90.1.13]) by hub.freebsd.org (Postfix) with ESMTP id 7A60C15144; Thu, 27 Jan 2000 19:42:43 -0800 (PST) (envelope-from ak@freenet.co.uk) Received: from freenet.co.uk (RAS3-p12.rlz.netvision.net.il [62.0.169.14]) by alpha.netvision.net.il (8.9.3/8.8.6) with ESMTP id FAA22250; Fri, 28 Jan 2000 05:42:30 +0200 (IST) Message-ID: <38911084.49CF773D@freenet.co.uk> Date: Fri, 28 Jan 2000 03:44:04 +0000 From: Alex X-Mailer: Mozilla 4.7 [en] (X11; U; FreeBSD 4.0-CURRENT i386) X-Accept-Language: en MIME-Version: 1.0 To: freebsd-current@freebsd.org Cc: gandalf@vilnya.demon.co.uk, dfr@freebsd.org, tanimura@freebsd.org Subject: The Commit That Broke PCM Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG 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: 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: 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" 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 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