mpt2sas : Identify Dell series-7 adapters at driver load time
PATCH 6/10 mpt2sas : Identify Dell series-7 adapters at driver load time
The Dell branding along with the VID, DID, SSVID, SSDID following the LSI branding that contains the card firmware/chip/bios versions. If the SSDID is not known but it is a Dell HBA, the driver will print the SSDID instead of the Dell branding string. Nothing will be printed for non Dell HBAs
Signed-off-by Eric Moore <[email protected]>
drivers/scsi/mpt2sas/mpt2sas_base.c +60 -0
@@ -1396,6 +1396,64 @@ mpt2sas_base_put_smid_target_assist(stru }/** +* _base_display_dell_branding - Disply branding string +* @ioc: per adapter object +* +* Return nothing. +*/ +static void +_base_display_dell_branding (struct MPT2SAS_ADAPTER *ioc) +{ +char dell_branding[MPT2SAS_DELL_BRANDING_SIZE ]; + +if (ioc->pdev->subsystem_vendor !=PCI_VENDOR_ID_DELL ) +return ; + +memset (dell_branding,0 ,MPT2SAS_DELL_BRANDING_SIZE ); +switch (ioc->pdev->subsystem_device) { +case MPT2SAS_DELL_6GBPS_SAS_HBA_SSDID : +strncpy (dell_branding,MPT2SAS_DELL_6GBPS_SAS_HBA_BRANDING , +MPT2SAS_DELL_BRANDING_SIZE -1 ); +break ; +case MPT2SAS_DELL_PERC_H200_ADAPTER_SSDID : +strncpy (dell_branding,MPT2SAS_DELL_PERC_H200_ADAPTER_BRANDING , +MPT2SAS_DELL_BRANDING_SIZE -1 ); +break ; +case MPT2SAS_DELL_PERC_H200_INTEGRATED_SSDID : +strncpy (dell_branding, +MPT2SAS_DELL_PERC_H200_INTEGRATED_BRANDING , +MPT2SAS_DELL_BRANDING_SIZE -1 ); +break ; +case MPT2SAS_DELL_PERC_H200_MODULAR_SSDID : +strncpy (dell_branding, +MPT2SAS_DELL_PERC_H200_MODULAR_BRANDING , +MPT2SAS_DELL_BRANDING_SIZE -1 ); +break ; +case MPT2SAS_DELL_PERC_H200_EMBEDDED_SSDID : +strncpy (dell_branding, +MPT2SAS_DELL_PERC_H200_EMBEDDED_BRANDING , +MPT2SAS_DELL_BRANDING_SIZE -1 ); +break ; +case MPT2SAS_DELL_PERC_H200_SSDID : +strncpy (dell_branding,MPT2SAS_DELL_PERC_H200_BRANDING , +MPT2SAS_DELL_BRANDING_SIZE -1 ); +break ; +case MPT2SAS_DELL_6GBPS_SAS_SSDID : +strncpy (dell_branding,MPT2SAS_DELL_6GBPS_SAS_BRANDING , +MPT2SAS_DELL_BRANDING_SIZE -1 ); +break ; +default : +sprintf (dell_branding,"0x%4X" , ioc->pdev->subsystem_device); +break ; + } + +printk (MPT2SAS_INFO_FMT "%s: Vendor(0x%04X), Device(0x%04X)," +" SSVID(0x%04X), SSDID(0x%04X)\n" , ioc->name, dell_branding, + ioc->pdev->vendor, ioc->pdev->device, ioc->pdev->subsystem_vendor, + ioc->pdev->subsystem_device); +} + +/** * _base_display_ioc_capabilities - Disply IOC's capabilities. * @ioc: per adapter object *
@@ -1436,6 +1494,8 @@ _base_display_ioc_capabilities(struct MP i++; } +_base_display_dell_branding (ioc); + i =0 ;printk ("), " );printk ("Capabilities=(" );
drivers/scsi/mpt2sas/mpt2sas_base.h +24 -0
@@ -130,6 +130,30 @@#define MPT2SAS_ERR_FMT KERN_ERR MPT2SAS_FMT/* +* Dell HBA branding +*/ +#define MPT2SAS_DELL_BRANDING_SIZE 32 + +#define MPT2SAS_DELL_6GBPS_SAS_HBA_BRANDING "Dell 6Gbps SAS HBA" +#define MPT2SAS_DELL_PERC_H200_ADAPTER_BRANDING "Dell PERC H200 Adapter" +#define MPT2SAS_DELL_PERC_H200_INTEGRATED_BRANDING "Dell PERC H200 Integrated" +#define MPT2SAS_DELL_PERC_H200_MODULAR_BRANDING "Dell PERC H200 Modular" +#define MPT2SAS_DELL_PERC_H200_EMBEDDED_BRANDING "Dell PERC H200 Embedded" +#define MPT2SAS_DELL_PERC_H200_BRANDING "Dell PERC H200" +#define MPT2SAS_DELL_6GBPS_SAS_BRANDING "Dell 6Gbps SAS" + +/* +* Dell HBA SSDIDs +*/ +#define MPT2SAS_DELL_6GBPS_SAS_HBA_SSDID 0x1F1C +#define MPT2SAS_DELL_PERC_H200_ADAPTER_SSDID 0x1F1D +#define MPT2SAS_DELL_PERC_H200_INTEGRATED_SSDID 0x1F1E +#define MPT2SAS_DELL_PERC_H200_MODULAR_SSDID 0x1F1F +#define MPT2SAS_DELL_PERC_H200_EMBEDDED_SSDID 0x1F20 +#define MPT2SAS_DELL_PERC_H200_SSDID 0x1F21 +#define MPT2SAS_DELL_6GBPS_SAS_SSDID 0x1F22 + +/* * per target private data */ #define MPT_TARGET_FLAGS_RAID_COMPONENT 0x01