# SPDX-License-Identifier: GPL-2.0-only
config MEGARAID_NEWGEN
	bool "LSI Logic New Generation RAID Device Drivers"
	depends on PCI && HAS_IOPORT && SCSI
	help
	LSI Logic RAID Device Drivers

config MEGARAID_MM
	tristate "LSI Logic Management Module (New Driver)"
	depends on PCI && HAS_IOPORT && SCSI && MEGARAID_NEWGEN
	help
	Management Module provides ioctl, sysfs support for LSI Logic
	RAID controllers.
	To compile this driver as a module, choose M here: the
	module will be called megaraid_mm


config MEGARAID_MAILBOX
	tristate "LSI Logic MegaRAID Driver (New Driver)"
	depends on PCI && SCSI && MEGARAID_MM
	help
	List of supported controllers

	OEM	Product Name		VID :DID :SVID:SSID
	---	------------		---- ---- ---- ----
	Dell PERC3/QC			101E:1960:1028:0471
	Dell PERC3/DC			101E:1960:1028:0493
	Dell PERC3/SC			101E:1960:1028:0475
	Dell PERC3/Di			1028:000E:1028:0123
	Dell PERC4/SC			1000:1960:1028:0520
	Dell PERC4/DC			1000:1960:1028:0518
	Dell PERC4/QC			1000:0407:1028:0531
	Dell PERC4/Di			1028:000F:1028:014A
	Dell PERC 4e/Si			1028:0013:1028:016c
	Dell PERC 4e/Di			1028:0013:1028:016d
	Dell PERC 4e/Di			1028:0013:1028:016e
	Dell PERC 4e/Di			1028:0013:1028:016f
	Dell PERC 4e/Di			1028:0013:1028:0170
	Dell PERC 4e/DC			1000:0408:1028:0002
	Dell PERC 4e/SC			1000:0408:1028:0001
	LSI MegaRAID SCSI 320-0		1000:1960:1000:A520
	LSI MegaRAID SCSI 320-1		1000:1960:1000:0520
	LSI MegaRAID SCSI 320-2		1000:1960:1000:0518
	LSI MegaRAID SCSI 320-0X	1000:0407:1000:0530
	LSI MegaRAID SCSI 320-2X	1000:0407:1000:0532
	LSI MegaRAID SCSI 320-4X	1000:0407:1000:0531
	LSI MegaRAID SCSI 320-1E	1000:0408:1000:0001
	LSI MegaRAID SCSI 320-2E	1000:0408:1000:0002
	LSI MegaRAID SATA 150-4		1000:1960:1000:4523
	LSI MegaRAID SATA 150-6		1000:1960:1000:0523
	LSI MegaRAID SATA 300-4X	1000:0409:1000:3004
	LSI MegaRAID SATA 300-8X	1000:0409:1000:3008
	INTEL RAID Controller SRCU42X	1000:0407:8086:0532
	INTEL RAID Controller SRCS16	1000:1960:8086:0523
	INTEL RAID Controller SRCU42E	1000:0408:8086:0002
	INTEL RAID Controller SRCZCRX	1000:0407:8086:0530
	INTEL RAID Controller SRCS28X	1000:0409:8086:3008
	INTEL RAID Controller SROMBU42E	1000:0408:8086:3431
	INTEL RAID Controller SROMBU42E	1000:0408:8086:3499
	INTEL RAID Controller SRCU51L	1000:1960:8086:0520
	FSC MegaRAID PCI Express ROMB	1000:0408:1734:1065
	ACER MegaRAID ROMB-2E		1000:0408:1025:004D
	NEC MegaRAID PCI Express ROMB	1000:0408:1033:8287

	To compile this driver as a module, choose M here: the
	module will be called megaraid_mbox

config MEGARAID_LEGACY
	tristate "LSI Logic Legacy MegaRAID Driver"
	depends on PCI && HAS_IOPORT && SCSI
	help
	This driver supports the LSI MegaRAID 418, 428, 438, 466, 762, 490
	and 467 SCSI host adapters. This driver also support the all U320
	RAID controllers

	To compile this driver as a module, choose M here: the
	module will be called megaraid

config MEGARAID_SAS
	tristate "LSI Logic MegaRAID SAS RAID Module"
	depends on PCI && SCSI
	select IRQ_POLL
	help
	Module for LSI Logic's SAS based RAID controllers.
	To compile this driver as a module, choose 'm' here.
	Module will be called megaraid_sas

