diff options
Diffstat (limited to 'drivers/scsi/aacraid/linit.c')
-rw-r--r-- | drivers/scsi/aacraid/linit.c | 35 |
1 files changed, 29 insertions, 6 deletions
diff --git a/drivers/scsi/aacraid/linit.c b/drivers/scsi/aacraid/linit.c index 9b9062f02462..0bf5f9a943e8 100644 --- a/drivers/scsi/aacraid/linit.c +++ b/drivers/scsi/aacraid/linit.c | |||
@@ -200,10 +200,10 @@ static struct aac_driver_ident aac_drivers[] = { | |||
200 | { aac_rkt_init, "aacraid", "ADAPTEC ", "Callisto ", 2, AAC_QUIRK_MASTER }, /* Jupiter Platform */ | 200 | { aac_rkt_init, "aacraid", "ADAPTEC ", "Callisto ", 2, AAC_QUIRK_MASTER }, /* Jupiter Platform */ |
201 | { aac_rx_init, "aacraid", "ADAPTEC ", "ASR-2020SA ", 1 }, /* ASR-2020SA SATA PCI-X ZCR (Skyhawk) */ | 201 | { aac_rx_init, "aacraid", "ADAPTEC ", "ASR-2020SA ", 1 }, /* ASR-2020SA SATA PCI-X ZCR (Skyhawk) */ |
202 | { aac_rx_init, "aacraid", "ADAPTEC ", "ASR-2025SA ", 1 }, /* ASR-2025SA SATA SO-DIMM PCI-X ZCR (Terminator) */ | 202 | { aac_rx_init, "aacraid", "ADAPTEC ", "ASR-2025SA ", 1 }, /* ASR-2025SA SATA SO-DIMM PCI-X ZCR (Terminator) */ |
203 | { aac_rx_init, "aacraid", "ADAPTEC ", "AAR-2410SA SATA ", 1 }, /* AAR-2410SA PCI SATA 4ch (Jaguar II) */ | 203 | { aac_rx_init, "aacraid", "ADAPTEC ", "AAR-2410SA SATA ", 1, AAC_QUIRK_17SG }, /* AAR-2410SA PCI SATA 4ch (Jaguar II) */ |
204 | { aac_rx_init, "aacraid", "DELL ", "CERC SR2 ", 1 }, /* CERC SATA RAID 2 PCI SATA 6ch (DellCorsair) */ | 204 | { aac_rx_init, "aacraid", "DELL ", "CERC SR2 ", 1, AAC_QUIRK_17SG }, /* CERC SATA RAID 2 PCI SATA 6ch (DellCorsair) */ |
205 | { aac_rx_init, "aacraid", "ADAPTEC ", "AAR-2810SA SATA ", 1 }, /* AAR-2810SA PCI SATA 8ch (Corsair-8) */ | 205 | { aac_rx_init, "aacraid", "ADAPTEC ", "AAR-2810SA SATA ", 1, AAC_QUIRK_17SG }, /* AAR-2810SA PCI SATA 8ch (Corsair-8) */ |
206 | { aac_rx_init, "aacraid", "ADAPTEC ", "AAR-21610SA SATA", 1 }, /* AAR-21610SA PCI SATA 16ch (Corsair-16) */ | 206 | { aac_rx_init, "aacraid", "ADAPTEC ", "AAR-21610SA SATA", 1, AAC_QUIRK_17SG }, /* AAR-21610SA PCI SATA 16ch (Corsair-16) */ |
207 | { aac_rx_init, "aacraid", "ADAPTEC ", "ASR-2026ZCR ", 1 }, /* ESD SO-DIMM PCI-X SATA ZCR (Prowler) */ | 207 | { aac_rx_init, "aacraid", "ADAPTEC ", "ASR-2026ZCR ", 1 }, /* ESD SO-DIMM PCI-X SATA ZCR (Prowler) */ |
208 | { aac_rx_init, "aacraid", "ADAPTEC ", "AAR-2610SA ", 1 }, /* SATA 6Ch (Bearcat) */ | 208 | { aac_rx_init, "aacraid", "ADAPTEC ", "AAR-2610SA ", 1 }, /* SATA 6Ch (Bearcat) */ |
209 | { aac_rx_init, "aacraid", "ADAPTEC ", "ASR-2240S ", 1 }, /* ASR-2240S (SabreExpress) */ | 209 | { aac_rx_init, "aacraid", "ADAPTEC ", "ASR-2240S ", 1 }, /* ASR-2240S (SabreExpress) */ |
@@ -574,7 +574,15 @@ static ssize_t aac_show_model(struct class_device *class_dev, | |||
574 | struct aac_dev *dev = (struct aac_dev*)class_to_shost(class_dev)->hostdata; | 574 | struct aac_dev *dev = (struct aac_dev*)class_to_shost(class_dev)->hostdata; |
575 | int len; | 575 | int len; |
576 | 576 | ||
577 | len = snprintf(buf, PAGE_SIZE, "%s\n", | 577 | if (dev->supplement_adapter_info.AdapterTypeText[0]) { |
578 | char * cp = dev->supplement_adapter_info.AdapterTypeText; | ||
579 | while (*cp && *cp != ' ') | ||
580 | ++cp; | ||
581 | while (*cp == ' ') | ||
582 | ++cp; | ||
583 | len = snprintf(buf, PAGE_SIZE, "%s\n", cp); | ||
584 | } else | ||
585 | len = snprintf(buf, PAGE_SIZE, "%s\n", | ||
578 | aac_drivers[dev->cardtype].model); | 586 | aac_drivers[dev->cardtype].model); |
579 | return len; | 587 | return len; |
580 | } | 588 | } |
@@ -585,7 +593,15 @@ static ssize_t aac_show_vendor(struct class_device *class_dev, | |||
585 | struct aac_dev *dev = (struct aac_dev*)class_to_shost(class_dev)->hostdata; | 593 | struct aac_dev *dev = (struct aac_dev*)class_to_shost(class_dev)->hostdata; |
586 | int len; | 594 | int len; |
587 | 595 | ||
588 | len = snprintf(buf, PAGE_SIZE, "%s\n", | 596 | if (dev->supplement_adapter_info.AdapterTypeText[0]) { |
597 | char * cp = dev->supplement_adapter_info.AdapterTypeText; | ||
598 | while (*cp && *cp != ' ') | ||
599 | ++cp; | ||
600 | len = snprintf(buf, PAGE_SIZE, "%.*s\n", | ||
601 | (int)(cp - (char *)dev->supplement_adapter_info.AdapterTypeText), | ||
602 | dev->supplement_adapter_info.AdapterTypeText); | ||
603 | } else | ||
604 | len = snprintf(buf, PAGE_SIZE, "%s\n", | ||
589 | aac_drivers[dev->cardtype].vname); | 605 | aac_drivers[dev->cardtype].vname); |
590 | return len; | 606 | return len; |
591 | } | 607 | } |
@@ -837,6 +853,13 @@ static int __devinit aac_probe_one(struct pci_dev *pdev, | |||
837 | = (aac->scsi_host_ptr->sg_tablesize * 8) + 112; | 853 | = (aac->scsi_host_ptr->sg_tablesize * 8) + 112; |
838 | } | 854 | } |
839 | 855 | ||
856 | if ((aac_drivers[index].quirks & AAC_QUIRK_17SG) && | ||
857 | (aac->scsi_host_ptr->sg_tablesize > 17)) { | ||
858 | aac->scsi_host_ptr->sg_tablesize = 17; | ||
859 | aac->scsi_host_ptr->max_sectors | ||
860 | = (aac->scsi_host_ptr->sg_tablesize * 8) + 112; | ||
861 | } | ||
862 | |||
840 | /* | 863 | /* |
841 | * Firware printf works only with older firmware. | 864 | * Firware printf works only with older firmware. |
842 | */ | 865 | */ |