
menuconfig I2O
	tristate "I2O device support"
	depends on PCI
	---help---
	  The Intelligent Input/Output (I2O) architecture allows hardware
	  drivers to be split into two parts: an operating system specific
	  module called the OSM and an hardware specific module called the
	  HDM. The OSM can talk to a whole range of HDM's, and ideally the
	  HDM's are not OS dependent. This allows for the same HDM driver to
	  be used under different operating systems if the relevant OSM is in
	  place. In order for this to work, you need to have an I2O interface
	  adapter card in your computer. This card contains a special I/O
	  processor (IOP), thus allowing high speeds since the CPU does not
	  have to deal with I/O.

	  If you say Y here, you will get a choice of interface adapter
	  drivers and OSM's with the following questions.

	  To compile this support as a module, choose M here: the
	  modules will be called i2o_core.

	  If unsure, say N.

if I2O

config I2O_LCT_NOTIFY_ON_CHANGES
	bool "Enable LCT notification"
	default y
	---help---
	  Only say N here if you have a I2O controller from SUN. The SUN
	  firmware doesn't support LCT notification on changes. If this option
	  is enabled on such a controller the driver will hang up in a endless
	  loop. On all other controllers say Y.

	  If unsure, say Y.

config I2O_EXT_ADAPTEC
	bool "Enable Adaptec extensions"
	default y
	---help---
	  Say Y for support of raidutils for Adaptec I2O controllers. You also
	  have to say Y to "I2O Configuration support", "I2O SCSI OSM" below
	  and to "SCSI generic support" under "SCSI device configuration".

config I2O_EXT_ADAPTEC_DMA64
	bool "Enable 64-bit DMA"
	depends on I2O_EXT_ADAPTEC && ( 64BIT || HIGHMEM64G )
	default y
	---help---
	  Say Y for support of 64-bit DMA transfer mode on Adaptec I2O
	  controllers.
	  Note: You need at least firmware version 3709.

config I2O_CONFIG
	tristate "I2O Configuration support"
	depends on VIRT_TO_BUS
	---help---
	  Say Y for support of the configuration interface for the I2O adapters.
	  If you have a RAID controller from Adaptec and you want to use the
	  raidutils to manage your RAID array, you have to say Y here.

	  To compile this support as a module, choose M here: the
	  module will be called i2o_config.

	  Note: If you want to use the new API you have to download the
	  i2o_config patch from http://i2o.shadowconnect.com/

config I2O_CONFIG_OLD_IOCTL
	bool "Enable ioctls (OBSOLETE)"
	depends on I2O_CONFIG
	default y
	---help---
	  Enables old ioctls.

config I2O_BUS
	tristate "I2O Bus Adapter OSM"
	---help---
	  Include support for the I2O Bus Adapter OSM. The Bus Adapter OSM
	  provides access to the busses on the I2O controller. The main purpose
	  is to rescan the bus to find new devices.

	  To compile this support as a module, choose M here: the
	  module will be called i2o_bus.

config I2O_BLOCK
	tristate "I2O Block OSM"
	depends on BLOCK
	---help---
	  Include support for the I2O Block OSM. The Block OSM presents disk
	  and other structured block devices to the operating system. If you
	  are using an RAID controller, you could access the array only by
	  the Block OSM driver. But it is possible to access the single disks
	  by the SCSI OSM driver, for example to monitor the disks.

	  To compile this support as a module, choose M here: the
	  module will be called i2o_block.

config I2O_SCSI
	tristate "I2O SCSI OSM"
	depends on SCSI
	---help---
	  Allows direct SCSI access to SCSI devices on a SCSI or FibreChannel
	  I2O controller. You can use both the SCSI and Block OSM together if
	  you wish. To access a RAID array, you must use the Block OSM driver.
	  But you could use the SCSI OSM driver to monitor the single disks.

	  To compile this support as a module, choose M here: the
	  module will be called i2o_scsi.

config I2O_PROC
	tristate "I2O /proc support"
	---help---
	  If you say Y here and to "/proc file system support", you will be
	  able to read I2O related information from the virtual directory
	  /proc/i2o.

	  To compile this support as a module, choose M here: the
	  module will be called i2o_proc.

endif # I2O
