#
# AIC79XX 2.5.X Kernel configuration File.
# $Id: //depot/linux-aic79xx-2.5.0/drivers/scsi/aic7xxx/Kconfig.aic79xx#4 $
#
config SCSI_AIC79XX
	tristate "Adaptec AIC79xx U320 support"
	depends on PCI && SCSI
	help
	This driver supports all of Adaptec's Ultra 320 PCI-X
	based SCSI controllers.

config AIC79XX_CMDS_PER_DEVICE
	int "Maximum number of TCQ commands per device"
	depends on SCSI_AIC79XX
	default "32"
	---help---
	Specify the number of commands you would like to allocate per SCSI
	device when Tagged Command Queueing (TCQ) is enabled on that device.

	This is an upper bound value for the number of tagged transactions
	to be used for any device.  The aic7xxx driver will automatically
	vary this number based on device behavior.  For devices with a
	fixed maximum, the driver will eventually lock to this maximum
	and display a console message inidicating this value.

	Due to resource allocation issues in the Linux SCSI mid-layer, using
	a high number of commands per device may result in memory allocation
	failures when many devices are attached to the system.  For this reason,
	the default is set to 32.  Higher values may result in higer performance
	on some devices.  The upper bound is 253.  0 disables tagged queueing.

	Per device tag depth can be controlled via the kernel command line
	"tag_info" option.  See drivers/scsi/aic7xxx/README.aic79xx
	for details.

config AIC79XX_RESET_DELAY_MS
	int "Initial bus reset delay in milli-seconds"
	depends on SCSI_AIC79XX
	default "15000"
	---help---
	The number of milliseconds to delay after an initial bus reset.
	The bus settle delay following all error recovery actions is
	dictated by the SCSI layer and is not affected by this value.

	Default: 15000 (15 seconds)

config AIC79XX_BUILD_FIRMWARE
	bool "Build Adapter Firmware with Kernel Build"
	depends on SCSI_AIC79XX && !PREVENT_FIRMWARE_BUILD
	help
	This option should only be enabled if you are modifying the firmware
	source to the aic79xx driver and wish to have the generated firmware
	include files updated during a normal kernel build.  The assembler
	for the firmware requires lex and yacc or their equivalents, as well
	as the db v1 library.  You may have to install additional packages
	or modify the assembler Makefile or the files it includes if your
	build environment is different than that of the author.

config AIC79XX_ENABLE_RD_STRM
	bool "Enable Read Streaming for All Targets"
	depends on SCSI_AIC79XX
	default n
	help
	Read Streaming is a U320 protocol option that should enhance
	performance.  Early U320 drive firmware actually performs slower
	with read streaming enabled so it is disabled by default.  Read
	Streaming can be configured in much the same way as tagged queueing
	using the "rd_strm" command line option.  See
	drivers/scsi/aic7xxx/README.aic79xx for details.

config AIC79XX_DEBUG_ENABLE
	bool "Compile in Debugging Code"
	depends on SCSI_AIC79XX
	default y
	help
	Compile in aic79xx debugging code that can be useful in diagnosing
	driver errors.

config AIC79XX_DEBUG_MASK
	int "Debug code enable mask (16383 for all debugging)"
	depends on SCSI_AIC79XX
	default "0"
	help
	Bit mask of debug options that is only valid if the
	CONFIG_AIC79XX_DEBUG_ENBLE option is enabled.  The bits in this mask
	are defined in the drivers/scsi/aic7xxx/aic79xx.h - search for the
	variable ahd_debug in that file to find them.

config AIC79XX_REG_PRETTY_PRINT
	bool "Decode registers during diagnostics"
	depends on SCSI_AIC79XX
	default y
	help
	Compile in register value tables for the output of expanded register
	contents in diagnostics.  This make it much easier to understand debug
	output without having to refer to a data book and/or the aic7xxx.reg
	file.
