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
...@@ -77,7 +77,10 @@ curr_min[1-n] Current min or hysteresis value. ...@@ -77,7 +77,10 @@ curr_min[1-n] Current min or hysteresis value.
curr_input[1-n] Current input value curr_input[1-n] Current input value
Fixed point XXXXX, divide by 1000 to get Amps. Fixed point XXXXX, divide by 1000 to get Amps.
Read only. Read only.
eeprom Raw EEPROM data in binary form.
Read only.
fan_min[1-3] Fan minimum value fan_min[1-3] Fan minimum value
Integer value indicating RPM Integer value indicating RPM
Read/Write. Read/Write.
......
...@@ -449,7 +449,8 @@ Module parameters ...@@ -449,7 +449,8 @@ Module parameters
pcm_substreams_c - capture channels (1-8, default=0) pcm_substreams_c - capture channels (1-8, default=0)
clock - clock (0 = auto-detection) clock - clock (0 = auto-detection)
use_pm - support the power-management (0 = off, 1 = on, 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. Module supports up to 8 cards and autoprobe.
...@@ -992,7 +993,7 @@ Module parameters ...@@ -992,7 +993,7 @@ Module parameters
[VIA686A/686B only] [VIA686A/686B only]
ac97_clock - AC'97 codec clock base (default 48000Hz) ac97_clock - AC'97 codec clock base (default 48000Hz)
dxs_support - support DXS channels, dxs_support - support DXS channels,
0 = auto (default), 1 = enable, 2 = disable, 0 = auto (defalut), 1 = enable, 2 = disable,
3 = 48k only 3 = 48k only
[VIA8233/C,8235 only] [VIA8233/C,8235 only]
...@@ -1005,13 +1006,15 @@ Module parameters ...@@ -1005,13 +1006,15 @@ Module parameters
assigned under 15. You might also upgrade your BIOS. assigned under 15. You might also upgrade your BIOS.
Note: VIA8233/5 (not VIA8233A) can support DXS (direct sound) Note: VIA8233/5 (not VIA8233A) can support DXS (direct sound)
channels as the first PCM. With this device, up to 4 channels as the first PCM. On these channels, up to 4
streams can be played at the same time. On some motherboards, streams can be played at the same time.
these channels don't work properly due to the bug of BIOS. As default (dxs_support = 0), 48k fixed rate is chosen since
If you experience that the playback on this PCM is noisy, the output is often noisy except for 48k on some mother
try to specify dxs_support option to 2 or 3. In most cases boards due to the bug of BIOS.
dxs_support=3 would suffice, so you can keep the multi-play Please try once dxs_support=1 and if it works on other
capability. 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 Note: for the MPU401 on VIA823x, use snd-mpu401 driver
additonally. The mpu_port option is for VIA686 chips only. additonally. The mpu_port option is for VIA686 chips only.
......
...@@ -152,6 +152,9 @@ available: ...@@ -152,6 +152,9 @@ available:
direct don't use plugins direct don't use plugins
block force block open mode block force block open mode
non-block force non-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 The disable option is useful when one stream direction (playback or
capture) is not handled correctly by the application although the capture) is not handled correctly by the application although the
...@@ -185,6 +188,12 @@ for OSS devices, define like the following: ...@@ -185,6 +188,12 @@ for OSS devices, define like the following:
options snd-pcm-oss nonblock_open=1 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 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 file. The read image can be sent to the proc file again, hence you
can save the current configuration can save the current configuration
......
...@@ -532,10 +532,8 @@ config APM ...@@ -532,10 +532,8 @@ config APM
11) exchange RAM chips 11) exchange RAM chips
12) exchange the motherboard. 12) exchange the motherboard.
To compile this driver as a module ( = code which can be inserted in To compile this driver as a module, choose M here: the
and removed from the running kernel whenever you want), say M here module will be called apm.
and read <file:Documentation/modules.txt>. The module will be called
apm.
config ARTHUR config ARTHUR
tristate "RISC OS personality" tristate "RISC OS personality"
......
...@@ -8,9 +8,7 @@ config INTEGRATOR_IMPD1 ...@@ -8,9 +8,7 @@ config INTEGRATOR_IMPD1
allows ARM(R) Ltd PrimeCells to be developed and evaluated. allows ARM(R) Ltd PrimeCells to be developed and evaluated.
The IM-PD1 can be found on the Integrator/PP2 platform. The IM-PD1 can be found on the Integrator/PP2 platform.
If you want to compile this as a module (=code which can be To compile this driver as a module, choose M here: the
inserted into and removed from the running kernel), say M module will be called impd1.
here and read <file:Documentation/modules.txt>. The module
will be called impd1.
endmenu endmenu
...@@ -595,11 +595,9 @@ config MICROCODE ...@@ -595,11 +595,9 @@ config MICROCODE
ingredients for this driver, check: ingredients for this driver, check:
<http://www.urbanmyth.org/microcode/>. <http://www.urbanmyth.org/microcode/>.
This driver is also available as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want). module will be called microcode.
The module will be called microcode. If you want to compile it as If you use modprobe or kmod you may also want to add the line
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
'alias char-major-10-184 microcode' to your /etc/modules.conf file. 'alias char-major-10-184 microcode' to your /etc/modules.conf file.
config X86_MSR config X86_MSR
...@@ -867,10 +865,8 @@ config APM ...@@ -867,10 +865,8 @@ config APM
11) exchange RAM chips 11) exchange RAM chips
12) exchange the motherboard. 12) exchange the motherboard.
To compile this driver as a module ( = code which can be inserted in To compile this driver as a module, choose M here: the
and removed from the running kernel whenever you want), say M here module will be called apm.
and read <file:Documentation/modules.txt>. The module will be called
apm.
config APM_IGNORE_USER_SUSPEND config APM_IGNORE_USER_SUSPEND
bool "Ignore USER SUSPEND" bool "Ignore USER SUSPEND"
......
...@@ -67,11 +67,8 @@ config PCMCIA ...@@ -67,11 +67,8 @@ config PCMCIA
for location). Please also read the PCMCIA-HOWTO, available from for location). Please also read the PCMCIA-HOWTO, available from
<http://www.tldp.org/docs.html#howto>. <http://www.tldp.org/docs.html#howto>.
This driver is also available as a module ( = code which can be To compile this driver as modules, choose M here: the
inserted in and removed from the running kernel whenever you want). modules will be called pcmcia_core and ds.
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>.
config AMIGA config AMIGA
bool "Amiga support" bool "Amiga support"
...@@ -425,13 +422,11 @@ config PARPORT ...@@ -425,13 +422,11 @@ config PARPORT
It is possible to share a single parallel port among several devices It is possible to share a single parallel port among several devices
and it is safe to compile all the corresponding drivers into the and it is safe to compile all the corresponding drivers into the
kernel. If you want to compile parallel port support as a module kernel. To compile parallel port support as a module, choose M here:
( = code which can be inserted in and removed from the running the module will be called parport.
kernel whenever you want), say M here and read If you have more than one parallel port and want to specify which
<file:Documentation/modules.txt>. The module will be called port and IRQ to be used by this driver at module load time, take a
parport. If you have more than one parallel port and want to look at <file:Documentation/parport.txt>.
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. If unsure, say Y.
...@@ -460,11 +455,8 @@ config PARPORT_PC ...@@ -460,11 +455,8 @@ config PARPORT_PC
PC compatible computers and some Alphas have PC-style parallel PC compatible computers and some Alphas have PC-style parallel
ports. ports.
This code is also available as a module. If you want to compile it To compile this driver as a module, choose M here: the
as a module ( = code which can be inserted in and removed from the module will be called parport_pc.
running kernel whenever you want), say M here and read
<file:Documentation/modules.txt>. The module will be called
parport_pc.
If unsure, say Y. If unsure, say Y.
...@@ -488,10 +480,8 @@ config PRINTER ...@@ -488,10 +480,8 @@ config PRINTER
It is possible to share one parallel port among several devices It is possible to share one parallel port among several devices
(e.g. printer and ZIP drive) and it is safe to compile the (e.g. printer and ZIP drive) and it is safe to compile the
corresponding drivers into the kernel. If you want to compile this corresponding drivers into the kernel.
driver as a module however ( = code which can be inserted in and To compile this driver as a module, choose M here and read
removed from the running kernel whenever you want), say M here and
read <file:Documentation/modules.txt> and
<file:Documentation/parport.txt>. The module will be called lp. <file:Documentation/parport.txt>. The module will be called lp.
If you have several parallel ports, you can specify which ports to If you have several parallel ports, you can specify which ports to
...@@ -571,9 +561,8 @@ config SERIAL ...@@ -571,9 +561,8 @@ config SERIAL
serial port drivers do not need this driver built in for them to serial port drivers do not need this driver built in for them to
work.) work.)
If you want to compile this driver as a module, say M here and read To compile this driver as a module, choose M here: the
<file:Documentation/modules.txt>. The module will be called module will be called serial.
serial.
[WARNING: Do not compile this driver as a module if you are using [WARNING: Do not compile this driver as a module if you are using
non-standard serial ports, since the configuration information will non-standard serial ports, since the configuration information will
be lost when the driver is unloaded. This limitation may be lifted be lost when the driver is unloaded. This limitation may be lifted
...@@ -717,10 +706,8 @@ config NVRAM ...@@ -717,10 +706,8 @@ config NVRAM
On Atari machines, /dev/nvram is always configured and does not need On Atari machines, /dev/nvram is always configured and does not need
to be selected. to be selected.
This driver is also available as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want). module will be called nvram.
The module will be called nvram. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
config ATARI_MFPSER config ATARI_MFPSER
tristate "Atari MFP serial support" tristate "Atari MFP serial support"
...@@ -730,10 +717,7 @@ config ATARI_MFPSER ...@@ -730,10 +717,7 @@ config ATARI_MFPSER
Linux, say Y. The driver equally supports all kinds of MFP serial Linux, say Y. The driver equally supports all kinds of MFP serial
ports and automatically detects whether Serial1 is available. ports and automatically detects whether Serial1 is available.
This driver is also available as a module ( = code which can be To compile this driver as a module, choose M here.
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>.
Note for Falcon users: You also have an MFP port, it's just not 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. wired to the outside... But you could use the port under Linux.
...@@ -748,10 +732,7 @@ config ATARI_SCC ...@@ -748,10 +732,7 @@ config ATARI_SCC
two connectors for channel A (Serial2 and LAN), they are visible as two connectors for channel A (Serial2 and LAN), they are visible as
two separate devices. two separate devices.
This driver is also available as a module ( = code which can be To compile this driver as a module, choose M here.
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>.
config ATARI_SCC_DMA config ATARI_SCC_DMA
bool "Atari SCC serial DMA support" bool "Atari SCC serial DMA support"
...@@ -769,10 +750,7 @@ config ATARI_MIDI ...@@ -769,10 +750,7 @@ config ATARI_MIDI
help help
If you want to use your Atari's MIDI port in Linux, say Y. 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 To compile this driver as a module, choose M here.
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>.
config ATARI_DSP56K config ATARI_DSP56K
tristate "Atari DSP56k support (EXPERIMENTAL)" tristate "Atari DSP56k support (EXPERIMENTAL)"
...@@ -782,10 +760,7 @@ config ATARI_DSP56K ...@@ -782,10 +760,7 @@ config ATARI_DSP56K
driver is still experimental, and if you don't know what it is, or driver is still experimental, and if you don't know what it is, or
if you don't have this processor, just say N. if you don't have this processor, just say N.
This driver is also available as a module ( = code which can be To compile this driver as a module, choose M here.
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>.
config AMIGA_BUILTIN_SERIAL config AMIGA_BUILTIN_SERIAL
tristate "Amiga builtin serial support" tristate "Amiga builtin serial support"
...@@ -794,10 +769,7 @@ config AMIGA_BUILTIN_SERIAL ...@@ -794,10 +769,7 @@ config AMIGA_BUILTIN_SERIAL
If you want to use your Amiga's built-in serial port in Linux, If you want to use your Amiga's built-in serial port in Linux,
answer Y. answer Y.
This driver is also available as a module ( = code which can be To compile this driver as a module, choose M here.
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>.
config WHIPPET_SERIAL config WHIPPET_SERIAL
tristate "Hisoft Whippet PCMCIA serial support" tristate "Hisoft Whippet PCMCIA serial support"
...@@ -813,10 +785,7 @@ config MULTIFACE_III_TTY ...@@ -813,10 +785,7 @@ config MULTIFACE_III_TTY
If you want to use a Multiface III card's serial port in Linux, If you want to use a Multiface III card's serial port in Linux,
answer Y. answer Y.
This driver is also available as a module ( = code which can be To compile this driver as a module, choose M here.
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>.
config A2232 config A2232
tristate "Commodore A2232 serial support (EXPERIMENTAL)" tristate "Commodore A2232 serial support (EXPERIMENTAL)"
...@@ -832,8 +801,7 @@ config A2232 ...@@ -832,8 +801,7 @@ config A2232
This driver can be built as a module; but then "generic_serial" 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 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 "ser_a2232". If you want to do this, answer M here.
"<file:Documentation/modules.txt>".
config GVPIOEXT config GVPIOEXT
tristate "GVP IO-Extender support" tristate "GVP IO-Extender support"
...@@ -1086,11 +1054,8 @@ config SOFT_WATCHDOG ...@@ -1086,11 +1054,8 @@ config SOFT_WATCHDOG
from some situations that the hardware watchdog will recover from some situations that the hardware watchdog will recover
from. Equally it's a lot cheaper to install. from. Equally it's a lot cheaper to install.
This driver is also available as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want). module will be called softdog.
If you want to compile it as a module, say M here and read
<file:Documentation/modules.txt>. The module will be called
softdog.
config GEN_RTC config GEN_RTC
tristate "Generic /dev/rtc emulation" if !SUN3 tristate "Generic /dev/rtc emulation" if !SUN3
...@@ -1107,12 +1072,9 @@ config GEN_RTC ...@@ -1107,12 +1072,9 @@ config GEN_RTC
for RTC_UIE which is required by some programs and may improve for RTC_UIE which is required by some programs and may improve
precision in some cases. precision in some cases.
This driver is also available as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want). module will be called genrtc. To load the module automatically
The module is called genrtc. If you want to compile it as a module, add 'alias char-major-10-135 genrtc' to your /etc/modules.conf
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
config GEN_RTC_X config GEN_RTC_X
bool "Extended RTC operation" bool "Extended RTC operation"
......
...@@ -1272,12 +1272,10 @@ config SOUND ...@@ -1272,12 +1272,10 @@ config SOUND
If you have a PnP sound card and you want to configure it at boot If you have a PnP sound card and you want to configure it at boot
time using the ISA PnP tools (read time using the ISA PnP tools (read
<http://www.roestock.demon.co.uk/isapnptools/>), then you need to <http://www.roestock.demon.co.uk/isapnptools/>), then you need to
compile the sound card support as a module ( = code which can be compile the sound card support as a module and load that module
inserted in and removed from the running kernel whenever you want) after the PnP configuration is finished. To do this, choose M here
and load that module after the PnP configuration is finished. To do and read <file:Documentation/sound/README.modules>; the module
this, say M here and read <file:Documentation/modules.txt> as well will be called soundcore.
as <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 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. say more than an occasional beep, by programming the PC speaker.
......
...@@ -849,10 +849,7 @@ config AMIGA_BUILTIN_SERIAL ...@@ -849,10 +849,7 @@ config AMIGA_BUILTIN_SERIAL
If you want to use your Amiga's built-in serial port in Linux, If you want to use your Amiga's built-in serial port in Linux,
answer Y. answer Y.
This driver is also available as a module ( = code which can be To compile this driver as a module, choose M here.
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>.
config GVPIOEXT config GVPIOEXT
tristate "GVP IO-Extender support" tristate "GVP IO-Extender support"
...@@ -882,10 +879,7 @@ config MULTIFACE_III_TTY ...@@ -882,10 +879,7 @@ config MULTIFACE_III_TTY
If you want to use a Multiface III card's serial port in Linux, If you want to use a Multiface III card's serial port in Linux,
answer Y. answer Y.
This driver is also available as a module ( = code which can be To compile this driver as a module, choose M here.
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>.
config A2232 config A2232
tristate "Commodore A2232 serial support (EXPERIMENTAL)" tristate "Commodore A2232 serial support (EXPERIMENTAL)"
...@@ -901,8 +895,7 @@ config A2232 ...@@ -901,8 +895,7 @@ config A2232
This driver can be built as a module; but then "generic_serial" 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 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 "ser_a2232". If you want to do this, answer M here.
"<file:Documentation/modules.txt>".
config WHIPPET_SERIAL config WHIPPET_SERIAL
tristate "Hisoft Whippet PCMCIA serial support" tristate "Hisoft Whippet PCMCIA serial support"
...@@ -918,10 +911,8 @@ config APNE ...@@ -918,10 +911,8 @@ config APNE
If you have a PCMCIA NE2000 compatible adapter, say Y. Otherwise, If you have a PCMCIA NE2000 compatible adapter, say Y. Otherwise,
say N. say N.
This driver is also available as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you module will be called apne.
want). The module is called apne. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
config SERIAL_CONSOLE config SERIAL_CONSOLE
bool "Support for serial port console" bool "Support for serial port console"
......
...@@ -166,10 +166,8 @@ config QDIO ...@@ -166,10 +166,8 @@ config QDIO
For details please refer to the documentation provided by IBM at For details please refer to the documentation provided by IBM at
<http://www10.software.ibm.com/developerworks/opensource/linux390> <http://www10.software.ibm.com/developerworks/opensource/linux390>
This driver is also available as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want). module will be called qdio.
The module will be called qdio. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
If unsure, say Y. If unsure, say Y.
......
...@@ -839,9 +839,8 @@ config SERIAL ...@@ -839,9 +839,8 @@ config SERIAL
serial port drivers do not need this driver built in for them to serial port drivers do not need this driver built in for them to
work.) work.)
If you want to compile this driver as a module, say M here and read To compile this driver as a module, choose M here: the
<file:Documentation/modules.txt>. The module will be called module will be called serial.
serial.
[WARNING: Do not compile this driver as a module if you are using [WARNING: Do not compile this driver as a module if you are using
non-standard serial ports, since the configuration information will non-standard serial ports, since the configuration information will
be lost when the driver is unloaded. This limitation may be lifted be lost when the driver is unloaded. This limitation may be lifted
...@@ -973,10 +972,8 @@ config PRINTER ...@@ -973,10 +972,8 @@ config PRINTER
It is possible to share one parallel port among several devices It is possible to share one parallel port among several devices
(e.g. printer and ZIP drive) and it is safe to compile the (e.g. printer and ZIP drive) and it is safe to compile the
corresponding drivers into the kernel. If you want to compile this corresponding drivers into the kernel.
driver as a module however ( = code which can be inserted in and To compile this driver as a module, choose M here and read
removed from the running kernel whenever you want), say M here and
read <file:Documentation/modules.txt> and
<file:Documentation/parport.txt>. The module will be called lp. <file:Documentation/parport.txt>. The module will be called lp.
If you have several parallel ports, you can specify which ports to If you have several parallel ports, you can specify which ports to
...@@ -1018,10 +1015,8 @@ config PPDEV ...@@ -1018,10 +1015,8 @@ config PPDEV
It is safe to say N to this -- it is not needed for normal printing It is safe to say N to this -- it is not needed for normal printing
or parallel port CD-ROM/disk support. or parallel port CD-ROM/disk support.
This support is also available as a module. If you want to compile To compile this support as a module, choose M here: the
it as a module, say M here and read module will be called ppdev.
<file:Documentation/modules.txt>. The module will be called
ppdev.
If unsure, say N. If unsure, say N.
...@@ -1097,10 +1092,8 @@ config SH_WDT ...@@ -1097,10 +1092,8 @@ config SH_WDT
some performance issues. As such, the WDT should be avoided here some performance issues. As such, the WDT should be avoided here
unless it is absolutely necessary. unless it is absolutely necessary.
This driver is also available as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want). module will be called shwdt.
The module is called shwdt. If you want to compile it as a module,
say M here and read Documentation/modules.txt.
endmenu endmenu
...@@ -1126,10 +1119,8 @@ config RTC ...@@ -1126,10 +1119,8 @@ config RTC
sampling), then say Y here, and read <file:Documentation/rtc.txt> sampling), then say Y here, and read <file:Documentation/rtc.txt>
for details. for details.
This driver is also available as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want). module will be called rtc.
The module is called rtc. If you want to compile it as a module,
say M here and read <file:Documentation/modules.txt>.
source "drivers/char/pcmcia/Kconfig" source "drivers/char/pcmcia/Kconfig"
......
...@@ -162,11 +162,8 @@ config PCMCIA ...@@ -162,11 +162,8 @@ config PCMCIA
for location). Please also read the PCMCIA-HOWTO, available from for location). Please also read the PCMCIA-HOWTO, available from
<http://www.tldp.org/docs.html#howto>. <http://www.tldp.org/docs.html#howto>.
This driver is also available as a module ( = code which can be To compile this driver as modules, choose M here: the
inserted in and removed from the running kernel whenever you want). modules will be called pcmcia_core and ds.
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>.
config SBUS config SBUS
bool bool
...@@ -248,11 +245,8 @@ config SUN_OPENPROMFS ...@@ -248,11 +245,8 @@ config SUN_OPENPROMFS
virtual file system, which you can mount to /proc/openprom by "mount virtual file system, which you can mount to /proc/openprom by "mount
-t openpromfs none /proc/openprom". -t openpromfs none /proc/openprom".
If you want to compile the /proc/openprom support as a module ( = To compile the /proc/openprom support as a module, choose M here: the
code which can be inserted in and removed from the running kernel module will be called openpromfs. If unsure, choose M.
whenever you want), say M here and read
<file:Documentation/modules.txt>.
The module will be called openpromfs. If unsure, say M.
source "fs/Kconfig.binfmt" source "fs/Kconfig.binfmt"
...@@ -280,9 +274,7 @@ config PRINTER ...@@ -280,9 +274,7 @@ config PRINTER
It is possible to share one parallel port among several devices It is possible to share one parallel port among several devices
(e.g. printer and ZIP drive) and it is safe to compile the (e.g. printer and ZIP drive) and it is safe to compile the
corresponding drivers into the kernel. If you want to compile this corresponding drivers into the kernel. If you want to compile this
driver as a module however ( = code which can be inserted in and driver as a module however, choose M here and read
removed from the running kernel whenever you want), say M here and
read <file:Documentation/modules.txt> and
<file:Documentation/parport.txt>. The module will be called lp. <file:Documentation/parport.txt>. The module will be called lp.
If you have several parallel ports, you can specify which ports to If you have several parallel ports, you can specify which ports to
...@@ -321,10 +313,8 @@ config BLK_DEV_FD ...@@ -321,10 +313,8 @@ config BLK_DEV_FD
well as location of the fdutils package used to configure additional well as location of the fdutils package used to configure additional
parameters of the driver at run time. parameters of the driver at run time.
This driver is also available as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want). module will be called floppy.
The module will be called floppy. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
config BLK_DEV_LOOP config BLK_DEV_LOOP
tristate "Loopback device support" tristate "Loopback device support"
...@@ -370,10 +360,8 @@ config BLK_DEV_LOOP ...@@ -370,10 +360,8 @@ config BLK_DEV_LOOP
Note that this loop device has nothing to do with the loopback Note that this loop device has nothing to do with the loopback
device used for network connections from the machine to itself. device used for network connections from the machine to itself.
If you want to compile this driver as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want), module will be called loop.
say M here and read <file:Documentation/modules.txt>. The module
will be called loop.
Most users will answer N here. Most users will answer N here.
...@@ -399,10 +387,8 @@ config BLK_DEV_NBD ...@@ -399,10 +387,8 @@ config BLK_DEV_NBD
Note that this has nothing to do with the network file systems NFS 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. 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 To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want), module will be called nbd.
say M here and read <file:Documentation/modules.txt>. The module
will be called nbd.
If unsure, say N. If unsure, say N.
...@@ -421,10 +407,8 @@ config BLK_DEV_RAM ...@@ -421,10 +407,8 @@ config BLK_DEV_RAM
Note that the kernel command line option "ramdisk=XX" is now Note that the kernel command line option "ramdisk=XX" is now
obsolete. For details, read <file:Documentation/ramdisk.txt>. obsolete. For details, read <file:Documentation/ramdisk.txt>.
If you want to compile this as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want), module will be called rd.
say M and read <file:Documentation/modules.txt>. The module will be
called rd.
Most normal users won't need the RAM disk functionality, and can Most normal users won't need the RAM disk functionality, and can
thus say N here. thus say N here.
...@@ -534,11 +518,8 @@ config SOFT_WATCHDOG ...@@ -534,11 +518,8 @@ config SOFT_WATCHDOG
from some situations that the hardware watchdog will recover from some situations that the hardware watchdog will recover
from. Equally it's a lot cheaper to install. from. Equally it's a lot cheaper to install.
This driver is also available as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want). module will be called softdog.
If you want to compile it as a module, say M here and read
<file:Documentation/modules.txt>. The module will be called
softdog.
endmenu endmenu
......
...@@ -230,10 +230,8 @@ config ISAPNP ...@@ -230,10 +230,8 @@ config ISAPNP
Say Y here if you would like support for ISA Plug and Play devices. Say Y here if you would like support for ISA Plug and Play devices.
Some information is in <file:Documentation/isapnp.txt>. Some information is in <file:Documentation/isapnp.txt>.
This support is also available as a module called isapnp ( = To compile this driver as a module, choose M here: the
code which can be inserted in and removed from the running kernel module will be called isapnp.
whenever you want). If you want to compile it as a module, say M
here and read <file:Documentation/modules.txt>.
If unsure, say Y. If unsure, say Y.
...@@ -275,11 +273,8 @@ config PCMCIA ...@@ -275,11 +273,8 @@ config PCMCIA
for location). Please also read the PCMCIA-HOWTO, available from for location). Please also read the PCMCIA-HOWTO, available from
<http://www.tldp.org/docs.html#howto>. <http://www.tldp.org/docs.html#howto>.
This driver is also available as a module ( = code which can be To compile this driver as modules, choose M here: the
inserted in and removed from the running kernel whenever you want). modules will be called pcmcia_core and ds.
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>.
config SBUS config SBUS
bool bool
...@@ -338,10 +333,8 @@ config RTC ...@@ -338,10 +333,8 @@ config RTC
sampling), then say Y here, and read <file:Documentation/rtc.txt> sampling), then say Y here, and read <file:Documentation/rtc.txt>
for details. for details.
This driver is also available as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want). module will be called rtc.
The module is called rtc. If you want to compile it as a module,
say M here and read <file:Documentation/modules.txt>.
source "drivers/pci/Kconfig" source "drivers/pci/Kconfig"
...@@ -352,11 +345,8 @@ config SUN_OPENPROMFS ...@@ -352,11 +345,8 @@ config SUN_OPENPROMFS
virtual file system, which you can mount to /proc/openprom by "mount virtual file system, which you can mount to /proc/openprom by "mount
-t openpromfs none /proc/openprom". -t openpromfs none /proc/openprom".
If you want to compile the /proc/openprom support as a module ( = To compile the /proc/openprom support as a module, choose M here: the
code which can be inserted in and removed from the running kernel module will be called openpromfs. If unsure, choose M.
whenever you want), say M here and read
<file:Documentation/modules.txt>.
The module will be called openpromfs. If unsure, say M.
config SPARC32_COMPAT config SPARC32_COMPAT
bool "Kernel support for Linux/Sparc 32bit binary compatibility" bool "Kernel support for Linux/Sparc 32bit binary compatibility"
...@@ -402,10 +392,8 @@ config SOLARIS_EMUL ...@@ -402,10 +392,8 @@ config SOLARIS_EMUL
This is experimental code which will enable you to run (many) This is experimental code which will enable you to run (many)
Solaris binaries on your SPARC Linux machine. Solaris binaries on your SPARC Linux machine.
This code is also available as a module ( = code which can be To compile this code as a module, choose M here: the
inserted in and removed from the running kernel whenever you want). module will be called solaris.
The module will be called solaris. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
source "drivers/parport/Kconfig" source "drivers/parport/Kconfig"
...@@ -421,10 +409,8 @@ config PRINTER ...@@ -421,10 +409,8 @@ config PRINTER
It is possible to share one parallel port among several devices It is possible to share one parallel port among several devices
(e.g. printer and ZIP drive) and it is safe to compile the (e.g. printer and ZIP drive) and it is safe to compile the
corresponding drivers into the kernel. If you want to compile this corresponding drivers into the kernel.
driver as a module however ( = code which can be inserted in and To compile this driver as a module, choose M here and read
removed from the running kernel whenever you want), say M here and
read <file:Documentation/modules.txt> and
<file:Documentation/parport.txt>. The module will be called lp. <file:Documentation/parport.txt>. The module will be called lp.
If you have several parallel ports, you can specify which ports to If you have several parallel ports, you can specify which ports to
...@@ -443,10 +429,8 @@ config ENVCTRL ...@@ -443,10 +429,8 @@ config ENVCTRL
Kernel support for temperature and fan monitoring on Sun SME Kernel support for temperature and fan monitoring on Sun SME
machines. machines.
This code is also available as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want). module will be called envctrl.
The module will be called envctrl. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
config DISPLAY7SEG config DISPLAY7SEG
tristate "7-Segment Display support" tristate "7-Segment Display support"
...@@ -455,10 +439,8 @@ config DISPLAY7SEG ...@@ -455,10 +439,8 @@ config DISPLAY7SEG
This is the driver for the 7-segment display and LED present on This is the driver for the 7-segment display and LED present on
Sun Microsystems CompactPCI models CP1400 and CP1500. Sun Microsystems CompactPCI models CP1400 and CP1500.
This driver is also available as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want). module will be called display7seg.
The module will be called display7seg. If you want to compile it
as a module, say M here and read <file:Documentation/modules.txt>.
If you do not have a CompactPCI model CP1400 or CP1500, or If you do not have a CompactPCI model CP1400 or CP1500, or
another UltraSPARC-IIi-cEngine boardset with a 7-segment display, another UltraSPARC-IIi-cEngine boardset with a 7-segment display,
...@@ -471,10 +453,8 @@ config WATCHDOG_CP1XXX ...@@ -471,10 +453,8 @@ config WATCHDOG_CP1XXX
This is the driver for the hardware watchdog timers present on This is the driver for the hardware watchdog timers present on
Sun Microsystems CompactPCI models CP1400 and CP1500. Sun Microsystems CompactPCI models CP1400 and CP1500.
This driver is also available as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want). module will be called cpwatchdog.
The module will be called cpwatchdog. If you want to compile it
as a module, say M here and read <file:Documentation/modules.txt>.
If you do not have a CompactPCI model CP1400 or CP1500, or If you do not have a CompactPCI model CP1400 or CP1500, or
another UltraSPARC-IIi-cEngine boardset with hardware watchdog, another UltraSPARC-IIi-cEngine boardset with hardware watchdog,
...@@ -513,10 +493,8 @@ config BLK_DEV_FD ...@@ -513,10 +493,8 @@ config BLK_DEV_FD
well as location of the fdutils package used to configure additional well as location of the fdutils package used to configure additional
parameters of the driver at run time. parameters of the driver at run time.
This driver is also available as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want). module will be called floppy.
The module will be called floppy. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
config BLK_DEV_LOOP config BLK_DEV_LOOP
tristate "Loopback device support" tristate "Loopback device support"
...@@ -562,10 +540,8 @@ config BLK_DEV_LOOP ...@@ -562,10 +540,8 @@ config BLK_DEV_LOOP
Note that this loop device has nothing to do with the loopback Note that this loop device has nothing to do with the loopback
device used for network connections from the machine to itself. device used for network connections from the machine to itself.
If you want to compile this driver as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want), module will be called loop.
say M here and read <file:Documentation/modules.txt>. The module
will be called loop.
Most users will answer N here. Most users will answer N here.
...@@ -591,10 +567,8 @@ config BLK_DEV_NBD ...@@ -591,10 +567,8 @@ config BLK_DEV_NBD
Note that this has nothing to do with the network file systems NFS 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. 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 To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want), module will be called nbd.
say M here and read <file:Documentation/modules.txt>. The module
will be called nbd.
If unsure, say N. If unsure, say N.
...@@ -613,10 +587,8 @@ config BLK_DEV_RAM ...@@ -613,10 +587,8 @@ config BLK_DEV_RAM
Note that the kernel command line option "ramdisk=XX" is now Note that the kernel command line option "ramdisk=XX" is now
obsolete. For details, read <file:Documentation/ramdisk.txt>. obsolete. For details, read <file:Documentation/ramdisk.txt>.
If you want to compile this as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want), module will be called rd.
say M and read <file:Documentation/modules.txt>. The module will be
called rd.
Most normal users won't need the RAM disk functionality, and can Most normal users won't need the RAM disk functionality, and can
thus say N here. thus say N here.
...@@ -775,11 +747,8 @@ config SOFT_WATCHDOG ...@@ -775,11 +747,8 @@ config SOFT_WATCHDOG
from some situations that the hardware watchdog will recover from some situations that the hardware watchdog will recover
from. Equally it's a lot cheaper to install. from. Equally it's a lot cheaper to install.
This driver is also available as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want). module will be called softdog.
If you want to compile it as a module, say M here and read
<file:Documentation/modules.txt>. The module will be called
softdog.
endmenu endmenu
......
...@@ -15,10 +15,8 @@ config BLK_DEV_FD ...@@ -15,10 +15,8 @@ config BLK_DEV_FD
well as location of the fdutils package used to configure additional well as location of the fdutils package used to configure additional
parameters of the driver at run time. parameters of the driver at run time.
This driver is also available as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want). module will be called floppy.
The module will be called floppy. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
config AMIGA_FLOPPY config AMIGA_FLOPPY
tristate "Amiga floppy support" tristate "Amiga floppy support"
...@@ -49,10 +47,8 @@ config BLK_DEV_PS2 ...@@ -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 Say Y here if you have a PS/2 machine with a MCA bus and an ESDI
hard disk. hard disk.
If you want to compile the driver as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want), module will be called ps2esdi.
say M here and read <file:Documentation/modules.txt>. The module
will be called ps2esdi.
config AMIGA_Z2RAM config AMIGA_Z2RAM
tristate "Amiga Zorro II ramdisk support" tristate "Amiga Zorro II ramdisk support"
...@@ -60,11 +56,10 @@ config AMIGA_Z2RAM ...@@ -60,11 +56,10 @@ config AMIGA_Z2RAM
help help
This enables support for using Chip RAM and Zorro II RAM as a 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 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 driver in the kernel.
( = 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 this driver as a module, choose M here: the
to compile it as a module, say M here and read module will be called z2ram.
<file:Documentation/modules.txt>.
config ATARI_ACSI config ATARI_ACSI
tristate "Atari ACSI support" tristate "Atari ACSI support"
...@@ -80,9 +75,8 @@ config ATARI_ACSI ...@@ -80,9 +75,8 @@ config ATARI_ACSI
Ethernet, and PAMsNet Ethernet. If you want to use one of these Ethernet, and PAMsNet Ethernet. If you want to use one of these
devices, you need ACSI support, too. devices, you need ACSI support, too.
This driver is also available as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want). module will be called acsi.
The module will be called acsi.
comment "Some devices (e.g. CD jukebox) support multiple LUNs" comment "Some devices (e.g. CD jukebox) support multiple LUNs"
depends on ATARI && ATARI_ACSI depends on ATARI && ATARI_ACSI
...@@ -116,10 +110,8 @@ config BLK_DEV_XD ...@@ -116,10 +110,8 @@ config BLK_DEV_XD
Very old 8 bit hard disk controllers used in the IBM XT computer Very old 8 bit hard disk controllers used in the IBM XT computer
will be supported if you say Y here. will be supported if you say Y here.
If you want to compile the driver as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want), module will be called xd.
say M here and read <file:Documentation/modules.txt>. The module
will be called xd.
It's pretty unlikely that you have one of these: say N. It's pretty unlikely that you have one of these: say N.
...@@ -195,10 +187,8 @@ config BLK_DEV_DAC960 ...@@ -195,10 +187,8 @@ config BLK_DEV_DAC960
<file:Documentation/README.DAC960> for further information about <file:Documentation/README.DAC960> for further information about
this driver. this driver.
If you want to compile the driver as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want), module will be called DAC960.
say M here and read <file:Documentation/modules.txt>. The module
will be called DAC960.
config BLK_DEV_UMEM config BLK_DEV_UMEM
tristate "Micro Memory MM5415 Battery Backed RAM support (EXPERIMENTAL)" tristate "Micro Memory MM5415 Battery Backed RAM support (EXPERIMENTAL)"
...@@ -211,10 +201,8 @@ config BLK_DEV_UMEM ...@@ -211,10 +201,8 @@ config BLK_DEV_UMEM
The cards appear as block devices that can be partitioned into The cards appear as block devices that can be partitioned into
as many as 15 partitions. as many as 15 partitions.
If you want to compile this driver as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want), module will be called umem.
say M here and read Documentation/modules.txt. The module will be
called umem.
The umem driver has not yet been allocated a MAJOR number, so The umem driver has not yet been allocated a MAJOR number, so
one is chosen dynamically. Use "devfs" or look in /proc/devices one is chosen dynamically. Use "devfs" or look in /proc/devices
...@@ -255,10 +243,8 @@ config BLK_DEV_LOOP ...@@ -255,10 +243,8 @@ config BLK_DEV_LOOP
Note that this loop device has nothing to do with the loopback Note that this loop device has nothing to do with the loopback
device used for network connections from the machine to itself. device used for network connections from the machine to itself.
If you want to compile this driver as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want), module will be called loop.
say M here and read <file:Documentation/modules.txt>. The module
will be called loop.
Most users will answer N here. Most users will answer N here.
...@@ -293,10 +279,8 @@ config BLK_DEV_NBD ...@@ -293,10 +279,8 @@ config BLK_DEV_NBD
Note that this has nothing to do with the network file systems NFS 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. 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 To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want), module will be called nbd.
say M here and read <file:Documentation/modules.txt>. The module
will be called nbd.
If unsure, say N. If unsure, say N.
...@@ -313,10 +297,8 @@ config BLK_DEV_RAM ...@@ -313,10 +297,8 @@ config BLK_DEV_RAM
Note that the kernel command line option "ramdisk=XX" is now Note that the kernel command line option "ramdisk=XX" is now
obsolete. For details, read <file:Documentation/ramdisk.txt>. obsolete. For details, read <file:Documentation/ramdisk.txt>.
If you want to compile this as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want), module will be called rd.
say M and read <file:Documentation/modules.txt>. The module will be
called rd.
Most normal users won't need the RAM disk functionality, and can Most normal users won't need the RAM disk functionality, and can
thus say N here. thus say N here.
......
...@@ -376,6 +376,11 @@ void blk_queue_hardsect_size(request_queue_t *q, unsigned short size) ...@@ -376,6 +376,11 @@ void blk_queue_hardsect_size(request_queue_t *q, unsigned short size)
q->hardsect_size = 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 * blk_queue_stack_limits - inherit underlying queue limits for stacked drivers
* @t: the stacking driver (top) * @t: the stacking driver (top)
...@@ -383,7 +388,9 @@ void blk_queue_hardsect_size(request_queue_t *q, unsigned short size) ...@@ -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) 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_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_hw_segments = min(t->max_hw_segments,b->max_hw_segments);
t->max_segment_size = min(t->max_segment_size,b->max_segment_size); t->max_segment_size = min(t->max_segment_size,b->max_segment_size);
......
...@@ -24,10 +24,7 @@ config CD_NO_IDESCSI ...@@ -24,10 +24,7 @@ config CD_NO_IDESCSI
file drivers/cdrom/{driver_name}.h where you can define your file drivers/cdrom/{driver_name}.h where you can define your
interface parameters and switch some internal goodies. interface parameters and switch some internal goodies.
All these CD-ROM drivers are also usable as a module ( = code which To compile these CD-ROM drivers as a module, choose M instead of Y.
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>.
If you want to use any of these CD-ROM drivers, you also have to 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 answer Y or M to "ISO 9660 CD-ROM file system support" below (this
...@@ -49,10 +46,8 @@ config AZTCD ...@@ -49,10 +46,8 @@ config AZTCD
file system support" below, because that's the file system used on file system support" below, because that's the file system used on
CD-ROMs. CD-ROMs.
This driver is also available as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want). module will be called aztcd.
The module will be called aztcd. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
config GSCD config GSCD
tristate "Goldstar R420 CDROM support" tristate "Goldstar R420 CDROM support"
...@@ -67,10 +62,8 @@ config GSCD ...@@ -67,10 +62,8 @@ config GSCD
file system support" below, because that's the file system used on file system support" below, because that's the file system used on
CD-ROMs. CD-ROMs.
This driver is also available as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want). module will be called gscd.
The module will be called gscd. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
config SBPCD config SBPCD
tristate "Matsushita/Panasonic/Creative, Longshine, TEAC CDROM support" tristate "Matsushita/Panasonic/Creative, Longshine, TEAC CDROM support"
...@@ -107,10 +100,8 @@ config SBPCD ...@@ -107,10 +100,8 @@ config SBPCD
file system support" below, because that's the file system used on file system support" below, because that's the file system used on
CD-ROMs. CD-ROMs.
This driver is also available as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want). module will be called sbpcd.
The module will be called sbpcd. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
config MCD config MCD
tristate "Mitsumi (standard) [no XA/Multisession] CDROM support" tristate "Mitsumi (standard) [no XA/Multisession] CDROM support"
...@@ -132,10 +123,8 @@ config MCD ...@@ -132,10 +123,8 @@ config MCD
file system support" below, because that's the file system used on file system support" below, because that's the file system used on
CD-ROMs. CD-ROMs.
This driver is also available as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want). module will be called mcd.
The module will be called mcd. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
config MCD_IRQ config MCD_IRQ
int "MCD IRQ" int "MCD IRQ"
...@@ -173,10 +162,8 @@ config MCDX ...@@ -173,10 +162,8 @@ config MCDX
file system support" below, because that's the file system used on file system support" below, because that's the file system used on
CD-ROMs. CD-ROMs.
This driver is also available as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want). module will be called mcdx.
The module will be called mcdx. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
config OPTCD config OPTCD
tristate "Optics Storage DOLPHIN 8000AT CDROM support" tristate "Optics Storage DOLPHIN 8000AT CDROM support"
...@@ -192,10 +179,8 @@ config OPTCD ...@@ -192,10 +179,8 @@ config OPTCD
file system support" below, because that's the file system used on file system support" below, because that's the file system used on
CD-ROMs. CD-ROMs.
This driver is also available as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want). module will be called optcd.
The module will be called optcd. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
config CM206 config CM206
tristate "Philips/LMS CM206 CDROM support" tristate "Philips/LMS CM206 CDROM support"
...@@ -209,10 +194,8 @@ config CM206 ...@@ -209,10 +194,8 @@ config CM206
file system support" below, because that's the file system used on file system support" below, because that's the file system used on
CD-ROMs. CD-ROMs.
This driver is also available as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want). module will be called cm206.
The module will be called cm206. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
config SJCD config SJCD
tristate "Sanyo CDR-H94A CDROM support" tristate "Sanyo CDR-H94A CDROM support"
...@@ -223,10 +206,8 @@ config SJCD ...@@ -223,10 +206,8 @@ config SJCD
"ISO 9660 CD-ROM file system support" below, because that's the "ISO 9660 CD-ROM file system support" below, because that's the
file system used on CD-ROMs. file system used on CD-ROMs.
This driver is also available as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want). module will be called sjcd.
The module will be called sjcd. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
config ISP16_CDI config ISP16_CDI
tristate "ISP16/MAD16/Mozart soft configurable cdrom interface support" tristate "ISP16/MAD16/Mozart soft configurable cdrom interface support"
...@@ -238,10 +219,8 @@ config ISP16_CDI ...@@ -238,10 +219,8 @@ config ISP16_CDI
to a driver for the particular cdrom drive you have attached to the to a driver for the particular cdrom drive you have attached to the
card. Read <file:Documentation/cdrom/isp16> for details. card. Read <file:Documentation/cdrom/isp16> for details.
This driver is also available as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want). module will be called isp16.
The module will be called isp16. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
config CDU31A config CDU31A
tristate "Sony CDU31A/CDU33A CDROM support" tristate "Sony CDU31A/CDU33A CDROM support"
...@@ -260,10 +239,8 @@ config CDU31A ...@@ -260,10 +239,8 @@ config CDU31A
file system support" below, because that's the file system used on file system support" below, because that's the file system used on
CD-ROMs. CD-ROMs.
This driver is also available as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want). module will be called cdu31a.
The module will be called cdu31a. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
config CDU535 config CDU535
tristate "Sony CDU535 CDROM support" tristate "Sony CDU535 CDROM support"
...@@ -276,9 +253,7 @@ config CDU535 ...@@ -276,9 +253,7 @@ config CDU535
file system support" below, because that's the file system used on file system support" below, because that's the file system used on
CD-ROMs. CD-ROMs.
This driver is also available as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want). module will be called sonycd535.
The module will be called sonycd535. If you want to compile it as
a module, say M here and read <file:Documentation/modules.txt>.
endmenu endmenu
This diff is collapsed.
...@@ -21,8 +21,7 @@ config AGP ...@@ -21,8 +21,7 @@ config AGP
You should say Y here if you use XFree86 3.3.6 or 4.x and want to 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. use GLX or DRI. If unsure, say N.
This driver is available as a module. If you want to compile it as To compile this driver as a module, choose M here: the
a module, say M here and read <file:Documentation/modules.txt>. The
module will be called agpgart. module will be called agpgart.
config AGP_ALI config AGP_ALI
......
...@@ -75,9 +75,9 @@ config DRM_MGA ...@@ -75,9 +75,9 @@ config DRM_MGA
config DRM_SIS config DRM_SIS
tristate "SiS video cards" tristate "SiS video cards"
depends on DRM && AGP && FB_SIS depends on DRM && AGP
help help
Choose this option if you have a SiS 630 or compatibel video Choose this option if you have a SiS 630 or compatibel video
chipset. If M is selected the module will be called sis. AGP 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 { ...@@ -551,7 +551,7 @@ typedef struct drm_device_dma {
*/ */
typedef struct drm_agp_mem { typedef struct drm_agp_mem {
unsigned long handle; /**< handle */ unsigned long handle; /**< handle */
struct agp_memory *memory; DRM_AGP_MEM *memory;
unsigned long bound; /**< address */ unsigned long bound; /**< address */
int pages; int pages;
struct drm_agp_mem *prev; /**< previous entry */ struct drm_agp_mem *prev; /**< previous entry */
...@@ -564,7 +564,7 @@ typedef struct drm_agp_mem { ...@@ -564,7 +564,7 @@ typedef struct drm_agp_mem {
* \sa DRM(agp_init)() and drm_device::agp. * \sa DRM(agp_init)() and drm_device::agp.
*/ */
typedef struct drm_agp_head { 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 */ drm_agp_mem_t *memory; /**< memory entries */
unsigned long mode; /**< AGP mode */ unsigned long mode; /**< AGP mode */
int enabled; /**< whether the AGP bus as been enabled */ int enabled; /**< whether the AGP bus as been enabled */
...@@ -784,6 +784,7 @@ extern void DRM(mem_init)(void); ...@@ -784,6 +784,7 @@ extern void DRM(mem_init)(void);
extern int DRM(mem_info)(char *buf, char **start, off_t offset, extern int DRM(mem_info)(char *buf, char **start, off_t offset,
int request, int *eof, void *data); int request, int *eof, void *data);
extern void *DRM(alloc)(size_t size, int area); 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, extern void *DRM(realloc)(void *oldpt, size_t oldsize, size_t size,
int area); int area);
extern void DRM(free)(void *pt, 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, ...@@ -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); extern void DRM(ioremapfree)(void *pt, unsigned long size, drm_device_t *dev);
#if __REALLY_HAVE_AGP #if __REALLY_HAVE_AGP
extern struct agp_memory *DRM(alloc_agp)(int pages, u32 type); extern DRM_AGP_MEM *DRM(alloc_agp)(int pages, u32 type);
extern int DRM(free_agp)(struct agp_memory *handle, int pages); extern int DRM(free_agp)(DRM_AGP_MEM *handle, int pages);
extern int DRM(bind_agp)(struct agp_memory *handle, unsigned int start); extern int DRM(bind_agp)(DRM_AGP_MEM *handle, unsigned int start);
extern int DRM(unbind_agp)(struct agp_memory *handle); extern int DRM(unbind_agp)(DRM_AGP_MEM *handle);
#endif #endif
/* Misc. IOCTL support (drm_ioctl.h) */ /* Misc. IOCTL support (drm_ioctl.h) */
...@@ -904,8 +905,7 @@ extern int DRM(control)( struct inode *inode, struct file *filp, ...@@ -904,8 +905,7 @@ extern int DRM(control)( struct inode *inode, struct file *filp,
unsigned int cmd, unsigned long arg ); unsigned int cmd, unsigned long arg );
extern int DRM(irq_install)( drm_device_t *dev, int irq ); extern int DRM(irq_install)( drm_device_t *dev, int irq );
extern int DRM(irq_uninstall)( drm_device_t *dev ); extern int DRM(irq_uninstall)( drm_device_t *dev );
extern irqreturn_t DRM(dma_service)( int irq, void *device, extern irqreturn_t DRM(dma_service)( DRM_IRQ_ARGS );
struct pt_regs *regs );
extern void DRM(driver_irq_preinstall)( drm_device_t *dev ); 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_postinstall)( drm_device_t *dev );
extern void DRM(driver_irq_uninstall)( 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, ...@@ -943,10 +943,10 @@ extern int DRM(agp_unbind)(struct inode *inode, struct file *filp,
unsigned int cmd, unsigned long arg); unsigned int cmd, unsigned long arg);
extern int DRM(agp_bind)(struct inode *inode, struct file *filp, extern int DRM(agp_bind)(struct inode *inode, struct file *filp,
unsigned int cmd, unsigned long arg); unsigned int cmd, unsigned long arg);
extern struct agp_memory *DRM(agp_allocate_memory)(size_t pages, u32 type); extern DRM_AGP_MEM *DRM(agp_allocate_memory)(size_t pages, u32 type);
extern int DRM(agp_free_memory)(struct agp_memory *handle); extern int DRM(agp_free_memory)(DRM_AGP_MEM *handle);
extern int DRM(agp_bind_memory)(struct agp_memory *handle, off_t start); extern int DRM(agp_bind_memory)(DRM_AGP_MEM *handle, off_t start);
extern int DRM(agp_unbind_memory)(struct agp_memory *handle); extern int DRM(agp_unbind_memory)(DRM_AGP_MEM *handle);
#endif #endif
/* Stub support (drm_stub.h) */ /* Stub support (drm_stub.h) */
......
...@@ -62,7 +62,7 @@ int DRM(agp_info)(struct inode *inode, struct file *filp, ...@@ -62,7 +62,7 @@ int DRM(agp_info)(struct inode *inode, struct file *filp,
{ {
drm_file_t *priv = filp->private_data; drm_file_t *priv = filp->private_data;
drm_device_t *dev = priv->dev; drm_device_t *dev = priv->dev;
struct agp_kern_info *kern; DRM_AGP_KERN *kern;
drm_agp_info_t info; drm_agp_info_t info;
if (!dev->agp || !dev->agp->acquired || !drm_agp->copy_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, ...@@ -198,7 +198,7 @@ int DRM(agp_alloc)(struct inode *inode, struct file *filp,
drm_device_t *dev = priv->dev; drm_device_t *dev = priv->dev;
drm_agp_buffer_t request; drm_agp_buffer_t request;
drm_agp_mem_t *entry; drm_agp_mem_t *entry;
struct agp_memory *memory; DRM_AGP_MEM *memory;
unsigned long pages; unsigned long pages;
u32 type; u32 type;
...@@ -429,7 +429,7 @@ void DRM(agp_uninit)(void) ...@@ -429,7 +429,7 @@ void DRM(agp_uninit)(void)
} }
/** Calls drm_agp->allocate_memory() */ /** 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) if (!drm_agp->allocate_memory)
return NULL; return NULL;
...@@ -437,7 +437,7 @@ struct agp_memory *DRM(agp_allocate_memory)(size_t pages, u32 type) ...@@ -437,7 +437,7 @@ struct agp_memory *DRM(agp_allocate_memory)(size_t pages, u32 type)
} }
/** Calls drm_agp->free_memory() */ /** 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) if (!handle || !drm_agp->free_memory)
return 0; return 0;
...@@ -446,7 +446,7 @@ int DRM(agp_free_memory)(struct agp_memory *handle) ...@@ -446,7 +446,7 @@ int DRM(agp_free_memory)(struct agp_memory *handle)
} }
/** Calls drm_agp->bind_memory() */ /** 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) if (!handle || !drm_agp->bind_memory)
return -EINVAL; return -EINVAL;
...@@ -454,7 +454,7 @@ int DRM(agp_bind_memory)(struct agp_memory *handle, off_t start) ...@@ -454,7 +454,7 @@ int DRM(agp_bind_memory)(struct agp_memory *handle, off_t start)
} }
/** Calls drm_agp->unbind_memory() */ /** 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) if (!handle || !drm_agp->unbind_memory)
return -EINVAL; return -EINVAL;
......
...@@ -117,10 +117,7 @@ agp_remap (unsigned long offset, unsigned long size, drm_device_t *dev) ...@@ -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); page_map[i] = pfn_to_page(phys_addr_map[i] >> PAGE_SHIFT);
addr = vmap(page_map, num_pages, VM_IOREMAP, PAGE_AGP); addr = vmap(page_map, num_pages, VM_IOREMAP, PAGE_AGP);
vfree(page_map); vfree(page_map);
if (!addr)
return NULL;
flush_tlb_kernel_range((unsigned long) addr, (unsigned long) addr + size);
return addr; return addr;
} }
...@@ -224,6 +221,18 @@ void *DRM(alloc)(size_t size, int area) ...@@ -224,6 +221,18 @@ void *DRM(alloc)(size_t size, int area)
return kmalloc(size, GFP_KERNEL); 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() */ /** Wrapper around kmalloc() and kfree() */
void *DRM(realloc)(void *oldpt, size_t oldsize, size_t size, int area) 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) ...@@ -324,25 +333,25 @@ void DRM(ioremapfree)(void *pt, unsigned long size, drm_device_t *dev)
#if __REALLY_HAVE_AGP #if __REALLY_HAVE_AGP
/** Wrapper around agp_allocate_memory() */ /** 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); return DRM(agp_allocate_memory)(pages, type);
} }
/** Wrapper around agp_free_memory() */ /** 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; return DRM(agp_free_memory)(handle) ? 0 : -EINVAL;
} }
/** Wrapper around agp_bind_memory() */ /** 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); return DRM(agp_bind_memory)(handle, start);
} }
/** Wrapper around agp_unbind_memory() */ /** 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); return DRM(agp_unbind_memory)(handle);
} }
......
...@@ -166,6 +166,17 @@ void *DRM(alloc)(size_t size, int area) ...@@ -166,6 +166,17 @@ void *DRM(alloc)(size_t size, int area)
return pt; 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 *DRM(realloc)(void *oldpt, size_t oldsize, size_t size, int area)
{ {
void *pt; void *pt;
...@@ -342,9 +353,9 @@ void DRM(ioremapfree)(void *pt, unsigned long size, drm_device_t *dev) ...@@ -342,9 +353,9 @@ void DRM(ioremapfree)(void *pt, unsigned long size, drm_device_t *dev)
#if __REALLY_HAVE_AGP #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) { if (!pages) {
DRM_MEM_ERROR(DRM_MEM_TOTALAGP, "Allocating 0 pages\n"); DRM_MEM_ERROR(DRM_MEM_TOTALAGP, "Allocating 0 pages\n");
...@@ -365,7 +376,7 @@ agp_memory *DRM(alloc_agp)(int pages, u32 type) ...@@ -365,7 +376,7 @@ agp_memory *DRM(alloc_agp)(int pages, u32 type)
return NULL; 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 alloc_count;
int free_count; int free_count;
...@@ -394,7 +405,7 @@ int DRM(free_agp)(agp_memory *handle, int pages) ...@@ -394,7 +405,7 @@ int DRM(free_agp)(agp_memory *handle, int pages)
return retval; 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; int retcode = -EINVAL;
...@@ -418,7 +429,7 @@ int DRM(bind_agp)(agp_memory *handle, unsigned int start) ...@@ -418,7 +429,7 @@ int DRM(bind_agp)(agp_memory *handle, unsigned int start)
return retcode; return retcode;
} }
int DRM(unbind_agp)(agp_memory *handle) int DRM(unbind_agp)(DRM_AGP_MEM *handle)
{ {
int alloc_count; int alloc_count;
int free_count; int free_count;
......
...@@ -32,9 +32,14 @@ ...@@ -32,9 +32,14 @@
/** DRM device local declaration */ /** DRM device local declaration */
#define DRM_DEVICE drm_file_t *priv = filp->private_data; \ #define DRM_DEVICE drm_file_t *priv = filp->private_data; \
drm_device_t *dev = priv->dev 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 #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 */ /** Task queue handler arguments */
#define DRM_TASKQUEUE_ARGS void *arg #define DRM_TASKQUEUE_ARGS void *arg
......
...@@ -116,13 +116,14 @@ static inline int gamma_dma_is_ready(drm_device_t *dev) ...@@ -116,13 +116,14 @@ static inline int gamma_dma_is_ready(drm_device_t *dev)
return (!GAMMA_READ(GAMMA_DMACOUNT)); 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_device_dma_t *dma = dev->dma;
drm_gamma_private_t *dev_priv = drm_gamma_private_t *dev_priv =
(drm_gamma_private_t *)dev->dev_private; (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 */ atomic_inc(&dev->counts[6]); /* _DRM_STAT_IRQ */
while (GAMMA_READ(GAMMA_INFIFOSPACE) < 3) while (GAMMA_READ(GAMMA_INFIFOSPACE) < 3)
...@@ -141,7 +142,7 @@ irqreturn_t gamma_dma_service(int irq, void *device, struct pt_regs *regs) ...@@ -141,7 +142,7 @@ irqreturn_t gamma_dma_service(int irq, void *device, struct pt_regs *regs)
} }
clear_bit(0, &dev->dma_flag); clear_bit(0, &dev->dma_flag);
/* Dispatch new buffer */ /* Dispatch new buffer */
schedule_work(&dev->work); schedule_work(&dev->work);
} }
return IRQ_HANDLED; return IRQ_HANDLED;
......
...@@ -83,7 +83,7 @@ static drm_buf_t *i810_freelist_get(drm_device_t *dev) ...@@ -83,7 +83,7 @@ static drm_buf_t *i810_freelist_get(drm_device_t *dev)
/* In use is already a pointer */ /* In use is already a pointer */
used = cmpxchg(buf_priv->in_use, I810_BUF_FREE, used = cmpxchg(buf_priv->in_use, I810_BUF_FREE,
I810_BUF_CLIENT); I810_BUF_CLIENT);
if(used == I810_BUF_FREE) { if (used == I810_BUF_FREE) {
return buf; return buf;
} }
} }
...@@ -101,7 +101,7 @@ static int i810_freelist_put(drm_device_t *dev, drm_buf_t *buf) ...@@ -101,7 +101,7 @@ static int i810_freelist_put(drm_device_t *dev, drm_buf_t *buf)
/* In use is already a pointer */ /* In use is already a pointer */
used = cmpxchg(buf_priv->in_use, I810_BUF_CLIENT, I810_BUF_FREE); 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); DRM_ERROR("Freeing buffer thats not in use : %d\n", buf->idx);
return -EINVAL; return -EINVAL;
} }
...@@ -154,7 +154,8 @@ static int i810_map_buffer(drm_buf_t *buf, struct file *filp) ...@@ -154,7 +154,8 @@ static int i810_map_buffer(drm_buf_t *buf, struct file *filp)
struct file_operations *old_fops; struct file_operations *old_fops;
int retcode = 0; 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 ); down_write( &current->mm->mmap_sem );
old_fops = filp->f_op; old_fops = filp->f_op;
...@@ -182,7 +183,7 @@ static int i810_unmap_buffer(drm_buf_t *buf) ...@@ -182,7 +183,7 @@ static int i810_unmap_buffer(drm_buf_t *buf)
drm_i810_buf_priv_t *buf_priv = buf->dev_private; drm_i810_buf_priv_t *buf_priv = buf->dev_private;
int retcode = 0; int retcode = 0;
if(buf_priv->currently_mapped != I810_BUF_MAPPED) if (buf_priv->currently_mapped != I810_BUF_MAPPED)
return -EINVAL; return -EINVAL;
down_write(&current->mm->mmap_sem); 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, ...@@ -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); retcode = i810_map_buffer(buf, filp);
if(retcode) { if (retcode) {
i810_freelist_put(dev, buf); i810_freelist_put(dev, buf);
DRM_ERROR("mapbuf failed, retcode %d\n", retcode); DRM_ERROR("mapbuf failed, retcode %d\n", retcode);
return retcode; return retcode;
...@@ -244,7 +245,7 @@ int i810_dma_cleanup(drm_device_t *dev) ...@@ -244,7 +245,7 @@ int i810_dma_cleanup(drm_device_t *dev)
drm_i810_private_t *dev_priv = drm_i810_private_t *dev_priv =
(drm_i810_private_t *) dev->dev_private; (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, DRM(ioremapfree)((void *) dev_priv->ring.virtual_start,
dev_priv->ring.Size, dev); dev_priv->ring.Size, dev);
} }
...@@ -289,7 +290,7 @@ static int i810_wait_ring(drm_device_t *dev, int n) ...@@ -289,7 +290,7 @@ static int i810_wait_ring(drm_device_t *dev, int n)
} }
iters++; iters++;
if(time_before(end, jiffies)) { if (time_before(end, jiffies)) {
DRM_ERROR("space: %d wanted %d\n", ring->space, n); DRM_ERROR("space: %d wanted %d\n", ring->space, n);
DRM_ERROR("lockup\n"); DRM_ERROR("lockup\n");
goto out_wait_ring; goto out_wait_ring;
...@@ -319,7 +320,7 @@ static int i810_freelist_init(drm_device_t *dev, drm_i810_private_t *dev_priv) ...@@ -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); u32 *hw_status = (u32 *)(dev_priv->hw_status_page + my_idx);
int i; int i;
if(dma->buf_count > 1019) { if (dma->buf_count > 1019) {
/* Not enough space in the status page for the freelist */ /* Not enough space in the status page for the freelist */
return -EINVAL; return -EINVAL;
} }
...@@ -350,28 +351,28 @@ static int i810_dma_initialize(drm_device_t *dev, ...@@ -350,28 +351,28 @@ static int i810_dma_initialize(drm_device_t *dev,
list_for_each(list, &dev->maplist->head) { list_for_each(list, &dev->maplist->head) {
drm_map_list_t *r_list = list_entry(list, drm_map_list_t, 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->type == _DRM_SHM &&
r_list->map->flags & _DRM_CONTAINS_LOCK ) { r_list->map->flags & _DRM_CONTAINS_LOCK ) {
dev_priv->sarea_map = r_list->map; dev_priv->sarea_map = r_list->map;
break; break;
} }
} }
if(!dev_priv->sarea_map) { if (!dev_priv->sarea_map) {
dev->dev_private = (void *)dev_priv; dev->dev_private = (void *)dev_priv;
i810_dma_cleanup(dev); i810_dma_cleanup(dev);
DRM_ERROR("can not find sarea!\n"); DRM_ERROR("can not find sarea!\n");
return -EINVAL; return -EINVAL;
} }
DRM_FIND_MAP( dev_priv->mmio_map, init->mmio_offset ); 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; dev->dev_private = (void *)dev_priv;
i810_dma_cleanup(dev); i810_dma_cleanup(dev);
DRM_ERROR("can not find mmio map!\n"); DRM_ERROR("can not find mmio map!\n");
return -EINVAL; return -EINVAL;
} }
DRM_FIND_MAP( dev_priv->buffer_map, init->buffers_offset ); 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; dev->dev_private = (void *)dev_priv;
i810_dma_cleanup(dev); i810_dma_cleanup(dev);
DRM_ERROR("can not find dma buffer map!\n"); DRM_ERROR("can not find dma buffer map!\n");
...@@ -431,7 +432,7 @@ static int i810_dma_initialize(drm_device_t *dev, ...@@ -431,7 +432,7 @@ static int i810_dma_initialize(drm_device_t *dev,
DRM_DEBUG("Enabled hardware status page\n"); DRM_DEBUG("Enabled hardware status page\n");
/* Now we need to init our freelist */ /* 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; dev->dev_private = (void *)dev_priv;
i810_dma_cleanup(dev); i810_dma_cleanup(dev);
DRM_ERROR("Not enough space in the status page for" DRM_ERROR("Not enough space in the status page for"
...@@ -467,8 +468,8 @@ int i810_dma_init_compat(drm_i810_init_t *init, unsigned long arg) ...@@ -467,8 +468,8 @@ 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 */ /* This is a v1.2 client, just get the v1.2 init data */
DRM_INFO("Using POST v1.2 init.\n"); 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))) { sizeof(drm_i810_init_t))) {
return -EFAULT; return -EFAULT;
} }
} else { } else {
...@@ -496,7 +497,7 @@ int i810_dma_init(struct inode *inode, struct file *filp, ...@@ -496,7 +497,7 @@ int i810_dma_init(struct inode *inode, struct file *filp,
int retcode = 0; int retcode = 0;
/* Get only the init func */ /* Get only the init func */
if (copy_from_user(&init, (void *)arg, sizeof(drm_i810_init_func_t))) if (copy_from_user(&init, (void *)arg, sizeof(drm_i810_init_func_t)))
return -EFAULT; return -EFAULT;
switch(init.func) { switch(init.func) {
...@@ -513,9 +514,9 @@ int i810_dma_init(struct inode *inode, struct file *filp, ...@@ -513,9 +514,9 @@ int i810_dma_init(struct inode *inode, struct file *filp,
dev_priv = DRM(alloc)(sizeof(drm_i810_private_t), dev_priv = DRM(alloc)(sizeof(drm_i810_private_t),
DRM_MEM_DRIVER); DRM_MEM_DRIVER);
if (dev_priv == NULL) if (dev_priv == NULL)
return -ENOMEM; return -ENOMEM;
retcode = i810_dma_initialize(dev, dev_priv, &init); retcode = i810_dma_initialize(dev, dev_priv, &init);
break; break;
default: default:
case I810_INIT_DMA_1_4: case I810_INIT_DMA_1_4:
...@@ -526,15 +527,15 @@ int i810_dma_init(struct inode *inode, struct file *filp, ...@@ -526,15 +527,15 @@ int i810_dma_init(struct inode *inode, struct file *filp,
} }
dev_priv = DRM(alloc)(sizeof(drm_i810_private_t), dev_priv = DRM(alloc)(sizeof(drm_i810_private_t),
DRM_MEM_DRIVER); DRM_MEM_DRIVER);
if (dev_priv == NULL) if (dev_priv == NULL)
return -ENOMEM; return -ENOMEM;
retcode = i810_dma_initialize(dev, dev_priv, &init); retcode = i810_dma_initialize(dev, dev_priv, &init);
break; break;
case I810_CLEANUP_DMA: case I810_CLEANUP_DMA:
DRM_INFO("DMA Cleanup\n"); DRM_INFO("DMA Cleanup\n");
retcode = i810_dma_cleanup(dev); retcode = i810_dma_cleanup(dev);
break; break;
} }
return retcode; return retcode;
...@@ -1019,7 +1020,7 @@ void i810_reclaim_buffers(struct file *filp) ...@@ -1019,7 +1020,7 @@ void i810_reclaim_buffers(struct file *filp)
if (used == I810_BUF_CLIENT) if (used == I810_BUF_CLIENT)
DRM_DEBUG("reclaimed from client\n"); 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; buf_priv->currently_mapped = I810_BUF_UNMAPPED;
} }
} }
...@@ -1031,7 +1032,7 @@ int i810_flush_ioctl(struct inode *inode, struct file *filp, ...@@ -1031,7 +1032,7 @@ int i810_flush_ioctl(struct inode *inode, struct file *filp,
drm_file_t *priv = filp->private_data; drm_file_t *priv = filp->private_data;
drm_device_t *dev = priv->dev; 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"); DRM_ERROR("i810_flush_ioctl called without lock held\n");
return -EINVAL; return -EINVAL;
} }
...@@ -1056,7 +1057,7 @@ int i810_dma_vertex(struct inode *inode, struct file *filp, ...@@ -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))) if (copy_from_user(&vertex, (drm_i810_vertex_t *)arg, sizeof(vertex)))
return -EFAULT; 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"); DRM_ERROR("i810_dma_vertex called without lock held\n");
return -EINVAL; return -EINVAL;
} }
...@@ -1064,7 +1065,8 @@ int i810_dma_vertex(struct inode *inode, struct file *filp, ...@@ -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", DRM_DEBUG("i810 dma vertex, idx %d used %d discard %d\n",
vertex.idx, vertex.used, vertex.discard); 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, i810_dma_dispatch_vertex( dev,
dma->buflist[ vertex.idx ], dma->buflist[ vertex.idx ],
...@@ -1090,7 +1092,7 @@ int i810_clear_bufs(struct inode *inode, struct file *filp, ...@@ -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))) if (copy_from_user(&clear, (drm_i810_clear_t *)arg, sizeof(clear)))
return -EFAULT; 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"); DRM_ERROR("i810_clear_bufs called without lock held\n");
return -EINVAL; return -EINVAL;
} }
...@@ -1114,7 +1116,7 @@ int i810_swap_bufs(struct inode *inode, struct file *filp, ...@@ -1114,7 +1116,7 @@ int i810_swap_bufs(struct inode *inode, struct file *filp,
DRM_DEBUG("i810_swap_bufs\n"); 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"); DRM_ERROR("i810_swap_buf called without lock held\n");
return -EINVAL; return -EINVAL;
} }
...@@ -1152,7 +1154,7 @@ int i810_getbuf(struct inode *inode, struct file *filp, unsigned int cmd, ...@@ -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))) if (copy_from_user(&d, (drm_i810_dma_t *)arg, sizeof(d)))
return -EFAULT; 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"); DRM_ERROR("i810_dma called without lock held\n");
return -EINVAL; return -EINVAL;
} }
...@@ -1202,7 +1204,7 @@ static void i810_dma_dispatch_mc(drm_device_t *dev, drm_buf_t *buf, int used, ...@@ -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, u = cmpxchg(buf_priv->in_use, I810_BUF_CLIENT,
I810_BUF_HARDWARE); I810_BUF_HARDWARE);
if(u != I810_BUF_CLIENT) { if (u != I810_BUF_CLIENT) {
DRM_DEBUG("MC found buffer that isn't mine!\n"); DRM_DEBUG("MC found buffer that isn't mine!\n");
} }
...@@ -1266,7 +1268,7 @@ int i810_dma_mc(struct inode *inode, struct file *filp, ...@@ -1266,7 +1268,7 @@ int i810_dma_mc(struct inode *inode, struct file *filp,
return -EFAULT; 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"); DRM_ERROR("i810_dma_mc called without lock held\n");
return -EINVAL; return -EINVAL;
} }
...@@ -1314,7 +1316,7 @@ int i810_fstatus(struct inode *inode, struct file *filp, ...@@ -1314,7 +1316,7 @@ int i810_fstatus(struct inode *inode, struct file *filp,
drm_device_t *dev = priv->dev; drm_device_t *dev = priv->dev;
drm_i810_private_t *dev_priv = (drm_i810_private_t *)dev->dev_private; 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"); DRM_ERROR("i810_fstatus called without lock held\n");
return -EINVAL; return -EINVAL;
} }
...@@ -1328,7 +1330,7 @@ int i810_ov0_flip(struct inode *inode, struct file *filp, ...@@ -1328,7 +1330,7 @@ int i810_ov0_flip(struct inode *inode, struct file *filp,
drm_device_t *dev = priv->dev; drm_device_t *dev = priv->dev;
drm_i810_private_t *dev_priv = (drm_i810_private_t *)dev->dev_private; 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"); DRM_ERROR("i810_ov0_flip called without lock held\n");
return -EINVAL; return -EINVAL;
} }
...@@ -1373,7 +1375,7 @@ int i810_flip_bufs(struct inode *inode, struct file *filp, ...@@ -1373,7 +1375,7 @@ int i810_flip_bufs(struct inode *inode, struct file *filp,
DRM_DEBUG("%s\n", __FUNCTION__); 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"); DRM_ERROR("i810_flip_buf called without lock held\n");
return -EINVAL; return -EINVAL;
} }
......
...@@ -35,9 +35,9 @@ ...@@ -35,9 +35,9 @@
#include <linux/delay.h> #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; drm_i830_private_t *dev_priv = (drm_i830_private_t *)dev->dev_private;
u16 temp; u16 temp;
......
...@@ -81,8 +81,6 @@ static u32 r128_cce_microcode[] = { ...@@ -81,8 +81,6 @@ static u32 r128_cce_microcode[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 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) int R128_READ_PLL(drm_device_t *dev, int addr)
{ {
drm_r128_private_t *dev_priv = dev->dev_private; 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 ) ...@@ -151,7 +149,7 @@ static int r128_do_wait_for_fifo( drm_r128_private_t *dev_priv, int entries )
return DRM_ERR(EBUSY); 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; int i, ret;
......
...@@ -68,19 +68,19 @@ ...@@ -68,19 +68,19 @@
* 1.5 - Add r200 packets to cmdbuf ioctl * 1.5 - Add r200 packets to cmdbuf ioctl
* - Add r200 function to init ioctl * - Add r200 function to init ioctl
* - Add 'scalar2' instruction to cmdbuf * - 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 handler (won't be turned on unless X server knows to)
* Add irq ioctls and irq_active getparam. * Add irq ioctls and irq_active getparam.
* Add wait command for cmdbuf ioctl * 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] * 1.7 - Add support for cube map registers: R200_PP_CUBIC_FACES_[0..5]
* and R200_PP_CUBIC_OFFSET_F1_[0..5]. * and R200_PP_CUBIC_OFFSET_F1_[0..5].
* Added packets R200_EMIT_PP_CUBIC_FACES_[0..5] and * Added packets R200_EMIT_PP_CUBIC_FACES_[0..5] and
* R200_EMIT_PP_CUBIC_OFFSETS_[0..5]. (brian) * R200_EMIT_PP_CUBIC_OFFSETS_[0..5]. (brian)
* 1.8 - Remove need to call cleanup ioctls on last client exit (keith) * 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 'GET' queries for starting additional clients on different VT's.
* Add DRM_IOCTL_RADEON_CP_RESUME ioctl. * 1.9 - Add DRM_IOCTL_RADEON_CP_RESUME ioctl.
* 1.9 - Add texture rectangle support for r100. * Add texture rectangle support for r100.
*/ */
#define DRIVER_IOCTLS \ #define DRIVER_IOCTLS \
[DRM_IOCTL_NR(DRM_IOCTL_DMA)] = { radeon_cp_buffers, 1, 0 }, \ [DRM_IOCTL_NR(DRM_IOCTL_DMA)] = { radeon_cp_buffers, 1, 0 }, \
...@@ -113,7 +113,7 @@ ...@@ -113,7 +113,7 @@
/* When a client dies: /* When a client dies:
* - Check for and clean up flipped page state * - 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. * DRM infrastructure takes care of reclaiming dma buffers.
*/ */
...@@ -124,7 +124,7 @@ do { \ ...@@ -124,7 +124,7 @@ do { \
if ( dev_priv->page_flipping ) { \ if ( dev_priv->page_flipping ) { \
radeon_do_cleanup_pageflip( dev ); \ 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 ); \ radeon_mem_release( filp, dev_priv->fb_heap ); \
} \ } \
} while (0) } while (0)
......
This diff is collapsed.
...@@ -214,11 +214,11 @@ typedef union { ...@@ -214,11 +214,11 @@ typedef union {
#define RADEON_NR_SAREA_CLIPRECTS 12 #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. * minimum of 64k, and there are at most 64 of them per heap.
*/ */
#define RADEON_LOCAL_TEX_HEAP 0 #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_HEAPS 2
#define RADEON_NR_TEX_REGIONS 64 #define RADEON_NR_TEX_REGIONS 64
#define RADEON_LOG_TEX_GRANULARITY 16 #define RADEON_LOG_TEX_GRANULARITY 16
...@@ -400,7 +400,7 @@ typedef struct drm_radeon_init { ...@@ -400,7 +400,7 @@ typedef struct drm_radeon_init {
unsigned long sarea_priv_offset; unsigned long sarea_priv_offset;
int is_pci; int is_pci;
int cp_mode; int cp_mode;
int agp_size; int gart_size;
int ring_size; int ring_size;
int usec_timeout; int usec_timeout;
...@@ -415,7 +415,7 @@ typedef struct drm_radeon_init { ...@@ -415,7 +415,7 @@ typedef struct drm_radeon_init {
unsigned long ring_offset; unsigned long ring_offset;
unsigned long ring_rptr_offset; unsigned long ring_rptr_offset;
unsigned long buffers_offset; unsigned long buffers_offset;
unsigned long agp_textures_offset; unsigned long gart_textures_offset;
} drm_radeon_init_t; } drm_radeon_init_t;
typedef struct drm_radeon_cp_stop { typedef struct drm_radeon_cp_stop {
...@@ -525,18 +525,18 @@ typedef struct drm_radeon_indirect { ...@@ -525,18 +525,18 @@ typedef struct drm_radeon_indirect {
/* 1.3: An ioctl to get parameters that aren't available to the 3d /* 1.3: An ioctl to get parameters that aren't available to the 3d
* client any other way. * 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_FRAME 2
#define RADEON_PARAM_LAST_DISPATCH 3 #define RADEON_PARAM_LAST_DISPATCH 3
#define RADEON_PARAM_LAST_CLEAR 4 #define RADEON_PARAM_LAST_CLEAR 4
/* Added with DRM version 1.6. */ /* Added with DRM version 1.6. */
#define RADEON_PARAM_IRQ_NR 5 #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. */ /* Added with DRM version 1.8. */
#define RADEON_PARAM_REGISTER_HANDLE 7 /* for drmMap() */ #define RADEON_PARAM_REGISTER_HANDLE 7 /* for drmMap() */
#define RADEON_PARAM_STATUS_HANDLE 8 #define RADEON_PARAM_STATUS_HANDLE 8
#define RADEON_PARAM_SAREA_HANDLE 9 #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 { typedef struct drm_radeon_getparam {
int param; int param;
...@@ -545,14 +545,14 @@ typedef struct drm_radeon_getparam { ...@@ -545,14 +545,14 @@ typedef struct drm_radeon_getparam {
/* 1.6: Set up a memory manager for regions of shared memory: /* 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 #define RADEON_MEM_REGION_FB 2
typedef struct drm_radeon_mem_alloc { typedef struct drm_radeon_mem_alloc {
int region; int region;
int alignment; int alignment;
int size; 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; } drm_radeon_mem_alloc_t;
typedef struct drm_radeon_mem_free { typedef struct drm_radeon_mem_free {
......
...@@ -73,9 +73,9 @@ typedef struct drm_radeon_private { ...@@ -73,9 +73,9 @@ typedef struct drm_radeon_private {
drm_radeon_ring_buffer_t ring; drm_radeon_ring_buffer_t ring;
drm_radeon_sarea_t *sarea_priv; drm_radeon_sarea_t *sarea_priv;
int agp_size; int gart_size;
u32 agp_vm_start; u32 gart_vm_start;
unsigned long agp_buffers_offset; unsigned long gart_buffers_offset;
int cp_mode; int cp_mode;
int cp_running; int cp_running;
...@@ -130,7 +130,7 @@ typedef struct drm_radeon_private { ...@@ -130,7 +130,7 @@ typedef struct drm_radeon_private {
unsigned long ring_offset; unsigned long ring_offset;
unsigned long ring_rptr_offset; unsigned long ring_rptr_offset;
unsigned long buffers_offset; unsigned long buffers_offset;
unsigned long agp_textures_offset; unsigned long gart_textures_offset;
drm_local_map_t *sarea; drm_local_map_t *sarea;
drm_local_map_t *fb; drm_local_map_t *fb;
...@@ -138,9 +138,9 @@ typedef struct drm_radeon_private { ...@@ -138,9 +138,9 @@ typedef struct drm_radeon_private {
drm_local_map_t *cp_ring; drm_local_map_t *cp_ring;
drm_local_map_t *ring_rptr; drm_local_map_t *ring_rptr;
drm_local_map_t *buffers; 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; struct mem_block *fb_heap;
/* SW interrupt */ /* 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. * Copyright (C) The Weather Channel, Inc. 2002. All Rights Reserved.
* *
...@@ -35,7 +35,7 @@ ...@@ -35,7 +35,7 @@
#include "radeon_drm.h" #include "radeon_drm.h"
#include "radeon_drv.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. * already mapped into each client's address space.
*/ */
...@@ -212,8 +212,8 @@ static struct mem_block **get_heap( drm_radeon_private_t *dev_priv, ...@@ -212,8 +212,8 @@ static struct mem_block **get_heap( drm_radeon_private_t *dev_priv,
int region ) int region )
{ {
switch( region ) { switch( region ) {
case RADEON_MEM_REGION_AGP: case RADEON_MEM_REGION_GART:
return &dev_priv->agp_heap; return &dev_priv->gart_heap;
case RADEON_MEM_REGION_FB: case RADEON_MEM_REGION_FB:
return &dev_priv->fb_heap; return &dev_priv->fb_heap;
default: default:
......
...@@ -893,7 +893,7 @@ static void radeon_cp_dispatch_vertex( drm_device_t *dev, ...@@ -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_private_t *dev_priv = dev->dev_private;
drm_radeon_sarea_t *sarea_priv = dev_priv->sarea_priv; 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 numverts = (int)prim->numverts;
int nbox = sarea_priv->nbox; int nbox = sarea_priv->nbox;
int i = 0; int i = 0;
...@@ -966,7 +966,7 @@ static void radeon_cp_dispatch_indirect( drm_device_t *dev, ...@@ -966,7 +966,7 @@ static void radeon_cp_dispatch_indirect( drm_device_t *dev,
buf->idx, start, end ); buf->idx, start, end );
if ( start != end ) { if ( start != end ) {
int offset = (dev_priv->agp_buffers_offset int offset = (dev_priv->gart_buffers_offset
+ buf->offset + start); + buf->offset + start);
int dwords = (end - start + 3) / sizeof(u32); int dwords = (end - start + 3) / sizeof(u32);
...@@ -999,7 +999,7 @@ static void radeon_cp_dispatch_indices( drm_device_t *dev, ...@@ -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_private_t *dev_priv = dev->dev_private;
drm_radeon_sarea_t *sarea_priv = dev_priv->sarea_priv; 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; u32 *data;
int dwords; int dwords;
int i = 0; int i = 0;
...@@ -2159,8 +2159,8 @@ int radeon_cp_getparam( DRM_IOCTL_ARGS ) ...@@ -2159,8 +2159,8 @@ int radeon_cp_getparam( DRM_IOCTL_ARGS )
DRM_DEBUG( "pid=%d\n", DRM_CURRENTPID ); DRM_DEBUG( "pid=%d\n", DRM_CURRENTPID );
switch( param.param ) { switch( param.param ) {
case RADEON_PARAM_AGP_BUFFER_OFFSET: case RADEON_PARAM_GART_BUFFER_OFFSET:
value = dev_priv->agp_buffers_offset; value = dev_priv->gart_buffers_offset;
break; break;
case RADEON_PARAM_LAST_FRAME: case RADEON_PARAM_LAST_FRAME:
dev_priv->stats.last_frame_reads++; dev_priv->stats.last_frame_reads++;
...@@ -2176,8 +2176,8 @@ int radeon_cp_getparam( DRM_IOCTL_ARGS ) ...@@ -2176,8 +2176,8 @@ int radeon_cp_getparam( DRM_IOCTL_ARGS )
case RADEON_PARAM_IRQ_NR: case RADEON_PARAM_IRQ_NR:
value = dev->irq; value = dev->irq;
break; break;
case RADEON_PARAM_AGP_BASE: case RADEON_PARAM_GART_BASE:
value = dev_priv->agp_vm_start; value = dev_priv->gart_vm_start;
break; break;
case RADEON_PARAM_REGISTER_HANDLE: case RADEON_PARAM_REGISTER_HANDLE:
value = dev_priv->mmio_offset; value = dev_priv->mmio_offset;
...@@ -2189,8 +2189,8 @@ int radeon_cp_getparam( DRM_IOCTL_ARGS ) ...@@ -2189,8 +2189,8 @@ int radeon_cp_getparam( DRM_IOCTL_ARGS )
/* The lock is the first dword in the sarea. */ /* The lock is the first dword in the sarea. */
value = (int)dev->lock.hw_lock; value = (int)dev->lock.hw_lock;
break; break;
case RADEON_PARAM_AGP_TEX_HANDLE: case RADEON_PARAM_GART_TEX_HANDLE:
value = dev_priv->agp_textures_offset; value = dev_priv->gart_textures_offset;
break; break;
default: default:
return DRM_ERR(EINVAL); return DRM_ERR(EINVAL);
......
...@@ -33,7 +33,11 @@ ...@@ -33,7 +33,11 @@
* Name it sisdrv_##x as there's a conflict with sis_free/malloc in the kernel * Name it sisdrv_##x as there's a conflict with sis_free/malloc in the kernel
* that's used for fb devices * that's used for fb devices
*/ */
#ifdef __linux__
#define DRM(x) sisdrv_##x #define DRM(x) sisdrv_##x
#else
#define DRM(x) sis_##x
#endif
/* General customization: /* General customization:
*/ */
...@@ -42,28 +46,21 @@ ...@@ -42,28 +46,21 @@
#define __HAVE_MTRR 1 #define __HAVE_MTRR 1
#define __HAVE_CTX_BITMAP 1 #define __HAVE_CTX_BITMAP 1
#define DRIVER_AUTHOR "SIS" #define DRIVER_AUTHOR "SIS"
#define DRIVER_NAME "sis" #define DRIVER_NAME "sis"
#define DRIVER_DESC "SIS 300/630/540" #define DRIVER_DESC "SIS 300/630/540"
#define DRIVER_DATE "20010503" #define DRIVER_DATE "20030826"
#define DRIVER_MAJOR 1 #define DRIVER_MAJOR 1
#define DRIVER_MINOR 0 #define DRIVER_MINOR 1
#define DRIVER_PATCHLEVEL 0 #define DRIVER_PATCHLEVEL 0
#define DRIVER_IOCTLS \ #define DRIVER_IOCTLS \
[DRM_IOCTL_NR(SIS_IOCTL_FB_ALLOC)] = { sis_fb_alloc, 1, 0 }, \ [DRM_IOCTL_NR(DRM_IOCTL_SIS_FB_ALLOC)] = { sis_fb_alloc, 1, 0 }, \
[DRM_IOCTL_NR(SIS_IOCTL_FB_FREE)] = { sis_fb_free, 1, 0 }, \ [DRM_IOCTL_NR(DRM_IOCTL_SIS_FB_FREE)] = { sis_fb_free, 1, 0 }, \
/* AGP Memory Management */ \ [DRM_IOCTL_NR(DRM_IOCTL_SIS_AGP_INIT)] = { sis_ioctl_agp_init, 1, 1 }, \
[DRM_IOCTL_NR(SIS_IOCTL_AGP_INIT)] = { sisp_agp_init, 1, 0 }, \ [DRM_IOCTL_NR(DRM_IOCTL_SIS_AGP_ALLOC)] = { sis_ioctl_agp_alloc, 1, 0 }, \
[DRM_IOCTL_NR(SIS_IOCTL_AGP_ALLOC)] = { sisp_agp_alloc, 1, 0 }, \ [DRM_IOCTL_NR(DRM_IOCTL_SIS_AGP_FREE)] = { sis_ioctl_agp_free, 1, 0 }, \
[DRM_IOCTL_NR(SIS_IOCTL_AGP_FREE)] = { sisp_agp_free, 1, 0 } [DRM_IOCTL_NR(DRM_IOCTL_SIS_FB_INIT)] = { sis_fb_init, 1, 1 }
#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
#define __HAVE_COUNTERS 5 #define __HAVE_COUNTERS 5
......
#ifndef _sis_drm_public_h_ #ifndef __SIS_DRM_H__
#define _sis_drm_public_h_ #define __SIS_DRM_H__
/* SiS specific ioctls */ /* SiS specific ioctls */
#define SIS_IOCTL_FB_ALLOC DRM_IOWR(0x44, drm_sis_mem_t) #define DRM_IOCTL_SIS_FB_ALLOC DRM_IOWR(0x44, drm_sis_mem_t)
#define SIS_IOCTL_FB_FREE DRM_IOW( 0x45, drm_sis_mem_t) #define DRM_IOCTL_SIS_FB_FREE DRM_IOW( 0x45, drm_sis_mem_t)
#define SIS_IOCTL_AGP_INIT DRM_IOWR(0x53, drm_sis_agp_t) #define DRM_IOCTL_SIS_AGP_INIT DRM_IOWR(0x53, drm_sis_agp_t)
#define SIS_IOCTL_AGP_ALLOC DRM_IOWR(0x54, drm_sis_mem_t) #define DRM_IOCTL_SIS_AGP_ALLOC DRM_IOWR(0x54, drm_sis_mem_t)
#define SIS_IOCTL_AGP_FREE DRM_IOW( 0x55, drm_sis_mem_t) #define DRM_IOCTL_SIS_AGP_FREE DRM_IOW( 0x55, drm_sis_mem_t)
#define SIS_IOCTL_FLIP DRM_IOW( 0x48, drm_sis_flip_t) #define DRM_IOCTL_SIS_FB_INIT DRM_IOW( 0x56, drm_sis_fb_t)
#define SIS_IOCTL_FLIP_INIT DRM_IO( 0x49) /*
#define SIS_IOCTL_FLIP_FINAL DRM_IO( 0x50) #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 { typedef struct {
int context; int context;
unsigned int offset; unsigned int offset;
unsigned int size; unsigned int size;
unsigned int free; unsigned long free;
} drm_sis_mem_t; } drm_sis_mem_t;
typedef struct { typedef struct {
unsigned int offset, size; unsigned int offset, size;
} drm_sis_agp_t; } drm_sis_agp_t;
typedef struct { typedef struct {
unsigned int left, right; unsigned int offset, size;
} drm_sis_flip_t; } drm_sis_fb_t;
#ifdef __KERNEL__ #endif /* __SIS_DRM_H__ */
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
#endif
...@@ -28,18 +28,20 @@ ...@@ -28,18 +28,20 @@
#ifndef _SIS_DRV_H_ #ifndef _SIS_DRV_H_
#define _SIS_DRV_H_ #define _SIS_DRV_H_
#include "sis_ds.h"
typedef struct drm_sis_private { typedef struct drm_sis_private {
drm_map_t *buffers; 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, extern int sis_fb_alloc( DRM_IOCTL_ARGS );
unsigned long arg); extern int sis_fb_free( DRM_IOCTL_ARGS );
int sis_flip_init(struct inode *inode, struct file *filp, unsigned int cmd, extern int sis_ioctl_agp_init( DRM_IOCTL_ARGS );
unsigned long arg); extern int sis_ioctl_agp_alloc( DRM_IOCTL_ARGS );
int sis_flip_final(struct inode *inode, struct file *filp, unsigned int cmd, extern int sis_ioctl_agp_free( DRM_IOCTL_ARGS );
unsigned long arg); extern int sis_fb_init( DRM_IOCTL_ARGS );
void flip_final(void);
#endif #endif
This diff is collapsed.
...@@ -28,27 +28,25 @@ ...@@ -28,27 +28,25 @@
* *
*/ */
#ifndef _sis_ds_h_ #ifndef __SIS_DS_H__
#define _sis_ds_h_ #define __SIS_DS_H__
/* Set Data Structure */ /* Set Data Structure */
#define SET_SIZE 5000 #define SET_SIZE 5000
#define MALLOC(s) kmalloc(s, GFP_KERNEL)
#define FREE(s) kfree(s)
typedef unsigned int ITEM_TYPE; typedef unsigned int ITEM_TYPE;
typedef struct { typedef struct {
ITEM_TYPE val; ITEM_TYPE val;
int alloc_next, free_next; int alloc_next, free_next;
} list_item_t; } list_item_t;
typedef struct { typedef struct {
int alloc; int alloc;
int free; int free;
int trace; int trace;
list_item_t list[SET_SIZE]; list_item_t list[SET_SIZE];
} set_t; } set_t;
set_t *setInit(void); set_t *setInit(void);
...@@ -58,8 +56,6 @@ int setFirst(set_t *set, ITEM_TYPE *item); ...@@ -58,8 +56,6 @@ int setFirst(set_t *set, ITEM_TYPE *item);
int setNext(set_t *set, ITEM_TYPE *item); int setNext(set_t *set, ITEM_TYPE *item);
int setDestroy(set_t *set); int setDestroy(set_t *set);
#endif
/* /*
* GLX Hardware Device Driver common code * GLX Hardware Device Driver common code
* Copyright (C) 1999 Keith Whitwell * Copyright (C) 1999 Keith Whitwell
...@@ -84,16 +80,13 @@ int setDestroy(set_t *set); ...@@ -84,16 +80,13 @@ int setDestroy(set_t *set);
* *
*/ */
#ifndef MM_INC
#define MM_INC
struct mem_block_t { struct mem_block_t {
struct mem_block_t *next; struct mem_block_t *next;
struct mem_block_t *heap; struct mem_block_t *heap;
int ofs,size; int ofs,size;
int align; int align;
int free:1; int free:1;
int reserved:1; int reserved:1;
}; };
typedef struct mem_block_t TMemBlock; typedef struct mem_block_t TMemBlock;
typedef struct mem_block_t *PMemBlock; typedef struct mem_block_t *PMemBlock;
...@@ -102,13 +95,19 @@ typedef struct mem_block_t *PMemBlock; ...@@ -102,13 +95,19 @@ typedef struct mem_block_t *PMemBlock;
typedef struct mem_block_t memHeap_t; typedef struct mem_block_t memHeap_t;
static __inline__ int mmBlockSize(PMemBlock b) static __inline__ int mmBlockSize(PMemBlock b)
{ return b->size; } {
return b->size;
}
static __inline__ int mmOffset(PMemBlock b) static __inline__ int mmOffset(PMemBlock b)
{ return b->ofs; } {
return b->ofs;
}
static __inline__ void mmMarkReserved(PMemBlock b) static __inline__ void mmMarkReserved(PMemBlock b)
{ b->reserved = 1; } {
b->reserved = 1;
}
/* /*
* input: total size in bytes * input: total size in bytes
...@@ -116,13 +115,10 @@ static __inline__ void mmMarkReserved(PMemBlock b) ...@@ -116,13 +115,10 @@ static __inline__ void mmMarkReserved(PMemBlock b)
*/ */
memHeap_t *mmInit( int ofs, int size ); memHeap_t *mmInit( int ofs, int size );
memHeap_t *mmAddRange( memHeap_t *heap, memHeap_t *mmAddRange( memHeap_t *heap,
int ofs, int ofs,
int size ); int size );
/* /*
* Allocate 'size' bytes with 2^align2 bytes alignment, * Allocate 'size' bytes with 2^align2 bytes alignment,
* restrict the search to free memory after 'startSearch' * restrict the search to free memory after 'startSearch'
...@@ -133,14 +129,19 @@ memHeap_t *mmAddRange( memHeap_t *heap, ...@@ -133,14 +129,19 @@ memHeap_t *mmAddRange( memHeap_t *heap,
* startSearch = linear offset from start of heap to begin search * startSearch = linear offset from start of heap to begin search
* return: pointer to the allocated block, 0 if error * return: pointer to the allocated block, 0 if error
*/ */
PMemBlock mmAllocMem( memHeap_t *heap, int size, int align2, int startSearch ); 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 * Free block starts at offset
* input: pointer to a block * input: pointer to a block
* return: 0 if OK, -1 if error * return: 0 if OK, -1 if error
*/ */
int mmFreeMem( PMemBlock b ); int mmFreeMem( PMemBlock b );
/* /*
* Reserve 'size' bytes block start at offset * Reserve 'size' bytes block start at offset
...@@ -160,4 +161,4 @@ void mmDestroy( memHeap_t *mmInit ); ...@@ -160,4 +161,4 @@ void mmDestroy( memHeap_t *mmInit );
/* For debuging purpose. */ /* For debuging purpose. */
void mmDumpMemInfo( memHeap_t *mmInit ); void mmDumpMemInfo( memHeap_t *mmInit );
#endif #endif /* __SIS_DS_H__ */
This diff is collapsed.
...@@ -14,11 +14,8 @@ config ZFTAPE ...@@ -14,11 +14,8 @@ config ZFTAPE
interface (i.e. the hardware independent part of the driver) has interface (i.e. the hardware independent part of the driver) has
been moved to a separate module. been moved to a separate module.
If you say M zftape will be compiled as a runtime loadable To compile this driver as a module, choose M here: the
module ( = code which can be inserted in and removed from the module will be called zftape.
running kernel whenever you want). In this case you should read
<file:Documentation/modules.txt>. The module will be called
zftape.
Regardless of whether you say Y or M here, an additional runtime Regardless of whether you say Y or M here, an additional runtime
loadable module called `zft-compressor' which contains code to loadable module called `zft-compressor' which contains code to
......
...@@ -46,11 +46,8 @@ config SOFT_WATCHDOG ...@@ -46,11 +46,8 @@ config SOFT_WATCHDOG
from some situations that the hardware watchdog will recover from some situations that the hardware watchdog will recover
from. Equally it's a lot cheaper to install. from. Equally it's a lot cheaper to install.
This driver is also available as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want). module will be called softdog.
If you want to compile it as a module, say M here and read
<file:Documentation/modules.txt>. The module will be called
softdog.
config WDT config WDT
tristate "WDT Watchdog timer" tristate "WDT Watchdog timer"
...@@ -63,10 +60,8 @@ config WDT ...@@ -63,10 +60,8 @@ config WDT
documentation of your boot loader (lilo or loadlin) about how to documentation of your boot loader (lilo or loadlin) about how to
pass options to the kernel at boot time). pass options to the kernel at boot time).
If you want to compile this as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want), module will be called wdt.
say M here and read <file:Documentation/modules.txt>. The module
will be called wdt.
config WDT_501 config WDT_501
bool "WDT501 features" bool "WDT501 features"
...@@ -97,10 +92,8 @@ config WDTPCI ...@@ -97,10 +92,8 @@ config WDTPCI
boot loader (lilo or loadlin) about how to pass options to the boot loader (lilo or loadlin) about how to pass options to the
kernel at boot time). kernel at boot time).
If you want to compile this as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want), module will be called wdt_pci.
say M here and read <file:Documentation/modules.txt>. The module
will be called wdt_pci.
config WDT_501_PCI config WDT_501_PCI
bool "WDT501-PCI features" bool "WDT501-PCI features"
...@@ -124,10 +117,8 @@ config PCWATCHDOG ...@@ -124,10 +117,8 @@ config PCWATCHDOG
hardware. Please read <file:Documentation/pcwd-watchdog.txt>. The PC hardware. Please read <file:Documentation/pcwd-watchdog.txt>. The PC
watchdog cards can be ordered from <http://www.berkprod.com/>. watchdog cards can be ordered from <http://www.berkprod.com/>.
This driver is also available as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want). module will be called pcwd.
The module is called pcwd. If you want to compile it as a module,
say M here and read <file:Documentation/modules.txt>.
Most people will say N. Most people will say N.
...@@ -139,13 +130,12 @@ config ACQUIRE_WDT ...@@ -139,13 +130,12 @@ config ACQUIRE_WDT
Board Computer produced by Acquire Inc (and others). This watchdog Board Computer produced by Acquire Inc (and others). This watchdog
simply watches your kernel to make sure it doesn't freeze, and if 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. 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 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). To compile this driver as a module, choose M here: the
The module is called acquirewdt. If you want to compile it as a module will be called acquirewdt.
module, say M here and read <file:Documentation/modules.txt>. Most
people will say N. Most people will say N.
config ADVANTECH_WDT config ADVANTECH_WDT
tristate "Advantech SBC Watchdog Timer" tristate "Advantech SBC Watchdog Timer"
...@@ -187,10 +177,8 @@ config SA1100_WATCHDOG ...@@ -187,10 +177,8 @@ config SA1100_WATCHDOG
system when timeout is reached. system when timeout is reached.
NOTE, that once enabled, this timer cannot be disabled. NOTE, that once enabled, this timer cannot be disabled.
This driver is also available as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want). module will be called sa1100_wdt.
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.
config EUROTECH_WDT config EUROTECH_WDT
tristate "Eurotech CPU-1220/1410 Watchdog Timer" tristate "Eurotech CPU-1220/1410 Watchdog Timer"
...@@ -211,11 +199,10 @@ config IB700_WDT ...@@ -211,11 +199,10 @@ config IB700_WDT
This driver is like the WDT501 driver but for slightly different hardware. This driver is like the WDT501 driver but for slightly different hardware.
This driver is also available as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want). module will be called ib700wdt.
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 Most people will say N.
will say N.
config I810_TCO config I810_TCO
tristate "Intel i8xx TCO timer / Watchdog" tristate "Intel i8xx TCO timer / Watchdog"
...@@ -234,9 +221,8 @@ config I810_TCO ...@@ -234,9 +221,8 @@ config I810_TCO
machine. If this is the case you will get a kernel message like machine. If this is the case you will get a kernel message like
"i810tco init: failed to reset NO_REBOOT flag". "i810tco init: failed to reset NO_REBOOT flag".
If you want to compile this as a module, say M and read To compile this driver as a module, choose M here: the
<file:Documentation/modules.txt>. The module will be called module will be called i810-tco.
i810-tco.
config MIXCOMWD config MIXCOMWD
tristate "Mixcom Watchdog" tristate "Mixcom Watchdog"
...@@ -247,11 +233,10 @@ config MIXCOMWD ...@@ -247,11 +233,10 @@ config MIXCOMWD
and if it does, it reboots your computer after a certain amount of and if it does, it reboots your computer after a certain amount of
time. time.
This driver is also available as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want). module will be called mixcomwd.
The module is called mixcomwd. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>. Most Most people will say N.
people will say N.
config SCx200_WDT config SCx200_WDT
tristate "NatSemi SCx200 Watchdog" tristate "NatSemi SCx200 Watchdog"
...@@ -286,11 +271,10 @@ config W83877F_WDT ...@@ -286,11 +271,10 @@ config W83877F_WDT
and if it does, it reboots your computer after a certain amount of and if it does, it reboots your computer after a certain amount of
time. time.
This driver is also available as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want). module will be called w83877f_wdt.
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 Most people will say N.
people will say N.
config MACHZ_WDT config MACHZ_WDT
tristate "ZF MachZ Watchdog" tristate "ZF MachZ Watchdog"
...@@ -302,10 +286,8 @@ config MACHZ_WDT ...@@ -302,10 +286,8 @@ config MACHZ_WDT
your kernel to make sure it doesn't freeze, and if it does, it your kernel to make sure it doesn't freeze, and if it does, it
reboots your computer after a certain amount of time. reboots your computer after a certain amount of time.
This driver is also available as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want). module will be called machzwd.
The module is called machzwd. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
config SC520_WDT config SC520_WDT
tristate "AMD Elan SC520 processor Watchdog" tristate "AMD Elan SC520 processor Watchdog"
...@@ -340,11 +322,10 @@ config ALIM7101_WDT ...@@ -340,11 +322,10 @@ config ALIM7101_WDT
This is the driver for the hardware watchdog on the ALi M7101 PMU This is the driver for the hardware watchdog on the ALi M7101 PMU
as used in the x86 Cobalt servers. as used in the x86 Cobalt servers.
This driver is also available as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want). module will be called alim7101_wdt.
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 Most people will say N.
people will say N.
config ALIM1535_WDT config ALIM1535_WDT
tristate "ALi M1535 PMU Watchdog Timer" tristate "ALi M1535 PMU Watchdog Timer"
...@@ -352,11 +333,10 @@ config ALIM1535_WDT ...@@ -352,11 +333,10 @@ config ALIM1535_WDT
---help--- ---help---
This is the driver for the hardware watchdog on the ALi M1535 PMU. 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 To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want). module will be called alim1535_wdt.
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 Most people will say N.
people will say N.
config SC1200_WDT config SC1200_WDT
tristate "National Semiconductor PC87307/PC97307 (ala SC1200) Watchdog" tristate "National Semiconductor PC87307/PC97307 (ala SC1200) Watchdog"
...@@ -367,11 +347,10 @@ config SC1200_WDT ...@@ -367,11 +347,10 @@ config SC1200_WDT
for power management purposes and can be used to power down the device for power management purposes and can be used to power down the device
during inactivity periods (includes interrupt activity monitoring). during inactivity periods (includes interrupt activity monitoring).
This driver is also available as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want). module will be called sc1200wdt.
The module is called sc1200wdt. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>. Most Most people will say N.
people will say N.
config WAFER_WDT config WAFER_WDT
tristate "ICP Wafer 5823 Single Board Computer Watchdog" tristate "ICP Wafer 5823 Single Board Computer Watchdog"
...@@ -380,20 +359,15 @@ config WAFER_WDT ...@@ -380,20 +359,15 @@ config WAFER_WDT
This is a driver for the hardware watchdog on the ICP Wafer 5823 This is a driver for the hardware watchdog on the ICP Wafer 5823
Single Board Computer (and probably other similar models). Single Board Computer (and probably other similar models).
This driver is also available as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want). module will be called wafer5823wdt.
If you want to compile it as a module, say M here and read
<file:Documentation/modules.txt>. The module will be called
wafer5823wdt.
config CPU5_WDT config CPU5_WDT
tristate "SMA CPU5 Watchdog" tristate "SMA CPU5 Watchdog"
depends on WATCHDOG depends on WATCHDOG
---help--- ---help---
TBD. TBD.
This driver is also available as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want). module will be called cpu5wdt.
The module is called cpu5wdt. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
endmenu endmenu
...@@ -33,10 +33,8 @@ config FC4_SOC ...@@ -33,10 +33,8 @@ config FC4_SOC
that if you have older firmware in the card, you'll need the that if you have older firmware in the card, you'll need the
microcode from the Solaris driver to make it work. microcode from the Solaris driver to make it work.
This support is also available as a module called soc ( = code To compile this support as a module, choose M here: the module will
which can be inserted in and removed from the running kernel be called soc.
whenever you want). If you want to compile it as a module, say M
here and read <file:Documentation/modules.txt>.
config FC4_SOCAL config FC4_SOCAL
tristate "Sun SOC+ (aka SOCAL)" tristate "Sun SOC+ (aka SOCAL)"
...@@ -48,10 +46,8 @@ config FC4_SOCAL ...@@ -48,10 +46,8 @@ config FC4_SOCAL
Interface Board). You'll probably need the microcode from the Interface Board). You'll probably need the microcode from the
Solaris driver to make it work. Solaris driver to make it work.
This support is also available as a module called socal ( = code To compile this support as a module, choose M here: the module will
which can be inserted in and removed from the running kernel be called socal.
whenever you want). If you want to compile it as a module, say M
here and read <file:Documentation/modules.txt>.
comment "FC4 targets" comment "FC4 targets"
depends on FC4 depends on FC4
...@@ -62,10 +58,8 @@ config SCSI_PLUTO ...@@ -62,10 +58,8 @@ config SCSI_PLUTO
help help
If you never bought a disk array made by Sun, go with N. If you never bought a disk array made by Sun, go with N.
This support is also available as a module called pluto ( = code To compile this support as a module, choose M here: the module will
which can be inserted in and removed from the running kernel be called pluto.
whenever you want). If you want to compile it as a module, say M
here and read <file:Documentation/modules.txt>.
config SCSI_FCAL config SCSI_FCAL
tristate "Sun Enterprise Network Array (A5000 and EX500)" if SPARC32 || SPARC64 tristate "Sun Enterprise Network Array (A5000 and EX500)" if SPARC32 || SPARC64
...@@ -76,10 +70,8 @@ config SCSI_FCAL ...@@ -76,10 +70,8 @@ config SCSI_FCAL
common is either A5000 array or internal disks in E[3-6]000 common is either A5000 array or internal disks in E[3-6]000
machines. machines.
This support is also available as a module called fcal ( = code To compile this support as a module, choose M here: the module will
which can be inserted in and removed from the running kernel be called fcal.
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.
config SCSI_FCAL config SCSI_FCAL
prompt "Generic FC-AL disk driver" prompt "Generic FC-AL disk driver"
......
...@@ -37,43 +37,7 @@ config I2C_CHARDEV ...@@ -37,43 +37,7 @@ config I2C_CHARDEV
This support is also available as a module. If so, the module This support is also available as a module. If so, the module
will be called i2c-dev. will be called i2c-dev.
config I2C_ALGOBIT source drivers/i2c/algos/Kconfig
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/busses/Kconfig source drivers/i2c/busses/Kconfig
source drivers/i2c/chips/Kconfig source drivers/i2c/chips/Kconfig
......
...@@ -5,7 +5,4 @@ ...@@ -5,7 +5,4 @@
obj-$(CONFIG_I2C) += i2c-core.o obj-$(CONFIG_I2C) += i2c-core.o
obj-$(CONFIG_I2C_CHARDEV) += i2c-dev.o obj-$(CONFIG_I2C_CHARDEV) += i2c-dev.o
obj-$(CONFIG_I2C_SENSOR) += i2c-sensor.o obj-$(CONFIG_I2C_SENSOR) += i2c-sensor.o
obj-$(CONFIG_I2C_ALGOBIT) += i2c-algo-bit.o obj-y += busses/ chips/ algos/
obj-$(CONFIG_I2C_ALGOPCF) += i2c-algo-pcf.o
obj-$(CONFIG_I2C_ALGOITE) += i2c-algo-ite.o
obj-y += busses/ chips/
#
# 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 @@ ...@@ -46,7 +46,7 @@
#include <linux/i2c.h> #include <linux/i2c.h>
#include <linux/i2c-algo-ite.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_DSR IT8172_PCI_IO_BASE + IT_PM_DSR
#define PM_IBSR IT8172_PCI_IO_BASE + IT_PM_DSR + 0x04 #define PM_IBSR IT8172_PCI_IO_BASE + IT_PM_DSR + 0x04
......
...@@ -37,7 +37,7 @@ ...@@ -37,7 +37,7 @@
#include <linux/errno.h> #include <linux/errno.h>
#include <linux/i2c.h> #include <linux/i2c.h>
#include <linux/i2c-algo-pcf.h> #include <linux/i2c-algo-pcf.h>
#include "i2c-pcf8584.h" #include "i2c-algo-pcf.h"
/* ----- global defines ----------------------------------------------- */ /* ----- global defines ----------------------------------------------- */
......
...@@ -41,7 +41,7 @@ ...@@ -41,7 +41,7 @@
#include <asm/io.h> #include <asm/io.h>
#include <asm/irq.h> #include <asm/irq.h>
#include "../i2c-pcf8584.h" #include "../algos/i2c-algo-pcf.h"
#define DEFAULT_BASE 0x330 #define DEFAULT_BASE 0x330
......
...@@ -21,6 +21,18 @@ config SENSORS_ADM1021 ...@@ -21,6 +21,18 @@ config SENSORS_ADM1021
This driver can also be built as a module. If so, the module This driver can also be built as a module. If so, the module
will be called adm1021. 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 config SENSORS_IT87
tristate "National Semiconductors IT87 and compatibles" tristate "National Semiconductors IT87 and compatibles"
depends on I2C && EXPERIMENTAL depends on I2C && EXPERIMENTAL
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
obj-$(CONFIG_SENSORS_W83781D) += w83781d.o obj-$(CONFIG_SENSORS_W83781D) += w83781d.o
obj-$(CONFIG_SENSORS_ADM1021) += adm1021.o obj-$(CONFIG_SENSORS_ADM1021) += adm1021.o
obj-$(CONFIG_SENSORS_EEPROM) += eeprom.o
obj-$(CONFIG_SENSORS_IT87) += it87.o obj-$(CONFIG_SENSORS_IT87) += it87.o
obj-$(CONFIG_SENSORS_LM75) += lm75.o obj-$(CONFIG_SENSORS_LM75) += lm75.o
obj-$(CONFIG_SENSORS_LM78) += lm78.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, ...@@ -50,10 +50,7 @@ int i2c_detect(struct i2c_adapter *adapter,
return -1; return -1;
for (addr = 0x00; addr <= (is_isa ? 0xffff : 0x7f); addr++) { for (addr = 0x00; addr <= (is_isa ? 0xffff : 0x7f); addr++) {
void *region_used = request_region(addr, 1, "foo"); if (!is_isa && i2c_check_addr(adapter, addr))
release_region(addr, 1);
if ((is_isa && (region_used == NULL)) ||
(!is_isa && i2c_check_addr(adapter, addr)))
continue; continue;
/* If it is in one of the force entries, we don't do any /* If it is in one of the force entries, we don't do any
......
...@@ -43,10 +43,8 @@ config IDE ...@@ -43,10 +43,8 @@ config IDE
number of user programs such as smart that can query the status of number of user programs such as smart that can query the status of
SMART parameters from disk drives. SMART parameters from disk drives.
If you want to compile this driver as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want), module will be called ide.
say M here and read <file:Documentation/modules.txt>. The module
will be called ide.
For further information, please read <file:Documentation/ide.txt>. For further information, please read <file:Documentation/ide.txt>.
...@@ -83,9 +81,7 @@ config BLK_DEV_IDE ...@@ -83,9 +81,7 @@ config BLK_DEV_IDE
performance, look for the hdparm package at performance, look for the hdparm package at
<ftp://ibiblio.org/pub/Linux/system/hardware/>. <ftp://ibiblio.org/pub/Linux/system/hardware/>.
If you want to compile this driver as a module ( = code which can be To compile this driver as a module, choose M here and read
inserted in and removed from the running kernel whenever you want),
say M here and read <file:Documentation/modules.txt> and
<file:Documentation/ide.txt>. The module will be called ide-mod. <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 Do not compile this driver as a module if your root file system (the
one containing the directory /) is located on an IDE device. one containing the directory /) is located on an IDE device.
...@@ -143,12 +139,12 @@ config BLK_DEV_IDEDISK ...@@ -143,12 +139,12 @@ config BLK_DEV_IDEDISK
the old hard disk driver instead, say Y. If you have an SCSI-only the old hard disk driver instead, say Y. If you have an SCSI-only
system, you can say N here. system, you can say N here.
If you want to compile this driver as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want), module will be called ide-disk.
say M here and read <file:Documentation/modules.txt>. The module Do not compile this driver as a module if your root file system
will be called ide-disk. Do not compile this driver as a module (the one containing the directory /) is located on the IDE disk.
if your root file system (the one containing the directory /) is
located on the IDE disk. If unsure, say Y. If unsure, say Y.
config IDEDISK_MULTI_MODE config IDEDISK_MULTI_MODE
bool "Use multi-mode by default" bool "Use multi-mode by default"
...@@ -201,10 +197,8 @@ config BLK_DEV_IDECD ...@@ -201,10 +197,8 @@ config BLK_DEV_IDECD
with IDE/ATAPI CD-ROMs, so install LILO 16 or higher, available from with IDE/ATAPI CD-ROMs, so install LILO 16 or higher, available from
<ftp://brun.dyndns.org/pub/linux/lilo/>. <ftp://brun.dyndns.org/pub/linux/lilo/>.
If you want to compile the driver as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want), module will be called ide-cd.
say M here and read <file:Documentation/modules.txt>. The module
will be called ide-cd.
config BLK_DEV_IDETAPE config BLK_DEV_IDETAPE
tristate "Include IDE/ATAPI TAPE support (EXPERIMENTAL)" tristate "Include IDE/ATAPI TAPE support (EXPERIMENTAL)"
...@@ -226,10 +220,8 @@ config BLK_DEV_IDETAPE ...@@ -226,10 +220,8 @@ config BLK_DEV_IDETAPE
<file:drivers/ide/ide-tape.c> and <file:Documentation/ide.txt> files <file:drivers/ide/ide-tape.c> and <file:Documentation/ide.txt> files
for usage information. for usage information.
If you want to compile the driver as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want), module will be called ide-tape.
say M here and read <file:Documentation/modules.txt>. The module
will be called ide-tape.o.
config BLK_DEV_IDEFLOPPY config BLK_DEV_IDEFLOPPY
tristate "Include IDE/ATAPI FLOPPY support" tristate "Include IDE/ATAPI FLOPPY support"
...@@ -250,10 +242,8 @@ config BLK_DEV_IDEFLOPPY ...@@ -250,10 +242,8 @@ config BLK_DEV_IDEFLOPPY
other IDE devices, as "hdb" or "hdc", or something similar (check other IDE devices, as "hdb" or "hdc", or something similar (check
the boot messages with dmesg). the boot messages with dmesg).
If you want to compile the driver as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want), module will be called ide-floppy.
say M here and read <file:Documentation/modules.txt>. The module
will be called ide-floppy.
config BLK_DEV_IDESCSI config BLK_DEV_IDESCSI
tristate "SCSI emulation support" tristate "SCSI emulation support"
......
...@@ -15,10 +15,8 @@ config IEEE1394 ...@@ -15,10 +15,8 @@ config IEEE1394
is the core support only, you will also need to select a driver for is the core support only, you will also need to select a driver for
your IEEE 1394 adapter. your IEEE 1394 adapter.
If you want to compile this as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want), module will be called ieee1394.
say M here and read <file:Documentation/modules.txt>. The module
will be called ieee1394.
comment "Subsystem Options" comment "Subsystem Options"
depends on IEEE1394 depends on IEEE1394
...@@ -64,10 +62,8 @@ config IEEE1394_PCILYNX ...@@ -64,10 +62,8 @@ config IEEE1394_PCILYNX
Instruments PCILynx chip. Note: this driver is written for revision Instruments PCILynx chip. Note: this driver is written for revision
2 of this chip and may not work with revision 0. 2 of this chip and may not work with revision 0.
If you want to compile this as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want), module will be called pcilynx.
say M here and read <file:Documentation/modules.txt>. The module
will be called pcilynx.
# Non-maintained pcilynx options # Non-maintained pcilynx options
# if [ "$CONFIG_IEEE1394_PCILYNX" != "n" ]; then # if [ "$CONFIG_IEEE1394_PCILYNX" != "n" ]; then
...@@ -84,10 +80,8 @@ config IEEE1394_OHCI1394 ...@@ -84,10 +80,8 @@ config IEEE1394_OHCI1394
use one of these chipsets. It should work with any OHCI-1394 use one of these chipsets. It should work with any OHCI-1394
compliant card, however. compliant card, however.
If you want to compile this as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want), module will be called ohci1394.
say M here and read <file:Documentation/modules.txt>. The module
will be called ohci1394.
comment "Protocol Drivers" comment "Protocol Drivers"
depends on IEEE1394 depends on IEEE1394
...@@ -128,10 +122,8 @@ config IEEE1394_DV1394 ...@@ -128,10 +122,8 @@ config IEEE1394_DV1394
The user-space API for dv1394 is documented in dv1394.h. The user-space API for dv1394 is documented in dv1394.h.
If you want to compile this as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want), module will be called dv1394.
say M here and read <file:Documentation/modules.txt>. The module
will be called dv1394.
config IEEE1394_RAWIO config IEEE1394_RAWIO
tristate "Raw IEEE1394 I/O support" tristate "Raw IEEE1394 I/O support"
...@@ -142,10 +134,8 @@ config IEEE1394_RAWIO ...@@ -142,10 +134,8 @@ config IEEE1394_RAWIO
direct communication of user programs with the IEEE 1394 bus and direct communication of user programs with the IEEE 1394 bus and
thus with the attached peripherals. thus with the attached peripherals.
If you want to compile this as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want), module will be called raw1394.
say M here and read <file:Documentation/modules.txt>. The module
will be called raw1394.
config IEEE1394_CMP config IEEE1394_CMP
tristate "IEC61883-1 Plug support" tristate "IEC61883-1 Plug support"
...@@ -154,10 +144,8 @@ config IEEE1394_CMP ...@@ -154,10 +144,8 @@ config IEEE1394_CMP
This option enables the Connection Management Procedures This option enables the Connection Management Procedures
(IEC61883-1) driver, which implements input and output plugs. (IEC61883-1) driver, which implements input and output plugs.
If you want to compile this as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want), module will be called cmp.
say M here and read <file:Documentation/modules.txt>. The module
will be called amdtp.
config IEEE1394_AMDTP config IEEE1394_AMDTP
tristate "IEC61883-6 (Audio transmission) support" tristate "IEC61883-6 (Audio transmission) support"
...@@ -169,9 +157,7 @@ config IEEE1394_AMDTP ...@@ -169,9 +157,7 @@ config IEEE1394_AMDTP
The userspace interface is documented in amdtp.h. The userspace interface is documented in amdtp.h.
If you want to compile this as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want), module will be called amdtp.
say M here and read <file:Documentation/modules.txt>. The module
will be called amdtp.
endmenu endmenu
...@@ -19,10 +19,8 @@ config INPUT ...@@ -19,10 +19,8 @@ config INPUT
If unsure, say Y. If unsure, say Y.
This driver is also available as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want). module will be called input.
The module will be called input. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
comment "Userland interfaces" comment "Userland interfaces"
...@@ -39,10 +37,8 @@ config INPUT_MOUSEDEV ...@@ -39,10 +37,8 @@ config INPUT_MOUSEDEV
If unsure, say Y. If unsure, say Y.
This driver is also available as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want). module will be called mousedev.
The module will be called mousedev. If you want to compile it as
a module, say M here and read <file:Documentation/modules.txt>.
config INPUT_MOUSEDEV_PSAUX config INPUT_MOUSEDEV_PSAUX
bool "Provide legacy /dev/psaux device" if EMBEDDED bool "Provide legacy /dev/psaux device" if EMBEDDED
...@@ -80,10 +76,8 @@ config INPUT_JOYDEV ...@@ -80,10 +76,8 @@ config INPUT_JOYDEV
More information is available: <file:Documentation/input/joystick.txt> More information is available: <file:Documentation/input/joystick.txt>
This driver is also available as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want). module will be called joydev.
The module will be called joydev. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
config INPUT_TSDEV config INPUT_TSDEV
tristate "Touchscreen interface" tristate "Touchscreen interface"
...@@ -95,10 +89,8 @@ config INPUT_TSDEV ...@@ -95,10 +89,8 @@ config INPUT_TSDEV
If unsure, say N. If unsure, say N.
This driver is also available as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want). module will be called tsdev.
The module will be called tsdev. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
config INPUT_TSDEV_SCREEN_X config INPUT_TSDEV_SCREEN_X
int "Horizontal screen resolution" int "Horizontal screen resolution"
...@@ -117,10 +109,8 @@ config INPUT_EVDEV ...@@ -117,10 +109,8 @@ config INPUT_EVDEV
Say Y here if you want your input device events be accessible Say Y here if you want your input device events be accessible
under char device 13:64+ - /dev/input/eventX in a generic way. under char device 13:64+ - /dev/input/eventX in a generic way.
This driver is also available as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want). module will be called evdev.
The module will be called evdev. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
config INPUT_EVBUG config INPUT_EVBUG
tristate "Event debugging" tristate "Event debugging"
...@@ -134,10 +124,8 @@ config INPUT_EVBUG ...@@ -134,10 +124,8 @@ config INPUT_EVBUG
If unsure, say N. If unsure, say N.
This driver is also available as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want). module will be called evbug.
The module will be called joydev. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
comment "Input I/O drivers" comment "Input I/O drivers"
......
...@@ -16,10 +16,8 @@ config GAMEPORT ...@@ -16,10 +16,8 @@ config GAMEPORT
If unsure, say Y. If unsure, say Y.
This driver is also available as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want). module will be called gameport.
The module will be called gameport. If you want to compile it as
a module, say M here and read <file:Documentation/modules.txt>.
config SOUND_GAMEPORT config SOUND_GAMEPORT
tristate tristate
...@@ -34,10 +32,8 @@ config GAMEPORT_NS558 ...@@ -34,10 +32,8 @@ config GAMEPORT_NS558
If unsure, say Y. If unsure, say Y.
This driver is also available as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want). module will be called ns558.
The module will be called ns558. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
config GAMEPORT_L4 config GAMEPORT_L4
tristate "PDPI Lightning 4 gamecard support" tristate "PDPI Lightning 4 gamecard support"
...@@ -45,10 +41,8 @@ config GAMEPORT_L4 ...@@ -45,10 +41,8 @@ config GAMEPORT_L4
help help
Say Y here if you have a PDPI Lightning 4 gamecard. Say Y here if you have a PDPI Lightning 4 gamecard.
This driver is also available as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want). module will be called lightning.
The module will be called lightning. If you want to compile it as
a module, say M here and read <file:Documentation/modules.txt>.
config GAMEPORT_EMU10K1 config GAMEPORT_EMU10K1
tristate "SB Live and Audigy gameport support" tristate "SB Live and Audigy gameport support"
...@@ -57,10 +51,8 @@ config GAMEPORT_EMU10K1 ...@@ -57,10 +51,8 @@ config GAMEPORT_EMU10K1
Say Y here if you have a SoundBlaster Live! or SoundBlaster Say Y here if you have a SoundBlaster Live! or SoundBlaster
Audigy card and want to use its gameport. Audigy card and want to use its gameport.
This driver is also available as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want). module will be called emu10k1-gp.
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>.
config GAMEPORT_VORTEX config GAMEPORT_VORTEX
tristate "Aureal Vortex, Vortex 2 gameport support" tristate "Aureal Vortex, Vortex 2 gameport support"
...@@ -69,10 +61,8 @@ config GAMEPORT_VORTEX ...@@ -69,10 +61,8 @@ config GAMEPORT_VORTEX
Say Y here if you have an Aureal Vortex 1 or 2 card and want Say Y here if you have an Aureal Vortex 1 or 2 card and want
to use its gameport. to use its gameport.
This driver is also available as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want). module will be called vortex.
The module will be called vortex. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
config GAMEPORT_FM801 config GAMEPORT_FM801
tristate "ForteMedia FM801 gameport support" tristate "ForteMedia FM801 gameport support"
......
This diff is collapsed.
...@@ -9,10 +9,8 @@ config JOYSTICK_IFORCE ...@@ -9,10 +9,8 @@ config JOYSTICK_IFORCE
You also must choose at least one of the two options below. You also must choose at least one of the two options below.
This driver is also available as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want). module will be called iforce.
The module will be called iforce. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
config JOYSTICK_IFORCE_USB config JOYSTICK_IFORCE_USB
bool "I-Force USB joysticks and wheels" bool "I-Force USB joysticks and wheels"
......
This diff is collapsed.
...@@ -21,10 +21,8 @@ config INPUT_PCSPKR ...@@ -21,10 +21,8 @@ config INPUT_PCSPKR
If unsure, say Y. If unsure, say Y.
This driver is also available as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want). module will be called pcspkr.
The module will be called pcspkr. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
config INPUT_SPARCSPKR config INPUT_SPARCSPKR
tristate "SPARC Speaker support" tristate "SPARC Speaker support"
...@@ -35,10 +33,8 @@ config INPUT_SPARCSPKR ...@@ -35,10 +33,8 @@ config INPUT_SPARCSPKR
If unsure, say Y. If unsure, say Y.
This driver is also available as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want). module will be called sparcspkr.
The module will be called pcspkr. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
config INPUT_M68K_BEEP config INPUT_M68K_BEEP
tristate "M68k Beeper support" tristate "M68k Beeper support"
...@@ -55,10 +51,8 @@ config INPUT_UINPUT ...@@ -55,10 +51,8 @@ config INPUT_UINPUT
Say Y here if you want to support user level drivers for input Say Y here if you want to support user level drivers for input
subsystem accessible under char device 10:223 - /dev/input/uinput. subsystem accessible under char device 10:223 - /dev/input/uinput.
This driver is also available as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want). module will be called uinput.
The module will be called uinput. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
config INPUT_GSC config INPUT_GSC
tristate "PA-RISC GSC PS/2 keyboard/mouse support" tristate "PA-RISC GSC PS/2 keyboard/mouse support"
......
This diff is collapsed.
This diff is collapsed.
...@@ -19,10 +19,8 @@ config TOUCHSCREEN_BITSY ...@@ -19,10 +19,8 @@ config TOUCHSCREEN_BITSY
If unsure, say N. If unsure, say N.
This driver is also available as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want). module will be called h3600_ts_input.
The module will be called gunze. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
config TOUCHSCREEN_GUNZE config TOUCHSCREEN_GUNZE
tristate "Gunze AHL-51S touchscreen" tristate "Gunze AHL-51S touchscreen"
...@@ -34,8 +32,6 @@ config TOUCHSCREEN_GUNZE ...@@ -34,8 +32,6 @@ config TOUCHSCREEN_GUNZE
If unsure, say N. If unsure, say N.
This driver is also available as a module ( = code which can be To compile this driver as a module, choose M here: the
inserted in and removed from the running kernel whenever you want). module will be called gunze.
The module will be called gunze. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
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.
...@@ -35,7 +35,6 @@ obj-$(CONFIG_USB_SE401) += media/ ...@@ -35,7 +35,6 @@ obj-$(CONFIG_USB_SE401) += media/
obj-$(CONFIG_USB_STV680) += media/ obj-$(CONFIG_USB_STV680) += media/
obj-$(CONFIG_USB_VICAM) += media/ obj-$(CONFIG_USB_VICAM) += media/
obj-$(CONFIG_USB_AX8817X) += net/
obj-$(CONFIG_USB_CATC) += net/ obj-$(CONFIG_USB_CATC) += net/
obj-$(CONFIG_USB_KAWETH) += net/ obj-$(CONFIG_USB_KAWETH) += net/
obj-$(CONFIG_USB_PEGASUS) += net/ obj-$(CONFIG_USB_PEGASUS) += net/
......
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.
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