palm_bk3710: use ->pio_mode value to determine pair device speed
[safe/jmp/linux-2.6] / drivers / ide / Kconfig
index 98a1ff2..98ccfeb 100644 (file)
 #
 # IDE ATA ATAPI Block device driver configuration
 #
-# Andre Hedrick <andre@linux-ide.org>
-#
-
-if BLOCK
 
-menu "ATA/ATAPI/MFM/RLL support"
+# Select HAVE_IDE if IDE is supported
+config HAVE_IDE
+       bool
 
-config IDE
-       tristate "ATA/ATAPI/MFM/RLL support"
+menuconfig IDE
+       tristate "ATA/ATAPI/MFM/RLL support (DEPRECATED)"
+       depends on HAVE_IDE
+       depends on BLOCK
        ---help---
-         If you say Y here, your kernel will be able to manage low cost mass
-         storage units such as ATA/(E)IDE and ATAPI units. The most common
-         cases are IDE hard drives and ATAPI CD-ROM drives.
-
-         If your system is pure SCSI and doesn't use these interfaces, you
-         can say N here.
-
-         Integrated Disk Electronics (IDE aka ATA-1) is a connecting standard
-         for mass storage units such as hard disks. It was designed by
-         Western Digital and Compaq Computer in 1984. It was then named
-         ST506. Quite a number of disks use the IDE interface.
-
-         AT Attachment (ATA) is the superset of the IDE specifications.
-         ST506 was also called ATA-1.
-
-         Fast-IDE is ATA-2 (also named Fast ATA), Enhanced IDE (EIDE) is
-         ATA-3. It provides support for larger disks (up to 8.4GB by means of
-         the LBA standard), more disks (4 instead of 2) and for other mass
-         storage units such as tapes and cdrom. UDMA/33 (aka UltraDMA/33) is
-         ATA-4 and provides faster (and more CPU friendly) transfer modes
-         than previous PIO (Programmed processor Input/Output) from previous
-         ATA/IDE standards by means of fast DMA controllers.
-
-         ATA Packet Interface (ATAPI) is a protocol used by EIDE tape and
-         CD-ROM drives, similar in many respects to the SCSI protocol.
-
-         SMART IDE (Self Monitoring, Analysis and Reporting Technology) was
-         designed in order to prevent data corruption and disk crash by
-         detecting pre hardware failure conditions (heat, access time, and
-         the like...). Disks built since June 1995 may follow this standard.
-         The kernel itself doesn't manage this; however there are quite a
-         number of user programs such as smart that can query the status of
-         SMART parameters from disk drives.
+         If you say Y here, your kernel will be able to manage ATA/(E)IDE and
+         ATAPI units. The most common cases are IDE hard drives and ATAPI
+         CD-ROM drives.
+
+         This subsystem is currently in maintenance mode with only bug fix
+         changes applied. Users of ATA hardware are encouraged to migrate to
+         the newer ATA subsystem ("Serial ATA (prod) and Parallel ATA
+         (experimental) drivers") which is more actively maintained.
 
          To compile this driver as a module, choose M here: the
-         module will be called ide.
+         module will be called ide-core.
 
-         For further information, please read <file:Documentation/ide.txt>.
+         For further information, please read <file:Documentation/ide/ide.txt>.
 
-         If unsure, say Y.
+         If unsure, say N.
 
 if IDE
 
-config IDE_MAX_HWIFS
-       int "Max IDE interfaces"
-       depends on ALPHA || SUPERH || IA64 || EMBEDDED
-       default 4
-       help
-         This is the maximum number of IDE hardware interfaces that will
-         be supported by the driver. Make sure it is at least as high as
-         the number of IDE interfaces in your system.
-
-config BLK_DEV_IDE
-       tristate "Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support"
-       ---help---
-         If you say Y here, you will use the full-featured IDE driver to
-         control up to ten ATA/IDE interfaces, each being able to serve a
-         "master" and a "slave" device, for a total of up to twenty ATA/IDE
-         disk/cdrom/tape/floppy drives.
-
-         Useful information about large (>540 MB) IDE disks, multiple
-         interfaces, what to do if ATA/IDE devices are not automatically
-         detected, sound card ATA/IDE ports, module support, and other
-         topics, is contained in <file:Documentation/ide.txt>. For detailed
-         information about hard drives, consult the Disk-HOWTO and the
-         Multi-Disk-HOWTO, available from
-         <http://www.tldp.org/docs.html#howto>.
+comment "Please see Documentation/ide/ide.txt for help/info on IDE drives"
 
-         To fine-tune ATA/IDE drive/interface parameters for improved
-         performance, look for the hdparm package at
-         <ftp://ibiblio.org/pub/Linux/system/hardware/>.
+config IDE_XFER_MODE
+       bool
 
-         To compile this driver as a module, choose M here and read
-         <file:Documentation/ide.txt>. The module will be called ide-mod.
-         Do not compile this driver as a module if your root file system (the
-         one containing the directory /) is located on an IDE device.
+config IDE_TIMINGS
+       bool
+       select IDE_XFER_MODE
 
-         If you have one or more IDE drives, say Y or M here. If your system
-         has no IDE drives, or if memory requirements are really tight, you
-         could say N here, and select the "Old hard disk driver" below
-         instead to save about 13 KB of memory in the kernel.
+config IDE_ATAPI
+       bool
 
-if BLK_DEV_IDE
-
-comment "Please see Documentation/ide.txt for help/info on IDE drives"
+config IDE_LEGACY
+       bool
 
 config BLK_DEV_IDE_SATA
        bool "Support for SATA (deprecated; conflicts with libata SATA driver)"
@@ -103,8 +50,10 @@ config BLK_DEV_IDE_SATA
        ---help---
          There are two drivers for Serial ATA controllers.
 
-         The main driver, "libata", exists inside the SCSI subsystem
-         and supports most modern SATA controllers.
+         The main driver, "libata", uses the SCSI subsystem
+         and supports most modern SATA controllers. In order to use it
+         you may take a look at "Serial ATA (prod) and Parallel ATA
+         (experimental) drivers".
 
          The IDE driver (which you are currently configuring) supports
          a few first-generation SATA controllers.
@@ -117,48 +66,39 @@ config BLK_DEV_IDE_SATA
 
          If unsure, say N.
 
-config BLK_DEV_HD_IDE
-       bool "Use old disk-only driver on primary interface"
-       depends on (X86 || SH_MPC1211)
-       ---help---
-         There are two drivers for MFM/RLL/IDE disks.  Most people use just
-         the new enhanced driver by itself.  This option however installs the
-         old hard disk driver to control the primary IDE/disk interface in
-         the system, leaving the new enhanced IDE driver to take care of only
-         the 2nd/3rd/4th IDE interfaces.  Doing this will prevent you from
-         having an IDE/ATAPI CD-ROM or tape drive connected to the primary
-         IDE interface.  Choosing this option may be useful for older systems
-         which have MFM/RLL/ESDI controller+drives at the primary port
-         address (0x1f0), along with IDE drives at the secondary/3rd/4th port
-         addresses.
-
-         Normally, just say N here; you will then use the new driver for all
-         4 interfaces.
-
-config BLK_DEV_IDEDISK
-       tristate "Include IDE/ATA-2 DISK support"
-       ---help---
-         This will include enhanced support for MFM/RLL/IDE hard disks.  If
-         you have a MFM/RLL/IDE disk, and there is no special reason to use
-         the old hard disk driver instead, say Y.  If you have an SCSI-only
-         system, you can say N here.
+config IDE_GD
+       tristate "generic ATA/ATAPI disk support"
+       default y
+       help
+         Support for ATA/ATAPI disks (including ATAPI floppy drives).
 
-         To compile this driver as a module, choose M here: the
-         module will be called ide-disk.
-         Do not compile this driver as a module if your root file system
-         (the one containing the directory /) is located on the IDE disk.
+         To compile this driver as a module, choose M here.
+         The module will be called ide-gd_mod.
 
          If unsure, say Y.
 
-config IDEDISK_MULTI_MODE
-       bool "Use multi-mode by default"
+config IDE_GD_ATA
+       bool "ATA disk support"
+       depends on IDE_GD
+       default y
        help
-         If you get this error, try to say Y here:
+         This will include support for ATA hard disks.
 
-         hda: set_multmode: status=0x51 { DriveReady SeekComplete Error }
-         hda: set_multmode: error=0x04 { DriveStatusError }
+         If unsure, say Y.
 
-         If in doubt, say N.
+config IDE_GD_ATAPI
+       bool "ATAPI floppy support"
+       depends on IDE_GD
+       select IDE_ATAPI
+       help
+         This will include support for ATAPI floppy drives
+         (i.e. Iomega ZIP or MKE LS-120).
+
+         For information about jumper settings and the question
+         of when a ZIP drive uses a partition table, see
+         <http://www.win.tue.nl/~aeb/linux/zip/zip-1.html>.
+
+         If unsure, say N.
 
 config BLK_DEV_IDECS
        tristate "PCMCIA IDE support"
@@ -176,6 +116,7 @@ config BLK_DEV_DELKIN
 
 config BLK_DEV_IDECD
        tristate "Include IDE/ATAPI CDROM support"
+       select IDE_ATAPI
        ---help---
          If you have a CD-ROM drive using the ATAPI protocol, say Y. ATAPI is
          a newer protocol used by IDE CD-ROM and TAPE drives, similar to the
@@ -189,16 +130,21 @@ config BLK_DEV_IDECD
          CD-ROM drive, you can say N to all other CD-ROM options, but be sure
          to say Y or M to "ISO 9660 CD-ROM file system support".
 
-         Note that older versions of LILO (LInux LOader) cannot properly deal
-         with IDE/ATAPI CD-ROMs, so install LILO 16 or higher, available from
-         <http://lilo.go.dyndns.org/>.
-
          To compile this driver as a module, choose M here: the
          module will be called ide-cd.
 
+config BLK_DEV_IDECD_VERBOSE_ERRORS
+       bool "Verbose error logging for IDE/ATAPI CDROM driver" if EMBEDDED
+       depends on BLK_DEV_IDECD
+       default y
+       help
+         Turn this on to have the driver print out the meanings of the
+         ATAPI error codes.  This will use up additional 8kB of kernel-space
+         memory, though.
+
 config BLK_DEV_IDETAPE
-       tristate "Include IDE/ATAPI TAPE support (EXPERIMENTAL)"
-       depends on EXPERIMENTAL
+       tristate "Include IDE/ATAPI TAPE support"
+       select IDE_ATAPI
        help
          If you have an IDE tape drive using the ATAPI protocol, say Y.
          ATAPI is a newer protocol used by IDE tape and CD-ROM drives,
@@ -213,64 +159,12 @@ config BLK_DEV_IDETAPE
          along with other IDE devices, as "hdb" or "hdc", or something
          similar, and will be mapped to a character device such as "ht0"
          (check the boot messages with dmesg).  Be sure to consult the
-         <file:drivers/ide/ide-tape.c> and <file:Documentation/ide.txt> files
-         for usage information.
+         <file:drivers/ide/ide-tape.c> and <file:Documentation/ide/ide.txt>
+         files for usage information.
 
          To compile this driver as a module, choose M here: the
          module will be called ide-tape.
 
-config BLK_DEV_IDEFLOPPY
-       tristate "Include IDE/ATAPI FLOPPY support"
-       ---help---
-         If you have an IDE floppy drive which uses the ATAPI protocol,
-         answer Y.  ATAPI is a newer protocol used by IDE CD-ROM/tape/floppy
-         drives, similar to the SCSI protocol.
-
-         The LS-120 and the IDE/ATAPI Iomega ZIP drive are also supported by
-         this driver. For information about jumper settings and the question
-         of when a ZIP drive uses a partition table, see
-         <http://www.win.tue.nl/~aeb/linux/zip/zip-1.html>.
-         (ATAPI PD-CD/CDR drives are not supported by this driver; support
-         for PD-CD/CDR drives is available if you answer Y to
-         "SCSI emulation support", below).
-
-         If you say Y here, the FLOPPY drive will be identified along with
-         other IDE devices, as "hdb" or "hdc", or something similar (check
-         the boot messages with dmesg).
-
-         To compile this driver as a module, choose M here: the
-         module will be called ide-floppy.
-
-config BLK_DEV_IDESCSI
-       tristate "SCSI emulation support"
-       depends on SCSI
-       ---help---
-         WARNING: ide-scsi is no longer needed for cd writing applications!
-         The 2.6 kernel supports direct writing to ide-cd, which eliminates
-         the need for ide-scsi + the entire scsi stack just for writing a
-         cd. The new method is more efficient in every way.
-
-         This will provide SCSI host adapter emulation for IDE ATAPI devices,
-         and will allow you to use a SCSI device driver instead of a native
-         ATAPI driver.
-
-         This is useful if you have an ATAPI device for which no native
-         driver has been written (for example, an ATAPI PD-CD drive);
-         you can then use this emulation together with an appropriate SCSI
-         device driver. In order to do this, say Y here and to "SCSI support"
-         and "SCSI generic support", below. You must then provide the kernel
-         command line "hdx=ide-scsi" (try "man bootparam" or see the
-         documentation of your boot loader (lilo or loadlin) about how to
-         pass options to the kernel at boot time) for devices if you want the
-         native EIDE sub-drivers to skip over the native support, so that
-         this SCSI emulation can be used instead.
-
-         Note that this option does NOT allow you to attach SCSI devices to a
-         box that doesn't have a SCSI host adapter installed.
-
-         If both this SCSI emulation and native ATAPI support are compiled
-         into the kernel, the native support will be used.
-
 config BLK_DEV_IDEACPI
        bool "IDE ACPI support"
        depends on ACPI
@@ -288,17 +182,52 @@ config IDE_TASK_IOCTL
 
          If you are unsure, say N here.
 
+config IDE_PROC_FS
+       bool "legacy /proc/ide/ support"
+       depends on IDE && PROC_FS
+       default y
+       help
+         This option enables support for the various files in
+         /proc/ide.  In Linux 2.6 this has been superseded by
+         files in sysfs but many legacy applications rely on this.
+
+         If unsure say Y.
+
 comment "IDE chipset support/bugfixes"
 
 config IDE_GENERIC
        tristate "generic/default IDE chipset support"
-       default y
+       depends on ALPHA || X86 || IA64 || M32R || MIPS || ARCH_RPC || ARCH_SHARK
+       default ARM && (ARCH_RPC || ARCH_SHARK)
+       help
+         This is the generic IDE driver.  This driver attaches to the
+         fixed legacy ports (e.g. on PCs 0x1f0/0x170, 0x1e8/0x168 and
+         so on).  Please note that if this driver is built into the
+         kernel or loaded before other ATA (IDE or libata) drivers
+         and the controller is located at legacy ports, this driver
+         may grab those ports and thus can prevent the controller
+         specific driver from attaching.
+
+         Also, currently, IDE generic doesn't allow IRQ sharing
+         meaning that the IRQs it grabs won't be available to other
+         controllers sharing those IRQs which usually makes drivers
+         for those controllers fail.  Generally, it's not a good idea
+         to load IDE generic driver on modern systems.
+
+         If unsure, say N.
+
+config BLK_DEV_PLATFORM
+       tristate "Platform driver for IDE interfaces"
        help
-         If unsure, say Y.
+         This is the platform IDE driver, used mostly for Memory Mapped
+         IDE devices, like Compact Flashes running in True IDE mode.
+
+         If unsure, say N.
 
 config BLK_DEV_CMD640
-       bool "CMD640 chipset bugfix/support"
+       tristate "CMD640 chipset bugfix/support"
        depends on X86
+       select IDE_TIMINGS
        ---help---
          The CMD-Technologies CMD640 IDE chip is used on many common 486 and
          Pentium motherboards, usually in combination with a "Neptune" or
@@ -312,13 +241,13 @@ config BLK_DEV_CMD640
          This driver will work automatically in PCI based systems (most new
          systems have PCI slots). But if your system uses VESA local bus
          (VLB) instead of PCI, you must also supply a kernel boot parameter
-         to enable the CMD640 bugfix/support: "ide0=cmd640_vlb". (Try "man
+         to enable the CMD640 bugfix/support: "cmd640.probe_vlb". (Try "man
          bootparam" or see the documentation of your boot loader about how to
          pass options to the kernel.)
 
          The CMD640 chip is also used on add-in cards by Acculogic, and on
          the "CSA-6400E PCI to IDE controller" that some people have. For
-         details, read <file:Documentation/ide.txt>.
+         details, read <file:Documentation/ide/ide.txt>.
 
 config BLK_DEV_CMD640_ENHANCED
        bool "CMD640 enhanced support"
@@ -326,40 +255,47 @@ config BLK_DEV_CMD640_ENHANCED
        help
          This option includes support for setting/autotuning PIO modes and
          prefetch on CMD640 IDE interfaces.  For details, read
-         <file:Documentation/ide.txt>. If you have a CMD640 IDE interface
+         <file:Documentation/ide/ide.txt>. If you have a CMD640 IDE interface
          and your BIOS does not already do this for you, then say Y here.
          Otherwise say N.
 
 config BLK_DEV_IDEPNP
-       bool "PNP EIDE support"
+       tristate "PNP EIDE support"
        depends on PNP
        help
          If you have a PnP (Plug and Play) compatible EIDE card and
          would like the kernel to automatically detect and activate
          it, say Y here.
 
+config BLK_DEV_IDEDMA_SFF
+       bool
+
+if PCI
+
+comment "PCI IDE chipsets support"
+
 config BLK_DEV_IDEPCI
-       bool "PCI IDE chipset support" if PCI
-       default BLK_DEV_IDEDMA_PMAC if PPC_PMAC && BLK_DEV_IDEDMA_PMAC
-       help
-         Say Y here for PCI systems which use IDE drive(s).
-         This option helps the IDE driver to automatically detect and
-         configure all PCI-based IDE interfaces in your system.
+       bool
 
-config IDEPCI_SHARE_IRQ
-       bool "Sharing PCI IDE interrupts support"
-       depends on PCI && BLK_DEV_IDEPCI
+config IDEPCI_PCIBUS_ORDER
+       bool "Probe IDE PCI devices in the PCI bus order (DEPRECATED)"
+       depends on IDE=y && BLK_DEV_IDEPCI
+       default y
        help
-         Some ATA/IDE chipsets have hardware support which allows for
-         sharing a single IRQ with other cards. To enable support for
-         this in the ATA/IDE driver, say Y here.
+         Probe IDE PCI devices in the order in which they appear on the
+         PCI bus (i.e. 00:1f.1 PCI device before 02:01.0 PCI device)
+         instead of the order in which IDE PCI host drivers are loaded.
 
-         It is safe to say Y to this question, in most cases.
-         If unsure, say N.
+         Please note that this method of assuring stable naming of
+         IDE devices is unreliable and use other means for achieving
+         it (i.e. udev).
+
+         If in doubt, say N.
 
+# TODO: split it on per host driver config options (or module parameters)
 config BLK_DEV_OFFBOARD
-       bool "Boot off-board chipsets first support"
-       depends on PCI && BLK_DEV_IDEPCI
+       bool "Boot off-board chipsets first support (DEPRECATED)"
+       depends on BLK_DEV_IDEPCI && (BLK_DEV_AEC62XX || BLK_DEV_GENERIC || BLK_DEV_HPT366 || BLK_DEV_PDC202XX_NEW || BLK_DEV_PDC202XX_OLD || BLK_DEV_TC86C001)
        help
          Normally, IDE controllers built into the motherboard (on-board
          controllers) are assigned to ide0 and ide1 while those on add-in PCI
@@ -369,34 +305,34 @@ config BLK_DEV_OFFBOARD
          This can improve the usability of some boot managers such as lilo
          when booting from a drive on an off-board controller.
 
-         If you say Y here, and you actually want to reverse the device scan
-         order as explained above, you also need to issue the kernel command
-         line option "ide=reverse". (Try "man bootparam" or see the
-         documentation of your boot loader (lilo or loadlin) about how to
-         pass options to the kernel at boot time.)
-
          Note that, if you do this, the order of the hd* devices will be
          rearranged which may require modification of fstab and other files.
 
+         Please also note that this method of assuring stable naming of
+         IDE devices is unreliable and use other means for achieving it
+         (i.e. udev).
+
          If in doubt, say N.
 
 config BLK_DEV_GENERIC
        tristate "Generic PCI IDE Chipset Support"
-       depends on BLK_DEV_IDEPCI
+       select BLK_DEV_IDEPCI
         help
           This option provides generic support for various PCI IDE Chipsets
           which otherwise might not be supported.
 
 config BLK_DEV_OPTI621
        tristate "OPTi 82C621 chipset enhanced support (EXPERIMENTAL)"
-       depends on PCI && BLK_DEV_IDEPCI && EXPERIMENTAL
+       depends on EXPERIMENTAL
+       select BLK_DEV_IDEPCI
        help
          This is a driver for the OPTi 82C621 EIDE controller.
          Please read the comments at the top of <file:drivers/ide/pci/opti621.c>.
 
 config BLK_DEV_RZ1000
        tristate "RZ1000 chipset bugfix/support"
-       depends on PCI && BLK_DEV_IDEPCI && X86
+       depends on X86
+       select BLK_DEV_IDEPCI
        help
          The PC-Technologies RZ1000 IDE chip is used on many common 486 and
          Pentium motherboards, usually along with the "Neptune" chipset.
@@ -407,59 +343,13 @@ config BLK_DEV_RZ1000
          things will operate 100% reliably.
 
 config BLK_DEV_IDEDMA_PCI
-       bool "Generic PCI bus-master DMA support"
-       depends on PCI && BLK_DEV_IDEPCI
-       ---help---
-         If your PCI system uses IDE drive(s) (as opposed to SCSI, say) and
-         is capable of bus-master DMA operation (most Pentium PCI systems),
-         you will want to say Y here to reduce CPU overhead. You can then use
-         the "hdparm" utility to enable DMA for drives for which it was not
-         enabled automatically. By default, DMA is not enabled automatically
-         for these drives, but you can change that by saying Y to the
-         following question "Use DMA by default when available". You can get
-         the latest version of the hdparm utility from
-         <ftp://ibiblio.org/pub/Linux/system/hardware/>.
-
-         Read the comments at the beginning of <file:drivers/ide/ide-dma.c>
-         and the file <file:Documentation/ide.txt> for more information.
-
-         It is safe to say Y to this question.
-
-if BLK_DEV_IDEDMA_PCI
-
-config BLK_DEV_IDEDMA_FORCED
-       bool "Force enable legacy 2.0.X HOSTS to use DMA"
-       help
-         This is an old piece of lost code from Linux 2.0 Kernels.
-
-         Generally say N here.
-
-config IDEDMA_PCI_AUTO
-       bool "Use PCI DMA by default when available"
-       ---help---
-         Prior to kernel version 2.1.112, Linux used to automatically use
-         DMA for IDE drives and chipsets which support it. Due to concerns
-         about a couple of cases where buggy hardware may have caused damage,
-         the default is now to NOT use DMA automatically. To revert to the
-         previous behaviour, say Y to this question.
-
-         If you suspect your hardware is at all flakey, say N here.
-         Do NOT email the IDE kernel people regarding this issue!
-
-         It is normally safe to answer Y to this question unless your
-         motherboard uses a VIA VP2 chipset, in which case you should say N.
-
-config IDEDMA_ONLYDISK
-       bool "Enable DMA only for disks "
-       depends on IDEDMA_PCI_AUTO
-       help
-         This is used if you know your ATAPI Devices are going to fail DMA
-         Transfers.
-
-         Generally say N here.
+       bool
+       select BLK_DEV_IDEPCI
+       select BLK_DEV_IDEDMA_SFF
 
 config BLK_DEV_AEC62XX
        tristate "AEC62XX chipset support"
+       select BLK_DEV_IDEDMA_PCI
        help
          This driver adds explicit support for Acard AEC62xx (Artop ATP8xx)
          IDE controllers. This allows the kernel to change PIO, DMA and UDMA
@@ -467,34 +357,23 @@ config BLK_DEV_AEC62XX
 
 config BLK_DEV_ALI15X3
        tristate "ALI M15x3 chipset support"
+       select IDE_TIMINGS
+       select BLK_DEV_IDEDMA_PCI
        help
          This driver ensures (U)DMA support for ALI 1533, 1543 and 1543C
          onboard chipsets.  It also tests for Simplex mode and enables
          normal dual channel support.
 
-         If you say Y here, you also need to say Y to "Use DMA by default
-         when available", above.  Please read the comments at the top of
+         Please read the comments at the top of
          <file:drivers/ide/pci/alim15x3.c>.
 
          If unsure, say N.
 
-config WDC_ALI15X3
-       bool "ALI M15x3 WDC support (DANGEROUS)"
-       depends on BLK_DEV_ALI15X3
-       ---help---
-         This allows for UltraDMA support for WDC drives that ignore CRC
-         checking. You are a fool for enabling this option, but there have
-         been requests. DO NOT COMPLAIN IF YOUR DRIVE HAS FS CORRUPTION, IF
-         YOU ENABLE THIS! No one will listen, just laugh for ignoring this
-         SERIOUS WARNING.
-
-         Using this option can allow WDC drives to run at ATA-4/5 transfer
-         rates with only an ATA-2 support structure.
-
-         SAY N!
-
 config BLK_DEV_AMD74XX
        tristate "AMD and nVidia IDE support"
+       depends on !ARM
+       select IDE_TIMINGS
+       select BLK_DEV_IDEDMA_PCI
        help
          This driver adds explicit support for AMD-7xx and AMD-8111 chips
          and also for the nVidia nForce chip.  This allows the kernel to
@@ -504,6 +383,7 @@ config BLK_DEV_AMD74XX
 config BLK_DEV_ATIIXP
        tristate "ATI IXP chipset IDE support"
        depends on X86
+       select BLK_DEV_IDEDMA_PCI
        help
          This driver adds explicit support for ATI IXP chipset.
          This allows the kernel to change PIO, DMA and UDMA speeds
@@ -513,28 +393,32 @@ config BLK_DEV_ATIIXP
 
 config BLK_DEV_CMD64X
        tristate "CMD64{3|6|8|9} chipset support"
+       select IDE_TIMINGS
+       select BLK_DEV_IDEDMA_PCI
        help
          Say Y here if you have an IDE controller which uses any of these
          chipsets: CMD643, CMD646, or CMD648.
 
 config BLK_DEV_TRIFLEX
        tristate "Compaq Triflex IDE support"
+       select BLK_DEV_IDEDMA_PCI
        help
          Say Y here if you have a Compaq Triflex IDE controller, such
          as those commonly found on Compaq Pentium-Pro systems
 
 config BLK_DEV_CY82C693
        tristate "CY82C693 chipset support"
+       depends on ALPHA
+       select IDE_TIMINGS
+       select BLK_DEV_IDEDMA_PCI
        help
          This driver adds detection and support for the CY82C693 chipset
          used on Digital's PC-Alpha 164SX boards.
 
-         If you say Y here, you need to say Y to "Use DMA by default
-         when available" as well.
-
 config BLK_DEV_CS5520
        tristate "Cyrix CS5510/20 MediaGX chipset support (VERY EXPERIMENTAL)"
        depends on EXPERIMENTAL
+       select BLK_DEV_IDEDMA_PCI
        help
          Include support for PIO tuning and virtual DMA on the Cyrix MediaGX
          5510/5520 chipset. This will automatically be detected and
@@ -544,6 +428,7 @@ config BLK_DEV_CS5520
 
 config BLK_DEV_CS5530
        tristate "Cyrix/National Semiconductor CS5530 MediaGX chipset support"
+       select BLK_DEV_IDEDMA_PCI
        help
          Include support for UDMA on the Cyrix MediaGX 5530 chipset. This
          will automatically be detected and configured if found.
@@ -553,35 +438,27 @@ config BLK_DEV_CS5530
 config BLK_DEV_CS5535
        tristate "AMD CS5535 chipset support"
        depends on X86 && !X86_64
+       select BLK_DEV_IDEDMA_PCI
        help
          Include support for UDMA on the NSC/AMD CS5535 companion chipset.
          This will automatically be detected and configured if found.
 
          It is safe to say Y to this question.
 
-config BLK_DEV_HPT34X
-       tristate "HPT34X chipset support"
-       help
-         This driver adds up to 4 more EIDE devices sharing a single
-         interrupt. The HPT343 chipset in its current form is a non-bootable
-         controller; the HPT345/HPT363 chipset is a bootable (needs BIOS FIX)
-         PCI UDMA controllers. This driver requires dynamic tuning of the
-         chipset during the ide-probe at boot time. It is reported to support
-         DVD II drives, by the manufacturer.
-
-config HPT34X_AUTODMA
-       bool "HPT34X AUTODMA support (EXPERIMENTAL)"
-       depends on BLK_DEV_HPT34X && EXPERIMENTAL
+config BLK_DEV_CS5536
+       tristate "CS5536 chipset support"
+       depends on X86_32
+       select BLK_DEV_IDEDMA_PCI
        help
-         This is a dangerous thing to attempt currently! Please read the
-         comments at the top of <file:drivers/ide/pci/hpt34x.c>.  If you say Y
-         here, then say Y to "Use DMA by default when available" as well.
+         This option enables support for the AMD CS5536
+         companion chip used with the Geode LX processor family.
 
          If unsure, say N.
 
 config BLK_DEV_HPT366
        tristate "HPT36X/37X chipset support"
-       ---help---
+       select BLK_DEV_IDEDMA_PCI
+       help
          HPT366 is an Ultra DMA chipset for ATA-66.
          HPT368 is an Ultra DMA chipset for ATA-66 RAID Based.
          HPT370 is an Ultra DMA chipset for ATA-100.
@@ -596,8 +473,7 @@ config BLK_DEV_HPT366
          reference to device 0x80. The other solution is to say Y to "Boot
          off-board chipsets first support" (CONFIG_BLK_DEV_OFFBOARD) unless
          your mother board has the chipset natively mounted. Regardless one
-         should use the fore mentioned option and call at LILO or include
-         "ide=reverse" in LILO's append-line.
+         should use the fore mentioned option and call at LILO.
 
          This driver requires dynamic tuning of the chipset during the
          ide-probe at boot. It is reported to support DVD II drives, by the
@@ -605,37 +481,49 @@ config BLK_DEV_HPT366
 
 config BLK_DEV_JMICRON
        tristate "JMicron JMB36x support"
+       select BLK_DEV_IDEDMA_PCI
        help
          Basic support for the JMicron ATA controllers. For full support
          use the libata drivers.
 
 config BLK_DEV_SC1200
        tristate "National SCx200 chipset support"
+       select BLK_DEV_IDEDMA_PCI
        help
-         This driver adds support for the built in IDE on the National
-         SCx200 series of embedded x86 "Geode" systems
+         This driver adds support for the on-board IDE controller on the
+         National SCx200 series of embedded x86 "Geode" systems.
 
 config BLK_DEV_PIIX
-       tristate "Intel PIIXn chipsets support"
+       tristate "Intel PIIX/ICH chipsets support"
+       select BLK_DEV_IDEDMA_PCI
        help
-         This driver adds explicit support for Intel PIIX and ICH chips
-         and also for the Efar Victory66 (slc90e66) chip.  This allows
-         the kernel to change PIO, DMA and UDMA speeds and to configure
-         the chip to optimum performance.
+         This driver adds explicit support for Intel PIIX and ICH chips.
+         This allows the kernel to change PIO, DMA and UDMA speeds and to
+         configure the chip to optimum performance.
+
+config BLK_DEV_IT8172
+       tristate "IT8172 IDE support"
+       select BLK_DEV_IDEDMA_PCI
+       help
+         This driver adds support for the IDE controller on the
+         IT8172 System Controller.
 
 config BLK_DEV_IT8213
        tristate "IT8213 IDE support"
+       select BLK_DEV_IDEDMA_PCI
        help
         This driver adds support for the ITE 8213 IDE controller.
 
 config BLK_DEV_IT821X
        tristate "IT821X IDE support"
+       select BLK_DEV_IDEDMA_PCI
        help
          This driver adds support for the ITE 8211 IDE controller and the
          IT 8212 IDE RAID controller in both RAID and pass-through mode.
 
 config BLK_DEV_NS87415
        tristate "NS87415 chipset support"
+       select BLK_DEV_IDEDMA_PCI
        help
          This driver adds detection and support for the NS87415 chip
          (used mainly on SPARC64 and PA-RISC machines).
@@ -644,6 +532,7 @@ config BLK_DEV_NS87415
 
 config BLK_DEV_PDC202XX_OLD
        tristate "PROMISE PDC202{46|62|65|67} support"
+       select BLK_DEV_IDEDMA_PCI
        help
          Promise Ultra33 or PDC20246
          Promise Ultra66 or PDC20262
@@ -655,28 +544,7 @@ config BLK_DEV_PDC202XX_OLD
          happen if the BIOS revisions of all installed cards (three-max) do
          not match, the driver attempts to do dynamic tuning of the chipset
          at boot-time for max-speed.  Ultra33 BIOS 1.25 or newer is required
-         for more than one card. This card may require that you say Y to
-         "Special UDMA Feature".
-
-         If you say Y here, you need to say Y to "Use DMA by default when
-         available" as well.
-
-         Please read the comments at the top of
-         <file:drivers/ide/pci/pdc202xx_old.c>.
-
-         If unsure, say N.
-
-config PDC202XX_BURST
-       bool "Special UDMA Feature"
-       depends on BLK_DEV_PDC202XX_OLD
-       help
-         This option causes the pdc202xx driver to enable UDMA modes on the
-         PDC202xx even when the PDC202xx BIOS has not done so.
-
-         It was originally designed for the PDC20246/Ultra33, whose BIOS will
-         only setup UDMA on the first two PDC20246 cards.  It has also been
-         used successfully on a PDC20265/Ultra100, allowing use of UDMA modes
-         when the PDC20265 BIOS has been disabled (for faster boot up).
+         for more than one card.
 
          Please read the comments at the top of
          <file:drivers/ide/pci/pdc202xx_old.c>.
@@ -685,9 +553,11 @@ config PDC202XX_BURST
 
 config BLK_DEV_PDC202XX_NEW
        tristate "PROMISE PDC202{68|69|70|71|75|76|77} support"
+       select BLK_DEV_IDEDMA_PCI
 
 config BLK_DEV_SVWKS
        tristate "ServerWorks OSB4/CSB5/CSB6 chipsets support"
+       select BLK_DEV_IDEDMA_PCI
        help
          This driver adds PIO/(U)DMA support for the ServerWorks OSB4/CSB5
          chipsets.
@@ -695,7 +565,7 @@ config BLK_DEV_SVWKS
 config BLK_DEV_SGIIOC4
        tristate "Silicon Graphics IOC4 chipset ATA/ATAPI support"
        depends on (IA64_SGI_SN2 || IA64_GENERIC) && SGI_IOC4
-       select IDEPCI_SHARE_IRQ
+       select BLK_DEV_IDEDMA_PCI
        help
          This driver adds PIO & MultiMode DMA-2 support for the SGI IOC4
          chipset, which has one channel and can support two devices.
@@ -703,6 +573,7 @@ config BLK_DEV_SGIIOC4
 
 config BLK_DEV_SIIMAGE
        tristate "Silicon Image chipset support"
+       select BLK_DEV_IDEDMA_PCI
        help
          This driver adds PIO/(U)DMA support for the SI CMD680 and SII
          3112 (Serial ATA) chips.
@@ -710,7 +581,8 @@ config BLK_DEV_SIIMAGE
 config BLK_DEV_SIS5513
        tristate "SiS5513 chipset support"
        depends on X86
-       ---help---
+       select BLK_DEV_IDEDMA_PCI
+       help
          This driver ensures (U)DMA support for SIS5513 chipset family based
          mainboards.
 
@@ -721,14 +593,13 @@ config BLK_DEV_SIS5513
          ATA100: SiS635, SiS645, SiS650, SiS730, SiS735, SiS740,
          SiS745, SiS750
 
-         If you say Y here, you need to say Y to "Use DMA by default when
-         available" as well.
-
          Please read the comments at the top of <file:drivers/ide/pci/sis5513.c>.
 
 config BLK_DEV_SL82C105
        tristate "Winbond SL82c105 support"
        depends on (PPC || ARM)
+       select IDE_TIMINGS
+       select BLK_DEV_IDEDMA_PCI
        help
          If you have a Winbond SL82c105 IDE controller, say Y here to enable
          special configuration for this chip. This is common on various CHRP
@@ -736,6 +607,7 @@ config BLK_DEV_SL82C105
 
 config BLK_DEV_SLC90E66
        tristate "SLC90E66 chipset support"
+       select BLK_DEV_IDEDMA_PCI
        help
          This driver ensures (U)DMA support for Victory66 SouthBridges for
          SMsC with Intel NorthBridges.  This is an Ultra66 based chipset.
@@ -743,14 +615,12 @@ config BLK_DEV_SLC90E66
          and it will handle timing cycles.  Since this is an improved
          look-a-like to the PIIX4 it should be a nice addition.
 
-         If you say Y here, you need to say Y to "Use DMA by default when
-         available" as well.
-
          Please read the comments at the top of
          <file:drivers/ide/pci/slc90e66.c>.
 
 config BLK_DEV_TRM290
        tristate "Tekram TRM290 chipset support"
+       select BLK_DEV_IDEDMA_PCI
        help
          This driver adds support for bus master DMA transfers
          using the Tekram TRM290 PCI IDE chip. Volunteers are
@@ -759,6 +629,8 @@ config BLK_DEV_TRM290
 
 config BLK_DEV_VIA82CXXX
        tristate "VIA82CXXX chipset support"
+       select IDE_TIMINGS
+       select BLK_DEV_IDEDMA_PCI
        help
          This driver adds explicit support for VIA BusMastering IDE chips.
          This allows the kernel to change PIO, DMA and UDMA speeds and to
@@ -766,29 +638,34 @@ config BLK_DEV_VIA82CXXX
 
 config BLK_DEV_TC86C001
        tristate "Toshiba TC86C001 support"
+       select BLK_DEV_IDEDMA_PCI
        help
        This driver adds support for Toshiba TC86C001 GOKU-S chip.
 
 config BLK_DEV_CELLEB
        tristate "Toshiba's Cell Reference Set IDE support"
        depends on PPC_CELLEB
+       select BLK_DEV_IDEDMA_PCI
        help
-         This driver provides support for the built-in IDE controller on
+         This driver provides support for the on-board IDE controller on
          Toshiba Cell Reference Board.
          If unsure, say Y.
 
 endif
 
+# TODO: BLK_DEV_IDEDMA_PCI -> BLK_DEV_IDEDMA_SFF
 config BLK_DEV_IDE_PMAC
-       bool "Builtin PowerMac IDE support"
-       depends on PPC_PMAC && IDE=y
+       tristate "PowerMac on-board IDE support"
+       depends on PPC_PMAC
+       select IDE_TIMINGS
+       select BLK_DEV_IDEDMA_PCI
        help
-         This driver provides support for the built-in IDE controller on
+         This driver provides support for the on-board IDE controller on
          most of the recent Apple Power Macintoshes and PowerBooks.
          If unsure, say Y.
 
 config BLK_DEV_IDE_PMAC_ATA100FIRST
-       bool "Probe internal ATA/100 (Kauai) first"
+       bool "Probe on-board ATA/100 (Kauai) first"
        depends on BLK_DEV_IDE_PMAC
        help
          This option will cause the ATA/100 controller found in UniNorth2
@@ -798,23 +675,10 @@ config BLK_DEV_IDE_PMAC_ATA100FIRST
          CD-ROM on hda. This option changes this to more natural hda for
          hard disk and hdc for CD-ROM.
 
-config BLK_DEV_IDEDMA_PMAC
-       bool "PowerMac IDE DMA support"
-       depends on BLK_DEV_IDE_PMAC
-       select BLK_DEV_IDEDMA_PCI
-       help
-         This option allows the driver for the built-in IDE controller on
-         Power Macintoshes and PowerBooks to use DMA (direct memory access)
-         to transfer data to and from memory.  Saying Y is safe and improves
-         performance.
-
-config BLK_DEV_IDE_SWARM
-       tristate "IDE for Sibyte evaluation boards"
-       depends on SIBYTE_SB1xxx_SOC
-
 config BLK_DEV_IDE_AU1XXX
        bool "IDE for AMD Alchemy Au1200"
        depends on SOC_AU1200
+       select IDE_XFER_MODE
 choice
        prompt "IDE Mode for AMD Alchemy Au1200"
        default CONFIG_BLK_DEV_IDE_AU1XXX_PIO_DBDMA
@@ -828,13 +692,20 @@ config BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA
        depends on SOC_AU1200 && BLK_DEV_IDE_AU1XXX
 endchoice
 
-config BLK_DEV_IDE_AU1XXX_SEQTS_PER_RQ
-       int "Maximum transfer size (KB) per request (up to 128)"
-       default "128"
-       depends on BLK_DEV_IDE_AU1XXX
+config BLK_DEV_IDE_TX4938
+       tristate "TX4938 internal IDE support"
+       depends on SOC_TX4938
+       select IDE_TIMINGS
 
-config IDE_ARM
-       def_bool ARM && (ARCH_A5K || ARCH_CLPS7500 || ARCH_RPC || ARCH_SHARK)
+config BLK_DEV_IDE_TX4939
+       tristate "TX4939 internal IDE support"
+       depends on SOC_TX4939
+       select BLK_DEV_IDEDMA_SFF
+
+config BLK_DEV_IDE_AT91
+       tristate "Atmel AT91 (SAM9, CAP9, AT572D940HF) IDE support"
+       depends on ARM && ARCH_AT91 && !ARCH_AT91RM9200 && !ARCH_AT91X40
+       select IDE_TIMINGS
 
 config BLK_DEV_IDE_ICSIDE
        tristate "ICS IDE interface support"
@@ -851,19 +722,6 @@ config BLK_DEV_IDEDMA_ICS
          Say Y here if you want to add DMA (Direct Memory Access) support to
          the ICS IDE driver.
 
-config IDEDMA_ICS_AUTO
-       bool "Use ICS DMA by default"
-       depends on BLK_DEV_IDEDMA_ICS
-       help
-         Prior to kernel version 2.1.112, Linux used to automatically use
-         DMA for IDE drives and chipsets which support it. Due to concerns
-         about a couple of cases where buggy hardware may have caused damage,
-         the default is now to NOT use DMA automatically. To revert to the
-         previous behaviour, say Y to this question.
-
-         If you suspect your hardware is at all flakey, say N here.
-         Do NOT email the IDE kernel people regarding this issue!
-
 config BLK_DEV_IDE_RAPIDE
        tristate "RapIDE interface support"
        depends on ARM && ARCH_ACORN
@@ -871,250 +729,163 @@ config BLK_DEV_IDE_RAPIDE
          Say Y here if you want to support the Yellowstone RapIDE controller
          manufactured for use with Acorn computers.
 
-config BLK_DEV_IDE_BAST
-       tristate "Simtec BAST / Thorcom VR1000 IDE support"
-       depends on ARM && (ARCH_BAST || MACH_VR1000)
+config IDE_H8300
+       tristate "H8300 IDE support"
+       depends on H8300
+       default y
        help
-         Say Y here if you want to support the onboard IDE channels on the
-         Simtec BAST or the Thorcom VR1000
+         Enables the H8300 IDE driver.
 
 config BLK_DEV_GAYLE
-       bool "Amiga Gayle IDE interface support"
+       tristate "Amiga Gayle IDE interface support"
        depends on AMIGA
        help
          This is the IDE driver for the Amiga Gayle IDE interface. It supports
          both the `A1200 style' and `A4000 style' of the Gayle IDE interface,
-         This includes builtin IDE interfaces on some Amiga models (A600,
+         This includes on-board IDE interfaces on some Amiga models (A600,
          A1200, A4000, and A4000T), and IDE interfaces on the Zorro expansion
          bus (M-Tech E-Matrix 530 expansion card).
+
+         It also provides support for the so-called `IDE doublers' (made
+         by various manufacturers, e.g. Eyetech) that can be connected to
+         the on-board IDE interface of some Amiga models. Using such an IDE
+         doubler, you can connect up to four instead of two IDE devices to
+         the Amiga's on-board IDE interface. The feature is enabled at kernel
+         runtime using the "gayle.doubler" kernel boot parameter.
+
          Say Y if you have an Amiga with a Gayle IDE interface and want to use
          IDE devices (hard disks, CD-ROM drives, etc.) that are connected to
          it.
+
          Note that you also have to enable Zorro bus support if you want to
          use Gayle IDE interfaces on the Zorro expansion bus.
 
-config BLK_DEV_IDEDOUBLER
-       bool "Amiga IDE Doubler support (EXPERIMENTAL)"
-       depends on BLK_DEV_GAYLE && EXPERIMENTAL
-       ---help---
-         This driver provides support for the so-called `IDE doublers' (made
-         by various manufacturers, e.g. Eyetech) that can be connected to the
-         builtin IDE interface of some Amiga models. Using such an IDE
-         doubler, you can connect up to four instead of two IDE devices on
-         the Amiga's builtin IDE interface.
-
-         Note that the normal Amiga Gayle IDE driver may not work correctly
-         if you have an IDE doubler and don't enable this driver!
-
-         Say Y if you have an IDE doubler.  The driver is enabled at kernel
-         runtime using the "ide=doubler" kernel boot parameter.
-
 config BLK_DEV_BUDDHA
-       bool "Buddha/Catweasel/X-Surf IDE interface support (EXPERIMENTAL)"
+       tristate "Buddha/Catweasel/X-Surf IDE interface support (EXPERIMENTAL)"
        depends on ZORRO && EXPERIMENTAL
        help
-         This is the IDE driver for the IDE interfaces on the Buddha, 
-         Catweasel and X-Surf expansion boards.  It supports up to two interfaces 
-         on the Buddha, three on the Catweasel and two on the X-Surf.
+         This is the IDE driver for the IDE interfaces on the Buddha, Catweasel
+         and X-Surf expansion boards.  It supports up to two interfaces on the
+         Buddha, three on the Catweasel and two on the X-Surf.
 
          Say Y if you have a Buddha or Catweasel expansion board and want to
          use IDE devices (hard disks, CD-ROM drives, etc.) that are connected
          to one of its IDE interfaces.
 
 config BLK_DEV_FALCON_IDE
-       bool "Falcon IDE interface support"
+       tristate "Falcon IDE interface support"
        depends on ATARI
        help
-         This is the IDE driver for the builtin IDE interface on the Atari
+         This is the IDE driver for the on-board IDE interface on the Atari
          Falcon. Say Y if you have a Falcon and want to use IDE devices (hard
-         disks, CD-ROM drives, etc.) that are connected to the builtin IDE
+         disks, CD-ROM drives, etc.) that are connected to the on-board IDE
          interface.
 
 config BLK_DEV_MAC_IDE
-       bool "Macintosh Quadra/Powerbook IDE interface support"
+       tristate "Macintosh Quadra/Powerbook IDE interface support"
        depends on MAC
        help
-         This is the IDE driver for the builtin IDE interface on some m68k
+         This is the IDE driver for the on-board IDE interface on some m68k
          Macintosh models. It supports both the `Quadra style' (used in
          Quadra/ Centris 630 and Performa 588 models) and `Powerbook style'
          (used in the Powerbook 150 and 190 models) IDE interface.
 
          Say Y if you have such an Macintosh model and want to use IDE
          devices (hard disks, CD-ROM drives, etc.) that are connected to the
-         builtin IDE interface.
+         on-board IDE interface.
 
 config BLK_DEV_Q40IDE
-       bool "Q40/Q60 IDE interface support"
+       tristate "Q40/Q60 IDE interface support"
        depends on Q40
        help
          Enable the on-board IDE controller in the Q40/Q60.  This should
          normally be on; disable it only if you are running a custom hard
          drive subsystem through an expansion card.
 
-config BLK_DEV_MPC8xx_IDE
-       bool "MPC8xx IDE support"
-       depends on 8xx && IDE=y && BLK_DEV_IDE=y
+config BLK_DEV_PALMCHIP_BK3710
+       tristate "Palmchip bk3710 IDE controller support"
+       depends on ARCH_DAVINCI
+       select IDE_TIMINGS
+       select BLK_DEV_IDEDMA_SFF
        help
-         This option provides support for IDE on Motorola MPC8xx Systems.
-         Please see 'Type of MPC8xx IDE interface' for details.
-
-         If unsure, say N.
-
-choice
-       prompt "Type of MPC8xx IDE interface"
-       depends on BLK_DEV_MPC8xx_IDE
-       default IDE_8xx_PCCARD
-
-config IDE_8xx_PCCARD
-       bool "8xx_PCCARD"
-       ---help---
-         Select how the IDE devices are connected to the MPC8xx system:
-
-         8xx_PCCARD uses the 8xx internal PCMCIA interface in combination
-         with a PC Card (e.g. ARGOSY portable Hard Disk Adapter),
-         ATA PC Card HDDs or ATA PC Flash Cards (example: TQM8xxL
-         systems)
-
-         8xx_DIRECT is used for directly connected IDE devices using the 8xx
-         internal PCMCIA interface (example: IVMS8 systems)
-
-         EXT_DIRECT is used for IDE devices directly connected to the 8xx
-         bus using some glue logic, but _not_ the 8xx internal
-         PCMCIA interface (example: IDIF860 systems)
-
-config IDE_8xx_DIRECT
-       bool "8xx_DIRECT"
-
-config IDE_EXT_DIRECT
-       bool "EXT_DIRECT"
-
-endchoice
+         Say Y here if you want to support the onchip IDE controller on the
+         TI DaVinci SoC
 
 # no isa -> no vlb
-config IDE_CHIPSETS
-       bool "Other IDE chipset support"
-       depends on ISA
-       ---help---
-         Say Y here if you want to include enhanced support for various IDE
-         interface chipsets used on motherboards and add-on cards. You can
-         then pick your particular IDE chip from among the following options.
-         This enhanced support may be necessary for Linux to be able to
-         access the 3rd/4th drives in some systems. It may also enable
-         setting of higher speed I/O rates to improve system performance with
-         these chipsets. Most of these also require special kernel boot
-         parameters to actually turn on the support at runtime; you can find
-         a list of these in the file <file:Documentation/ide.txt>.
-
-         People with SCSI-only systems can say N here.
-
-if IDE_CHIPSETS
+if ISA && (ALPHA || X86 || MIPS)
 
+comment "Other IDE chipsets support"
 comment "Note: most of these also require special kernel boot parameters"
 
 config BLK_DEV_4DRIVES
-       bool "Generic 4 drives/port support"
+       tristate "Generic 4 drives/port support"
        help
          Certain older chipsets, including the Tekram 690CD, use a single set
          of I/O ports at 0x1f0 to control up to four drives, instead of the
          customary two drives per port. Support for this can be enabled at
-         runtime using the "ide0=four" kernel boot parameter if you say Y
-         here.
+         runtime using the "ide-4drives.probe" kernel boot parameter if you
+         say Y here.
 
 config BLK_DEV_ALI14XX
        tristate "ALI M14xx support"
+       select IDE_TIMINGS
+       select IDE_LEGACY
        help
          This driver is enabled at runtime using the "ali14xx.probe" kernel
          boot parameter.  It enables support for the secondary IDE interface
          of the ALI M1439/1443/1445/1487/1489 chipsets, and permits faster
-         I/O speeds to be set as well.  See the files
-         <file:Documentation/ide.txt> and <file:drivers/ide/legacy/ali14xx.c> for
-         more info.
+         I/O speeds to be set as well.
+         See the files <file:Documentation/ide/ide.txt> and
+         <file:drivers/ide/legacy/ali14xx.c> for more info.
 
 config BLK_DEV_DTC2278
        tristate "DTC-2278 support"
+       select IDE_XFER_MODE
+       select IDE_LEGACY
        help
          This driver is enabled at runtime using the "dtc2278.probe" kernel
          boot parameter. It enables support for the secondary IDE interface
          of the DTC-2278 card, and permits faster I/O speeds to be set as
-         well. See the <file:Documentation/ide.txt> and
+         well. See the <file:Documentation/ide/ide.txt> and
          <file:drivers/ide/legacy/dtc2278.c> files for more info.
 
 config BLK_DEV_HT6560B
        tristate "Holtek HT6560B support"
+       select IDE_TIMINGS
+       select IDE_LEGACY
        help
          This driver is enabled at runtime using the "ht6560b.probe" kernel
          boot parameter. It enables support for the secondary IDE interface
          of the Holtek card, and permits faster I/O speeds to be set as well.
-         See the <file:Documentation/ide.txt> and
+         See the <file:Documentation/ide/ide.txt> and
          <file:drivers/ide/legacy/ht6560b.c> files for more info.
 
 config BLK_DEV_QD65XX
        tristate "QDI QD65xx support"
+       select IDE_TIMINGS
+       select IDE_LEGACY
        help
          This driver is enabled at runtime using the "qd65xx.probe" kernel
          boot parameter.  It permits faster I/O speeds to be set.  See the
-         <file:Documentation/ide.txt> and <file:drivers/ide/legacy/qd65xx.c> for
-         more info.
+         <file:Documentation/ide/ide.txt> and <file:drivers/ide/legacy/qd65xx.c>
+         for more info.
 
 config BLK_DEV_UMC8672
        tristate "UMC-8672 support"
+       select IDE_XFER_MODE
+       select IDE_LEGACY
        help
          This driver is enabled at runtime using the "umc8672.probe" kernel
          boot parameter. It enables support for the secondary IDE interface
          of the UMC-8672, and permits faster I/O speeds to be set as well.
-         See the files <file:Documentation/ide.txt> and
+         See the files <file:Documentation/ide/ide.txt> and
          <file:drivers/ide/legacy/umc8672.c> for more info.
 
 endif
 
 config BLK_DEV_IDEDMA
-       def_bool BLK_DEV_IDEDMA_PCI || BLK_DEV_IDEDMA_PMAC || BLK_DEV_IDEDMA_ICS || BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA
-
-config IDEDMA_IVB
-       bool "IGNORE word93 Validation BITS"
-       depends on BLK_DEV_IDEDMA_PCI || BLK_DEV_IDEDMA_PMAC || BLK_DEV_IDEDMA_ICS
-       ---help---
-         There are unclear terms in ATA-4 and ATA-5 standards how certain
-         hardware (an 80c ribbon) should be detected. Different interpretations
-         of the standards have been released in hardware. This causes problems:
-         for example, a host with Ultra Mode 4 (or higher) will not run
-         in that mode with an 80c ribbon.
-
-         If you are experiencing compatibility or performance problems, you
-         MAY try to answer Y here. However, it does not necessarily solve
-         any of your problems, it could even cause more of them.
-
-         It is normally safe to answer Y; however, the default is N.
+       def_bool BLK_DEV_IDEDMA_SFF || \
+                BLK_DEV_IDEDMA_ICS || BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA
+       select IDE_XFER_MODE
 
-config IDEDMA_AUTO
-       def_bool IDEDMA_PCI_AUTO || IDEDMA_ICS_AUTO
-
-endif
-
-config BLK_DEV_HD_ONLY
-       bool "Old hard disk (MFM/RLL/IDE) driver"
-       depends on BLK_DEV_IDE=n
-       help
-         There are two drivers for MFM/RLL/IDE hard disks. Most people use
-         the newer enhanced driver, but this old one is still around for two
-         reasons. Some older systems have strange timing problems and seem to
-         work only with the old driver (which itself does not work with some
-         newer systems). The other reason is that the old driver is smaller,
-         since it lacks the enhanced functionality of the new one. This makes
-         it a good choice for systems with very tight memory restrictions, or
-         for systems with only older MFM/RLL/ESDI drives. Choosing the old
-         driver can save 13 KB or so of kernel memory.
-
-         If you are unsure, then just choose the Enhanced IDE/MFM/RLL driver
-         instead of this one. For more detailed information, read the
-         Disk-HOWTO, available from
-         <http://www.tldp.org/docs.html#howto>.
-
-config BLK_DEV_HD
-       def_bool BLK_DEV_HD_IDE || BLK_DEV_HD_ONLY
-
-endif
-
-endmenu
-
-endif
+endif # IDE