From llurch@networking.Stanford.EDU Wed May  6 19:35:58 1998
Date: Wed, 4 Mar 1998 19:36:22 -0800 (PST)
From: Rich Graves <llurch@networking.Stanford.EDU>
To: linux-laptop@vger.rutgers.edu
Subject: ThinkPad 560X/CS4237B sound Q, and 560X APM/CardBus summary
X-PGP-Key: mail this account with subject line "send pgp key"

Anyone have sound working on a 560X? I've tried both OSS/Free and the
commercial demo. The modules/kernel load without complaints, but the machine
crashes *hard* whenever I try to play anything. The ThinkPad goes back to
the ROM monitor (or whatever) and indicates a hardware error 8611. After the
8611 hardware crash, sound won't work in Windows either until the next cold
boot (i.e., the next PnP probe by Windows).

The chipset is Crystal CS4237B. OSS/Free and OSS/Linux use the same driver
for all CS423x.

Here's what the OSS/Linux /dev/sndstat reads... don't copy this config
unless you want to see the same crash.

  OSS/Linux 3.8.1n [...]

  Card config:
  CS4232 MIDI at 0x330 irq 11
  (CS423X at 0x534 irq 7 drq 0,3)
  OPL-2/OPL-3 FM at 0x388
  SoftOSS Virtual Wave Table

  Audio devices:
  0: SoftOSS v1.1 (BETA)
  1: SoftOSS v1.1 (BETA)
  [...]
  7: SoftOSS v1.1 (BETA)

  Synth devices:
  0: Yamaha OPL-3
  1: SoftOSS v1.1

  Midi devices:

  Timers:
  0: System clock
  1: SoftOSS

  Mixers:

Thanks to a couple people for help with APM and PCMCIA. For the archives,
the answers are:

 o As it says on his web page, the 560X *does* need Dean Gaudet's APM
   patches. the link's getting a bit less easy to find, though. Page down
   to May 12, 1997 on http://www.arctic.org/~dgaudet/tp560/ This resolves
   the "received extra suspend event" and suspend-when-apmd-exits problems.
   I haven't had any trouble with standby, suspend, or hibernate since
   applying the patch. (Of coure you need to keep your first partition FAT
   to hold the hibernation file.)

 o The 560X has a TI 1250 chip, which isn't recognized as "yenta-compatible"
   by pcmcia-cs 3.0.0 because David Hinds hasn't been able to get technical 
   information on the inner workings of the chip yet. The result is that
   PCMCIA cards work (through generic code), but CardBus doesn't, even if
   CardBus support is compiled in and no error messages (that I could see)
   complain. The solution is to force pcmcia-cs to recognize the TI 1250 as
   an 1131, which is "close enough." You can do this by hacking the line in
   modules/yenta.h to read #define PCI_DEVICE_ID_TI_1131 0xac16
   Many other newer laptops will need this hack (or an update to pcmcia-cs 
   with *real* 1250 support) to enable CardBus. Credit Dick Bakker who first
   ran into this on a Gateway 5100 XL.
   http://hyper.stanford.edu/HyperNews/get/pcmcia/cardbus/35/1/1.html

 o CardBus is still very much under development. One of the things that
   isn't done is suspend/resume. The docs say you need to cardctl eject
   any CardBus cards before a suspend. I've found that it's necessary to
   physically eject them. There might be a timing issue in recognizing the
   cards "too soon" on resume. This might be specific to the 3Com 3C575
   Fast Ethernet card, but since the 3C575 happens to be the only CardBus
   card for which a Linux driver exists at all, maybe not. I'm not going to
   work on this any more because I'm alwys going to eject the cards anyway.
   You see, on the 560X, the eject buttons stick out in a vulnerable-looking
   way... I wouldn't feel comfortable sticking the laptop into a bag like
   that.

 o I went and bought Acclerated-X. Problem with the demo: I can't get above
   8bpp. I get 24bpp in Windoze. I'll send a query in to support when my
   official license shows up.

 o Still haven't gotten CardBus working on NT on this machine, but that's
   to be expected. Everyone knows Linux is easier.

-rich