[SCSI] pm80xx: Enable BAR shift to avoid BIOS conflict with MPI space for ATTO pm8001...
authorBradley Grove <bgrove@attotech.com>
Thu, 19 Dec 2013 15:50:57 +0000 (10:50 -0500)
committerJames Bottomley <JBottomley@Parallels.com>
Sat, 15 Mar 2014 17:18:59 +0000 (10:18 -0700)
Signed-off-by: Bradley Grove <bgrove@attotech.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
drivers/scsi/pm8001/pm8001_hwi.c

index 46ace52eeb2d8e38c83bc62f0bfda96a16a927c8..561ca2c348d6fe497bc5389ec3de4251eb2c8af3 100644 (file)
@@ -644,7 +644,7 @@ static int pm8001_chip_init(struct pm8001_hba_info *pm8001_ha)
        pci_read_config_word(pm8001_ha->pdev, PCI_DEVICE_ID, &deviceid);
        /* 8081 controllers need BAR shift to access MPI space
        * as this is shared with BIOS data */
-       if (deviceid == 0x8081) {
+       if (deviceid == 0x8081 || deviceid == 0x0042) {
                if (-1 == pm8001_bar4_shift(pm8001_ha, GSM_SM_BASE)) {
                        PM8001_FAIL_DBG(pm8001_ha,
                                pm8001_printk("Shift Bar4 to 0x%x failed\n",
@@ -673,7 +673,7 @@ static int pm8001_chip_init(struct pm8001_hba_info *pm8001_ha)
        for (i = 0; i < PM8001_MAX_OUTB_NUM; i++)
                update_outbnd_queue_table(pm8001_ha, i);
        /* 8081 controller donot require these operations */
-       if (deviceid != 0x8081) {
+       if (deviceid != 0x8081 && deviceid != 0x0042) {
                mpi_set_phys_g3_with_ssc(pm8001_ha, 0);
                /* 7->130ms, 34->500ms, 119->1.5s */
                mpi_set_open_retry_interval_reg(pm8001_ha, 119);
@@ -701,7 +701,7 @@ static int mpi_uninit_check(struct pm8001_hba_info *pm8001_ha)
        u32 gst_len_mpistate;
        u16 deviceid;
        pci_read_config_word(pm8001_ha->pdev, PCI_DEVICE_ID, &deviceid);
-       if (deviceid == 0x8081) {
+       if (deviceid == 0x8081 || deviceid == 0x0042) {
                if (-1 == pm8001_bar4_shift(pm8001_ha, GSM_SM_BASE)) {
                        PM8001_FAIL_DBG(pm8001_ha,
                                pm8001_printk("Shift Bar4 to 0x%x failed\n",