problems with Audiotrix Pro driver

Pierre Phaneuf (pphaneuf@sx.nec.com)
Tue, 21 Apr 1998 12:23:02 -0400


Ok, here is what I found to date.

I am using Michael Chastain's sound-module.2197 patch, which improves
the Makefile and some other things, but I checked those things in the
bare linux-2.1.97.tar.bz2 archive.

I started with modular sound, but as I had some problems, I've gone to
static drivers for the moment, so that I can prove everything works at
least in this way. Here is the relevant part of .config:

#
# Sound
#
CONFIG_SOUND=y
# CONFIG_SOUND_PAS is not set
# CONFIG_SOUND_SB is not set
# CONFIG_SOUND_ADLIB is not set
# CONFIG_SOUND_GUS is not set
# CONFIG_SOUND_MPU401 is not set
# CONFIG_SOUND_PSS is not set
# CONFIG_SOUND_MSS is not set
# CONFIG_SOUND_SSCAPE is not set
CONFIG_SOUND_TRIX=y
CONFIG_TRIX_BASE=530
CONFIG_TRIX_IRQ=11
CONFIG_TRIX_DMA=0
CONFIG_TRIX_DMA2=3
CONFIG_TRIX_MPU_BASE=330
CONFIG_TRIX_MPU_IRQ=9
CONFIG_TRIX_SB_BASE=220
CONFIG_TRIX_SB_IRQ=7
CONFIG_TRIX_SB_DMA=1
CONFIG_TRIX_HAVE_BOOT=y
CONFIG_TRIX_BOOT_FILE="/dos/trxpro/trxpro.hex"
# CONFIG_SOUND_MAD16 is not set
# CONFIG_MAD16_OLDCARD is not set
# CONFIG_SOUND_CS4232 is not set
# CONFIG_SOUND_MAUI is not set
# CONFIG_SOUND_OPL3SA1 is not set
# CONFIG_SOUND_SOFTOSS is not set
CONFIG_SOUND_YM3812=y
# CONFIG_SOUND_VMIDI is not set
# CONFIG_SOUND_UART6850 is not set

#
# Additional low level sound drivers
#
# CONFIG_LOWLEVEL_SOUND is not set

And the output of /dev/sndstat:

OSS/Free:3.8s2++-971130
Load type: Driver compiled into kernel
Kernel: Linux theta.sx.nec.com 2.1.97 #10 Tue Apr 21 10:47:24 EDT 1998
i486
Config options: 0

Installed drivers:
Type 1: OPL-2/OPL-3 FM
Type 26: MPU-401 (UART)
Type 2: Sound Blaster
Type 29: Sound Blaster PnP
Type 7: SB MPU-401
Type 16: MediaTrix AudioTrix Pro
Type 17: AudioTrix (SB mode)
Type 18: AudioTrix MIDI

Card config:
MediaTrix AudioTrix Pro at 0x530 irq 11 drq 0,3
AudioTrix (SB mode) at 0x220 irq 7 drq 1
AudioTrix MIDI at 0x330 irq 9 drq 0
OPL-2/OPL-3 FM at 0x388 drq 0

Audio devices:
0: AudioTrix Pro (CS4231) (DUPLEX)
1: AudioTrix SB (2.1)

Synth devices:
0: Yamaha OPL-3

Midi devices:
0: AudioTrix Pro

Timers:
0: System clock
1: AudioTrix Pro (CS4231)

Mixers:
0: AudioTrix Pro (CS4231)

First, compilation problems. hex2hex.c has a bad char at line 84, as I
mentioned in another message. In the Makefile, hex2hex couldn't be run
because 'make' didn't find it. Changing 'hex2hex' to './hex2hex' did it,
at line 304 of the original Makefile and at line 234 of the sound-module
patched Makefile. And even after that, the trix_boot.h file produced a
lot of warnings and prevented compilation of the trix.c file, which was
fixed by changing this:

static unsigned char trix_boot[] __initdata = {

to this:

static unsigned char trix_boot[] = {

in the generated trix_boot.h. I was about to change hex2hex.c, but I'm
not sure enough of what this "__initdata" thing is supposed to do, so I
just "fixed" trix_boot.h (maybe I *broke* it even further though). For
those who want to do their own testing, the trxpro.hex file can be found
on ftp.mediatrix.com .

Compilation of soundcard.c gave me two warnings, one at line 288 stating
that "'proc_root_sound' defined but not used" and the other at line 811
stating that "'sound' defined but not used".

One thing that I was wondering is how to avoid using an IRQ with the
Audiotrix MPU emulation? In the DOS setup program, the defaults for IO
and IRQ are 0x0330 and None. I left the default 9 in my Linux
configuration.

CONFIG_SOUND_YM3812 seems to be needed for MIDI to work, is that normal?
If it is, why isn't it included automatically like SB is (this is
related to the new Makefile)?

Finally, the mixer doesn't work properly.

[pp@theta pp]$ aumix -q
Synth 21, 21, P
Pcm 50, 50
Line 32, 32, P
Mic 16, 16, R
CD 0, 0
Mix 0, 0, P
Pcm2 21, 21
IGain 7, 7

As you can see, there is no volume (it is greyed out in the ncurses
interface) and changing the Line volume affects the volume of the CD
input (this used to work correctly).

Now, I'm recompiling everything as modules to check this out... Stay
tuned!

-- 
Pierre Phaneuf <pphaneuf@sx.nec.com>, HNSX Supercomputers Inc.

Implementation: n., the fruitless struggle by the talented and underpaid to fulfill promises made by the rich and ignorant.

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu