
menu "Fusion MPT device support"
	depends on PCI

config FUSION
	bool
	default n

config FUSION_SPI
	tristate "Fusion MPT ScsiHost drivers for SPI"
	depends on PCI && SCSI
	select FUSION
	select SCSI_SPI_ATTRS
	---help---
	  SCSI HOST support for a parallel SCSI host adapters.

	  List of supported controllers:

	  LSI53C1020
	  LSI53C1020A
	  LSI53C1030
	  LSI53C1035

config FUSION_FC
	tristate "Fusion MPT ScsiHost drivers for FC"
	depends on PCI && SCSI
	select FUSION
	select SCSI_FC_ATTRS
	---help---
	  SCSI HOST support for a Fiber Channel host adapters.

	  List of supported controllers:

	  LSIFC909
	  LSIFC919
	  LSIFC919X
	  LSIFC929
	  LSIFC929X
	  LSIFC929XL
	  Brocade FC 410/420

config FUSION_SAS
	tristate "Fusion MPT ScsiHost drivers for SAS"
	depends on PCI && SCSI
 	select FUSION
	select SCSI_SAS_ATTRS
	---help---
	  SCSI HOST support for a SAS host adapters.

	  List of supported controllers:

	  LSISAS1064
	  LSISAS1068
	  LSISAS1064E
	  LSISAS1068E

config FUSION_MAX_SGE
	int "Maximum number of scatter gather entries (16 - 128)"
	depends on FUSION
	default "128"
	range 16 128
	help
	  This option allows you to specify the maximum number of scatter-
	  gather entries per I/O. The driver default is 128, which matches
	  SCSI_MAX_PHYS_SEGMENTS. However, it may decreased down to 16.
	  Decreasing this parameter will reduce memory requirements
	  on a per controller instance.

config FUSION_CTL
	tristate "Fusion MPT misc device (ioctl) driver"
	depends on FUSION_SPI || FUSION_FC || FUSION_SAS
	---help---
	  The Fusion MPT misc device driver provides specialized control
	  of MPT adapters via system ioctl calls.  Use of ioctl calls to
	  the MPT driver requires that you create and use a misc device
	  node ala:
	  mknod /dev/mptctl c 10 240

	  One use of this ioctl interface is to perform an upgrade (reflash)
	  of the MPT adapter firmware.  Refer to readme file(s) distributed
	  with the Fusion MPT linux driver for additional details.

	  If enabled by saying M to this, a driver named: mptctl
	  will be compiled.

	  If unsure whether you really want or need this, say N.

config FUSION_LAN
	tristate "Fusion MPT LAN driver"
	depends on FUSION_FC && NET_FC
	---help---
	  This module supports LAN IP traffic over Fibre Channel port(s)
	  on Fusion MPT compatible hardware (LSIFC9xx chips).
	  The physical interface used is defined in RFC 2625.
	  Please refer to that document for details.

	  Installing this driver requires the knowledge to configure and
	  activate a new network interface, "fc0", using standard Linux tools.

	  If enabled by saying M to this, a driver named: mptlan
	  will be compiled.

	  If unsure whether you really want or need this, say N.

config FUSION_LOGGING
	bool "Fusion MPT logging facility"
	depends on FUSION
	---help---
	  This turns on a logging facility that can be used to debug a number
	  of Fusion MPT related problems.

	  The debug level can be programmed on the fly via SysFS (hex values)

	  echo [level] > /sys/class/scsi_host/host#/debug_level

	  There are various debug levels that an be found in the source:
	  file:drivers/message/fusion/mptdebug.h

endmenu
