|
| audiots - Acer Laboratories Inc. M5451
audio processor interface |
|
The audiots
device uses the ALI M5451 audio processor and an AC-97 Codec to implement
the audio device interface.
|
|
This interface is described in the mixer(7I)
and audio(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 audiots driver will return the string SUNW,audiots in the name field of the audio_device structure. The version field
will contain a letter (defined in the table below) and the config field will contain the string onboard1.
Platform | Ver. | Out | H. Phone | Spkr. | In | Mic. | CD |
Sun Blade 100 | a | Y | Y | Y | Y | Y | N |
Key to the above table: Ver. = Version. Out = Line Out. H. Phone = Head
Phone. Spkr = Internal Speaker. In = Line In. Mic. = Microphone. CD = CD=ROM
The audiots device provides support for the internal
speaker, headphone, line out, line in, and microphone. The play.mod_ports and record.mod_ports fields of the
audio_info structure (see audio(7I))
indicate which ports may be manipulated.
|
Audio Mixer Mode
|
The configuration file /kernel/drv/audiots.conf is
used to configure the audiots driver so that the audio
mixer is enabled or disabled. See the mixer(7I)
manual page for details. The audio mixer mode may be changed at any time using
the sdtaudiocontrol(1) or mixerctl(1) commands.
|
Audio Data Formats
|
The audiots device supports the audio formats listed
in the following table. When the audio mixer is disabled and the device is
opened for simultaneous play and record, the input and output data formats
may be different. Some sample rates are supported when the mixer is disabled
(D) that are not supported when the mixer is enabled (E), due to the overly
high computational overhead for sample rate conversion.
The following table describes all supported data formats.
Supported Audio Data Formats |
Sample Rate | Encoding | Precision | Channels | Mode |
5510 Hz | µ-Law/ A-Law | 8 | 1 or 2 | D only |
6620 Hz | µ-Law/ A-Law | 8 | 1 or 2 | D only |
8000 Hz | µ-Law/ A-Law | 8 | 1 or 2 | E and D |
9600 Hz | µ-Law/ A-Law | 8 | 1 or 2 | E and D |
11025 Hz | µ-Law/ A-Law | 8 | 1 or 2 | E and D |
16000 Hz | µ-Law/ A-Law | 8 | 1 or 2 | E and D |
18900 Hz | µ-Law/ A-Law | 8 | 1 or 2 | E and D |
22050 Hz | µ-Law/ A-Law | 8 | 1 or 2 | E and D |
27420 Hz | µ-Law/ A-Law | 8 | 1 or 2 | D only |
32000 Hz | µ-Law/ A-Law | 8 | 1 or 2 | E and D |
33075 Hz | µ-Law/ A-Law | 8 | 1 or 2 | E and D |
37800 Hz | µ-Law/ A-Law | 8 | 1 or 2 | E and D |
44100 Hz | µ-Law/ A-Law | 8 | 1 or 2 | E and D |
48000 Hz | µ-Law/ A-Law | 8 | 1 or 2 | E and D |
5510 Hz | linear | 8, 16 | 1 or 2 | D only |
6620 Hz | linear | 8, 16 | 1 or 2 | D only |
8000 Hz | linear | 8, 16 | 1 or 2 | E and D |
9600 Hz | linear | 8, 16 | 1 or 2 | E and D |
11025 Hz | linear | 8, 16 | 1 or 2 | E and D |
16000 Hz | linear | 8, 16 | 1 or 2 | E and D |
18900 Hz | linear | 8, 16 | 1 or 2 | E and D |
22050 Hz | linear | 8, 16 | 1 or 2 | E and D |
27420 Hz | linear | 8, 16 | 1 or 2 | D only |
32000 Hz | linear | 8, 16 | 1 or 2 | E and D |
33075 Hz | linear | 8, 16 | 1 or 2 | E and D |
37800 Hz | linear | 8, 16 | 1 or 2 | E and D |
44100 Hz | linear | 8, 16 | 1 or 2 | E and D |
48000 Hz | linear | 8, 16 | 1 or 2 | E and D |
|
Sample Granularity
|
Because the audiots device manipulates buffers of audio data, the reported input and
output sample counts will vary at any given time from the actual sample count
by no more than the size of the buffers the audiots driver
is transferring. 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 take
place. 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 overflowing. The play and record
interrupt rates are tunable in the /kernel/drv/audiots.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.
|
|
|
audiots errors are described in the audio(7I) man page.
|
|
-
/dev/audio
- Symbolic link to the system's primary audio device. (Not necessarily
an audiots audio device).
-
/dev/audioctl
- Control device for the primary audio device.
-
/dev/sound/0
- Represents the first audio device on the system. (Not necessarily an audiots audio device).
-
/dev/sound/0ctl
- Audio control for /dev/sound/0.
-
/usr/share/audio/samples
- Audio sample files.
-
/kernel/drv/sparcv9/audiots
- 64-bit audiots driver
-
/kernel/drv/audiots.conf
-
audiots driver configuration file.
|
|
See attributes(5)
for a descriptions of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
Architecture | SPARC |
Availability | SUNWaudd, SUNWauddx, SUNWauda |
Stability level | Evolving |
|
|
In addition to being logged, the following messages may appear on the
system console:
-
init_state() play interrupt rate set
too low
- The play interrupt rate in audiots.conf is set too low. It has been reset to the rate specified
in the message. Update audiots.conf to a higher play
interrupt rate.
-
init_state() play interrupt rate set too high
- The play interrupt rate set in audiots.conf is set too high. It has been reset to the rate specified
in the message. Update audiots.conf to a lower play
interrupt rate.
-
init_state() record interrupt rate set too low
- The record interrupt rate in audiots.conf is set too low. It has been reset to the rate specified
in the message. Update audiots.conf to a higher record
interrupt rate.
- init_state() record interrupt rate set too high
- The record interrupt rate in audiots.conf is set too high. It has been reset to the rate specified
in the message. Update audiots.conf to a lower record
interrupt rate.
|
| |