|
| audioens - Ensoniq 1371/1373 and Creative
Labs 5880 driver support |
|
The audioens driver provides support
for the Ensoniq 1371/1373 and Creative Labs 5880 audio controllers. Ensoniq
1371/1373 and Creative Labs 5880 chips are found on add-in PCI cards commonly
identified as Audio PCI, CT4740, CT4810, CT5803, CT5808, and ES1371, and on
some IA motherboards.
|
|
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 audioens
driver returns the string SUNW,audioens in the name field
of the audio_device structure. The version field contains
a letter (defined in the table below) and the config field contains the string onboard1.
The driver works on Sun architectures that support PCI slots, including
Sparc 32 bit, Sparc 64 bit, and IA 32 bit.
Different cards provide different input and output connectors and may
internally hardwire these connectors. SpeakerOut implies an internal audio
amplifier and LineOut implies the output is to go to an amplified speaker.
The audioens driver routes output data to both SpeakerOut
and LineOut. The audioens driver supports input selection
from LineIn or Microphone.
Platform Type: Sun4u/IA
Version: a
Line Out: Yes
Headphone: No
Int. Speaker: Yes
Line In: Yes
Microphone: Yes
CD-ROM: No
|
Audio Mixer Mode
|
The configuration file /kernel/drv/audioens.conf
is used to configure the audioens driver and determines
whether the audio mixer is enabled or disabled. See the mixer(7I) manual page for details. You can change
the audio mixer mode at any time using the sdtaudiocontrol(1)
or mixerctl(1) applications.
|
Audio Data Formats
|
The audioens audio device supports the audio data
formats shown below. When the audio mixer is disabled and the device is opened
for simultaneous play and record, the input and output data formats may differ.
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.
Supported data formats.
Sample Rate | Encoding | Precision | Channels | Mode |
5510 Hz | u-Law or A-Law | 8 | 1 or 2 | D only |
6620 Hz | u-Law or A-Law | 8 | 1 or 2 | D only |
8000 Hz | u-law or A-law | 8 | 1 or 2 | E and D |
9600 Hz | u-law or A-law | 8 | 1 or 2 | E and D |
11025 Hz | u-law or A-law | 8 | 1 or 2 | E and D |
16000 Hz | u-law or A-law | 8 | 1 or 2 | E and D |
18900 Hz | u-law or A-law | 8 | 1 or 2 | E and D |
22050 Hz | u-law or A-law | 8 | 1 or 2 | E and D |
27420 Hz | u-law or A-law | 8 | 1 or 2 | D only |
32000 Hz | u-law or A-law | 8 | 1 or 2 | E and D |
33075 Hz | u-law or A-law | 8 | 1 or 2 | E and D |
37800 Hz | u-law or A-law | 8 | 1 or 2 | E and D |
44100 Hz | u-law or A-law | 8 | 1 or 2 | E and D |
48000 Hz | u-law or A-law | 8 | 1 or 2 | E and D |
5510 Hz | linear | 16 | 1 or 2 | D only |
6620 Hz | linear | 16 | 1 or 2 | D only |
8000 Hz | linear | 16 | 1 or 2 | E and D |
9600 Hz | linear | 16 | 1 or 2 | E and D |
11025 Hz | linear | 16 | 1 or 2 | E and D |
16000 Hz | linear | 16 | 1 or 2 | E and D |
18900 Hz | linear | 16 | 1 or 2 | E and D |
22050 Hz | linear | 16 | 1 or 2 | E and D |
27420 Hz | linear | 16 | 1 or 2 | D only |
32000 Hz | linear | 16 | 1 or 2 | E and D |
33075 Hz | linear | 16 | 1 or 2 | E and D |
37800 Hz | linear | 16 | 1 or 2 | E and D |
44100 Hz | linear | 16 | 1 or 2 | E and D |
48000 Hz | linear | 16 | 1 or 2 | E and D |
|
Sample Granularity
|
Because the audioens 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 audioens 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. (See audio(7I)).
|
Interrupt Rate
|
The driver determines how often play and record interrupts take place.
For playing audio, the driver 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. You tune the play and
record interrupt rates using the /kernel/drv/audioens.conf file.
|
Audio Status Change Notification
|
As described in the mixer(7I)
and audio(7I) man
pages, you can request asynchronous notification of changes in the state of
an audio device.
|
|
|
Errors are defined in the audio(7I)
man page.
|
|
-
/dev/audio
- Symbolic link to the system's primary audio device. (Not
necessarily an audioens 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 audioens audio device).
-
/dev/sound/0ctl
- Audio control for /dev/sound/0.
-
/usr/share/audio/samples
- Audio sample files.
-
/kernel/drv/audioens
- 32-bit audioens driver
-
/kernel/drv/sparcv9/audioens
- 64-bit audioens driver
-
/kernel/drv/audioens.conf
- Audioens driver configuration file
|
|
See attributes(5)
for descriptions of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
Architecture | PCI-based systems |
Availability | SUNWaudd, SUNWauddx, SUNWauda |
|
|
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 specified
in audioens.conf is set too low. It has been reset to the
rate specified in the message. Update audioens.conf to
a higher play interrupt rate.
-
init_state() play interrupt rate set too high
- The play interrupt rate set in audioens.conf is set too high. It has been reset to the rate specified
in the message. Update audioens.conf to a lower play
interrupt rate.
-
init_state() record interrupt rate set too low
- The record interrupt rate specified in audioens.conf is set too low. It has been reset to the rate specified
in the message. Update audioens.conf to a higher record
interrupt rate.
-
init_state() record interrupt rate set too high
- The record interrupt rate specified in audioens.conf is set too high. It is being reset to the rate specified
in the message. Update audioens.conf to a lower record
interrupt rate.
|
| |