Commit 729fe396 authored by Patrick Mochel's avatar Patrick Mochel

Merge bk://linux.bkbits.net/linux-2.5

into kernel.bkbits.net:/home/mochel/linux-2.5-power
parents 5bfaee2d c8931e4d
......@@ -78,6 +78,9 @@ curr_input[1-n] Current input value
Fixed point XXXXX, divide by 1000 to get Amps.
Read only.
eeprom Raw EEPROM data in binary form.
Read only.
fan_min[1-3] Fan minimum value
Integer value indicating RPM
Read/Write.
......
......@@ -449,7 +449,8 @@ Module parameters
pcm_substreams_c - capture channels (1-8, default=0)
clock - clock (0 = auto-detection)
use_pm - support the power-management (0 = off, 1 = on,
2 = auto)
2 = auto (default))
enable_mpu - enable MPU401 (0 = off, 1 = on, 2 = auto (default))
Module supports up to 8 cards and autoprobe.
......@@ -992,7 +993,7 @@ Module parameters
[VIA686A/686B only]
ac97_clock - AC'97 codec clock base (default 48000Hz)
dxs_support - support DXS channels,
0 = auto (default), 1 = enable, 2 = disable,
0 = auto (defalut), 1 = enable, 2 = disable,
3 = 48k only
[VIA8233/C,8235 only]
......@@ -1005,13 +1006,15 @@ Module parameters
assigned under 15. You might also upgrade your BIOS.
Note: VIA8233/5 (not VIA8233A) can support DXS (direct sound)
channels as the first PCM. With this device, up to 4
streams can be played at the same time. On some motherboards,
these channels don't work properly due to the bug of BIOS.
If you experience that the playback on this PCM is noisy,
try to specify dxs_support option to 2 or 3. In most cases
dxs_support=3 would suffice, so you can keep the multi-play
capability.
channels as the first PCM. On these channels, up to 4
streams can be played at the same time.
As default (dxs_support = 0), 48k fixed rate is chosen since
the output is often noisy except for 48k on some mother
boards due to the bug of BIOS.
Please try once dxs_support=1 and if it works on other
sample rates, please let us know the PCI subsystem
vendor/device id's (output of "lspci -nv").
If it doesn't work, use dxs_support=3 or dxs_support=2.
Note: for the MPU401 on VIA823x, use snd-mpu401 driver
additonally. The mpu_port option is for VIA686 chips only.
......
......@@ -152,6 +152,9 @@ available:
direct don't use plugins
block force block open mode
non-block force non-block open mode
whole-frag write only whole fragments (optimization affecting
playback only)
no-silence do not fill silence ahead to avoid clicks
The disable option is useful when one stream direction (playback or
capture) is not handled correctly by the application although the
......@@ -185,6 +188,12 @@ for OSS devices, define like the following:
options snd-pcm-oss nonblock_open=1
The whole-frag and no-silence commands have been added recently.
Both commands are for optimization use only. The former command
specifies to invoke the write transfer only when the whole fragment is
filled. The latter stops writing the silence data ahead
automatically. Both are disabled as default.
You can check the currently defined configuration by reading the proc
file. The read image can be sent to the proc file again, hence you
can save the current configuration
......
......@@ -532,10 +532,8 @@ config APM
11) exchange RAM chips
12) exchange the motherboard.
To compile this driver as a module ( = code which can be inserted in
and removed from the running kernel whenever you want), say M here
and read <file:Documentation/modules.txt>. The module will be called
apm.
To compile this driver as a module, choose M here: the
module will be called apm.
config ARTHUR
tristate "RISC OS personality"
......
......@@ -8,9 +8,7 @@ config INTEGRATOR_IMPD1
allows ARM(R) Ltd PrimeCells to be developed and evaluated.
The IM-PD1 can be found on the Integrator/PP2 platform.
If you want to compile this as a module (=code which can be
inserted into and removed from the running kernel), say M
here and read <file:Documentation/modules.txt>. The module
will be called impd1.
To compile this driver as a module, choose M here: the
module will be called impd1.
endmenu
......@@ -595,11 +595,9 @@ config MICROCODE
ingredients for this driver, check:
<http://www.urbanmyth.org/microcode/>.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module will be called microcode. If you want to compile it as
a module, say M here and read <file:Documentation/modules.txt>. If
you use modprobe or kmod you may also want to add the line
To compile this driver as a module, choose M here: the
module will be called microcode.
If you use modprobe or kmod you may also want to add the line
'alias char-major-10-184 microcode' to your /etc/modules.conf file.
config X86_MSR
......@@ -867,10 +865,8 @@ config APM
11) exchange RAM chips
12) exchange the motherboard.
To compile this driver as a module ( = code which can be inserted in
and removed from the running kernel whenever you want), say M here
and read <file:Documentation/modules.txt>. The module will be called
apm.
To compile this driver as a module, choose M here: the
module will be called apm.
config APM_IGNORE_USER_SUSPEND
bool "Ignore USER SUSPEND"
......
......@@ -67,11 +67,8 @@ config PCMCIA
for location). Please also read the PCMCIA-HOWTO, available from
<http://www.tldp.org/docs.html#howto>.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
When compiled this way, there will be modules called pcmcia_core
and ds. If you want to compile it as a module, say M here and
read <file:Documentation/modules.txt>.
To compile this driver as modules, choose M here: the
modules will be called pcmcia_core and ds.
config AMIGA
bool "Amiga support"
......@@ -425,13 +422,11 @@ config PARPORT
It is possible to share a single parallel port among several devices
and it is safe to compile all the corresponding drivers into the
kernel. If you want to compile parallel port support as a module
( = code which can be inserted in and removed from the running
kernel whenever you want), say M here and read
<file:Documentation/modules.txt>. The module will be called
parport. If you have more than one parallel port and want to
specify which port and IRQ to be used by this driver at module load
time, take a look at <file:Documentation/parport.txt>.
kernel. To compile parallel port support as a module, choose M here:
the module will be called parport.
If you have more than one parallel port and want to specify which
port and IRQ to be used by this driver at module load time, take a
look at <file:Documentation/parport.txt>.
If unsure, say Y.
......@@ -460,11 +455,8 @@ config PARPORT_PC
PC compatible computers and some Alphas have PC-style parallel
ports.
This code is also available as a module. If you want to compile it
as a module ( = code which can be inserted in and removed from the
running kernel whenever you want), say M here and read
<file:Documentation/modules.txt>. The module will be called
parport_pc.
To compile this driver as a module, choose M here: the
module will be called parport_pc.
If unsure, say Y.
......@@ -488,10 +480,8 @@ config PRINTER
It is possible to share one parallel port among several devices
(e.g. printer and ZIP drive) and it is safe to compile the
corresponding drivers into the kernel. If you want to compile this
driver as a module however ( = code which can be inserted in and
removed from the running kernel whenever you want), say M here and
read <file:Documentation/modules.txt> and
corresponding drivers into the kernel.
To compile this driver as a module, choose M here and read
<file:Documentation/parport.txt>. The module will be called lp.
If you have several parallel ports, you can specify which ports to
......@@ -571,9 +561,8 @@ config SERIAL
serial port drivers do not need this driver built in for them to
work.)
If you want to compile this driver as a module, say M here and read
<file:Documentation/modules.txt>. The module will be called
serial.
To compile this driver as a module, choose M here: the
module will be called serial.
[WARNING: Do not compile this driver as a module if you are using
non-standard serial ports, since the configuration information will
be lost when the driver is unloaded. This limitation may be lifted
......@@ -717,10 +706,8 @@ config NVRAM
On Atari machines, /dev/nvram is always configured and does not need
to be selected.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module will be called nvram. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
To compile this driver as a module, choose M here: the
module will be called nvram.
config ATARI_MFPSER
tristate "Atari MFP serial support"
......@@ -730,10 +717,7 @@ config ATARI_MFPSER
Linux, say Y. The driver equally supports all kinds of MFP serial
ports and automatically detects whether Serial1 is available.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
If you want to compile it as a module, say M here and read
<file:Documentation/modules.txt>.
To compile this driver as a module, choose M here.
Note for Falcon users: You also have an MFP port, it's just not
wired to the outside... But you could use the port under Linux.
......@@ -748,10 +732,7 @@ config ATARI_SCC
two connectors for channel A (Serial2 and LAN), they are visible as
two separate devices.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
If you want to compile it as a module, say M here and read
<file:Documentation/modules.txt>.
To compile this driver as a module, choose M here.
config ATARI_SCC_DMA
bool "Atari SCC serial DMA support"
......@@ -769,10 +750,7 @@ config ATARI_MIDI
help
If you want to use your Atari's MIDI port in Linux, say Y.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you
want). If you want to compile it as a module, say M here and read
<file:Documentation/modules.txt>.
To compile this driver as a module, choose M here.
config ATARI_DSP56K
tristate "Atari DSP56k support (EXPERIMENTAL)"
......@@ -782,10 +760,7 @@ config ATARI_DSP56K
driver is still experimental, and if you don't know what it is, or
if you don't have this processor, just say N.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
If you want to compile it as a module, say M here and read
<file:Documentation/modules.txt>.
To compile this driver as a module, choose M here.
config AMIGA_BUILTIN_SERIAL
tristate "Amiga builtin serial support"
......@@ -794,10 +769,7 @@ config AMIGA_BUILTIN_SERIAL
If you want to use your Amiga's built-in serial port in Linux,
answer Y.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you
want). If you want to compile it as a module, say M here and read
<file:Documentation/modules.txt>.
To compile this driver as a module, choose M here.
config WHIPPET_SERIAL
tristate "Hisoft Whippet PCMCIA serial support"
......@@ -813,10 +785,7 @@ config MULTIFACE_III_TTY
If you want to use a Multiface III card's serial port in Linux,
answer Y.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
If you want to compile it as a module, say M here and read
<file:Documentation/modules.txt>.
To compile this driver as a module, choose M here.
config A2232
tristate "Commodore A2232 serial support (EXPERIMENTAL)"
......@@ -832,8 +801,7 @@ config A2232
This driver can be built as a module; but then "generic_serial"
will also be built as a module. This has to be loaded before
"ser_a2232". If you want to do this, answer M here and read
"<file:Documentation/modules.txt>".
"ser_a2232". If you want to do this, answer M here.
config GVPIOEXT
tristate "GVP IO-Extender support"
......@@ -1086,11 +1054,8 @@ config SOFT_WATCHDOG
from some situations that the hardware watchdog will recover
from. Equally it's a lot cheaper to install.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
If you want to compile it as a module, say M here and read
<file:Documentation/modules.txt>. The module will be called
softdog.
To compile this driver as a module, choose M here: the
module will be called softdog.
config GEN_RTC
tristate "Generic /dev/rtc emulation" if !SUN3
......@@ -1107,12 +1072,9 @@ config GEN_RTC
for RTC_UIE which is required by some programs and may improve
precision in some cases.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module is called genrtc. If you want to compile it as a module,
say M here and read <file:Documentation/modules.txt>. To load the
module automatically add 'alias char-major-10-135 genrtc' to your
/etc/modules.conf
To compile this driver as a module, choose M here: the
module will be called genrtc. To load the module automatically
add 'alias char-major-10-135 genrtc' to your /etc/modules.conf
config GEN_RTC_X
bool "Extended RTC operation"
......
......@@ -1272,12 +1272,10 @@ config SOUND
If you have a PnP sound card and you want to configure it at boot
time using the ISA PnP tools (read
<http://www.roestock.demon.co.uk/isapnptools/>), then you need to
compile the sound card support as a module ( = code which can be
inserted in and removed from the running kernel whenever you want)
and load that module after the PnP configuration is finished. To do
this, say M here and read <file:Documentation/modules.txt> as well
as <file:Documentation/sound/README.modules>; the module will be
called soundcore.
compile the sound card support as a module and load that module
after the PnP configuration is finished. To do this, choose M here
and read <file:Documentation/sound/README.modules>; the module
will be called soundcore.
I'm told that even without a sound card, you can make your computer
say more than an occasional beep, by programming the PC speaker.
......
......@@ -849,10 +849,7 @@ config AMIGA_BUILTIN_SERIAL
If you want to use your Amiga's built-in serial port in Linux,
answer Y.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you
want). If you want to compile it as a module, say M here and read
<file:Documentation/modules.txt>.
To compile this driver as a module, choose M here.
config GVPIOEXT
tristate "GVP IO-Extender support"
......@@ -882,10 +879,7 @@ config MULTIFACE_III_TTY
If you want to use a Multiface III card's serial port in Linux,
answer Y.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
If you want to compile it as a module, say M here and read
<file:Documentation/modules.txt>.
To compile this driver as a module, choose M here.
config A2232
tristate "Commodore A2232 serial support (EXPERIMENTAL)"
......@@ -901,8 +895,7 @@ config A2232
This driver can be built as a module; but then "generic_serial"
will also be built as a module. This has to be loaded before
"ser_a2232". If you want to do this, answer M here and read
"<file:Documentation/modules.txt>".
"ser_a2232". If you want to do this, answer M here.
config WHIPPET_SERIAL
tristate "Hisoft Whippet PCMCIA serial support"
......@@ -918,10 +911,8 @@ config APNE
If you have a PCMCIA NE2000 compatible adapter, say Y. Otherwise,
say N.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you
want). The module is called apne. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
To compile this driver as a module, choose M here: the
module will be called apne.
config SERIAL_CONSOLE
bool "Support for serial port console"
......
......@@ -166,10 +166,8 @@ config QDIO
For details please refer to the documentation provided by IBM at
<http://www10.software.ibm.com/developerworks/opensource/linux390>
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module will be called qdio. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
To compile this driver as a module, choose M here: the
module will be called qdio.
If unsure, say Y.
......
......@@ -839,9 +839,8 @@ config SERIAL
serial port drivers do not need this driver built in for them to
work.)
If you want to compile this driver as a module, say M here and read
<file:Documentation/modules.txt>. The module will be called
serial.
To compile this driver as a module, choose M here: the
module will be called serial.
[WARNING: Do not compile this driver as a module if you are using
non-standard serial ports, since the configuration information will
be lost when the driver is unloaded. This limitation may be lifted
......@@ -973,10 +972,8 @@ config PRINTER
It is possible to share one parallel port among several devices
(e.g. printer and ZIP drive) and it is safe to compile the
corresponding drivers into the kernel. If you want to compile this
driver as a module however ( = code which can be inserted in and
removed from the running kernel whenever you want), say M here and
read <file:Documentation/modules.txt> and
corresponding drivers into the kernel.
To compile this driver as a module, choose M here and read
<file:Documentation/parport.txt>. The module will be called lp.
If you have several parallel ports, you can specify which ports to
......@@ -1018,10 +1015,8 @@ config PPDEV
It is safe to say N to this -- it is not needed for normal printing
or parallel port CD-ROM/disk support.
This support is also available as a module. If you want to compile
it as a module, say M here and read
<file:Documentation/modules.txt>. The module will be called
ppdev.
To compile this support as a module, choose M here: the
module will be called ppdev.
If unsure, say N.
......@@ -1097,10 +1092,8 @@ config SH_WDT
some performance issues. As such, the WDT should be avoided here
unless it is absolutely necessary.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module is called shwdt. If you want to compile it as a module,
say M here and read Documentation/modules.txt.
To compile this driver as a module, choose M here: the
module will be called shwdt.
endmenu
......@@ -1126,10 +1119,8 @@ config RTC
sampling), then say Y here, and read <file:Documentation/rtc.txt>
for details.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module is called rtc. If you want to compile it as a module,
say M here and read <file:Documentation/modules.txt>.
To compile this driver as a module, choose M here: the
module will be called rtc.
source "drivers/char/pcmcia/Kconfig"
......
......@@ -162,11 +162,8 @@ config PCMCIA
for location). Please also read the PCMCIA-HOWTO, available from
<http://www.tldp.org/docs.html#howto>.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
When compiled this way, there will be modules called pcmcia_core
and ds. If you want to compile it as a module, say M here and
read <file:Documentation/modules.txt>.
To compile this driver as modules, choose M here: the
modules will be called pcmcia_core and ds.
config SBUS
bool
......@@ -248,11 +245,8 @@ config SUN_OPENPROMFS
virtual file system, which you can mount to /proc/openprom by "mount
-t openpromfs none /proc/openprom".
If you want to compile the /proc/openprom support as a module ( =
code which can be inserted in and removed from the running kernel
whenever you want), say M here and read
<file:Documentation/modules.txt>.
The module will be called openpromfs. If unsure, say M.
To compile the /proc/openprom support as a module, choose M here: the
module will be called openpromfs. If unsure, choose M.
source "fs/Kconfig.binfmt"
......@@ -280,9 +274,7 @@ config PRINTER
It is possible to share one parallel port among several devices
(e.g. printer and ZIP drive) and it is safe to compile the
corresponding drivers into the kernel. If you want to compile this
driver as a module however ( = code which can be inserted in and
removed from the running kernel whenever you want), say M here and
read <file:Documentation/modules.txt> and
driver as a module however, choose M here and read
<file:Documentation/parport.txt>. The module will be called lp.
If you have several parallel ports, you can specify which ports to
......@@ -321,10 +313,8 @@ config BLK_DEV_FD
well as location of the fdutils package used to configure additional
parameters of the driver at run time.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module will be called floppy. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
To compile this driver as a module, choose M here: the
module will be called floppy.
config BLK_DEV_LOOP
tristate "Loopback device support"
......@@ -370,10 +360,8 @@ config BLK_DEV_LOOP
Note that this loop device has nothing to do with the loopback
device used for network connections from the machine to itself.
If you want to compile this driver as a module ( = code which can be
inserted in and removed from the running kernel whenever you want),
say M here and read <file:Documentation/modules.txt>. The module
will be called loop.
To compile this driver as a module, choose M here: the
module will be called loop.
Most users will answer N here.
......@@ -399,10 +387,8 @@ config BLK_DEV_NBD
Note that this has nothing to do with the network file systems NFS
or Coda; you can say N here even if you intend to use NFS or Coda.
If you want to compile this driver as a module ( = code which can be
inserted in and removed from the running kernel whenever you want),
say M here and read <file:Documentation/modules.txt>. The module
will be called nbd.
To compile this driver as a module, choose M here: the
module will be called nbd.
If unsure, say N.
......@@ -421,10 +407,8 @@ config BLK_DEV_RAM
Note that the kernel command line option "ramdisk=XX" is now
obsolete. For details, read <file:Documentation/ramdisk.txt>.
If you want to compile this as a module ( = code which can be
inserted in and removed from the running kernel whenever you want),
say M and read <file:Documentation/modules.txt>. The module will be
called rd.
To compile this driver as a module, choose M here: the
module will be called rd.
Most normal users won't need the RAM disk functionality, and can
thus say N here.
......@@ -534,11 +518,8 @@ config SOFT_WATCHDOG
from some situations that the hardware watchdog will recover
from. Equally it's a lot cheaper to install.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
If you want to compile it as a module, say M here and read
<file:Documentation/modules.txt>. The module will be called
softdog.
To compile this driver as a module, choose M here: the
module will be called softdog.
endmenu
......
......@@ -230,10 +230,8 @@ config ISAPNP
Say Y here if you would like support for ISA Plug and Play devices.
Some information is in <file:Documentation/isapnp.txt>.
This support is also available as a module called isapnp ( =
code which can be inserted in and removed from the running kernel
whenever you want). If you want to compile it as a module, say M
here and read <file:Documentation/modules.txt>.
To compile this driver as a module, choose M here: the
module will be called isapnp.
If unsure, say Y.
......@@ -275,11 +273,8 @@ config PCMCIA
for location). Please also read the PCMCIA-HOWTO, available from
<http://www.tldp.org/docs.html#howto>.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
When compiled this way, there will be modules called pcmcia_core
and ds. If you want to compile it as a module, say M here and
read <file:Documentation/modules.txt>.
To compile this driver as modules, choose M here: the
modules will be called pcmcia_core and ds.
config SBUS
bool
......@@ -338,10 +333,8 @@ config RTC
sampling), then say Y here, and read <file:Documentation/rtc.txt>
for details.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module is called rtc. If you want to compile it as a module,
say M here and read <file:Documentation/modules.txt>.
To compile this driver as a module, choose M here: the
module will be called rtc.
source "drivers/pci/Kconfig"
......@@ -352,11 +345,8 @@ config SUN_OPENPROMFS
virtual file system, which you can mount to /proc/openprom by "mount
-t openpromfs none /proc/openprom".
If you want to compile the /proc/openprom support as a module ( =
code which can be inserted in and removed from the running kernel
whenever you want), say M here and read
<file:Documentation/modules.txt>.
The module will be called openpromfs. If unsure, say M.
To compile the /proc/openprom support as a module, choose M here: the
module will be called openpromfs. If unsure, choose M.
config SPARC32_COMPAT
bool "Kernel support for Linux/Sparc 32bit binary compatibility"
......@@ -402,10 +392,8 @@ config SOLARIS_EMUL
This is experimental code which will enable you to run (many)
Solaris binaries on your SPARC Linux machine.
This code is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module will be called solaris. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
To compile this code as a module, choose M here: the
module will be called solaris.
source "drivers/parport/Kconfig"
......@@ -421,10 +409,8 @@ config PRINTER
It is possible to share one parallel port among several devices
(e.g. printer and ZIP drive) and it is safe to compile the
corresponding drivers into the kernel. If you want to compile this
driver as a module however ( = code which can be inserted in and
removed from the running kernel whenever you want), say M here and
read <file:Documentation/modules.txt> and
corresponding drivers into the kernel.
To compile this driver as a module, choose M here and read
<file:Documentation/parport.txt>. The module will be called lp.
If you have several parallel ports, you can specify which ports to
......@@ -443,10 +429,8 @@ config ENVCTRL
Kernel support for temperature and fan monitoring on Sun SME
machines.
This code is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module will be called envctrl. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
To compile this driver as a module, choose M here: the
module will be called envctrl.
config DISPLAY7SEG
tristate "7-Segment Display support"
......@@ -455,10 +439,8 @@ config DISPLAY7SEG
This is the driver for the 7-segment display and LED present on
Sun Microsystems CompactPCI models CP1400 and CP1500.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module will be called display7seg. If you want to compile it
as a module, say M here and read <file:Documentation/modules.txt>.
To compile this driver as a module, choose M here: the
module will be called display7seg.
If you do not have a CompactPCI model CP1400 or CP1500, or
another UltraSPARC-IIi-cEngine boardset with a 7-segment display,
......@@ -471,10 +453,8 @@ config WATCHDOG_CP1XXX
This is the driver for the hardware watchdog timers present on
Sun Microsystems CompactPCI models CP1400 and CP1500.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module will be called cpwatchdog. If you want to compile it
as a module, say M here and read <file:Documentation/modules.txt>.
To compile this driver as a module, choose M here: the
module will be called cpwatchdog.
If you do not have a CompactPCI model CP1400 or CP1500, or
another UltraSPARC-IIi-cEngine boardset with hardware watchdog,
......@@ -513,10 +493,8 @@ config BLK_DEV_FD
well as location of the fdutils package used to configure additional
parameters of the driver at run time.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module will be called floppy. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
To compile this driver as a module, choose M here: the
module will be called floppy.
config BLK_DEV_LOOP
tristate "Loopback device support"
......@@ -562,10 +540,8 @@ config BLK_DEV_LOOP
Note that this loop device has nothing to do with the loopback
device used for network connections from the machine to itself.
If you want to compile this driver as a module ( = code which can be
inserted in and removed from the running kernel whenever you want),
say M here and read <file:Documentation/modules.txt>. The module
will be called loop.
To compile this driver as a module, choose M here: the
module will be called loop.
Most users will answer N here.
......@@ -591,10 +567,8 @@ config BLK_DEV_NBD
Note that this has nothing to do with the network file systems NFS
or Coda; you can say N here even if you intend to use NFS or Coda.
If you want to compile this driver as a module ( = code which can be
inserted in and removed from the running kernel whenever you want),
say M here and read <file:Documentation/modules.txt>. The module
will be called nbd.
To compile this driver as a module, choose M here: the
module will be called nbd.
If unsure, say N.
......@@ -613,10 +587,8 @@ config BLK_DEV_RAM
Note that the kernel command line option "ramdisk=XX" is now
obsolete. For details, read <file:Documentation/ramdisk.txt>.
If you want to compile this as a module ( = code which can be
inserted in and removed from the running kernel whenever you want),
say M and read <file:Documentation/modules.txt>. The module will be
called rd.
To compile this driver as a module, choose M here: the
module will be called rd.
Most normal users won't need the RAM disk functionality, and can
thus say N here.
......@@ -775,11 +747,8 @@ config SOFT_WATCHDOG
from some situations that the hardware watchdog will recover
from. Equally it's a lot cheaper to install.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
If you want to compile it as a module, say M here and read
<file:Documentation/modules.txt>. The module will be called
softdog.
To compile this driver as a module, choose M here: the
module will be called softdog.
endmenu
......
......@@ -15,10 +15,8 @@ config BLK_DEV_FD
well as location of the fdutils package used to configure additional
parameters of the driver at run time.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module will be called floppy. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
To compile this driver as a module, choose M here: the
module will be called floppy.
config AMIGA_FLOPPY
tristate "Amiga floppy support"
......@@ -49,10 +47,8 @@ config BLK_DEV_PS2
Say Y here if you have a PS/2 machine with a MCA bus and an ESDI
hard disk.
If you want to compile the driver as a module ( = code which can be
inserted in and removed from the running kernel whenever you want),
say M here and read <file:Documentation/modules.txt>. The module
will be called ps2esdi.
To compile this driver as a module, choose M here: the
module will be called ps2esdi.
config AMIGA_Z2RAM
tristate "Amiga Zorro II ramdisk support"
......@@ -60,11 +56,10 @@ config AMIGA_Z2RAM
help
This enables support for using Chip RAM and Zorro II RAM as a
ramdisk or as a swap partition. Say Y if you want to include this
driver in the kernel. This driver is also available as a module
( = code which can be inserted in and removed from the running
kernel whenever you want). The module is called z2ram. If you want
to compile it as a module, say M here and read
<file:Documentation/modules.txt>.
driver in the kernel.
To compile this driver as a module, choose M here: the
module will be called z2ram.
config ATARI_ACSI
tristate "Atari ACSI support"
......@@ -80,9 +75,8 @@ config ATARI_ACSI
Ethernet, and PAMsNet Ethernet. If you want to use one of these
devices, you need ACSI support, too.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module will be called acsi.
To compile this driver as a module, choose M here: the
module will be called acsi.
comment "Some devices (e.g. CD jukebox) support multiple LUNs"
depends on ATARI && ATARI_ACSI
......@@ -116,10 +110,8 @@ config BLK_DEV_XD
Very old 8 bit hard disk controllers used in the IBM XT computer
will be supported if you say Y here.
If you want to compile the driver as a module ( = code which can be
inserted in and removed from the running kernel whenever you want),
say M here and read <file:Documentation/modules.txt>. The module
will be called xd.
To compile this driver as a module, choose M here: the
module will be called xd.
It's pretty unlikely that you have one of these: say N.
......@@ -195,10 +187,8 @@ config BLK_DEV_DAC960
<file:Documentation/README.DAC960> for further information about
this driver.
If you want to compile the driver as a module ( = code which can be
inserted in and removed from the running kernel whenever you want),
say M here and read <file:Documentation/modules.txt>. The module
will be called DAC960.
To compile this driver as a module, choose M here: the
module will be called DAC960.
config BLK_DEV_UMEM
tristate "Micro Memory MM5415 Battery Backed RAM support (EXPERIMENTAL)"
......@@ -211,10 +201,8 @@ config BLK_DEV_UMEM
The cards appear as block devices that can be partitioned into
as many as 15 partitions.
If you want to compile this driver as a module ( = code which can be
inserted in and removed from the running kernel whenever you want),
say M here and read Documentation/modules.txt. The module will be
called umem.
To compile this driver as a module, choose M here: the
module will be called umem.
The umem driver has not yet been allocated a MAJOR number, so
one is chosen dynamically. Use "devfs" or look in /proc/devices
......@@ -255,10 +243,8 @@ config BLK_DEV_LOOP
Note that this loop device has nothing to do with the loopback
device used for network connections from the machine to itself.
If you want to compile this driver as a module ( = code which can be
inserted in and removed from the running kernel whenever you want),
say M here and read <file:Documentation/modules.txt>. The module
will be called loop.
To compile this driver as a module, choose M here: the
module will be called loop.
Most users will answer N here.
......@@ -293,10 +279,8 @@ config BLK_DEV_NBD
Note that this has nothing to do with the network file systems NFS
or Coda; you can say N here even if you intend to use NFS or Coda.
If you want to compile this driver as a module ( = code which can be
inserted in and removed from the running kernel whenever you want),
say M here and read <file:Documentation/modules.txt>. The module
will be called nbd.
To compile this driver as a module, choose M here: the
module will be called nbd.
If unsure, say N.
......@@ -313,10 +297,8 @@ config BLK_DEV_RAM
Note that the kernel command line option "ramdisk=XX" is now
obsolete. For details, read <file:Documentation/ramdisk.txt>.
If you want to compile this as a module ( = code which can be
inserted in and removed from the running kernel whenever you want),
say M and read <file:Documentation/modules.txt>. The module will be
called rd.
To compile this driver as a module, choose M here: the
module will be called rd.
Most normal users won't need the RAM disk functionality, and can
thus say N here.
......
......@@ -376,6 +376,11 @@ void blk_queue_hardsect_size(request_queue_t *q, unsigned short size)
q->hardsect_size = size;
}
/*
* Returns the minimum that is _not_ zero, unless both are zero.
*/
#define min_not_zero(l, r) (l == 0) ? r : ((r == 0) ? l : min(l, r))
/**
* blk_queue_stack_limits - inherit underlying queue limits for stacked drivers
* @t: the stacking driver (top)
......@@ -383,7 +388,9 @@ void blk_queue_hardsect_size(request_queue_t *q, unsigned short size)
**/
void blk_queue_stack_limits(request_queue_t *t, request_queue_t *b)
{
t->max_sectors = min(t->max_sectors,b->max_sectors);
/* zero is "infinity" */
t->max_sectors = min_not_zero(t->max_sectors,b->max_sectors);
t->max_phys_segments = min(t->max_phys_segments,b->max_phys_segments);
t->max_hw_segments = min(t->max_hw_segments,b->max_hw_segments);
t->max_segment_size = min(t->max_segment_size,b->max_segment_size);
......
......@@ -24,10 +24,7 @@ config CD_NO_IDESCSI
file drivers/cdrom/{driver_name}.h where you can define your
interface parameters and switch some internal goodies.
All these CD-ROM drivers are also usable as a module ( = code which
can be inserted in and removed from the running kernel whenever you
want). If you want to compile them as module, say M instead of Y and
read <file:Documentation/modules.txt>.
To compile these CD-ROM drivers as a module, choose M instead of Y.
If you want to use any of these CD-ROM drivers, you also have to
answer Y or M to "ISO 9660 CD-ROM file system support" below (this
......@@ -49,10 +46,8 @@ config AZTCD
file system support" below, because that's the file system used on
CD-ROMs.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module will be called aztcd. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
To compile this driver as a module, choose M here: the
module will be called aztcd.
config GSCD
tristate "Goldstar R420 CDROM support"
......@@ -67,10 +62,8 @@ config GSCD
file system support" below, because that's the file system used on
CD-ROMs.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module will be called gscd. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
To compile this driver as a module, choose M here: the
module will be called gscd.
config SBPCD
tristate "Matsushita/Panasonic/Creative, Longshine, TEAC CDROM support"
......@@ -107,10 +100,8 @@ config SBPCD
file system support" below, because that's the file system used on
CD-ROMs.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module will be called sbpcd. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
To compile this driver as a module, choose M here: the
module will be called sbpcd.
config MCD
tristate "Mitsumi (standard) [no XA/Multisession] CDROM support"
......@@ -132,10 +123,8 @@ config MCD
file system support" below, because that's the file system used on
CD-ROMs.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module will be called mcd. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
To compile this driver as a module, choose M here: the
module will be called mcd.
config MCD_IRQ
int "MCD IRQ"
......@@ -173,10 +162,8 @@ config MCDX
file system support" below, because that's the file system used on
CD-ROMs.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module will be called mcdx. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
To compile this driver as a module, choose M here: the
module will be called mcdx.
config OPTCD
tristate "Optics Storage DOLPHIN 8000AT CDROM support"
......@@ -192,10 +179,8 @@ config OPTCD
file system support" below, because that's the file system used on
CD-ROMs.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module will be called optcd. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
To compile this driver as a module, choose M here: the
module will be called optcd.
config CM206
tristate "Philips/LMS CM206 CDROM support"
......@@ -209,10 +194,8 @@ config CM206
file system support" below, because that's the file system used on
CD-ROMs.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module will be called cm206. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
To compile this driver as a module, choose M here: the
module will be called cm206.
config SJCD
tristate "Sanyo CDR-H94A CDROM support"
......@@ -223,10 +206,8 @@ config SJCD
"ISO 9660 CD-ROM file system support" below, because that's the
file system used on CD-ROMs.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module will be called sjcd. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
To compile this driver as a module, choose M here: the
module will be called sjcd.
config ISP16_CDI
tristate "ISP16/MAD16/Mozart soft configurable cdrom interface support"
......@@ -238,10 +219,8 @@ config ISP16_CDI
to a driver for the particular cdrom drive you have attached to the
card. Read <file:Documentation/cdrom/isp16> for details.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module will be called isp16. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
To compile this driver as a module, choose M here: the
module will be called isp16.
config CDU31A
tristate "Sony CDU31A/CDU33A CDROM support"
......@@ -260,10 +239,8 @@ config CDU31A
file system support" below, because that's the file system used on
CD-ROMs.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module will be called cdu31a. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
To compile this driver as a module, choose M here: the
module will be called cdu31a.
config CDU535
tristate "Sony CDU535 CDROM support"
......@@ -276,9 +253,7 @@ config CDU535
file system support" below, because that's the file system used on
CD-ROMs.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module will be called sonycd535. If you want to compile it as
a module, say M here and read <file:Documentation/modules.txt>.
To compile this driver as a module, choose M here: the
module will be called sonycd535.
endmenu
This diff is collapsed.
......@@ -21,8 +21,7 @@ config AGP
You should say Y here if you use XFree86 3.3.6 or 4.x and want to
use GLX or DRI. If unsure, say N.
This driver is available as a module. If you want to compile it as
a module, say M here and read <file:Documentation/modules.txt>. The
To compile this driver as a module, choose M here: the
module will be called agpgart.
config AGP_ALI
......
......@@ -75,9 +75,9 @@ config DRM_MGA
config DRM_SIS
tristate "SiS video cards"
depends on DRM && AGP && FB_SIS
depends on DRM && AGP
help
Choose this option if you have a SiS 630 or compatibel video
chipset. If M is selected the module will be called sis. AGP
and SiS FB support is required for this driver to work.
support is required for this driver to work.
......@@ -551,7 +551,7 @@ typedef struct drm_device_dma {
*/
typedef struct drm_agp_mem {
unsigned long handle; /**< handle */
struct agp_memory *memory;
DRM_AGP_MEM *memory;
unsigned long bound; /**< address */
int pages;
struct drm_agp_mem *prev; /**< previous entry */
......@@ -564,7 +564,7 @@ typedef struct drm_agp_mem {
* \sa DRM(agp_init)() and drm_device::agp.
*/
typedef struct drm_agp_head {
struct agp_kern_info agp_info; /**< AGP device information */
DRM_AGP_KERN agp_info; /**< AGP device information */
drm_agp_mem_t *memory; /**< memory entries */
unsigned long mode; /**< AGP mode */
int enabled; /**< whether the AGP bus as been enabled */
......@@ -784,6 +784,7 @@ extern void DRM(mem_init)(void);
extern int DRM(mem_info)(char *buf, char **start, off_t offset,
int request, int *eof, void *data);
extern void *DRM(alloc)(size_t size, int area);
extern void *DRM(calloc)(size_t nmemb, size_t size, int area);
extern void *DRM(realloc)(void *oldpt, size_t oldsize, size_t size,
int area);
extern void DRM(free)(void *pt, size_t size, int area);
......@@ -796,10 +797,10 @@ extern void *DRM(ioremap_nocache)(unsigned long offset, unsigned long size,
extern void DRM(ioremapfree)(void *pt, unsigned long size, drm_device_t *dev);
#if __REALLY_HAVE_AGP
extern struct agp_memory *DRM(alloc_agp)(int pages, u32 type);
extern int DRM(free_agp)(struct agp_memory *handle, int pages);
extern int DRM(bind_agp)(struct agp_memory *handle, unsigned int start);
extern int DRM(unbind_agp)(struct agp_memory *handle);
extern DRM_AGP_MEM *DRM(alloc_agp)(int pages, u32 type);
extern int DRM(free_agp)(DRM_AGP_MEM *handle, int pages);
extern int DRM(bind_agp)(DRM_AGP_MEM *handle, unsigned int start);
extern int DRM(unbind_agp)(DRM_AGP_MEM *handle);
#endif
/* Misc. IOCTL support (drm_ioctl.h) */
......@@ -904,8 +905,7 @@ extern int DRM(control)( struct inode *inode, struct file *filp,
unsigned int cmd, unsigned long arg );
extern int DRM(irq_install)( drm_device_t *dev, int irq );
extern int DRM(irq_uninstall)( drm_device_t *dev );
extern irqreturn_t DRM(dma_service)( int irq, void *device,
struct pt_regs *regs );
extern irqreturn_t DRM(dma_service)( DRM_IRQ_ARGS );
extern void DRM(driver_irq_preinstall)( drm_device_t *dev );
extern void DRM(driver_irq_postinstall)( drm_device_t *dev );
extern void DRM(driver_irq_uninstall)( drm_device_t *dev );
......@@ -943,10 +943,10 @@ extern int DRM(agp_unbind)(struct inode *inode, struct file *filp,
unsigned int cmd, unsigned long arg);
extern int DRM(agp_bind)(struct inode *inode, struct file *filp,
unsigned int cmd, unsigned long arg);
extern struct agp_memory *DRM(agp_allocate_memory)(size_t pages, u32 type);
extern int DRM(agp_free_memory)(struct agp_memory *handle);
extern int DRM(agp_bind_memory)(struct agp_memory *handle, off_t start);
extern int DRM(agp_unbind_memory)(struct agp_memory *handle);
extern DRM_AGP_MEM *DRM(agp_allocate_memory)(size_t pages, u32 type);
extern int DRM(agp_free_memory)(DRM_AGP_MEM *handle);
extern int DRM(agp_bind_memory)(DRM_AGP_MEM *handle, off_t start);
extern int DRM(agp_unbind_memory)(DRM_AGP_MEM *handle);
#endif
/* Stub support (drm_stub.h) */
......
......@@ -62,7 +62,7 @@ int DRM(agp_info)(struct inode *inode, struct file *filp,
{
drm_file_t *priv = filp->private_data;
drm_device_t *dev = priv->dev;
struct agp_kern_info *kern;
DRM_AGP_KERN *kern;
drm_agp_info_t info;
if (!dev->agp || !dev->agp->acquired || !drm_agp->copy_info)
......@@ -198,7 +198,7 @@ int DRM(agp_alloc)(struct inode *inode, struct file *filp,
drm_device_t *dev = priv->dev;
drm_agp_buffer_t request;
drm_agp_mem_t *entry;
struct agp_memory *memory;
DRM_AGP_MEM *memory;
unsigned long pages;
u32 type;
......@@ -429,7 +429,7 @@ void DRM(agp_uninit)(void)
}
/** Calls drm_agp->allocate_memory() */
struct agp_memory *DRM(agp_allocate_memory)(size_t pages, u32 type)
DRM_AGP_MEM *DRM(agp_allocate_memory)(size_t pages, u32 type)
{
if (!drm_agp->allocate_memory)
return NULL;
......@@ -437,7 +437,7 @@ struct agp_memory *DRM(agp_allocate_memory)(size_t pages, u32 type)
}
/** Calls drm_agp->free_memory() */
int DRM(agp_free_memory)(struct agp_memory *handle)
int DRM(agp_free_memory)(DRM_AGP_MEM *handle)
{
if (!handle || !drm_agp->free_memory)
return 0;
......@@ -446,7 +446,7 @@ int DRM(agp_free_memory)(struct agp_memory *handle)
}
/** Calls drm_agp->bind_memory() */
int DRM(agp_bind_memory)(struct agp_memory *handle, off_t start)
int DRM(agp_bind_memory)(DRM_AGP_MEM *handle, off_t start)
{
if (!handle || !drm_agp->bind_memory)
return -EINVAL;
......@@ -454,7 +454,7 @@ int DRM(agp_bind_memory)(struct agp_memory *handle, off_t start)
}
/** Calls drm_agp->unbind_memory() */
int DRM(agp_unbind_memory)(struct agp_memory *handle)
int DRM(agp_unbind_memory)(DRM_AGP_MEM *handle)
{
if (!handle || !drm_agp->unbind_memory)
return -EINVAL;
......
......@@ -117,10 +117,7 @@ agp_remap (unsigned long offset, unsigned long size, drm_device_t *dev)
page_map[i] = pfn_to_page(phys_addr_map[i] >> PAGE_SHIFT);
addr = vmap(page_map, num_pages, VM_IOREMAP, PAGE_AGP);
vfree(page_map);
if (!addr)
return NULL;
flush_tlb_kernel_range((unsigned long) addr, (unsigned long) addr + size);
return addr;
}
......@@ -224,6 +221,18 @@ void *DRM(alloc)(size_t size, int area)
return kmalloc(size, GFP_KERNEL);
}
/** Wrapper around kmalloc() */
void *DRM(calloc)(size_t size, size_t nmemb, int area)
{
void *addr;
addr = kmalloc(size * nmemb, GFP_KERNEL);
if (addr != NULL)
memset((void *)addr, 0, size * nmemb);
return addr;
}
/** Wrapper around kmalloc() and kfree() */
void *DRM(realloc)(void *oldpt, size_t oldsize, size_t size, int area)
{
......@@ -324,25 +333,25 @@ void DRM(ioremapfree)(void *pt, unsigned long size, drm_device_t *dev)
#if __REALLY_HAVE_AGP
/** Wrapper around agp_allocate_memory() */
struct agp_memory *DRM(alloc_agp)(int pages, u32 type)
DRM_AGP_MEM *DRM(alloc_agp)(int pages, u32 type)
{
return DRM(agp_allocate_memory)(pages, type);
}
/** Wrapper around agp_free_memory() */
int DRM(free_agp)(struct agp_memory *handle, int pages)
int DRM(free_agp)(DRM_AGP_MEM *handle, int pages)
{
return DRM(agp_free_memory)(handle) ? 0 : -EINVAL;
}
/** Wrapper around agp_bind_memory() */
int DRM(bind_agp)(struct agp_memory *handle, unsigned int start)
int DRM(bind_agp)(DRM_AGP_MEM *handle, unsigned int start)
{
return DRM(agp_bind_memory)(handle, start);
}
/** Wrapper around agp_unbind_memory() */
int DRM(unbind_agp)(struct agp_memory *handle)
int DRM(unbind_agp)(DRM_AGP_MEM *handle)
{
return DRM(agp_unbind_memory)(handle);
}
......
......@@ -166,6 +166,17 @@ void *DRM(alloc)(size_t size, int area)
return pt;
}
void *DRM(calloc)(size_t size, size_t nmemb, int area)
{
void *addr;
addr = DRM(alloc)(nmemb * size, area);
if (addr != NULL)
memset((void *)addr, 0, size * nmemb);
return addr;
}
void *DRM(realloc)(void *oldpt, size_t oldsize, size_t size, int area)
{
void *pt;
......@@ -342,9 +353,9 @@ void DRM(ioremapfree)(void *pt, unsigned long size, drm_device_t *dev)
#if __REALLY_HAVE_AGP
agp_memory *DRM(alloc_agp)(int pages, u32 type)
DRM_AGP_MEM *DRM(alloc_agp)(int pages, u32 type)
{
agp_memory *handle;
DRM_AGP_MEM *handle;
if (!pages) {
DRM_MEM_ERROR(DRM_MEM_TOTALAGP, "Allocating 0 pages\n");
......@@ -365,7 +376,7 @@ agp_memory *DRM(alloc_agp)(int pages, u32 type)
return NULL;
}
int DRM(free_agp)(agp_memory *handle, int pages)
int DRM(free_agp)(DRM_AGP_MEM *handle, int pages)
{
int alloc_count;
int free_count;
......@@ -394,7 +405,7 @@ int DRM(free_agp)(agp_memory *handle, int pages)
return retval;
}
int DRM(bind_agp)(agp_memory *handle, unsigned int start)
int DRM(bind_agp)(DRM_AGP_MEM *handle, unsigned int start)
{
int retcode = -EINVAL;
......@@ -418,7 +429,7 @@ int DRM(bind_agp)(agp_memory *handle, unsigned int start)
return retcode;
}
int DRM(unbind_agp)(agp_memory *handle)
int DRM(unbind_agp)(DRM_AGP_MEM *handle)
{
int alloc_count;
int free_count;
......
......@@ -33,8 +33,13 @@
#define DRM_DEVICE drm_file_t *priv = filp->private_data; \
drm_device_t *dev = priv->dev
/** IRQ handler arguments */
/** IRQ handler arguments and return type and values */
#define DRM_IRQ_ARGS int irq, void *arg, struct pt_regs *regs
/** AGP types */
#define DRM_AGP_MEM struct agp_memory
#define DRM_AGP_KERN struct agp_kern_info
/** Task queue handler arguments */
#define DRM_TASKQUEUE_ARGS void *arg
......
......@@ -116,13 +116,14 @@ static inline int gamma_dma_is_ready(drm_device_t *dev)
return (!GAMMA_READ(GAMMA_DMACOUNT));
}
irqreturn_t gamma_dma_service(int irq, void *device, struct pt_regs *regs)
irqreturn_t gamma_dma_service( DRM_IRQ_ARGS )
{
drm_device_t *dev = (drm_device_t *)device;
drm_device_t *dev = (drm_device_t *)arg;
drm_device_dma_t *dma = dev->dma;
drm_gamma_private_t *dev_priv =
(drm_gamma_private_t *)dev->dev_private;
/* FIXME: should check whether we're actually interested in the interrupt? */
atomic_inc(&dev->counts[6]); /* _DRM_STAT_IRQ */
while (GAMMA_READ(GAMMA_INFIFOSPACE) < 3)
......
......@@ -83,7 +83,7 @@ static drm_buf_t *i810_freelist_get(drm_device_t *dev)
/* In use is already a pointer */
used = cmpxchg(buf_priv->in_use, I810_BUF_FREE,
I810_BUF_CLIENT);
if(used == I810_BUF_FREE) {
if (used == I810_BUF_FREE) {
return buf;
}
}
......@@ -101,7 +101,7 @@ static int i810_freelist_put(drm_device_t *dev, drm_buf_t *buf)
/* In use is already a pointer */
used = cmpxchg(buf_priv->in_use, I810_BUF_CLIENT, I810_BUF_FREE);
if(used != I810_BUF_CLIENT) {
if (used != I810_BUF_CLIENT) {
DRM_ERROR("Freeing buffer thats not in use : %d\n", buf->idx);
return -EINVAL;
}
......@@ -154,7 +154,8 @@ static int i810_map_buffer(drm_buf_t *buf, struct file *filp)
struct file_operations *old_fops;
int retcode = 0;
if(buf_priv->currently_mapped == I810_BUF_MAPPED) return -EINVAL;
if (buf_priv->currently_mapped == I810_BUF_MAPPED)
return -EINVAL;
down_write( &current->mm->mmap_sem );
old_fops = filp->f_op;
......@@ -182,7 +183,7 @@ static int i810_unmap_buffer(drm_buf_t *buf)
drm_i810_buf_priv_t *buf_priv = buf->dev_private;
int retcode = 0;
if(buf_priv->currently_mapped != I810_BUF_MAPPED)
if (buf_priv->currently_mapped != I810_BUF_MAPPED)
return -EINVAL;
down_write(&current->mm->mmap_sem);
......@@ -212,7 +213,7 @@ static int i810_dma_get_buffer(drm_device_t *dev, drm_i810_dma_t *d,
}
retcode = i810_map_buffer(buf, filp);
if(retcode) {
if (retcode) {
i810_freelist_put(dev, buf);
DRM_ERROR("mapbuf failed, retcode %d\n", retcode);
return retcode;
......@@ -244,7 +245,7 @@ int i810_dma_cleanup(drm_device_t *dev)
drm_i810_private_t *dev_priv =
(drm_i810_private_t *) dev->dev_private;
if(dev_priv->ring.virtual_start) {
if (dev_priv->ring.virtual_start) {
DRM(ioremapfree)((void *) dev_priv->ring.virtual_start,
dev_priv->ring.Size, dev);
}
......@@ -289,7 +290,7 @@ static int i810_wait_ring(drm_device_t *dev, int n)
}
iters++;
if(time_before(end, jiffies)) {
if (time_before(end, jiffies)) {
DRM_ERROR("space: %d wanted %d\n", ring->space, n);
DRM_ERROR("lockup\n");
goto out_wait_ring;
......@@ -319,7 +320,7 @@ static int i810_freelist_init(drm_device_t *dev, drm_i810_private_t *dev_priv)
u32 *hw_status = (u32 *)(dev_priv->hw_status_page + my_idx);
int i;
if(dma->buf_count > 1019) {
if (dma->buf_count > 1019) {
/* Not enough space in the status page for the freelist */
return -EINVAL;
}
......@@ -350,28 +351,28 @@ static int i810_dma_initialize(drm_device_t *dev,
list_for_each(list, &dev->maplist->head) {
drm_map_list_t *r_list = list_entry(list, drm_map_list_t, head);
if( r_list->map &&
if (r_list->map &&
r_list->map->type == _DRM_SHM &&
r_list->map->flags & _DRM_CONTAINS_LOCK ) {
dev_priv->sarea_map = r_list->map;
break;
}
}
if(!dev_priv->sarea_map) {
if (!dev_priv->sarea_map) {
dev->dev_private = (void *)dev_priv;
i810_dma_cleanup(dev);
DRM_ERROR("can not find sarea!\n");
return -EINVAL;
}
DRM_FIND_MAP( dev_priv->mmio_map, init->mmio_offset );
if(!dev_priv->mmio_map) {
if (!dev_priv->mmio_map) {
dev->dev_private = (void *)dev_priv;
i810_dma_cleanup(dev);
DRM_ERROR("can not find mmio map!\n");
return -EINVAL;
}
DRM_FIND_MAP( dev_priv->buffer_map, init->buffers_offset );
if(!dev_priv->buffer_map) {
if (!dev_priv->buffer_map) {
dev->dev_private = (void *)dev_priv;
i810_dma_cleanup(dev);
DRM_ERROR("can not find dma buffer map!\n");
......@@ -431,7 +432,7 @@ static int i810_dma_initialize(drm_device_t *dev,
DRM_DEBUG("Enabled hardware status page\n");
/* Now we need to init our freelist */
if(i810_freelist_init(dev, dev_priv) != 0) {
if (i810_freelist_init(dev, dev_priv) != 0) {
dev->dev_private = (void *)dev_priv;
i810_dma_cleanup(dev);
DRM_ERROR("Not enough space in the status page for"
......@@ -467,7 +468,7 @@ int i810_dma_init_compat(drm_i810_init_t *init, unsigned long arg)
/* This is a v1.2 client, just get the v1.2 init data */
DRM_INFO("Using POST v1.2 init.\n");
if(copy_from_user(init, (drm_i810_init_t *)arg,
if (copy_from_user(init, (drm_i810_init_t *)arg,
sizeof(drm_i810_init_t))) {
return -EFAULT;
}
......@@ -1019,7 +1020,7 @@ void i810_reclaim_buffers(struct file *filp)
if (used == I810_BUF_CLIENT)
DRM_DEBUG("reclaimed from client\n");
if(buf_priv->currently_mapped == I810_BUF_MAPPED)
if (buf_priv->currently_mapped == I810_BUF_MAPPED)
buf_priv->currently_mapped = I810_BUF_UNMAPPED;
}
}
......@@ -1031,7 +1032,7 @@ int i810_flush_ioctl(struct inode *inode, struct file *filp,
drm_file_t *priv = filp->private_data;
drm_device_t *dev = priv->dev;
if(!_DRM_LOCK_IS_HELD(dev->lock.hw_lock->lock)) {
if (!_DRM_LOCK_IS_HELD(dev->lock.hw_lock->lock)) {
DRM_ERROR("i810_flush_ioctl called without lock held\n");
return -EINVAL;
}
......@@ -1056,7 +1057,7 @@ int i810_dma_vertex(struct inode *inode, struct file *filp,
if (copy_from_user(&vertex, (drm_i810_vertex_t *)arg, sizeof(vertex)))
return -EFAULT;
if(!_DRM_LOCK_IS_HELD(dev->lock.hw_lock->lock)) {
if (!_DRM_LOCK_IS_HELD(dev->lock.hw_lock->lock)) {
DRM_ERROR("i810_dma_vertex called without lock held\n");
return -EINVAL;
}
......@@ -1064,7 +1065,8 @@ int i810_dma_vertex(struct inode *inode, struct file *filp,
DRM_DEBUG("i810 dma vertex, idx %d used %d discard %d\n",
vertex.idx, vertex.used, vertex.discard);
if(vertex.idx < 0 || vertex.idx > dma->buf_count) return -EINVAL;
if (vertex.idx < 0 || vertex.idx > dma->buf_count)
return -EINVAL;
i810_dma_dispatch_vertex( dev,
dma->buflist[ vertex.idx ],
......@@ -1090,7 +1092,7 @@ int i810_clear_bufs(struct inode *inode, struct file *filp,
if (copy_from_user(&clear, (drm_i810_clear_t *)arg, sizeof(clear)))
return -EFAULT;
if(!_DRM_LOCK_IS_HELD(dev->lock.hw_lock->lock)) {
if (!_DRM_LOCK_IS_HELD(dev->lock.hw_lock->lock)) {
DRM_ERROR("i810_clear_bufs called without lock held\n");
return -EINVAL;
}
......@@ -1114,7 +1116,7 @@ int i810_swap_bufs(struct inode *inode, struct file *filp,
DRM_DEBUG("i810_swap_bufs\n");
if(!_DRM_LOCK_IS_HELD(dev->lock.hw_lock->lock)) {
if (!_DRM_LOCK_IS_HELD(dev->lock.hw_lock->lock)) {
DRM_ERROR("i810_swap_buf called without lock held\n");
return -EINVAL;
}
......@@ -1152,7 +1154,7 @@ int i810_getbuf(struct inode *inode, struct file *filp, unsigned int cmd,
if (copy_from_user(&d, (drm_i810_dma_t *)arg, sizeof(d)))
return -EFAULT;
if(!_DRM_LOCK_IS_HELD(dev->lock.hw_lock->lock)) {
if (!_DRM_LOCK_IS_HELD(dev->lock.hw_lock->lock)) {
DRM_ERROR("i810_dma called without lock held\n");
return -EINVAL;
}
......@@ -1202,7 +1204,7 @@ static void i810_dma_dispatch_mc(drm_device_t *dev, drm_buf_t *buf, int used,
u = cmpxchg(buf_priv->in_use, I810_BUF_CLIENT,
I810_BUF_HARDWARE);
if(u != I810_BUF_CLIENT) {
if (u != I810_BUF_CLIENT) {
DRM_DEBUG("MC found buffer that isn't mine!\n");
}
......@@ -1266,7 +1268,7 @@ int i810_dma_mc(struct inode *inode, struct file *filp,
return -EFAULT;
if(!_DRM_LOCK_IS_HELD(dev->lock.hw_lock->lock)) {
if (!_DRM_LOCK_IS_HELD(dev->lock.hw_lock->lock)) {
DRM_ERROR("i810_dma_mc called without lock held\n");
return -EINVAL;
}
......@@ -1314,7 +1316,7 @@ int i810_fstatus(struct inode *inode, struct file *filp,
drm_device_t *dev = priv->dev;
drm_i810_private_t *dev_priv = (drm_i810_private_t *)dev->dev_private;
if(!_DRM_LOCK_IS_HELD(dev->lock.hw_lock->lock)) {
if (!_DRM_LOCK_IS_HELD(dev->lock.hw_lock->lock)) {
DRM_ERROR("i810_fstatus called without lock held\n");
return -EINVAL;
}
......@@ -1328,7 +1330,7 @@ int i810_ov0_flip(struct inode *inode, struct file *filp,
drm_device_t *dev = priv->dev;
drm_i810_private_t *dev_priv = (drm_i810_private_t *)dev->dev_private;
if(!_DRM_LOCK_IS_HELD(dev->lock.hw_lock->lock)) {
if (!_DRM_LOCK_IS_HELD(dev->lock.hw_lock->lock)) {
DRM_ERROR("i810_ov0_flip called without lock held\n");
return -EINVAL;
}
......@@ -1373,7 +1375,7 @@ int i810_flip_bufs(struct inode *inode, struct file *filp,
DRM_DEBUG("%s\n", __FUNCTION__);
if(!_DRM_LOCK_IS_HELD(dev->lock.hw_lock->lock)) {
if (!_DRM_LOCK_IS_HELD(dev->lock.hw_lock->lock)) {
DRM_ERROR("i810_flip_buf called without lock held\n");
return -EINVAL;
}
......
......@@ -35,9 +35,9 @@
#include <linux/delay.h>
irqreturn_t DRM(dma_service)(int irq, void *device, struct pt_regs *regs)
irqreturn_t DRM(dma_service)( DRM_IRQ_ARGS )
{
drm_device_t *dev = (drm_device_t *)device;
drm_device_t *dev = (drm_device_t *)arg;
drm_i830_private_t *dev_priv = (drm_i830_private_t *)dev->dev_private;
u16 temp;
......
......@@ -81,8 +81,6 @@ static u32 r128_cce_microcode[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
};
int r128_do_wait_for_idle( drm_r128_private_t *dev_priv );
int R128_READ_PLL(drm_device_t *dev, int addr)
{
drm_r128_private_t *dev_priv = dev->dev_private;
......@@ -151,7 +149,7 @@ static int r128_do_wait_for_fifo( drm_r128_private_t *dev_priv, int entries )
return DRM_ERR(EBUSY);
}
int r128_do_wait_for_idle( drm_r128_private_t *dev_priv )
static int r128_do_wait_for_idle( drm_r128_private_t *dev_priv )
{
int i, ret;
......
......@@ -68,19 +68,19 @@
* 1.5 - Add r200 packets to cmdbuf ioctl
* - Add r200 function to init ioctl
* - Add 'scalar2' instruction to cmdbuf
* 1.6 - Add static agp memory manager
* 1.6 - Add static GART memory manager
* Add irq handler (won't be turned on unless X server knows to)
* Add irq ioctls and irq_active getparam.
* Add wait command for cmdbuf ioctl
* Add agp offset query for getparam
* Add GART offset query for getparam
* 1.7 - Add support for cube map registers: R200_PP_CUBIC_FACES_[0..5]
* and R200_PP_CUBIC_OFFSET_F1_[0..5].
* Added packets R200_EMIT_PP_CUBIC_FACES_[0..5] and
* R200_EMIT_PP_CUBIC_OFFSETS_[0..5]. (brian)
* 1.8 - Remove need to call cleanup ioctls on last client exit (keith)
* Add 'GET' queries for starting additional clients on different VT's.
* Add DRM_IOCTL_RADEON_CP_RESUME ioctl.
* 1.9 - Add texture rectangle support for r100.
* 1.9 - Add DRM_IOCTL_RADEON_CP_RESUME ioctl.
* Add texture rectangle support for r100.
*/
#define DRIVER_IOCTLS \
[DRM_IOCTL_NR(DRM_IOCTL_DMA)] = { radeon_cp_buffers, 1, 0 }, \
......@@ -113,7 +113,7 @@
/* When a client dies:
* - Check for and clean up flipped page state
* - Free any alloced agp memory.
* - Free any alloced GART memory.
*
* DRM infrastructure takes care of reclaiming dma buffers.
*/
......@@ -124,7 +124,7 @@ do { \
if ( dev_priv->page_flipping ) { \
radeon_do_cleanup_pageflip( dev ); \
} \
radeon_mem_release( filp, dev_priv->agp_heap ); \
radeon_mem_release( filp, dev_priv->gart_heap ); \
radeon_mem_release( filp, dev_priv->fb_heap ); \
} \
} while (0)
......
This diff is collapsed.
......@@ -214,11 +214,11 @@ typedef union {
#define RADEON_NR_SAREA_CLIPRECTS 12
/* There are 2 heaps (local/AGP). Each region within a heap is a
/* There are 2 heaps (local/GART). Each region within a heap is a
* minimum of 64k, and there are at most 64 of them per heap.
*/
#define RADEON_LOCAL_TEX_HEAP 0
#define RADEON_AGP_TEX_HEAP 1
#define RADEON_GART_TEX_HEAP 1
#define RADEON_NR_TEX_HEAPS 2
#define RADEON_NR_TEX_REGIONS 64
#define RADEON_LOG_TEX_GRANULARITY 16
......@@ -400,7 +400,7 @@ typedef struct drm_radeon_init {
unsigned long sarea_priv_offset;
int is_pci;
int cp_mode;
int agp_size;
int gart_size;
int ring_size;
int usec_timeout;
......@@ -415,7 +415,7 @@ typedef struct drm_radeon_init {
unsigned long ring_offset;
unsigned long ring_rptr_offset;
unsigned long buffers_offset;
unsigned long agp_textures_offset;
unsigned long gart_textures_offset;
} drm_radeon_init_t;
typedef struct drm_radeon_cp_stop {
......@@ -525,18 +525,18 @@ typedef struct drm_radeon_indirect {
/* 1.3: An ioctl to get parameters that aren't available to the 3d
* client any other way.
*/
#define RADEON_PARAM_AGP_BUFFER_OFFSET 1 /* card offset of 1st agp buffer */
#define RADEON_PARAM_GART_BUFFER_OFFSET 1 /* card offset of 1st GART buffer */
#define RADEON_PARAM_LAST_FRAME 2
#define RADEON_PARAM_LAST_DISPATCH 3
#define RADEON_PARAM_LAST_CLEAR 4
/* Added with DRM version 1.6. */
#define RADEON_PARAM_IRQ_NR 5
#define RADEON_PARAM_AGP_BASE 6 /* card offset of agp base */
#define RADEON_PARAM_GART_BASE 6 /* card offset of GART base */
/* Added with DRM version 1.8. */
#define RADEON_PARAM_REGISTER_HANDLE 7 /* for drmMap() */
#define RADEON_PARAM_STATUS_HANDLE 8
#define RADEON_PARAM_SAREA_HANDLE 9
#define RADEON_PARAM_AGP_TEX_HANDLE 10
#define RADEON_PARAM_GART_TEX_HANDLE 10
typedef struct drm_radeon_getparam {
int param;
......@@ -545,14 +545,14 @@ typedef struct drm_radeon_getparam {
/* 1.6: Set up a memory manager for regions of shared memory:
*/
#define RADEON_MEM_REGION_AGP 1
#define RADEON_MEM_REGION_GART 1
#define RADEON_MEM_REGION_FB 2
typedef struct drm_radeon_mem_alloc {
int region;
int alignment;
int size;
int *region_offset; /* offset from start of fb or agp */
int *region_offset; /* offset from start of fb or GART */
} drm_radeon_mem_alloc_t;
typedef struct drm_radeon_mem_free {
......
......@@ -73,9 +73,9 @@ typedef struct drm_radeon_private {
drm_radeon_ring_buffer_t ring;
drm_radeon_sarea_t *sarea_priv;
int agp_size;
u32 agp_vm_start;
unsigned long agp_buffers_offset;
int gart_size;
u32 gart_vm_start;
unsigned long gart_buffers_offset;
int cp_mode;
int cp_running;
......@@ -130,7 +130,7 @@ typedef struct drm_radeon_private {
unsigned long ring_offset;
unsigned long ring_rptr_offset;
unsigned long buffers_offset;
unsigned long agp_textures_offset;
unsigned long gart_textures_offset;
drm_local_map_t *sarea;
drm_local_map_t *fb;
......@@ -138,9 +138,9 @@ typedef struct drm_radeon_private {
drm_local_map_t *cp_ring;
drm_local_map_t *ring_rptr;
drm_local_map_t *buffers;
drm_local_map_t *agp_textures;
drm_local_map_t *gart_textures;
struct mem_block *agp_heap;
struct mem_block *gart_heap;
struct mem_block *fb_heap;
/* SW interrupt */
......
/* radeon_mem.c -- Simple agp/fb memory manager for radeon -*- linux-c -*-
/* radeon_mem.c -- Simple GART/fb memory manager for radeon -*- linux-c -*-
*
* Copyright (C) The Weather Channel, Inc. 2002. All Rights Reserved.
*
......@@ -35,7 +35,7 @@
#include "radeon_drm.h"
#include "radeon_drv.h"
/* Very simple allocator for agp memory, working on a static range
/* Very simple allocator for GART memory, working on a static range
* already mapped into each client's address space.
*/
......@@ -212,8 +212,8 @@ static struct mem_block **get_heap( drm_radeon_private_t *dev_priv,
int region )
{
switch( region ) {
case RADEON_MEM_REGION_AGP:
return &dev_priv->agp_heap;
case RADEON_MEM_REGION_GART:
return &dev_priv->gart_heap;
case RADEON_MEM_REGION_FB:
return &dev_priv->fb_heap;
default:
......
......@@ -893,7 +893,7 @@ static void radeon_cp_dispatch_vertex( drm_device_t *dev,
{
drm_radeon_private_t *dev_priv = dev->dev_private;
drm_radeon_sarea_t *sarea_priv = dev_priv->sarea_priv;
int offset = dev_priv->agp_buffers_offset + buf->offset + prim->start;
int offset = dev_priv->gart_buffers_offset + buf->offset + prim->start;
int numverts = (int)prim->numverts;
int nbox = sarea_priv->nbox;
int i = 0;
......@@ -966,7 +966,7 @@ static void radeon_cp_dispatch_indirect( drm_device_t *dev,
buf->idx, start, end );
if ( start != end ) {
int offset = (dev_priv->agp_buffers_offset
int offset = (dev_priv->gart_buffers_offset
+ buf->offset + start);
int dwords = (end - start + 3) / sizeof(u32);
......@@ -999,7 +999,7 @@ static void radeon_cp_dispatch_indices( drm_device_t *dev,
{
drm_radeon_private_t *dev_priv = dev->dev_private;
drm_radeon_sarea_t *sarea_priv = dev_priv->sarea_priv;
int offset = dev_priv->agp_buffers_offset + prim->offset;
int offset = dev_priv->gart_buffers_offset + prim->offset;
u32 *data;
int dwords;
int i = 0;
......@@ -2159,8 +2159,8 @@ int radeon_cp_getparam( DRM_IOCTL_ARGS )
DRM_DEBUG( "pid=%d\n", DRM_CURRENTPID );
switch( param.param ) {
case RADEON_PARAM_AGP_BUFFER_OFFSET:
value = dev_priv->agp_buffers_offset;
case RADEON_PARAM_GART_BUFFER_OFFSET:
value = dev_priv->gart_buffers_offset;
break;
case RADEON_PARAM_LAST_FRAME:
dev_priv->stats.last_frame_reads++;
......@@ -2176,8 +2176,8 @@ int radeon_cp_getparam( DRM_IOCTL_ARGS )
case RADEON_PARAM_IRQ_NR:
value = dev->irq;
break;
case RADEON_PARAM_AGP_BASE:
value = dev_priv->agp_vm_start;
case RADEON_PARAM_GART_BASE:
value = dev_priv->gart_vm_start;
break;
case RADEON_PARAM_REGISTER_HANDLE:
value = dev_priv->mmio_offset;
......@@ -2189,8 +2189,8 @@ int radeon_cp_getparam( DRM_IOCTL_ARGS )
/* The lock is the first dword in the sarea. */
value = (int)dev->lock.hw_lock;
break;
case RADEON_PARAM_AGP_TEX_HANDLE:
value = dev_priv->agp_textures_offset;
case RADEON_PARAM_GART_TEX_HANDLE:
value = dev_priv->gart_textures_offset;
break;
default:
return DRM_ERR(EINVAL);
......
......@@ -33,7 +33,11 @@
* Name it sisdrv_##x as there's a conflict with sis_free/malloc in the kernel
* that's used for fb devices
*/
#ifdef __linux__
#define DRM(x) sisdrv_##x
#else
#define DRM(x) sis_##x
#endif
/* General customization:
*/
......@@ -45,25 +49,18 @@
#define DRIVER_AUTHOR "SIS"
#define DRIVER_NAME "sis"
#define DRIVER_DESC "SIS 300/630/540"
#define DRIVER_DATE "20010503"
#define DRIVER_DATE "20030826"
#define DRIVER_MAJOR 1
#define DRIVER_MINOR 0
#define DRIVER_MINOR 1
#define DRIVER_PATCHLEVEL 0
#define DRIVER_IOCTLS \
[DRM_IOCTL_NR(SIS_IOCTL_FB_ALLOC)] = { sis_fb_alloc, 1, 0 }, \
[DRM_IOCTL_NR(SIS_IOCTL_FB_FREE)] = { sis_fb_free, 1, 0 }, \
/* AGP Memory Management */ \
[DRM_IOCTL_NR(SIS_IOCTL_AGP_INIT)] = { sisp_agp_init, 1, 0 }, \
[DRM_IOCTL_NR(SIS_IOCTL_AGP_ALLOC)] = { sisp_agp_alloc, 1, 0 }, \
[DRM_IOCTL_NR(SIS_IOCTL_AGP_FREE)] = { sisp_agp_free, 1, 0 }
#if 0 /* these don't appear to be defined */
/* SIS Stereo */
[DRM_IOCTL_NR(DRM_IOCTL_CONTROL)] = { sis_control, 1, 1 },
[DRM_IOCTL_NR(SIS_IOCTL_FLIP)] = { sis_flip, 1, 1 },
[DRM_IOCTL_NR(SIS_IOCTL_FLIP_INIT)] = { sis_flip_init, 1, 1 },
[DRM_IOCTL_NR(SIS_IOCTL_FLIP_FINAL)] = { sis_flip_final, 1, 1 }
#endif
[DRM_IOCTL_NR(DRM_IOCTL_SIS_FB_ALLOC)] = { sis_fb_alloc, 1, 0 }, \
[DRM_IOCTL_NR(DRM_IOCTL_SIS_FB_FREE)] = { sis_fb_free, 1, 0 }, \
[DRM_IOCTL_NR(DRM_IOCTL_SIS_AGP_INIT)] = { sis_ioctl_agp_init, 1, 1 }, \
[DRM_IOCTL_NR(DRM_IOCTL_SIS_AGP_ALLOC)] = { sis_ioctl_agp_alloc, 1, 0 }, \
[DRM_IOCTL_NR(DRM_IOCTL_SIS_AGP_FREE)] = { sis_ioctl_agp_free, 1, 0 }, \
[DRM_IOCTL_NR(DRM_IOCTL_SIS_FB_INIT)] = { sis_fb_init, 1, 1 }
#define __HAVE_COUNTERS 5
......
#ifndef _sis_drm_public_h_
#define _sis_drm_public_h_
#ifndef __SIS_DRM_H__
#define __SIS_DRM_H__
/* SiS specific ioctls */
#define SIS_IOCTL_FB_ALLOC DRM_IOWR(0x44, drm_sis_mem_t)
#define SIS_IOCTL_FB_FREE DRM_IOW( 0x45, drm_sis_mem_t)
#define SIS_IOCTL_AGP_INIT DRM_IOWR(0x53, drm_sis_agp_t)
#define SIS_IOCTL_AGP_ALLOC DRM_IOWR(0x54, drm_sis_mem_t)
#define SIS_IOCTL_AGP_FREE DRM_IOW( 0x55, drm_sis_mem_t)
#define SIS_IOCTL_FLIP DRM_IOW( 0x48, drm_sis_flip_t)
#define SIS_IOCTL_FLIP_INIT DRM_IO( 0x49)
#define SIS_IOCTL_FLIP_FINAL DRM_IO( 0x50)
#define DRM_IOCTL_SIS_FB_ALLOC DRM_IOWR(0x44, drm_sis_mem_t)
#define DRM_IOCTL_SIS_FB_FREE DRM_IOW( 0x45, drm_sis_mem_t)
#define DRM_IOCTL_SIS_AGP_INIT DRM_IOWR(0x53, drm_sis_agp_t)
#define DRM_IOCTL_SIS_AGP_ALLOC DRM_IOWR(0x54, drm_sis_mem_t)
#define DRM_IOCTL_SIS_AGP_FREE DRM_IOW( 0x55, drm_sis_mem_t)
#define DRM_IOCTL_SIS_FB_INIT DRM_IOW( 0x56, drm_sis_fb_t)
/*
#define DRM_IOCTL_SIS_FLIP DRM_IOW( 0x48, drm_sis_flip_t)
#define DRM_IOCTL_SIS_FLIP_INIT DRM_IO( 0x49)
#define DRM_IOCTL_SIS_FLIP_FINAL DRM_IO( 0x50)
*/
typedef struct {
int context;
unsigned int offset;
unsigned int size;
unsigned int free;
unsigned long free;
} drm_sis_mem_t;
typedef struct {
......@@ -24,23 +27,7 @@ typedef struct {
} drm_sis_agp_t;
typedef struct {
unsigned int left, right;
} drm_sis_flip_t;
#ifdef __KERNEL__
int sis_fb_alloc(struct inode *inode, struct file *filp, unsigned int cmd,
unsigned long arg);
int sis_fb_free(struct inode *inode, struct file *filp, unsigned int cmd,
unsigned long arg);
int sisp_agp_init(struct inode *inode, struct file *filp, unsigned int cmd,
unsigned long arg);
int sisp_agp_alloc(struct inode *inode, struct file *filp, unsigned int cmd,
unsigned long arg);
int sisp_agp_free(struct inode *inode, struct file *filp, unsigned int cmd,
unsigned long arg);
#endif
unsigned int offset, size;
} drm_sis_fb_t;
#endif
#endif /* __SIS_DRM_H__ */
......@@ -28,18 +28,20 @@
#ifndef _SIS_DRV_H_
#define _SIS_DRV_H_
#include "sis_ds.h"
typedef struct drm_sis_private {
drm_map_t *buffers;
} drm_sis_private_t;
/* Stereo ? - this was never committed */
memHeap_t *AGPHeap;
memHeap_t *FBHeap;
} drm_sis_private_t;
int sis_flip(struct inode *inode, struct file *filp, unsigned int cmd,
unsigned long arg);
int sis_flip_init(struct inode *inode, struct file *filp, unsigned int cmd,
unsigned long arg);
int sis_flip_final(struct inode *inode, struct file *filp, unsigned int cmd,
unsigned long arg);
void flip_final(void);
extern int sis_fb_alloc( DRM_IOCTL_ARGS );
extern int sis_fb_free( DRM_IOCTL_ARGS );
extern int sis_ioctl_agp_init( DRM_IOCTL_ARGS );
extern int sis_ioctl_agp_alloc( DRM_IOCTL_ARGS );
extern int sis_ioctl_agp_free( DRM_IOCTL_ARGS );
extern int sis_fb_init( DRM_IOCTL_ARGS );
#endif
......@@ -28,15 +28,9 @@
*
*/
#include <linux/module.h>
#include <linux/delay.h>
#include <linux/errno.h>
#include <linux/kernel.h>
#include <linux/slab.h>
#include <linux/poll.h>
#include <asm/io.h>
#include <linux/pci.h>
#include "sis.h"
#include "drmP.h"
#include "drm.h"
#include "sis_ds.h"
/* Set Data Structure, not check repeated value
......@@ -48,10 +42,10 @@ set_t *setInit(void)
int i;
set_t *set;
set = (set_t *)MALLOC(sizeof(set_t));
if (set) {
for(i = 0; i < SET_SIZE; i++){
set->list[i].free_next = i+1;
set = (set_t *)DRM(alloc)(sizeof(set_t), DRM_MEM_DRIVER);
if (set != NULL) {
for (i = 0; i < SET_SIZE; i++) {
set->list[i].free_next = i + 1;
set->list[i].alloc_next = -1;
}
set->list[SET_SIZE-1].free_next = -1;
......@@ -66,11 +60,10 @@ int setAdd(set_t *set, ITEM_TYPE item)
{
int free = set->free;
if(free != -1){
if (free != -1) {
set->list[free].val = item;
set->free = set->list[free].free_next;
}
else{
} else {
return 0;
}
......@@ -86,10 +79,11 @@ int setDel(set_t *set, ITEM_TYPE item)
int alloc = set->alloc;
int prev = -1;
while(alloc != -1){
if(set->list[alloc].val == item){
if(prev != -1)
set->list[prev].alloc_next = set->list[alloc].alloc_next;
while (alloc != -1) {
if (set->list[alloc].val == item) {
if (prev != -1)
set->list[prev].alloc_next =
set->list[alloc].alloc_next;
else
set->alloc = set->list[alloc].alloc_next;
break;
......@@ -98,7 +92,7 @@ int setDel(set_t *set, ITEM_TYPE item)
alloc = set->list[alloc].alloc_next;
}
if(alloc == -1)
if (alloc == -1)
return 0;
set->list[alloc].free_next = set->free;
......@@ -112,7 +106,7 @@ int setDel(set_t *set, ITEM_TYPE item)
int setFirst(set_t *set, ITEM_TYPE *item)
{
if(set->alloc == -1)
if (set->alloc == -1)
return 0;
*item = set->list[set->alloc].val;
......@@ -123,7 +117,7 @@ int setFirst(set_t *set, ITEM_TYPE *item)
int setNext(set_t *set, ITEM_TYPE *item)
{
if(set->trace == -1)
if (set->trace == -1)
return 0;
*item = set->list[set->trace].val;
......@@ -134,7 +128,7 @@ int setNext(set_t *set, ITEM_TYPE *item)
int setDestroy(set_t *set)
{
FREE(set);
DRM(free)(set, sizeof(set_t), DRM_MEM_DRIVER);
return 1;
}
......@@ -165,48 +159,16 @@ int setDestroy(set_t *set)
#define ISFREE(bptr) ((bptr)->free)
#define PRINTF(fmt, arg...) do{}while(0)
#define fprintf(fmt, arg...) do{}while(0)
static void *calloc(size_t nmemb, size_t size)
{
void *addr;
addr = kmalloc(nmemb*size, GFP_KERNEL);
if (addr)
memset(addr, 0, nmemb*size);
return addr;
}
#define free(n) kfree(n)
void mmDumpMemInfo( memHeap_t *heap )
{
TMemBlock *p;
PRINTF ("Memory heap %p:\n", heap);
if (heap == 0) {
PRINTF (" heap == 0\n");
} else {
p = (TMemBlock *)heap;
while (p) {
PRINTF (" Offset:%08x, Size:%08x, %c%c\n",p->ofs,p->size,
p->free ? '.':'U',
p->reserved ? 'R':'.');
p = p->next;
}
}
PRINTF ("End of memory blocks\n");
}
memHeap_t *mmInit(int ofs,
int size)
{
PMemBlock blocks;
if (size <= 0) {
if (size <= 0)
return 0;
}
blocks = (TMemBlock *) calloc(1,sizeof(TMemBlock));
if (blocks) {
blocks = (TMemBlock *)DRM(calloc)(1, sizeof(TMemBlock), DRM_MEM_DRIVER);
if (blocks != NULL) {
blocks->ofs = ofs;
blocks->size = size;
blocks->free = 1;
......@@ -215,6 +177,24 @@ memHeap_t *mmInit(int ofs,
return 0;
}
/* Checks if a pointer 'b' is part of the heap 'heap' */
int mmBlockInHeap(memHeap_t *heap, PMemBlock b)
{
TMemBlock *p;
if (heap == NULL || b == NULL)
return 0;
p = heap;
while (p != NULL && p != b) {
p = p->next;
}
if (p == b)
return 1;
else
return 0;
}
/* Kludgey workaround for existing i810 server. Remove soon.
*/
memHeap_t *mmAddRange( memHeap_t *heap,
......@@ -222,23 +202,22 @@ memHeap_t *mmAddRange( memHeap_t *heap,
int size )
{
PMemBlock blocks;
blocks = (TMemBlock *) calloc(2,sizeof(TMemBlock));
if (blocks) {
blocks = (TMemBlock *)DRM(calloc)(2, sizeof(TMemBlock), DRM_MEM_DRIVER);
if (blocks != NULL) {
blocks[0].size = size;
blocks[0].free = 1;
blocks[0].ofs = ofs;
blocks[0].next = &blocks[1];
/* Discontinuity - stops JoinBlock from trying to join non-adjacent
* ranges.
/* Discontinuity - stops JoinBlock from trying to join
* non-adjacent ranges.
*/
blocks[1].size = 0;
blocks[1].free = 0;
blocks[1].ofs = ofs+size;
blocks[1].next = (PMemBlock) heap;
blocks[1].next = (PMemBlock)heap;
return (memHeap_t *)blocks;
}
else
} else
return heap;
}
......@@ -250,7 +229,8 @@ static TMemBlock* SliceBlock(TMemBlock *p,
/* break left */
if (startofs > p->ofs) {
newblock = (TMemBlock*) calloc(1,sizeof(TMemBlock));
newblock = (TMemBlock*) DRM(calloc)(1, sizeof(TMemBlock),
DRM_MEM_DRIVER);
newblock->ofs = startofs;
newblock->size = p->size - (startofs - p->ofs);
newblock->free = 1;
......@@ -262,7 +242,8 @@ static TMemBlock* SliceBlock(TMemBlock *p,
/* break right */
if (size < p->size) {
newblock = (TMemBlock*) calloc(1,sizeof(TMemBlock));
newblock = (TMemBlock*) DRM(calloc)(1, sizeof(TMemBlock),
DRM_MEM_DRIVER);
newblock->ofs = startofs + size;
newblock->size = p->size - size;
newblock->free = 1;
......@@ -280,15 +261,16 @@ static TMemBlock* SliceBlock(TMemBlock *p,
PMemBlock mmAllocMem( memHeap_t *heap, int size, int align2, int startSearch)
{
int mask,startofs,endofs;
int mask,startofs, endofs;
TMemBlock *p;
if (!heap || align2 < 0 || size <= 0)
if (heap == NULL || align2 < 0 || size <= 0)
return NULL;
mask = (1 << align2)-1;
startofs = 0;
p = (TMemBlock *)heap;
while (p) {
while (p != NULL) {
if (ISFREE(p)) {
startofs = (p->ofs + mask) & ~mask;
if ( startofs < startSearch ) {
......@@ -300,7 +282,7 @@ PMemBlock mmAllocMem( memHeap_t *heap, int size, int align2, int startSearch)
}
p = p->next;
}
if (!p)
if (p == NULL)
return NULL;
p = SliceBlock(p,startofs,size,0,mask+1);
p->heap = heap;
......@@ -313,7 +295,7 @@ static __inline__ int Join2Blocks(TMemBlock *p)
TMemBlock *q = p->next;
p->size += q->size;
p->next = q->next;
free(q);
DRM(free)(q, sizeof(TMemBlock), DRM_MEM_DRIVER);
return 1;
}
return 0;
......@@ -321,29 +303,22 @@ static __inline__ int Join2Blocks(TMemBlock *p)
int mmFreeMem(PMemBlock b)
{
TMemBlock *p,*prev;
TMemBlock *p, *prev;
if (!b)
if (b == NULL)
return 0;
if (!b->heap) {
fprintf(stderr, "no heap\n");
if (b->heap == NULL)
return -1;
}
p = b->heap;
prev = NULL;
while (p && p != b) {
while (p != NULL && p != b) {
prev = p;
p = p->next;
}
if (!p || p->free || p->reserved) {
if (!p)
fprintf(stderr, "block not found in heap\n");
else if (p->free)
fprintf(stderr, "block already free\n");
else
fprintf(stderr, "block is reserved\n");
if (p == NULL || p->free || p->reserved)
return -1;
}
p->free = 1;
Join2Blocks(p);
if (prev)
......@@ -356,9 +331,10 @@ int mmReserveMem(memHeap_t *heap, int offset,int size)
int endofs;
TMemBlock *p;
if (!heap || size <= 0)
if (heap == NULL || size <= 0)
return -1;
endofs = offset+size;
endofs = offset + size;
p = (TMemBlock *)heap;
while (p && p->ofs <= offset) {
if (ISFREE(p) && endofs <= (p->ofs+p->size)) {
......@@ -374,20 +350,22 @@ int mmFreeReserved(memHeap_t *heap, int offset)
{
TMemBlock *p,*prev;
if (!heap)
if (heap == NULL)
return -1;
p = (TMemBlock *)heap;
prev = NULL;
while (p && p->ofs != offset) {
while (p != NULL && p->ofs != offset) {
prev = p;
p = p->next;
}
if (!p || !p->reserved)
if (p == NULL || !p->reserved)
return -1;
p->free = 1;
p->reserved = 0;
Join2Blocks(p);
if (prev)
if (prev != NULL)
Join2Blocks(prev);
return 0;
}
......@@ -396,12 +374,13 @@ void mmDestroy(memHeap_t *heap)
{
TMemBlock *p,*q;
if (!heap)
if (heap == NULL)
return;
p = (TMemBlock *)heap;
while (p) {
while (p != NULL) {
q = p->next;
free(p);
DRM(free)(p, sizeof(TMemBlock), DRM_MEM_DRIVER);
p = q;
}
}
......@@ -28,14 +28,12 @@
*
*/
#ifndef _sis_ds_h_
#define _sis_ds_h_
#ifndef __SIS_DS_H__
#define __SIS_DS_H__
/* Set Data Structure */
#define SET_SIZE 5000
#define MALLOC(s) kmalloc(s, GFP_KERNEL)
#define FREE(s) kfree(s)
typedef unsigned int ITEM_TYPE;
......@@ -58,8 +56,6 @@ int setFirst(set_t *set, ITEM_TYPE *item);
int setNext(set_t *set, ITEM_TYPE *item);
int setDestroy(set_t *set);
#endif
/*
* GLX Hardware Device Driver common code
* Copyright (C) 1999 Keith Whitwell
......@@ -84,9 +80,6 @@ int setDestroy(set_t *set);
*
*/
#ifndef MM_INC
#define MM_INC
struct mem_block_t {
struct mem_block_t *next;
struct mem_block_t *heap;
......@@ -102,13 +95,19 @@ typedef struct mem_block_t *PMemBlock;
typedef struct mem_block_t memHeap_t;
static __inline__ int mmBlockSize(PMemBlock b)
{ return b->size; }
{
return b->size;
}
static __inline__ int mmOffset(PMemBlock b)
{ return b->ofs; }
{
return b->ofs;
}
static __inline__ void mmMarkReserved(PMemBlock b)
{ b->reserved = 1; }
{
b->reserved = 1;
}
/*
* input: total size in bytes
......@@ -116,13 +115,10 @@ static __inline__ void mmMarkReserved(PMemBlock b)
*/
memHeap_t *mmInit( int ofs, int size );
memHeap_t *mmAddRange( memHeap_t *heap,
int ofs,
int size );
/*
* Allocate 'size' bytes with 2^align2 bytes alignment,
* restrict the search to free memory after 'startSearch'
......@@ -135,6 +131,11 @@ memHeap_t *mmAddRange( memHeap_t *heap,
*/
PMemBlock mmAllocMem( memHeap_t *heap, int size, int align2, int startSearch );
/*
* Returns 1 if the block 'b' is part of the heap 'heap'
*/
int mmBlockInHeap( PMemBlock heap, PMemBlock b );
/*
* Free block starts at offset
* input: pointer to a block
......@@ -160,4 +161,4 @@ void mmDestroy( memHeap_t *mmInit );
/* For debuging purpose. */
void mmDumpMemInfo( memHeap_t *mmInit );
#endif
#endif /* __SIS_DS_H__ */
This diff is collapsed.
......@@ -14,11 +14,8 @@ config ZFTAPE
interface (i.e. the hardware independent part of the driver) has
been moved to a separate module.
If you say M zftape will be compiled as a runtime loadable
module ( = code which can be inserted in and removed from the
running kernel whenever you want). In this case you should read
<file:Documentation/modules.txt>. The module will be called
zftape.
To compile this driver as a module, choose M here: the
module will be called zftape.
Regardless of whether you say Y or M here, an additional runtime
loadable module called `zft-compressor' which contains code to
......
......@@ -46,11 +46,8 @@ config SOFT_WATCHDOG
from some situations that the hardware watchdog will recover
from. Equally it's a lot cheaper to install.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
If you want to compile it as a module, say M here and read
<file:Documentation/modules.txt>. The module will be called
softdog.
To compile this driver as a module, choose M here: the
module will be called softdog.
config WDT
tristate "WDT Watchdog timer"
......@@ -63,10 +60,8 @@ config WDT
documentation of your boot loader (lilo or loadlin) about how to
pass options to the kernel at boot time).
If you want to compile this as a module ( = code which can be
inserted in and removed from the running kernel whenever you want),
say M here and read <file:Documentation/modules.txt>. The module
will be called wdt.
To compile this driver as a module, choose M here: the
module will be called wdt.
config WDT_501
bool "WDT501 features"
......@@ -97,10 +92,8 @@ config WDTPCI
boot loader (lilo or loadlin) about how to pass options to the
kernel at boot time).
If you want to compile this as a module ( = code which can be
inserted in and removed from the running kernel whenever you want),
say M here and read <file:Documentation/modules.txt>. The module
will be called wdt_pci.
To compile this driver as a module, choose M here: the
module will be called wdt_pci.
config WDT_501_PCI
bool "WDT501-PCI features"
......@@ -124,10 +117,8 @@ config PCWATCHDOG
hardware. Please read <file:Documentation/pcwd-watchdog.txt>. The PC
watchdog cards can be ordered from <http://www.berkprod.com/>.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module is called pcwd. If you want to compile it as a module,
say M here and read <file:Documentation/modules.txt>.
To compile this driver as a module, choose M here: the
module will be called pcwd.
Most people will say N.
......@@ -139,13 +130,12 @@ config ACQUIRE_WDT
Board Computer produced by Acquire Inc (and others). This watchdog
simply watches your kernel to make sure it doesn't freeze, and if
it does, it reboots your computer after a certain amount of time.
This driver is like the WDT501 driver but for different hardware.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module is called acquirewdt. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>. Most
people will say N.
To compile this driver as a module, choose M here: the
module will be called acquirewdt.
Most people will say N.
config ADVANTECH_WDT
tristate "Advantech SBC Watchdog Timer"
......@@ -187,10 +177,8 @@ config SA1100_WATCHDOG
system when timeout is reached.
NOTE, that once enabled, this timer cannot be disabled.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
If you want to compile it as a module, say M here and read
<file:Documentation/modules.txt>. The module will be called sa1100_wdt.
To compile this driver as a module, choose M here: the
module will be called sa1100_wdt.
config EUROTECH_WDT
tristate "Eurotech CPU-1220/1410 Watchdog Timer"
......@@ -211,11 +199,10 @@ config IB700_WDT
This driver is like the WDT501 driver but for slightly different hardware.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module is called ib700wdt. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>. Most people
will say N.
To compile this driver as a module, choose M here: the
module will be called ib700wdt.
Most people will say N.
config I810_TCO
tristate "Intel i8xx TCO timer / Watchdog"
......@@ -234,9 +221,8 @@ config I810_TCO
machine. If this is the case you will get a kernel message like
"i810tco init: failed to reset NO_REBOOT flag".
If you want to compile this as a module, say M and read
<file:Documentation/modules.txt>. The module will be called
i810-tco.
To compile this driver as a module, choose M here: the
module will be called i810-tco.
config MIXCOMWD
tristate "Mixcom Watchdog"
......@@ -247,11 +233,10 @@ config MIXCOMWD
and if it does, it reboots your computer after a certain amount of
time.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module is called mixcomwd. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>. Most
people will say N.
To compile this driver as a module, choose M here: the
module will be called mixcomwd.
Most people will say N.
config SCx200_WDT
tristate "NatSemi SCx200 Watchdog"
......@@ -286,11 +271,10 @@ config W83877F_WDT
and if it does, it reboots your computer after a certain amount of
time.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module is called w83877f_wdt. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>. Most
people will say N.
To compile this driver as a module, choose M here: the
module will be called w83877f_wdt.
Most people will say N.
config MACHZ_WDT
tristate "ZF MachZ Watchdog"
......@@ -302,10 +286,8 @@ config MACHZ_WDT
your kernel to make sure it doesn't freeze, and if it does, it
reboots your computer after a certain amount of time.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module is called machzwd. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
To compile this driver as a module, choose M here: the
module will be called machzwd.
config SC520_WDT
tristate "AMD Elan SC520 processor Watchdog"
......@@ -340,11 +322,10 @@ config ALIM7101_WDT
This is the driver for the hardware watchdog on the ALi M7101 PMU
as used in the x86 Cobalt servers.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module is called alim7101_wdt. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>. Most
people will say N.
To compile this driver as a module, choose M here: the
module will be called alim7101_wdt.
Most people will say N.
config ALIM1535_WDT
tristate "ALi M1535 PMU Watchdog Timer"
......@@ -352,11 +333,10 @@ config ALIM1535_WDT
---help---
This is the driver for the hardware watchdog on the ALi M1535 PMU.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module is called alim1535_wdt. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>. Most
people will say N.
To compile this driver as a module, choose M here: the
module will be called alim1535_wdt.
Most people will say N.
config SC1200_WDT
tristate "National Semiconductor PC87307/PC97307 (ala SC1200) Watchdog"
......@@ -367,11 +347,10 @@ config SC1200_WDT
for power management purposes and can be used to power down the device
during inactivity periods (includes interrupt activity monitoring).
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module is called sc1200wdt. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>. Most
people will say N.
To compile this driver as a module, choose M here: the
module will be called sc1200wdt.
Most people will say N.
config WAFER_WDT
tristate "ICP Wafer 5823 Single Board Computer Watchdog"
......@@ -380,20 +359,15 @@ config WAFER_WDT
This is a driver for the hardware watchdog on the ICP Wafer 5823
Single Board Computer (and probably other similar models).
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
If you want to compile it as a module, say M here and read
<file:Documentation/modules.txt>. The module will be called
wafer5823wdt.
To compile this driver as a module, choose M here: the
module will be called wafer5823wdt.
config CPU5_WDT
tristate "SMA CPU5 Watchdog"
depends on WATCHDOG
---help---
TBD.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module is called cpu5wdt. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
To compile this driver as a module, choose M here: the
module will be called cpu5wdt.
endmenu
......@@ -33,10 +33,8 @@ config FC4_SOC
that if you have older firmware in the card, you'll need the
microcode from the Solaris driver to make it work.
This support is also available as a module called soc ( = code
which can be inserted in and removed from the running kernel
whenever you want). If you want to compile it as a module, say M
here and read <file:Documentation/modules.txt>.
To compile this support as a module, choose M here: the module will
be called soc.
config FC4_SOCAL
tristate "Sun SOC+ (aka SOCAL)"
......@@ -48,10 +46,8 @@ config FC4_SOCAL
Interface Board). You'll probably need the microcode from the
Solaris driver to make it work.
This support is also available as a module called socal ( = code
which can be inserted in and removed from the running kernel
whenever you want). If you want to compile it as a module, say M
here and read <file:Documentation/modules.txt>.
To compile this support as a module, choose M here: the module will
be called socal.
comment "FC4 targets"
depends on FC4
......@@ -62,10 +58,8 @@ config SCSI_PLUTO
help
If you never bought a disk array made by Sun, go with N.
This support is also available as a module called pluto ( = code
which can be inserted in and removed from the running kernel
whenever you want). If you want to compile it as a module, say M
here and read <file:Documentation/modules.txt>.
To compile this support as a module, choose M here: the module will
be called pluto.
config SCSI_FCAL
tristate "Sun Enterprise Network Array (A5000 and EX500)" if SPARC32 || SPARC64
......@@ -76,10 +70,8 @@ config SCSI_FCAL
common is either A5000 array or internal disks in E[3-6]000
machines.
This support is also available as a module called fcal ( = code
which can be inserted in and removed from the running kernel
whenever you want). If you want to compile it as a module, say M
here and read <file:Documentation/modules.txt>. If unsure, say N.
To compile this support as a module, choose M here: the module will
be called fcal.
config SCSI_FCAL
prompt "Generic FC-AL disk driver"
......
......@@ -37,43 +37,7 @@ config I2C_CHARDEV
This support is also available as a module. If so, the module
will be called i2c-dev.
config I2C_ALGOBIT
tristate "I2C bit-banging interfaces"
depends on I2C
help
This allows you to use a range of I2C adapters called bit-banging
adapters. Say Y if you own an I2C adapter belonging to this class
and then say Y to the specific driver for you adapter below.
This support is also available as a module. If so, the module
will be called i2c-algo-bit.
config I2C_ALGOPCF
tristate "I2C PCF 8584 interfaces"
depends on I2C
help
This allows you to use a range of I2C adapters called PCF adapters.
Say Y if you own an I2C adapter belonging to this class and then say
Y to the specific driver for you adapter below.
This support is also available as a module. If so, the module
will be called i2c-algo-pcf.
config I2C_ALGOITE
tristate "ITE I2C Algorithm"
depends on MIPS_ITE8172 && I2C
help
This supports the use of the ITE8172 I2C interface found on some MIPS
systems. Say Y if you have one of these. You should also say Y for
the ITE I2C peripheral driver support below.
This support is also available as a module. If so, the module
will be called i2c-algo-ite.
config I2C_ALGO8XX
tristate "MPC8xx CPM I2C interface"
depends on 8xx && I2C
source drivers/i2c/algos/Kconfig
source drivers/i2c/busses/Kconfig
source drivers/i2c/chips/Kconfig
......
......@@ -5,7 +5,4 @@
obj-$(CONFIG_I2C) += i2c-core.o
obj-$(CONFIG_I2C_CHARDEV) += i2c-dev.o
obj-$(CONFIG_I2C_SENSOR) += i2c-sensor.o
obj-$(CONFIG_I2C_ALGOBIT) += i2c-algo-bit.o
obj-$(CONFIG_I2C_ALGOPCF) += i2c-algo-pcf.o
obj-$(CONFIG_I2C_ALGOITE) += i2c-algo-ite.o
obj-y += busses/ chips/
obj-y += busses/ chips/ algos/
#
# Character device configuration
#
menu "I2C Algorithms"
config I2C_ALGOBIT
tristate "I2C bit-banging interfaces"
depends on I2C
help
This allows you to use a range of I2C adapters called bit-banging
adapters. Say Y if you own an I2C adapter belonging to this class
and then say Y to the specific driver for you adapter below.
This support is also available as a module. If so, the module
will be called i2c-algo-bit.
config I2C_ALGOPCF
tristate "I2C PCF 8584 interfaces"
depends on I2C
help
This allows you to use a range of I2C adapters called PCF adapters.
Say Y if you own an I2C adapter belonging to this class and then say
Y to the specific driver for you adapter below.
This support is also available as a module. If so, the module
will be called i2c-algo-pcf.
config I2C_ALGOITE
tristate "ITE I2C Algorithm"
depends on MIPS_ITE8172 && I2C
help
This supports the use of the ITE8172 I2C interface found on some MIPS
systems. Say Y if you have one of these. You should also say Y for
the ITE I2C peripheral driver support below.
This support is also available as a module. If so, the module
will be called i2c-algo-ite.
config I2C_ALGO8XX
tristate "MPC8xx CPM I2C interface"
depends on 8xx && I2C
endmenu
#
# Makefile for the i2c algorithms
#
obj-$(CONFIG_I2C_ALGOBIT) += i2c-algo-bit.o
obj-$(CONFIG_I2C_ALGOPCF) += i2c-algo-pcf.o
obj-$(CONFIG_I2C_ALGOITE) += i2c-algo-ite.o
......@@ -46,7 +46,7 @@
#include <linux/i2c.h>
#include <linux/i2c-algo-ite.h>
#include "i2c-ite.h"
#include "i2c-algo-ite.h"
#define PM_DSR IT8172_PCI_IO_BASE + IT_PM_DSR
#define PM_IBSR IT8172_PCI_IO_BASE + IT_PM_DSR + 0x04
......
......@@ -37,7 +37,7 @@
#include <linux/errno.h>
#include <linux/i2c.h>
#include <linux/i2c-algo-pcf.h>
#include "i2c-pcf8584.h"
#include "i2c-algo-pcf.h"
/* ----- global defines ----------------------------------------------- */
......
......@@ -41,7 +41,7 @@
#include <asm/io.h>
#include <asm/irq.h>
#include "../i2c-pcf8584.h"
#include "../algos/i2c-algo-pcf.h"
#define DEFAULT_BASE 0x330
......
......@@ -21,6 +21,18 @@ config SENSORS_ADM1021
This driver can also be built as a module. If so, the module
will be called adm1021.
config SENSORS_EEPROM
tristate "EEPROM (DIMM) reader"
depends on I2C && EXPERIMENTAL
select I2C_SENSOR
help
If you say yes here you get read-only access to the EEPROM data
available on modern memory DIMMs, and which could theoretically
also be available on other devices.
This driver can also be built as a module. If so, the module
will be called eeprom.
config SENSORS_IT87
tristate "National Semiconductors IT87 and compatibles"
depends on I2C && EXPERIMENTAL
......
......@@ -6,6 +6,7 @@
obj-$(CONFIG_SENSORS_W83781D) += w83781d.o
obj-$(CONFIG_SENSORS_ADM1021) += adm1021.o
obj-$(CONFIG_SENSORS_EEPROM) += eeprom.o
obj-$(CONFIG_SENSORS_IT87) += it87.o
obj-$(CONFIG_SENSORS_LM75) += lm75.o
obj-$(CONFIG_SENSORS_LM78) += lm78.o
......
/*
eeprom.c - Part of lm_sensors, Linux kernel modules for hardware
monitoring
Copyright (C) 1998, 1999 Frodo Looijaard <frodol@dds.nl> and
Philip Edelbrock <phil@netroedge.com>
Copyright (C) 2003 Greg Kroah-Hartman <greg@kroah.com>
Copyright (C) 2003 IBM Corp.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/* #define DEBUG */
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/module.h>
#include <linux/slab.h>
#include <linux/i2c.h>
#include <linux/i2c-sensor.h>
/* Addresses to scan */
static unsigned short normal_i2c[] = { I2C_CLIENT_END };
static unsigned short normal_i2c_range[] = { 0x50, 0x57, I2C_CLIENT_END };
static unsigned int normal_isa[] = { I2C_CLIENT_ISA_END };
static unsigned int normal_isa_range[] = { I2C_CLIENT_ISA_END };
/* Insmod parameters */
SENSORS_INSMOD_1(eeprom);
static int checksum = 0;
MODULE_PARM(checksum, "i");
MODULE_PARM_DESC(checksum, "Only accept eeproms whose checksum is correct");
/* EEPROM registers */
#define EEPROM_REG_CHECKSUM 0x3f
/* Size of EEPROM in bytes */
#define EEPROM_SIZE 256
/* possible types of eeprom devices */
enum eeprom_nature {
UNKNOWN,
VAIO,
};
/* Each client has this additional data */
struct eeprom_data {
struct semaphore update_lock;
char valid; /* !=0 if following fields are valid */
unsigned long last_updated; /* In jiffies */
u8 data[EEPROM_SIZE]; /* Register values */
};
static int eeprom_attach_adapter(struct i2c_adapter *adapter);
static int eeprom_detect(struct i2c_adapter *adapter, int address, int kind);
static int eeprom_detach_client(struct i2c_client *client);
/* This is the driver that will be inserted */
static struct i2c_driver eeprom_driver = {
.owner = THIS_MODULE,
.name = "eeprom",
.id = I2C_DRIVERID_EEPROM,
.flags = I2C_DF_NOTIFY,
.attach_adapter = eeprom_attach_adapter,
.detach_client = eeprom_detach_client,
};
static int eeprom_id = 0;
static void eeprom_update_client(struct i2c_client *client)
{
struct eeprom_data *data = i2c_get_clientdata(client);
int i, j;
down(&data->update_lock);
if ((jiffies - data->last_updated > 300 * HZ) |
(jiffies < data->last_updated) || !data->valid) {
dev_dbg(&client->dev, "Starting eeprom update\n");
if (i2c_check_functionality(client->adapter, I2C_FUNC_SMBUS_READ_I2C_BLOCK)) {
for (i=0; i < EEPROM_SIZE; i += I2C_SMBUS_I2C_BLOCK_MAX)
if (i2c_smbus_read_i2c_block_data(client, i, data->data + i) != I2C_SMBUS_I2C_BLOCK_MAX)
goto exit;
} else {
if (i2c_smbus_write_byte(client, 0)) {
dev_dbg(&client->dev, "eeprom read start has failed!\n");
goto exit;
}
for (i = 0; i < EEPROM_SIZE; i++) {
j = i2c_smbus_read_byte(client);
if (j < 0)
goto exit;
data->data[i] = (u8) j;
}
}
data->last_updated = jiffies;
data->valid = 1;
}
exit:
up(&data->update_lock);
}
static ssize_t eeprom_read(struct kobject *kobj, char *buf, loff_t off, size_t count)
{
struct i2c_client *client = to_i2c_client(container_of(kobj, struct device, kobj));
struct eeprom_data *data = i2c_get_clientdata(client);
eeprom_update_client(client);
if (off > EEPROM_SIZE)
return 0;
if (off + count > EEPROM_SIZE)
count = EEPROM_SIZE - off;
memcpy(buf, &data->data[off], count);
return count;
}
static struct bin_attribute eeprom_attr = {
.attr = {
.name = "eeprom",
.mode = S_IRUGO,
},
.size = EEPROM_SIZE,
.read = eeprom_read,
};
static int eeprom_attach_adapter(struct i2c_adapter *adapter)
{
return i2c_detect(adapter, &addr_data, eeprom_detect);
}
/* This function is called by i2c_detect */
int eeprom_detect(struct i2c_adapter *adapter, int address, int kind)
{
int i, cs;
struct i2c_client *new_client;
struct eeprom_data *data;
enum eeprom_nature nature = UNKNOWN;
int err = 0;
/* Make sure we aren't probing the ISA bus!! This is just a safety check
at this moment; i2c_detect really won't call us. */
#ifdef DEBUG
if (i2c_is_isa_adapter(adapter)) {
dev_dbg(&adapter->dev, " eeprom_detect called for an ISA bus adapter?!?\n");
return 0;
}
#endif
if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_BYTE_DATA))
goto exit;
/* OK. For now, we presume we have a valid client. We now create the
client structure, even though we cannot fill it completely yet.
But it allows us to access eeprom_{read,write}_value. */
if (!(new_client = kmalloc(sizeof(struct i2c_client) +
sizeof(struct eeprom_data),
GFP_KERNEL))) {
err = -ENOMEM;
goto exit;
}
memset(new_client, 0x00, sizeof(struct i2c_client) +
sizeof(struct eeprom_data));
data = (struct eeprom_data *) (new_client + 1);
memset(data, 0xff, EEPROM_SIZE);
i2c_set_clientdata(new_client, data);
new_client->addr = address;
new_client->adapter = adapter;
new_client->driver = &eeprom_driver;
new_client->flags = 0;
/* Now, we do the remaining detection. It is not there, unless you force
the checksum to work out. */
if (checksum) {
/* prevent 24RF08 corruption */
i2c_smbus_write_quick(new_client, 0);
cs = 0;
for (i = 0; i <= 0x3e; i++)
cs += i2c_smbus_read_byte_data(new_client, i);
cs &= 0xff;
if (i2c_smbus_read_byte_data (new_client, EEPROM_REG_CHECKSUM) != cs)
goto exit_kfree;
}
/* Detect the Vaio nature of EEPROMs.
We use the "PCG-" prefix as the signature. */
if (address == 0x57) {
if (i2c_smbus_read_byte_data(new_client, 0x80) == 'P' &&
i2c_smbus_read_byte_data(new_client, 0x81) == 'C' &&
i2c_smbus_read_byte_data(new_client, 0x82) == 'G' &&
i2c_smbus_read_byte_data(new_client, 0x83) == '-')
nature = VAIO;
}
/* If this is a VIAO, then we only allow root to read from this file,
as BIOS passwords can be present here in plaintext */
switch (nature) {
case VAIO:
eeprom_attr.attr.mode = S_IRUSR;
break;
default:
eeprom_attr.attr.mode = S_IRUGO;
}
/* Fill in the remaining client fields */
strncpy(new_client->name, "eeprom", I2C_NAME_SIZE);
new_client->id = eeprom_id++;
data->valid = 0;
init_MUTEX(&data->update_lock);
/* Tell the I2C layer a new client has arrived */
if ((err = i2c_attach_client(new_client)))
goto exit_kfree;
/* create the sysfs eeprom file */
sysfs_create_bin_file(&new_client->dev.kobj, &eeprom_attr);
return 0;
exit_kfree:
kfree(new_client);
exit:
return err;
}
static int eeprom_detach_client(struct i2c_client *client)
{
int err;
err = i2c_detach_client(client);
if (err) {
dev_err(&client->dev, "Client deregistration failed, client not detached.\n");
return err;
}
kfree(client);
return 0;
}
static int __init eeprom_init(void)
{
return i2c_add_driver(&eeprom_driver);
}
static void __exit eeprom_exit(void)
{
i2c_del_driver(&eeprom_driver);
}
MODULE_AUTHOR("Frodo Looijaard <frodol@dds.nl> and "
"Philip Edelbrock <phil@netroedge.com> and "
"Greg Kroah-Hartman <greg@kroah.com>");
MODULE_DESCRIPTION("I2C EEPROM driver");
MODULE_LICENSE("GPL");
module_init(eeprom_init);
module_exit(eeprom_exit);
......@@ -50,10 +50,7 @@ int i2c_detect(struct i2c_adapter *adapter,
return -1;
for (addr = 0x00; addr <= (is_isa ? 0xffff : 0x7f); addr++) {
void *region_used = request_region(addr, 1, "foo");
release_region(addr, 1);
if ((is_isa && (region_used == NULL)) ||
(!is_isa && i2c_check_addr(adapter, addr)))
if (!is_isa && i2c_check_addr(adapter, addr))
continue;
/* If it is in one of the force entries, we don't do any
......
......@@ -43,10 +43,8 @@ config IDE
number of user programs such as smart that can query the status of
SMART parameters from disk drives.
If you want to compile this driver as a module ( = code which can be
inserted in and removed from the running kernel whenever you want),
say M here and read <file:Documentation/modules.txt>. The module
will be called ide.
To compile this driver as a module, choose M here: the
module will be called ide.
For further information, please read <file:Documentation/ide.txt>.
......@@ -83,9 +81,7 @@ config BLK_DEV_IDE
performance, look for the hdparm package at
<ftp://ibiblio.org/pub/Linux/system/hardware/>.
If you want to compile this driver as a module ( = code which can be
inserted in and removed from the running kernel whenever you want),
say M here and read <file:Documentation/modules.txt> and
To compile this driver as a module, choose M here and read
<file:Documentation/ide.txt>. The module will be called ide-mod.
Do not compile this driver as a module if your root file system (the
one containing the directory /) is located on an IDE device.
......@@ -143,12 +139,12 @@ config BLK_DEV_IDEDISK
the old hard disk driver instead, say Y. If you have an SCSI-only
system, you can say N here.
If you want to compile this driver as a module ( = code which can be
inserted in and removed from the running kernel whenever you want),
say M here and read <file:Documentation/modules.txt>. The module
will be called ide-disk. Do not compile this driver as a module
if your root file system (the one containing the directory /) is
located on the IDE disk. If unsure, say Y.
To compile this driver as a module, choose M here: the
module will be called ide-disk.
Do not compile this driver as a module if your root file system
(the one containing the directory /) is located on the IDE disk.
If unsure, say Y.
config IDEDISK_MULTI_MODE
bool "Use multi-mode by default"
......@@ -201,10 +197,8 @@ config BLK_DEV_IDECD
with IDE/ATAPI CD-ROMs, so install LILO 16 or higher, available from
<ftp://brun.dyndns.org/pub/linux/lilo/>.
If you want to compile the driver as a module ( = code which can be
inserted in and removed from the running kernel whenever you want),
say M here and read <file:Documentation/modules.txt>. The module
will be called ide-cd.
To compile this driver as a module, choose M here: the
module will be called ide-cd.
config BLK_DEV_IDETAPE
tristate "Include IDE/ATAPI TAPE support (EXPERIMENTAL)"
......@@ -226,10 +220,8 @@ config BLK_DEV_IDETAPE
<file:drivers/ide/ide-tape.c> and <file:Documentation/ide.txt> files
for usage information.
If you want to compile the driver as a module ( = code which can be
inserted in and removed from the running kernel whenever you want),
say M here and read <file:Documentation/modules.txt>. The module
will be called ide-tape.o.
To compile this driver as a module, choose M here: the
module will be called ide-tape.
config BLK_DEV_IDEFLOPPY
tristate "Include IDE/ATAPI FLOPPY support"
......@@ -250,10 +242,8 @@ config BLK_DEV_IDEFLOPPY
other IDE devices, as "hdb" or "hdc", or something similar (check
the boot messages with dmesg).
If you want to compile the driver as a module ( = code which can be
inserted in and removed from the running kernel whenever you want),
say M here and read <file:Documentation/modules.txt>. The module
will be called ide-floppy.
To compile this driver as a module, choose M here: the
module will be called ide-floppy.
config BLK_DEV_IDESCSI
tristate "SCSI emulation support"
......
......@@ -15,10 +15,8 @@ config IEEE1394
is the core support only, you will also need to select a driver for
your IEEE 1394 adapter.
If you want to compile this as a module ( = code which can be
inserted in and removed from the running kernel whenever you want),
say M here and read <file:Documentation/modules.txt>. The module
will be called ieee1394.
To compile this driver as a module, choose M here: the
module will be called ieee1394.
comment "Subsystem Options"
depends on IEEE1394
......@@ -64,10 +62,8 @@ config IEEE1394_PCILYNX
Instruments PCILynx chip. Note: this driver is written for revision
2 of this chip and may not work with revision 0.
If you want to compile this as a module ( = code which can be
inserted in and removed from the running kernel whenever you want),
say M here and read <file:Documentation/modules.txt>. The module
will be called pcilynx.
To compile this driver as a module, choose M here: the
module will be called pcilynx.
# Non-maintained pcilynx options
# if [ "$CONFIG_IEEE1394_PCILYNX" != "n" ]; then
......@@ -84,10 +80,8 @@ config IEEE1394_OHCI1394
use one of these chipsets. It should work with any OHCI-1394
compliant card, however.
If you want to compile this as a module ( = code which can be
inserted in and removed from the running kernel whenever you want),
say M here and read <file:Documentation/modules.txt>. The module
will be called ohci1394.
To compile this driver as a module, choose M here: the
module will be called ohci1394.
comment "Protocol Drivers"
depends on IEEE1394
......@@ -128,10 +122,8 @@ config IEEE1394_DV1394
The user-space API for dv1394 is documented in dv1394.h.
If you want to compile this as a module ( = code which can be
inserted in and removed from the running kernel whenever you want),
say M here and read <file:Documentation/modules.txt>. The module
will be called dv1394.
To compile this driver as a module, choose M here: the
module will be called dv1394.
config IEEE1394_RAWIO
tristate "Raw IEEE1394 I/O support"
......@@ -142,10 +134,8 @@ config IEEE1394_RAWIO
direct communication of user programs with the IEEE 1394 bus and
thus with the attached peripherals.
If you want to compile this as a module ( = code which can be
inserted in and removed from the running kernel whenever you want),
say M here and read <file:Documentation/modules.txt>. The module
will be called raw1394.
To compile this driver as a module, choose M here: the
module will be called raw1394.
config IEEE1394_CMP
tristate "IEC61883-1 Plug support"
......@@ -154,10 +144,8 @@ config IEEE1394_CMP
This option enables the Connection Management Procedures
(IEC61883-1) driver, which implements input and output plugs.
If you want to compile this as a module ( = code which can be
inserted in and removed from the running kernel whenever you want),
say M here and read <file:Documentation/modules.txt>. The module
will be called amdtp.
To compile this driver as a module, choose M here: the
module will be called cmp.
config IEEE1394_AMDTP
tristate "IEC61883-6 (Audio transmission) support"
......@@ -169,9 +157,7 @@ config IEEE1394_AMDTP
The userspace interface is documented in amdtp.h.
If you want to compile this as a module ( = code which can be
inserted in and removed from the running kernel whenever you want),
say M here and read <file:Documentation/modules.txt>. The module
will be called amdtp.
To compile this driver as a module, choose M here: the
module will be called amdtp.
endmenu
......@@ -19,10 +19,8 @@ config INPUT
If unsure, say Y.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module will be called input. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
To compile this driver as a module, choose M here: the
module will be called input.
comment "Userland interfaces"
......@@ -39,10 +37,8 @@ config INPUT_MOUSEDEV
If unsure, say Y.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module will be called mousedev. If you want to compile it as
a module, say M here and read <file:Documentation/modules.txt>.
To compile this driver as a module, choose M here: the
module will be called mousedev.
config INPUT_MOUSEDEV_PSAUX
bool "Provide legacy /dev/psaux device" if EMBEDDED
......@@ -80,10 +76,8 @@ config INPUT_JOYDEV
More information is available: <file:Documentation/input/joystick.txt>
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module will be called joydev. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
To compile this driver as a module, choose M here: the
module will be called joydev.
config INPUT_TSDEV
tristate "Touchscreen interface"
......@@ -95,10 +89,8 @@ config INPUT_TSDEV
If unsure, say N.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module will be called tsdev. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
To compile this driver as a module, choose M here: the
module will be called tsdev.
config INPUT_TSDEV_SCREEN_X
int "Horizontal screen resolution"
......@@ -117,10 +109,8 @@ config INPUT_EVDEV
Say Y here if you want your input device events be accessible
under char device 13:64+ - /dev/input/eventX in a generic way.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module will be called evdev. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
To compile this driver as a module, choose M here: the
module will be called evdev.
config INPUT_EVBUG
tristate "Event debugging"
......@@ -134,10 +124,8 @@ config INPUT_EVBUG
If unsure, say N.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module will be called joydev. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
To compile this driver as a module, choose M here: the
module will be called evbug.
comment "Input I/O drivers"
......
......@@ -16,10 +16,8 @@ config GAMEPORT
If unsure, say Y.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module will be called gameport. If you want to compile it as
a module, say M here and read <file:Documentation/modules.txt>.
To compile this driver as a module, choose M here: the
module will be called gameport.
config SOUND_GAMEPORT
tristate
......@@ -34,10 +32,8 @@ config GAMEPORT_NS558
If unsure, say Y.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module will be called ns558. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
To compile this driver as a module, choose M here: the
module will be called ns558.
config GAMEPORT_L4
tristate "PDPI Lightning 4 gamecard support"
......@@ -45,10 +41,8 @@ config GAMEPORT_L4
help
Say Y here if you have a PDPI Lightning 4 gamecard.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module will be called lightning. If you want to compile it as
a module, say M here and read <file:Documentation/modules.txt>.
To compile this driver as a module, choose M here: the
module will be called lightning.
config GAMEPORT_EMU10K1
tristate "SB Live and Audigy gameport support"
......@@ -57,10 +51,8 @@ config GAMEPORT_EMU10K1
Say Y here if you have a SoundBlaster Live! or SoundBlaster
Audigy card and want to use its gameport.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module will be called emu10k1-gp. If you want to compile it as
a module, say M here and read <file:Documentation/modules.txt>.
To compile this driver as a module, choose M here: the
module will be called emu10k1-gp.
config GAMEPORT_VORTEX
tristate "Aureal Vortex, Vortex 2 gameport support"
......@@ -69,10 +61,8 @@ config GAMEPORT_VORTEX
Say Y here if you have an Aureal Vortex 1 or 2 card and want
to use its gameport.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module will be called vortex. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
To compile this driver as a module, choose M here: the
module will be called vortex.
config GAMEPORT_FM801
tristate "ForteMedia FM801 gameport support"
......
This diff is collapsed.
......@@ -9,10 +9,8 @@ config JOYSTICK_IFORCE
You also must choose at least one of the two options below.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module will be called iforce. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
To compile this driver as a module, choose M here: the
module will be called iforce.
config JOYSTICK_IFORCE_USB
bool "I-Force USB joysticks and wheels"
......
......@@ -24,10 +24,8 @@ config KEYBOARD_ATKBD
If unsure, say Y.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module will be called atkbd. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
To compile this driver as a module, choose M here: the
module will be called atkbd.
config KEYBOARD_SUNKBD
tristate "Sun Type 4 and Type 5 keyboard support"
......@@ -38,10 +36,8 @@ config KEYBOARD_SUNKBD
connected either to the Sun keyboard connector or to an serial
(RS-232) port via a simple adapter.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module will be called sunkbd. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
To compile this driver as a module, choose M here: the
module will be called sunkbd.
config KEYBOARD_XTKBD
tristate "XT Keyboard support"
......@@ -53,10 +49,8 @@ config KEYBOARD_XTKBD
parallel port keyboard adapter, you cannot connect it to the
keyboard port on a PC that runs Linux.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module will be called xtkbd. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
To compile this driver as a module, choose M here: the
module will be called xtkbd.
config KEYBOARD_NEWTON
tristate "Newton keyboard"
......@@ -65,10 +59,8 @@ config KEYBOARD_NEWTON
help
Say Y here if you have a Newton keyboard on a serial port.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module will be called maple_keyb. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
To compile this driver as a module, choose M here: the
module will be called newtonkbd.
config KEYBOARD_MAPLE
tristate "Maple bus keyboard support"
......@@ -77,10 +69,8 @@ config KEYBOARD_MAPLE
Say Y here if you have a DreamCast console running Linux and have
a keyboard attached to its Maple bus.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module will be called maple_keyb. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
To compile this driver as a module, choose M here: the
module will be called maple_keyb.
config KEYBOARD_AMIGA
tristate "Amiga keyboard"
......@@ -89,10 +79,8 @@ config KEYBOARD_AMIGA
Say Y here if you are running Linux on any AMIGA and have a keyboard
attached.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module will be called amikbd. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
To compile this driver as a module, choose M here: the
module will be called amikbd.
config KEYBOARD_98KBD
tristate "NEC PC-9800 Keyboard support"
......@@ -102,8 +90,6 @@ config KEYBOARD_98KBD
Say Y here if you want to use the NEC PC-9801/PC-9821 keyboard (or
compatible) on your system.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module will be called xtkbd.o. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
To compile this driver as a module, choose M here: the
module will be called 98kbd.
......@@ -21,10 +21,8 @@ config INPUT_PCSPKR
If unsure, say Y.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module will be called pcspkr. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
To compile this driver as a module, choose M here: the
module will be called pcspkr.
config INPUT_SPARCSPKR
tristate "SPARC Speaker support"
......@@ -35,10 +33,8 @@ config INPUT_SPARCSPKR
If unsure, say Y.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module will be called pcspkr. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
To compile this driver as a module, choose M here: the
module will be called sparcspkr.
config INPUT_M68K_BEEP
tristate "M68k Beeper support"
......@@ -55,10 +51,8 @@ config INPUT_UINPUT
Say Y here if you want to support user level drivers for input
subsystem accessible under char device 10:223 - /dev/input/uinput.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module will be called uinput. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
To compile this driver as a module, choose M here: the
module will be called uinput.
config INPUT_GSC
tristate "PA-RISC GSC PS/2 keyboard/mouse support"
......
......@@ -24,10 +24,8 @@ config MOUSE_PS2
If unsure, say Y.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module will be called psmouse. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
To compile this driver as a module, choose M here: the
module will be called psmouse.
config MOUSE_PS2_SYNAPTICS
bool "Synaptics TouchPad"
......@@ -56,10 +54,8 @@ config MOUSE_SERIAL
If unsure, say N.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module will be called sermouse. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
To compile this driver as a module, choose M here: the
module will be called sermouse.
config MOUSE_INPORT
tristate "InPort/MS/ATIXL busmouse"
......@@ -68,10 +64,8 @@ config MOUSE_INPORT
Say Y here if you have an InPort, Microsoft or ATI XL busmouse.
They are rather rare these days.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module will be called inport. If you want to compile it as a
module, say M here and read <file.:Documentation/modules.txt>.
To compile this driver as a module, choose M here: the
module will be called inport.
config MOUSE_ATIXL
bool "ATI XL variant"
......@@ -86,10 +80,8 @@ config MOUSE_LOGIBM
Say Y here if you have a Logitech busmouse.
They are rather rare these days.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module will be called logibm. If you want to compile it as a
module, say M here and read <file.:Documentation/modules.txt>.
To compile this driver as a module, choose M here: the
module will be called logibm.
config MOUSE_PC110PAD
tristate "IBM PC110 touchpad"
......@@ -98,10 +90,8 @@ config MOUSE_PC110PAD
Say Y if you have the IBM PC-110 micro-notebook and want its
touchpad supported.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module will be called pc110pad. If you want to compile it as a
module, say M here and read <file.:Documentation/modules.txt>.
To compile this driver as a module, choose M here: the
module will be called pc110pad.
config MOUSE_MAPLE
tristate "Maple bus mouse"
......@@ -110,10 +100,8 @@ config MOUSE_MAPLE
Say Y if you have a DreamCast console and a mouse attached to
its Maple bus.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module will be called maplemouse. If you want to compile it as a
module, say M here and read <file.:Documentation/modules.txt>.
To compile this driver as a module, choose M here: the
module will be called maplemouse.
config MOUSE_AMIGA
tristate "Amiga mouse"
......@@ -122,10 +110,8 @@ config MOUSE_AMIGA
Say Y here if you have an Amiga and want its native mouse
supported by the kernel.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module will be called amimouse. If you want to compile it as a
module, say M here and read <file.:Documentation/modules.txt>.
To compile this driver as a module, choose M here: the
module will be called amimouse.
config MOUSE_RISCPC
tristate "Acorn RiscPC mouse"
......@@ -134,10 +120,8 @@ config MOUSE_RISCPC
Say Y here if you have the Acorn RiscPC computer and want its
native mouse supported.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module will be called rpcmouse. If you want to compile it as a
module, say M here and read <file.:Documentation/modules.txt>.
To compile this driver as a module, choose M here: the
module will be called rpcmouse.
config MOUSE_PC9800
tristate "NEC PC-9800 busmouse"
......@@ -146,8 +130,6 @@ config MOUSE_PC9800
Say Y here if you have NEC PC-9801/PC-9821 computer and want its
native mouse supported.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module will be called logibm.o. If you want to compile it as a
module, say M here and read <file.:Documentation/modules.txt>.
To compile this driver as a module, choose M here: the
module will be called 98busmouse.
This diff is collapsed.
......@@ -19,10 +19,8 @@ config TOUCHSCREEN_BITSY
If unsure, say N.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module will be called gunze. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
To compile this driver as a module, choose M here: the
module will be called h3600_ts_input.
config TOUCHSCREEN_GUNZE
tristate "Gunze AHL-51S touchscreen"
......@@ -34,8 +32,6 @@ config TOUCHSCREEN_GUNZE
If unsure, say N.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module will be called gunze. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
To compile this driver as a module, choose M here: the
module will be called gunze.
......@@ -6,9 +6,8 @@ config ISDN_DRV_SC
depends on ISDN && ISA
help
This enables support for the Spellcaster BRI ISDN boards. This
driver currently builds only in a modularized version ( = code which
can be inserted in and removed from the running kernel whenever you
want, details in <file:Documentation/modules.txt>); the module will
be called sc. See <file:Documentation/isdn/README.sc> and
driver currently builds only in a modularized version.
To build it, choose M here: the module will be called sc.
See <file:Documentation/isdn/README.sc> and
<http://www.spellcast.com/> for more information.
......@@ -21,10 +21,8 @@ config VIDEO_DEV
Documentation/video4linux/API.html. Documentation for V4L2 is
available on the web at http://bytesex.org/v4l/
This driver is also available as a module called videodev ( = code
which can be inserted in and removed from the running kernel
whenever you want). If you want to compile it as a module, say M
here and read <file:Documentation/modules.txt>.
To compile this driver as a module, choose M here: the
module will be called videodev.
source "drivers/media/video/Kconfig"
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -29,11 +29,7 @@ config FUSION
[2] In order enable capability to boot the linux kernel
natively from a Fusion MPT target device, you MUST
answer Y here! (currently requires CONFIG_BLK_DEV_SD)
[3] This support is also available as a module ( = code
which can be inserted in and removed from the running
kernel whenever you want). If you want to compile as
modules, say M here and read
<file:Documentation/modules.txt>.
[3] To compile this support as modules, choose M here.
If unsure, say N.
......
This diff is collapsed.
This diff is collapsed.
......@@ -65,10 +65,8 @@ config IPDDP
decapsulation, but not both. With the following two questions, you
decide which one you want.
If you say M here, the AppleTalk-IP support will be compiled as a
module ( = code which can be inserted in and removed from the
running kernel whenever you want, read
<file:Documentation/modules.txt>). The module is called ipddp.
To compile the AppleTalk-IP support as a module, choose M here: the
module will be called ipddp.
In this case, you will be able to use both encapsulation and
decapsulation simultaneously, by loading two copies of the module
and specifying different values for the module option ipddp_mode.
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
obj-$(CONFIG_USB_AX8817X) += crc32.o
obj-$(CONFIG_USB_CATC) += crc32.o
obj-$(CONFIG_USB_SPEEDTOUCH) += crc32.o
obj-$(CONFIG_USB_USBNET) += crc32.o
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment