scsi: megaraid_sas: Add support for Crusader controllers

Add support for PCI VID/DID 0x1000/0x0015 based MegaRAID controllers.
Since the DID 0x0015 conflicts with DELL PERC5 controllers,
add vendor ID based check specific for DELL PERC5.

Signed-off-by: Kashyap Desai <kashyap.desai@broadcom.com>
Signed-off-by: Shivasharan S <shivasharan.srikanteshwara@broadcom.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
Shivasharan S 2017-10-19 02:48:49 -07:00 committed by Martin K. Petersen
parent c365178f31
commit 754f1bae0f
2 changed files with 30 additions and 22 deletions

View File

@ -57,6 +57,7 @@
#define PCI_DEVICE_ID_LSI_CUTLASS_52 0x0052
#define PCI_DEVICE_ID_LSI_CUTLASS_53 0x0053
#define PCI_DEVICE_ID_LSI_VENTURA 0x0014
#define PCI_DEVICE_ID_LSI_CRUSADER 0x0015
#define PCI_DEVICE_ID_LSI_HARPOON 0x0016
#define PCI_DEVICE_ID_LSI_TOMCAT 0x0017
#define PCI_DEVICE_ID_LSI_VENTURA_4PORT 0x001B

View File

@ -161,6 +161,7 @@ static struct pci_device_id megasas_pci_table[] = {
{PCI_DEVICE(PCI_VENDOR_ID_LSI_LOGIC, PCI_DEVICE_ID_LSI_CUTLASS_53)},
/* VENTURA */
{PCI_DEVICE(PCI_VENDOR_ID_LSI_LOGIC, PCI_DEVICE_ID_LSI_VENTURA)},
{PCI_DEVICE(PCI_VENDOR_ID_LSI_LOGIC, PCI_DEVICE_ID_LSI_CRUSADER)},
{PCI_DEVICE(PCI_VENDOR_ID_LSI_LOGIC, PCI_DEVICE_ID_LSI_HARPOON)},
{PCI_DEVICE(PCI_VENDOR_ID_LSI_LOGIC, PCI_DEVICE_ID_LSI_TOMCAT)},
{PCI_DEVICE(PCI_VENDOR_ID_LSI_LOGIC, PCI_DEVICE_ID_LSI_VENTURA_4PORT)},
@ -5980,29 +5981,35 @@ fail_set_dma_mask:
*/
static inline void megasas_set_adapter_type(struct megasas_instance *instance)
{
switch (instance->pdev->device) {
case PCI_DEVICE_ID_LSI_VENTURA:
case PCI_DEVICE_ID_LSI_HARPOON:
case PCI_DEVICE_ID_LSI_TOMCAT:
case PCI_DEVICE_ID_LSI_VENTURA_4PORT:
case PCI_DEVICE_ID_LSI_CRUSADER_4PORT:
instance->adapter_type = VENTURA_SERIES;
break;
case PCI_DEVICE_ID_LSI_FUSION:
case PCI_DEVICE_ID_LSI_PLASMA:
instance->adapter_type = THUNDERBOLT_SERIES;
break;
case PCI_DEVICE_ID_LSI_INVADER:
case PCI_DEVICE_ID_LSI_INTRUDER:
case PCI_DEVICE_ID_LSI_INTRUDER_24:
case PCI_DEVICE_ID_LSI_CUTLASS_52:
case PCI_DEVICE_ID_LSI_CUTLASS_53:
case PCI_DEVICE_ID_LSI_FURY:
instance->adapter_type = INVADER_SERIES;
break;
default: /* For all other supported controllers */
if ((instance->pdev->vendor == PCI_VENDOR_ID_DELL) &&
(instance->pdev->device == PCI_DEVICE_ID_DELL_PERC5)) {
instance->adapter_type = MFI_SERIES;
break;
} else {
switch (instance->pdev->device) {
case PCI_DEVICE_ID_LSI_VENTURA:
case PCI_DEVICE_ID_LSI_CRUSADER:
case PCI_DEVICE_ID_LSI_HARPOON:
case PCI_DEVICE_ID_LSI_TOMCAT:
case PCI_DEVICE_ID_LSI_VENTURA_4PORT:
case PCI_DEVICE_ID_LSI_CRUSADER_4PORT:
instance->adapter_type = VENTURA_SERIES;
break;
case PCI_DEVICE_ID_LSI_FUSION:
case PCI_DEVICE_ID_LSI_PLASMA:
instance->adapter_type = THUNDERBOLT_SERIES;
break;
case PCI_DEVICE_ID_LSI_INVADER:
case PCI_DEVICE_ID_LSI_INTRUDER:
case PCI_DEVICE_ID_LSI_INTRUDER_24:
case PCI_DEVICE_ID_LSI_CUTLASS_52:
case PCI_DEVICE_ID_LSI_CUTLASS_53:
case PCI_DEVICE_ID_LSI_FURY:
instance->adapter_type = INVADER_SERIES;
break;
default: /* For all other supported controllers */
instance->adapter_type = MFI_SERIES;
break;
}
}
}