arcmsr: redefine adapter type
PATCH 6/16 arcmsr: redefine adapter type
From: Ching<[email protected]>
Rewrite the define adapter type function.
Signed-off-by Ching<[email protected]>
---
drivers/scsi/arcmsr/arcmsr_hba.c +29 -8
@@ -295,24 +295,43 @@ static int arcmsr_bios_param(struct scsireturn 0 ; } -static void arcmsr_define_adapter_type (struct AdapterControlBlock *acb) +static bool arcmsr_define_adapter_type (struct AdapterControlBlock *acb) {struct pci_dev *pdev = acb->pdev;u16 dev_id; +pci_read_config_word (pdev,PCI_DEVICE_ID , &dev_id); acb->dev_id = dev_id;switch (dev_id) { -case 0x1880 : { +case 0x1880 : acb->adapter_type =ACB_ADAPTER_TYPE_C ; - }break ; -case 0x1201 : { +case 0x1200 : +case 0x1201 : +case 0x1202 : acb->adapter_type =ACB_ADAPTER_TYPE_B ; - }break ; - -default : acb->adapter_type =ACB_ADAPTER_TYPE_A ; +case 0x1110 : +case 0x1120 : +case 0x1130 : +case 0x1160 : +case 0x1170 : +case 0x1210 : +case 0x1220 : +case 0x1230 : +case 0x1260 : +case 0x1270 : +case 0x1280 : +case 0x1380 : +case 0x1381 : +case 0x1680 : + acb->adapter_type =ACB_ADAPTER_TYPE_A ; +break ; +default : +pr_notice ("Unknown device ID = 0x%x\n" , dev_id); +return false; } +return true; }static uint8_t arcmsr_hba_wait_msgint_ready (struct AdapterControlBlock *acb)
@@ -746,7 +765,9 @@ static int arcmsr_probe(struct pci_dev * ACB_F_MESSAGE_WQBUFFER_READED); acb->acb_flags &= ~ACB_F_SCSISTOPADAPTER ;INIT_LIST_HEAD (&acb->ccb_free_list); -arcmsr_define_adapter_type (acb); + error =arcmsr_define_adapter_type (acb); +if (!error) + goto pci_release_regs; error =arcmsr_remap_pciregion (acb);if (!error){ goto pci_release_regs;