23b5d91433
audio framework Summary of changes: * struct audio_params - remove sw_code, factor, factor_denom, hw_sample_rate, hw_encoding ,hw_precision, and hw_channels. Conversion information is conveyed by stream_filter_list_t. - change the type of sample_rate: u_long -> u_int - add `validbits,' which represents the valid data size in precision bits. It is required in order to distinguish 24/32bit from 24/24bit or 32/32bit. * audio_hw_if - add two parameters to set_params() stream_filter_list_t *pfil, stream_filter_list *rfil A HW driver should set filter recipes for requested formats - constify audio_params parameters of trigger_output() and trigger_input(). They represent audio formats for the hardware. - make open() and close() optional - add int (AUMODE_PLAY or AUMODE_RECORD) and audio_params_t parameters to round_blocksize() * sw_code is replaced with stream_filter_t. stream_filer_t converts audio data in an input buffer and writes into another output buffer unlike sw_code, which converts data in single buffer. converters in dev/auconv.c, dev/mulaw.c, dev/aurateconv.c, dev/tc/bba.c, dev/ic/msm6258.c, and arch/arm/iomd/vidcaudio.c are reimplemented as stream_filter_t * MI audio - audiosetinfo() builds filter pipelines from stream_filter_list_t filled by audio_hw_if::set_params() - audiosetinfo() returns with EINVAL if mmapped and set_params() requests filters - audio_write(), audio_pint(), and audio_rint() invoke a filter pipeline. - ioctl() for FIONREAD, AUDIO_WSEEK, AUDIO_GETIOFFS, AUDIO_GETOOFFS, and audio_prinfo::{seek,samples} for AUDIO_GETINFO handle values for a buffer nearest to userland. * add `struct device *' parameter to ac97_attach() * all of audio HW drivers follow audio_hw_if and ac97 changes |
||
---|---|---|
.. | ||
compile | ||
conf | ||
dev | ||
eisa | ||
gio | ||
hpc | ||
include | ||
ioc | ||
mace | ||
pci | ||
sgimips | ||
stand | ||
xio | ||
Makefile | ||
README.IPn | ||
TODO |
$NetBSD: README.IPn,v 1.6 2004/09/29 07:37:02 soren Exp $ Arch (kernel) Models Codename ------------- ------ -------- IP2 IRIS 3000 IP4 4D/50, 4D/70 IP4.5 4D/60, 4D/80, 4D/85 IP5 4D/1x0 IP6 4D/20 IP10 (IP6) 4D/25 IP7 4D/2x0 IP9 4D/210 IP13 (IP7) 4D/3x0 IP15 (IP7) 4D/4x0 IP12 4D/30, 4D/35, Indigo R3K IP17 Crimson IP19 Challenge L/XL, Onyx Everest IP20 Indigo R4K IP21 Power Challenge R8K, Power Onyx Everest IP22 Indigo2, Challenge M Fullhouse IP24 (IP22) Indy, Challenge S Guiness IP25 Power Challenge R10K Everest IP26 Power Indigo2 R8K Teuton IP27 Origin 200, Origin 2000, Onyx2 IP28 Power Indigo2 R10K Pacecar IP30 Octane Speedracer IP32 O2 Moosehead IP33 SN1 (?) IP35 SN1 (?) Architecture ABI Bootstrap Load Address Kernel Load Address ------------ --- ---------------------- ------------------- IP19 IP21 IP25 32 0x80004000 0x80100000 IP19 IP21 IP25 64 0xa800000000004000 0xa800000000180000 IP20 IP22 IP24 32 0x88002000 0x88069000 IP22 IP24 IP26 64 0xa800000008002000 0xa800000008069000 IP28 64 0xa800000020003000 0xa800000020080000 IP30 64 0xa800000020004000 0xa800000020080000 IP32 32 0x80002000 0x80069000 IP32 64 0xa800000000002000 0xa800000000078000 IP33 64 0xa800000000019000 0xa800000000300000