diff options
author | Eric Moore <eric.moore@lsi.com> | 2009-04-21 17:40:48 -0400 |
---|---|---|
committer | James Bottomley <James.Bottomley@HansenPartnership.com> | 2009-04-27 11:54:00 -0400 |
commit | f0f9cc1fb8a21f3ff90900505fc82a43d29d0975 (patch) | |
tree | c1126cc4206a9e98c0b19cfd5bed7eaa9e92ed67 /drivers/scsi | |
parent | e5f9bb198aa47d06553b66cc5f24ded49ed0b70d (diff) |
[SCSI] 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 <eric.moore@lsi.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Diffstat (limited to 'drivers/scsi')
-rw-r--r-- | drivers/scsi/mpt2sas/mpt2sas_base.c | 60 | ||||
-rw-r--r-- | drivers/scsi/mpt2sas/mpt2sas_base.h | 24 |
2 files changed, 84 insertions, 0 deletions
diff --git a/drivers/scsi/mpt2sas/mpt2sas_base.c b/drivers/scsi/mpt2sas/mpt2sas_base.c index 12ecffbf518f..f3da592f7bcc 100644 --- a/drivers/scsi/mpt2sas/mpt2sas_base.c +++ b/drivers/scsi/mpt2sas/mpt2sas_base.c | |||
@@ -1396,6 +1396,64 @@ mpt2sas_base_put_smid_target_assist(struct MPT2SAS_ADAPTER *ioc, u16 smid, | |||
1396 | } | 1396 | } |
1397 | 1397 | ||
1398 | /** | 1398 | /** |
1399 | * _base_display_dell_branding - Disply branding string | ||
1400 | * @ioc: per adapter object | ||
1401 | * | ||
1402 | * Return nothing. | ||
1403 | */ | ||
1404 | static void | ||
1405 | _base_display_dell_branding(struct MPT2SAS_ADAPTER *ioc) | ||
1406 | { | ||
1407 | char dell_branding[MPT2SAS_DELL_BRANDING_SIZE]; | ||
1408 | |||
1409 | if (ioc->pdev->subsystem_vendor != PCI_VENDOR_ID_DELL) | ||
1410 | return; | ||
1411 | |||
1412 | memset(dell_branding, 0, MPT2SAS_DELL_BRANDING_SIZE); | ||
1413 | switch (ioc->pdev->subsystem_device) { | ||
1414 | case MPT2SAS_DELL_6GBPS_SAS_HBA_SSDID: | ||
1415 | strncpy(dell_branding, MPT2SAS_DELL_6GBPS_SAS_HBA_BRANDING, | ||
1416 | MPT2SAS_DELL_BRANDING_SIZE - 1); | ||
1417 | break; | ||
1418 | case MPT2SAS_DELL_PERC_H200_ADAPTER_SSDID: | ||
1419 | strncpy(dell_branding, MPT2SAS_DELL_PERC_H200_ADAPTER_BRANDING, | ||
1420 | MPT2SAS_DELL_BRANDING_SIZE - 1); | ||
1421 | break; | ||
1422 | case MPT2SAS_DELL_PERC_H200_INTEGRATED_SSDID: | ||
1423 | strncpy(dell_branding, | ||
1424 | MPT2SAS_DELL_PERC_H200_INTEGRATED_BRANDING, | ||
1425 | MPT2SAS_DELL_BRANDING_SIZE - 1); | ||
1426 | break; | ||
1427 | case MPT2SAS_DELL_PERC_H200_MODULAR_SSDID: | ||
1428 | strncpy(dell_branding, | ||
1429 | MPT2SAS_DELL_PERC_H200_MODULAR_BRANDING, | ||
1430 | MPT2SAS_DELL_BRANDING_SIZE - 1); | ||
1431 | break; | ||
1432 | case MPT2SAS_DELL_PERC_H200_EMBEDDED_SSDID: | ||
1433 | strncpy(dell_branding, | ||
1434 | MPT2SAS_DELL_PERC_H200_EMBEDDED_BRANDING, | ||
1435 | MPT2SAS_DELL_BRANDING_SIZE - 1); | ||
1436 | break; | ||
1437 | case MPT2SAS_DELL_PERC_H200_SSDID: | ||
1438 | strncpy(dell_branding, MPT2SAS_DELL_PERC_H200_BRANDING, | ||
1439 | MPT2SAS_DELL_BRANDING_SIZE - 1); | ||
1440 | break; | ||
1441 | case MPT2SAS_DELL_6GBPS_SAS_SSDID: | ||
1442 | strncpy(dell_branding, MPT2SAS_DELL_6GBPS_SAS_BRANDING, | ||
1443 | MPT2SAS_DELL_BRANDING_SIZE - 1); | ||
1444 | break; | ||
1445 | default: | ||
1446 | sprintf(dell_branding, "0x%4X", ioc->pdev->subsystem_device); | ||
1447 | break; | ||
1448 | } | ||
1449 | |||
1450 | printk(MPT2SAS_INFO_FMT "%s: Vendor(0x%04X), Device(0x%04X)," | ||
1451 | " SSVID(0x%04X), SSDID(0x%04X)\n", ioc->name, dell_branding, | ||
1452 | ioc->pdev->vendor, ioc->pdev->device, ioc->pdev->subsystem_vendor, | ||
1453 | ioc->pdev->subsystem_device); | ||
1454 | } | ||
1455 | |||
1456 | /** | ||
1399 | * _base_display_ioc_capabilities - Disply IOC's capabilities. | 1457 | * _base_display_ioc_capabilities - Disply IOC's capabilities. |
1400 | * @ioc: per adapter object | 1458 | * @ioc: per adapter object |
1401 | * | 1459 | * |
@@ -1436,6 +1494,8 @@ _base_display_ioc_capabilities(struct MPT2SAS_ADAPTER *ioc) | |||
1436 | i++; | 1494 | i++; |
1437 | } | 1495 | } |
1438 | 1496 | ||
1497 | _base_display_dell_branding(ioc); | ||
1498 | |||
1439 | i = 0; | 1499 | i = 0; |
1440 | printk("), "); | 1500 | printk("), "); |
1441 | printk("Capabilities=("); | 1501 | printk("Capabilities=("); |
diff --git a/drivers/scsi/mpt2sas/mpt2sas_base.h b/drivers/scsi/mpt2sas/mpt2sas_base.h index 6945ff4d382e..b39a5d635afa 100644 --- a/drivers/scsi/mpt2sas/mpt2sas_base.h +++ b/drivers/scsi/mpt2sas/mpt2sas_base.h | |||
@@ -130,6 +130,30 @@ | |||
130 | #define MPT2SAS_ERR_FMT KERN_ERR MPT2SAS_FMT | 130 | #define MPT2SAS_ERR_FMT KERN_ERR MPT2SAS_FMT |
131 | 131 | ||
132 | /* | 132 | /* |
133 | * Dell HBA branding | ||
134 | */ | ||
135 | #define MPT2SAS_DELL_BRANDING_SIZE 32 | ||
136 | |||
137 | #define MPT2SAS_DELL_6GBPS_SAS_HBA_BRANDING "Dell 6Gbps SAS HBA" | ||
138 | #define MPT2SAS_DELL_PERC_H200_ADAPTER_BRANDING "Dell PERC H200 Adapter" | ||
139 | #define MPT2SAS_DELL_PERC_H200_INTEGRATED_BRANDING "Dell PERC H200 Integrated" | ||
140 | #define MPT2SAS_DELL_PERC_H200_MODULAR_BRANDING "Dell PERC H200 Modular" | ||
141 | #define MPT2SAS_DELL_PERC_H200_EMBEDDED_BRANDING "Dell PERC H200 Embedded" | ||
142 | #define MPT2SAS_DELL_PERC_H200_BRANDING "Dell PERC H200" | ||
143 | #define MPT2SAS_DELL_6GBPS_SAS_BRANDING "Dell 6Gbps SAS" | ||
144 | |||
145 | /* | ||
146 | * Dell HBA SSDIDs | ||
147 | */ | ||
148 | #define MPT2SAS_DELL_6GBPS_SAS_HBA_SSDID 0x1F1C | ||
149 | #define MPT2SAS_DELL_PERC_H200_ADAPTER_SSDID 0x1F1D | ||
150 | #define MPT2SAS_DELL_PERC_H200_INTEGRATED_SSDID 0x1F1E | ||
151 | #define MPT2SAS_DELL_PERC_H200_MODULAR_SSDID 0x1F1F | ||
152 | #define MPT2SAS_DELL_PERC_H200_EMBEDDED_SSDID 0x1F20 | ||
153 | #define MPT2SAS_DELL_PERC_H200_SSDID 0x1F21 | ||
154 | #define MPT2SAS_DELL_6GBPS_SAS_SSDID 0x1F22 | ||
155 | |||
156 | /* | ||
133 | * per target private data | 157 | * per target private data |
134 | */ | 158 | */ |
135 | #define MPT_TARGET_FLAGS_RAID_COMPONENT 0x01 | 159 | #define MPT_TARGET_FLAGS_RAID_COMPONENT 0x01 |