aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/qla2xxx/qla_init.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@woody.linux-foundation.org>2007-07-29 20:22:03 -0400
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-07-29 20:22:03 -0400
commita6ce22a5f61ba838b43763bf1e5be399f9dee4d0 (patch)
tree2abed83e85724bd45c5b0b842b9ce36d1c4ca160 /drivers/scsi/qla2xxx/qla_init.c
parent4e950f6f0189f65f8bf069cf2272649ef418f5e4 (diff)
parent09120a8cd38dbdb0c9a59ff8456cf88b510e6baa (diff)
Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6
* master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6: (28 commits) [SCSI] mpt fusion: Changes in mptctl.c for logging support [SCSI] mpt fusion: Changes in mptfc.c mptlan.c mptsas.c and mptspi.c for logging support [SCSI] mpt fusion: Changes in mptscsih.c for logging support [SCSI] mpt fusion: Changes in mptbase.c for logging support [SCSI] mpt fusion: logging support in Kconfig, Makefile, mptbase.h and addition of mptdebug.h [SCSI] libsas: Fix potential NULL dereference in sas_smp_get_phy_events() [SCSI] bsg: Fix build for CONFIG_BLOCK=n [SCSI] aacraid: fix Sunrise Lake reset handling [SCSI] aacraid: add SCSI SYNCHONIZE_CACHE range checking [SCSI] add easyRAID to the no report luns blacklist [SCSI] advansys: lindent and other large, uninteresting changes [SCSI] aic79xx, aic7xxx: Fix incorrect width setting [SCSI] qla2xxx: fix to honor ignored parameters in sysfs attributes [SCSI] aacraid: draw line in sand, sundry cleanup and version update [SCSI] iscsi_tcp: Turn off bounce buffers [SCSI] libiscsi: fix cmd seqeunce number checking [SCSI] iscsi_tcp, ib_iser Enable module refcounting for iscsi host template [SCSI] libiscsi: make sure session is not blocked when removing host [SCSI] libsas: Remove PCI dependencies [SCSI] simscsi: convert to use the data buffer accessors ...
Diffstat (limited to 'drivers/scsi/qla2xxx/qla_init.c')
-rw-r--r--drivers/scsi/qla2xxx/qla_init.c19
1 files changed, 11 insertions, 8 deletions
diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c
index 5ec798c2bf13..374abe19b547 100644
--- a/drivers/scsi/qla2xxx/qla_init.c
+++ b/drivers/scsi/qla2xxx/qla_init.c
@@ -1461,8 +1461,8 @@ qla2x00_nvram_config(scsi_qla_host_t *ha)
1461 uint16_t cnt; 1461 uint16_t cnt;
1462 uint8_t *dptr1, *dptr2; 1462 uint8_t *dptr1, *dptr2;
1463 init_cb_t *icb = ha->init_cb; 1463 init_cb_t *icb = ha->init_cb;
1464 nvram_t *nv = (nvram_t *)ha->request_ring; 1464 nvram_t *nv = ha->nvram;
1465 uint8_t *ptr = (uint8_t *)ha->request_ring; 1465 uint8_t *ptr = ha->nvram;
1466 struct device_reg_2xxx __iomem *reg = &ha->iobase->isp; 1466 struct device_reg_2xxx __iomem *reg = &ha->iobase->isp;
1467 1467
1468 rval = QLA_SUCCESS; 1468 rval = QLA_SUCCESS;
@@ -1480,8 +1480,7 @@ qla2x00_nvram_config(scsi_qla_host_t *ha)
1480 chksum += *ptr++; 1480 chksum += *ptr++;
1481 1481
1482 DEBUG5(printk("scsi(%ld): Contents of NVRAM\n", ha->host_no)); 1482 DEBUG5(printk("scsi(%ld): Contents of NVRAM\n", ha->host_no));
1483 DEBUG5(qla2x00_dump_buffer((uint8_t *)ha->request_ring, 1483 DEBUG5(qla2x00_dump_buffer((uint8_t *)nv, ha->nvram_size));
1484 ha->nvram_size));
1485 1484
1486 /* Bad NVRAM data, set defaults parameters. */ 1485 /* Bad NVRAM data, set defaults parameters. */
1487 if (chksum || nv->id[0] != 'I' || nv->id[1] != 'S' || 1486 if (chksum || nv->id[0] != 'I' || nv->id[1] != 'S' ||
@@ -3500,7 +3499,7 @@ qla24xx_nvram_config(scsi_qla_host_t *ha)
3500 3499
3501 rval = QLA_SUCCESS; 3500 rval = QLA_SUCCESS;
3502 icb = (struct init_cb_24xx *)ha->init_cb; 3501 icb = (struct init_cb_24xx *)ha->init_cb;
3503 nv = (struct nvram_24xx *)ha->request_ring; 3502 nv = ha->nvram;
3504 3503
3505 /* Determine NVRAM starting address. */ 3504 /* Determine NVRAM starting address. */
3506 ha->nvram_size = sizeof(struct nvram_24xx); 3505 ha->nvram_size = sizeof(struct nvram_24xx);
@@ -3512,7 +3511,12 @@ qla24xx_nvram_config(scsi_qla_host_t *ha)
3512 ha->vpd_base = FA_NVRAM_VPD1_ADDR; 3511 ha->vpd_base = FA_NVRAM_VPD1_ADDR;
3513 } 3512 }
3514 3513
3515 /* Get NVRAM data and calculate checksum. */ 3514 /* Get VPD data into cache */
3515 ha->vpd = ha->nvram + VPD_OFFSET;
3516 ha->isp_ops->read_nvram(ha, (uint8_t *)ha->vpd,
3517 ha->nvram_base - FA_NVRAM_FUNC0_ADDR, FA_NVRAM_VPD_SIZE * 4);
3518
3519 /* Get NVRAM data into cache and calculate checksum. */
3516 dptr = (uint32_t *)nv; 3520 dptr = (uint32_t *)nv;
3517 ha->isp_ops->read_nvram(ha, (uint8_t *)dptr, ha->nvram_base, 3521 ha->isp_ops->read_nvram(ha, (uint8_t *)dptr, ha->nvram_base,
3518 ha->nvram_size); 3522 ha->nvram_size);
@@ -3520,8 +3524,7 @@ qla24xx_nvram_config(scsi_qla_host_t *ha)
3520 chksum += le32_to_cpu(*dptr++); 3524 chksum += le32_to_cpu(*dptr++);
3521 3525
3522 DEBUG5(printk("scsi(%ld): Contents of NVRAM\n", ha->host_no)); 3526 DEBUG5(printk("scsi(%ld): Contents of NVRAM\n", ha->host_no));
3523 DEBUG5(qla2x00_dump_buffer((uint8_t *)ha->request_ring, 3527 DEBUG5(qla2x00_dump_buffer((uint8_t *)nv, ha->nvram_size));
3524 ha->nvram_size));
3525 3528
3526 /* Bad NVRAM data, set defaults parameters. */ 3529 /* Bad NVRAM data, set defaults parameters. */
3527 if (chksum || nv->id[0] != 'I' || nv->id[1] != 'S' || nv->id[2] != 'P' 3530 if (chksum || nv->id[0] != 'I' || nv->id[1] != 'S' || nv->id[2] != 'P'