|
@@ -970,7 +970,7 @@ qla24xx_fw_dump(scsi_qla_host_t *ha, int hardware_locked)
|
|
|
int rval;
|
|
|
uint32_t cnt, timer;
|
|
|
uint32_t risc_address;
|
|
|
- uint16_t mb[4];
|
|
|
+ uint16_t mb[4], wd;
|
|
|
|
|
|
uint32_t stat;
|
|
|
struct device_reg_24xx __iomem *reg = &ha->iobase->isp24;
|
|
@@ -1514,10 +1514,10 @@ qla24xx_fw_dump(scsi_qla_host_t *ha, int hardware_locked)
|
|
|
|
|
|
WRT_REG_DWORD(®->ctrl_status,
|
|
|
CSRX_ISP_SOFT_RESET|CSRX_DMA_SHUTDOWN|MWB_4096_BYTES);
|
|
|
- RD_REG_DWORD(®->ctrl_status);
|
|
|
+ pci_read_config_word(ha->pdev, PCI_COMMAND, &wd);
|
|
|
|
|
|
+ udelay(100);
|
|
|
/* Wait for firmware to complete NVRAM accesses. */
|
|
|
- udelay(5);
|
|
|
mb[0] = (uint32_t) RD_REG_WORD(®->mailbox0);
|
|
|
for (cnt = 10000 ; cnt && mb[0]; cnt--) {
|
|
|
udelay(5);
|
|
@@ -1525,7 +1525,7 @@ qla24xx_fw_dump(scsi_qla_host_t *ha, int hardware_locked)
|
|
|
barrier();
|
|
|
}
|
|
|
|
|
|
- udelay(20);
|
|
|
+ /* Wait for soft-reset to complete. */
|
|
|
for (cnt = 0; cnt < 30000; cnt++) {
|
|
|
if ((RD_REG_DWORD(®->ctrl_status) &
|
|
|
CSRX_ISP_SOFT_RESET) == 0)
|