# 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
