audiocs(7D)
NAME
audiocs - Crystal Semiconductor 4231 Audio driver
DESCRIPTION
The audiocs driver supports the Crystal Semiconductor 4231
Codec to implement the audio device interface.
APPLICATION PROGRAM INTERFACE
This interface is described in the audio(7I) and mixer(7I)
man pages.
Driver Versions
Applications that open /dev/audio may use the AUDIO_GETDEV
ioctl(2) to determine which audio device is being used. The
audiocs driver will return the string SUNW,CS4231 in the
name field of the audio_device structure. The version field
contains a letter (defined in the table below) and the con-
fig field contains the string onboard1.
Platform Ver. Out H. Phone Speaker In Mic CD
SS-4/5 a Y Y Y Y Y Y
Ultra-1/2 b Y Y Y Y Y N
Ultra-450 f Y Y Y Y Y N
Ultra-30/60/80 g Y Y Y Y Y N
Ultra-5/10 h Y Y Y Y Y Y
Key to the above table: Ver = Version. Out = Line Out.
Speaker = Internal Speaker. In = Line In. Mic. = Microphone.
CD = CD-ROM.
The audiocs device provides support for the internal
speaker, headphone, line out, line in, microphone, and on
some platforms, internal CD-ROM audio in. The
play.avail_ports and record.avail_ports fields retrieved by
the AUDIO_GETINFO ioctl (see audio(7I)) report which ports
are available. The play.mod_ports and record.mod_ports
fields indicate which ports may be manipulated.
Audio Mixer Mode
The configuration file /kernel/drv/audiocs.conf is used to
configure the audiocs driver so that the audio mixer is
enabled or disabled. See the mixer(7I) manual page for
details. The audio mixer's mode may be changed at any time
using the mixerctl(1) or sdtaudiocontrol(1) applications.
Audio Data Formats
The audiocs device supports the audio formats listed in the
following table. When the audio mixer is in compatibility
mode and the device is open for simultaneous play and
record, the input and output data formats must match. Some
sample rates are supported in compatibility mode (C) that
are not supported in mixer mode (M). This is due to the com-
putational overhead for sample rate conversion being too
high.
Supported Audio Data Formats
Sample Rate Encoding Precision Channels Mode
5510 Hz u-Law, A-Law 8 1 or 2 C only
6620 Hz u-Law, A-Law 8 1 or 2 C only
8000 Hz u-Law, A-Law 8 1 or 2 M and C
9600 Hz u-Law, A-Law 8 1 or 2 M and C
11025 Hz u-Law, A-Law 8 1 or 2 M and C
16000 Hz u-Law, A-Law 8 1 or 2 M and C
18900 Hz u-Law, A-Law 8 1 or 2 M and C
22050 Hz u-Law, A-Law 8 1 or 2 M and C
27420 Hz u-Law, A-Law 8 1 or 2 C only
32000 Hz u-Law, A-Law 8 1 or 2 M and C
33075 Hz u-Law, A-Law 8 1 or 2 M and C
37800 Hz u-Law, A-Law 8 1 or 2 M and C
44100 Hz u-Law, A-Law 8 1 or 2 M and C
48000 Hz u-Law, A-Law 8 1 or 2 M and C
5510 Hz linear 8, 16 1 or 2 C only
6620 Hz linear 8, 16 1 or 2 C only
8000 Hz linear 8, 16 1 or 2 M and C
9600 Hz linear 8, 16 1 or 2 M and C
11025 Hz linear 8, 16 1 or 2 M and C
16000 Hz linear 8, 16 1 or 2 M and C
18900 Hz linear 8, 16 1 or 2 M and C
22050 Hz linear 8, 16 1 or 2 M and C
27420 Hz linear 8, 16 1 or 2 C only
32000 Hz linear 8, 16 1 or 2 M and C
33075 Hz linear 8, 16 1 or 2 M and C
37800 Hz linear 8, 16 1 or 2 M and C
44100 Hz linear 8, 16 1 or 2 M and C
48000 Hz linear 8, 16 1 or 2 M and C
Sample Granularity
At any given time the reported input and output sample
counts will vary from the actual sample count by no more
than the size of the buffers the audiocs driver is transfer-
ring. In general, programs should not rely on the absolute
accuracy of the play.samples and record.samples fields of
the audio_info structure.
Interrupt Rate
The driver determines how often play and record interrupts
should occur. For playing audio, this determines how often
and how much audio is requested from the audio mixer. The
impact of interrupts on recording is minimal. However, if a
very small read buffer size is set, the record interrupt
rate should be increased to prevent the buffer from over-
flowing. The play and record interrupt rates are tunable in
the /kernel/drv/audiocs.conf file.
Audio Status Change Notification
As described in the audio(7I) and mixer(7I) man pages, it is
possible to request asynchronous notification of changes in
the state of an audio device.
ERRORS
audiocs errors are described in the audio(7I) man pages.
FILES
/dev/audio
Symbolic link to the system's primary audio device.
(not necessarily an audiocs audio device).
/dev/audioctl
Control device for the above audio device.
/dev/sound/0
Represents the first audio device on the system. (not
necessarily an audiocs audio device).
/dev/sound/0ctl
Audio control for above device.
/usr/share/audio/samples
Audio sample files.
/kernel/drv/audiocs
32-bit audiocs driver
/kernel/drv/sparcv9/audiocs
64-bit audiocs driver.
/kernel/drv/audiocs.conf
Audiocs driver configuration file.
ATTRIBUTES
See attributes(5) for descriptions of the following attri-
butes:
____________________________________________________________
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
|____________________|______________________________________|
| Architecture | SPARC |
|____________________|______________________________________|
| Availability | SUNWaudd, SUNWauddx, SUNWauda |
|____________________|______________________________________|
| Stability level | Evolving |
|____________________|______________________________________|
SEE ALSO
mixerctl(1), sdtaudiocontrol(1), ioctl(2), attributes(5),
audio(7I), mixer(7I), streamio(7I)
Crystal Semiconductor, Inc. CS4231 Data Sheet
http://www.sun.com/io
DIAGNOSTICS
In addition to being logged, the following messages may
appear on the system console:
attach () play interrupt rate set too low.
The play interrupt rate specified in audiocs.conf is
set too low. It is being reset to the rate specified
in the message. Update audiocs.conf to a higher play
interrupt rate.
attach() play interrupt rate set too high.
The play interrupt rate specified in audiocs.conf is
set too high. It is being reset to the rate specified
in the message. Update audiocs.conf to a lower play
interrupt rate.
attach() record interrupt rate set too low.
The record interrupt rate specified in audiocs.conf is
set too low. It is being reset to the rate specified
in the message. Update audiocs.conf to a higher record
interrupt rate.
attach() record interrupt rate set too high
The record interrupt rate specified in audiocs.conf is
set too high. It is being reset to the rate specified
in the message. Update audiocs.conf to a lower record
interrupt rate.
Man(1) output converted with
man2html