linux/drivers/cdrom/Kconfig
David Howells 9361401eb7 [PATCH] BLOCK: Make it possible to disable the block layer [try #6]
Make it possible to disable the block layer.  Not all embedded devices require
it, some can make do with just JFFS2, NFS, ramfs, etc - none of which require
the block layer to be present.

This patch does the following:

 (*) Introduces CONFIG_BLOCK to disable the block layer, buffering and blockdev
     support.

 (*) Adds dependencies on CONFIG_BLOCK to any configuration item that controls
     an item that uses the block layer.  This includes:

     (*) Block I/O tracing.

     (*) Disk partition code.

     (*) All filesystems that are block based, eg: Ext3, ReiserFS, ISOFS.

     (*) The SCSI layer.  As far as I can tell, even SCSI chardevs use the
     	 block layer to do scheduling.  Some drivers that use SCSI facilities -
     	 such as USB storage - end up disabled indirectly from this.

     (*) Various block-based device drivers, such as IDE and the old CDROM
     	 drivers.

     (*) MTD blockdev handling and FTL.

     (*) JFFS - which uses set_bdev_super(), something it could avoid doing by
     	 taking a leaf out of JFFS2's book.

 (*) Makes most of the contents of linux/blkdev.h, linux/buffer_head.h and
     linux/elevator.h contingent on CONFIG_BLOCK being set.  sector_div() is,
     however, still used in places, and so is still available.

 (*) Also made contingent are the contents of linux/mpage.h, linux/genhd.h and
     parts of linux/fs.h.

 (*) Makes a number of files in fs/ contingent on CONFIG_BLOCK.

 (*) Makes mm/bounce.c (bounce buffering) contingent on CONFIG_BLOCK.

 (*) set_page_dirty() doesn't call __set_page_dirty_buffers() if CONFIG_BLOCK
     is not enabled.

 (*) fs/no-block.c is created to hold out-of-line stubs and things that are
     required when CONFIG_BLOCK is not set:

     (*) Default blockdev file operations (to give error ENODEV on opening).

 (*) Makes some /proc changes:

     (*) /proc/devices does not list any blockdevs.

     (*) /proc/diskstats and /proc/partitions are contingent on CONFIG_BLOCK.

 (*) Makes some compat ioctl handling contingent on CONFIG_BLOCK.

 (*) If CONFIG_BLOCK is not defined, makes sys_quotactl() return -ENODEV if
     given command other than Q_SYNC or if a special device is specified.

 (*) In init/do_mounts.c, no reference is made to the blockdev routines if
     CONFIG_BLOCK is not defined.  This does not prohibit NFS roots or JFFS2.

 (*) The bdflush, ioprio_set and ioprio_get syscalls can now be absent (return
     error ENOSYS by way of cond_syscall if so).

 (*) The seclvl_bd_claim() and seclvl_bd_release() security calls do nothing if
     CONFIG_BLOCK is not set, since they can't then happen.

Signed-Off-By: David Howells <dhowells@redhat.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2006-09-30 20:52:31 +02:00

213 lines
8.4 KiB
Text

#
# CDROM driver configuration
#
menu "Old CD-ROM drivers (not SCSI, not IDE)"
depends on ISA && BLOCK
config CD_NO_IDESCSI
bool "Support non-SCSI/IDE/ATAPI CDROM drives"
---help---
If you have a CD-ROM drive that is neither SCSI nor IDE/ATAPI, say Y
here, otherwise N. Read the CD-ROM-HOWTO, available from
<http://www.tldp.org/docs.html#howto>.
Note that the answer to this question doesn't directly affect the
kernel: saying N will just cause the configurator to skip all
the questions about these CD-ROM drives. If you are unsure what you
have, say Y and find out whether you have one of the following
drives.
For each of these drivers, a <file:Documentation/cdrom/{driver_name}>
exists. Especially in cases where you do not know exactly which kind
of drive you have you should read there. Most of these drivers use a
file drivers/cdrom/{driver_name}.h where you can define your
interface parameters and switch some internal goodies.
To compile these CD-ROM drivers as a module, choose M instead of Y.
If you want to use any of these CD-ROM drivers, you also have to
answer Y or M to "ISO 9660 CD-ROM file system support" below (this
answer will get "defaulted" for you if you enable any of the Linux
CD-ROM drivers).
config AZTCD
tristate "Aztech/Orchid/Okano/Wearnes/TXC/CyDROM CDROM support"
depends on CD_NO_IDESCSI
---help---
This is your driver if you have an Aztech CDA268-01A, Orchid
CD-3110, Okano or Wearnes CDD110, Conrad TXC, or CyCD-ROM CR520 or
CR540 CD-ROM drive. This driver -- just like all these CD-ROM
drivers -- is NOT for CD-ROM drives with IDE/ATAPI interfaces, such
as Aztech CDA269-031SE. Please read the file
<file:Documentation/cdrom/aztcd>.
If you say Y here, you should also say Y or M to "ISO 9660 CD-ROM
file system support" below, because that's the file system used on
CD-ROMs.
To compile this driver as a module, choose M here: the
module will be called aztcd.
config GSCD
tristate "Goldstar R420 CDROM support"
depends on CD_NO_IDESCSI
---help---
If this is your CD-ROM drive, say Y here. As described in the file
<file:Documentation/cdrom/gscd>, you might have to change a setting
in the file <file:drivers/cdrom/gscd.h> before compiling the
kernel. Please read the file <file:Documentation/cdrom/gscd>.
If you say Y here, you should also say Y or M to "ISO 9660 CD-ROM
file system support" below, because that's the file system used on
CD-ROMs.
To compile this driver as a module, choose M here: the
module will be called gscd.
config SBPCD
tristate "Matsushita/Panasonic/Creative, Longshine, TEAC CDROM support"
depends on CD_NO_IDESCSI && BROKEN_ON_SMP
---help---
This driver supports most of the drives which use the Panasonic or
Sound Blaster interface. Please read the file
<file:Documentation/cdrom/sbpcd>.
The Matsushita CR-521, CR-522, CR-523, CR-562, CR-563 drives
(sometimes labeled "Creative"), the Creative Labs CD200, the
Longshine LCS-7260, the "IBM External ISA CD-ROM" (in fact a CR-56x
model), the TEAC CD-55A fall under this category. Some other
"electrically compatible" drives (Vertos, Genoa, some Funai models)
are currently not supported; for the Sanyo H94A drive currently a
separate driver (asked later) is responsible. Most drives have a
uniquely shaped faceplate, with a caddyless motorized drawer, but
without external brand markings. The older CR-52x drives have a
caddy and manual loading/eject, but still no external markings. The
driver is able to do an extended auto-probing for interface
addresses and drive types; this can help to find facts in cases you
are not sure, but can consume some time during the boot process if
none of the supported drives gets found. Once your drive got found,
you should enter the reported parameters into
<file:drivers/cdrom/sbpcd.h> and set "DISTRIBUTION 0" there.
This driver can support up to four CD-ROM controller cards, and each
card can support up to four CD-ROM drives; if you say Y here, you
will be asked how many controller cards you have. If compiled as a
module, only one controller card (but with up to four drives) is
usable.
If you say Y here, you should also say Y or M to "ISO 9660 CD-ROM
file system support" below, because that's the file system used on
CD-ROMs.
To compile this driver as a module, choose M here: the
module will be called sbpcd.
config MCDX
tristate "Mitsumi CDROM support"
depends on CD_NO_IDESCSI
---help---
Use this driver if you want to be able to use your Mitsumi LU-005,
FX-001 or FX-001D CD-ROM drive.
Please read the file <file:Documentation/cdrom/mcdx>.
If you say Y here, you should also say Y or M to "ISO 9660 CD-ROM
file system support" below, because that's the file system used on
CD-ROMs.
To compile this driver as a module, choose M here: the
module will be called mcdx.
config OPTCD
tristate "Optics Storage DOLPHIN 8000AT CDROM support"
depends on CD_NO_IDESCSI
---help---
This is the driver for the 'DOLPHIN' drive with a 34-pin Sony
compatible interface. It also works with the Lasermate CR328A. If
you have one of those, say Y. This driver does not work for the
Optics Storage 8001 drive; use the IDE-ATAPI CD-ROM driver for that
one. Please read the file <file:Documentation/cdrom/optcd>.
If you say Y here, you should also say Y or M to "ISO 9660 CD-ROM
file system support" below, because that's the file system used on
CD-ROMs.
To compile this driver as a module, choose M here: the
module will be called optcd.
config CM206
tristate "Philips/LMS CM206 CDROM support"
depends on CD_NO_IDESCSI && BROKEN_ON_SMP
---help---
If you have a Philips/LMS CD-ROM drive cm206 in combination with a
cm260 host adapter card, say Y here. Please also read the file
<file:Documentation/cdrom/cm206>.
If you say Y here, you should also say Y or M to "ISO 9660 CD-ROM
file system support" below, because that's the file system used on
CD-ROMs.
To compile this driver as a module, choose M here: the
module will be called cm206.
config SJCD
tristate "Sanyo CDR-H94A CDROM support"
depends on CD_NO_IDESCSI
help
If this is your CD-ROM drive, say Y here and read the file
<file:Documentation/cdrom/sjcd>. You should then also say Y or M to
"ISO 9660 CD-ROM file system support" below, because that's the
file system used on CD-ROMs.
To compile this driver as a module, choose M here: the
module will be called sjcd.
config ISP16_CDI
tristate "ISP16/MAD16/Mozart soft configurable cdrom interface support"
depends on CD_NO_IDESCSI
---help---
These are sound cards with built-in cdrom interfaces using the OPTi
82C928 or 82C929 chips. Say Y here to have them detected and
possibly configured at boot time. In addition, You'll have to say Y
to a driver for the particular cdrom drive you have attached to the
card. Read <file:Documentation/cdrom/isp16> for details.
To compile this driver as a module, choose M here: the
module will be called isp16.
config CDU31A
tristate "Sony CDU31A/CDU33A CDROM support"
depends on CD_NO_IDESCSI && BROKEN_ON_SMP
---help---
These CD-ROM drives have a spring-pop-out caddyless drawer, and a
rectangular green LED centered beneath it. NOTE: these CD-ROM
drives will not be auto detected by the kernel at boot time; you
have to provide the interface address as an option to the kernel at
boot time as described in <file:Documentation/cdrom/cdu31a> or fill
in your parameters into <file:drivers/cdrom/cdu31a.c>. Try "man
bootparam" or see the documentation of your boot loader (lilo or
loadlin) about how to pass options to the kernel.
If you say Y here, you should also say Y or M to "ISO 9660 CD-ROM
file system support" below, because that's the file system used on
CD-ROMs.
To compile this driver as a module, choose M here: the
module will be called cdu31a.
config CDU535
tristate "Sony CDU535 CDROM support"
depends on CD_NO_IDESCSI
---help---
This is the driver for the older Sony CDU-535 and CDU-531 CD-ROM
drives. Please read the file <file:Documentation/cdrom/sonycd535>.
If you say Y here, you should also say Y or M to "ISO 9660 CD-ROM
file system support" below, because that's the file system used on
CD-ROMs.
To compile this driver as a module, choose M here: the
module will be called sonycd535.
endmenu