Import 2.3.15pre2
[davej-history.git] / drivers / sound / README.CONFIG
blob5cd199230cd81bf0e03b43909a854f4d529a806e
1 Sound Driver Configuration Notes
2 Michael Chastain, <mailto:mec@shout.net>
3 18 Apr 1998
5 The Linux sound driver is derived from OSS/Free, a multi-platform
6 Unix sound driver by Hannu Savolainen.  You can find out
7 more about OSS/Free and the commercial version, OSS/Linux, at
8 <http://www.opensound.com/ossfree>.
10 OSS/Free comes with the configuration program 'configure.c'.  We have
11 discarded that program in favor of a standard Linux configuration file
12 Config.in.
14 Config.in defines a set of symbols with the form CONFIG_SOUND_*.
15 These are the -native symbols-.  Here is a description:
17     CONFIG_SOUND
19         This is the master symbol.  It controls whether the basic
20         sound-driver code is resident, modular, or not present at all.
22         If the basic driver is resident, each primary and secondary
23         driver can be resident, modular, or not present.
25         If the basic driver is modular, each primary and secondary driver
26         can be modular or not present.
28         And if the basic driver is not present, all other drivers are
29         not present, too.
31     Primary drivers
33         These are symbols such as CONFIG_SOUND_SB, CONFIG_SOUND_SB_MODULE,
34         CONFIG_SOUND_TRIX, or CONFIG_SOUND_TRIX_MODULE.  Each driver
35         that the user can directly select is a primary driver and has
36         the usual pair of symbols: one resident and one modular.
38         Each primary driver can be either resident or modular.
40     Secondary drivers
42         Primary drivers require the support of secondary drivers, such
43         as ad1848.o and uart401.o.
45         In Makefile, each primary driver has a list of required secondary
46         drivers.  The secondary driver requirements are merged and a
47         single definition is emitted at the end.
49         For each secondary driver: if any resident primary driver
50         requires it, that secondary driver will be resident.  If no
51         resident primary driver requires it but some modular primary
52         driver requires it, then that secondary driver will be modular.
53         Otherwise that secondary driver will be not present.
55         OSS/Free also contains tests for secondary drivers.  The Makefile
56         defines symbols for these drivers in EXTRA_CFLAGS.
58     CONFIG_AUDIO, CONFIG_MIDI, CONFIG_SEQUENCER
60         These three drivers are like secondary drivers, but not quite.
61         They can not yet be separated into modules.  They are always
62         linked into the basic sound driver, whether they are needed
63         or not.  (This is in case a primary driver is added to the
64         system later, as a module, and needs these facilities.  If it
65         were possible to modularise them, then they would get built as
66         additional modules at that time).
68 The OSS/Free code does not use the native symbols directly, primarily
69 because it does not know about modules.  I could edit the code, but that
70 would make it harder to upgrade to new versions of OSS/Free.  Instead,
71 the OSS/Free code continues to use -legacy symbols-.
73 legacy.h defines all the legacy symbols to 1.  This is because, whenever
74 OSS/Free tests a symbol, the Makefile has already arranged for that
75 driver to be included.