aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/qla2xxx/qla_isr.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/qla2xxx/qla_isr.c')
-rw-r--r--drivers/scsi/qla2xxx/qla_isr.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/drivers/scsi/qla2xxx/qla_isr.c b/drivers/scsi/qla2xxx/qla_isr.c
index c948a8ce7232..d4885616cd39 100644
--- a/drivers/scsi/qla2xxx/qla_isr.c
+++ b/drivers/scsi/qla2xxx/qla_isr.c
@@ -130,11 +130,11 @@ qla2300_intr_handler(int irq, void *dev_id)
130 if (stat & HSR_RISC_PAUSED) { 130 if (stat & HSR_RISC_PAUSED) {
131 hccr = RD_REG_WORD(&reg->hccr); 131 hccr = RD_REG_WORD(&reg->hccr);
132 if (hccr & (BIT_15 | BIT_13 | BIT_11 | BIT_8)) 132 if (hccr & (BIT_15 | BIT_13 | BIT_11 | BIT_8))
133 qla_printk(KERN_INFO, ha, 133 qla_printk(KERN_INFO, ha, "Parity error -- "
134 "Parity error -- HCCR=%x.\n", hccr); 134 "HCCR=%x, Dumping firmware!\n", hccr);
135 else 135 else
136 qla_printk(KERN_INFO, ha, 136 qla_printk(KERN_INFO, ha, "RISC paused -- "
137 "RISC paused -- HCCR=%x.\n", hccr); 137 "HCCR=%x, Dumping firmware!\n", hccr);
138 138
139 /* 139 /*
140 * Issue a "HARD" reset in order for the RISC 140 * Issue a "HARD" reset in order for the RISC
@@ -143,6 +143,8 @@ qla2300_intr_handler(int irq, void *dev_id)
143 */ 143 */
144 WRT_REG_WORD(&reg->hccr, HCCR_RESET_RISC); 144 WRT_REG_WORD(&reg->hccr, HCCR_RESET_RISC);
145 RD_REG_WORD(&reg->hccr); 145 RD_REG_WORD(&reg->hccr);
146
147 ha->isp_ops.fw_dump(ha, 1);
146 set_bit(ISP_ABORT_NEEDED, &ha->dpc_flags); 148 set_bit(ISP_ABORT_NEEDED, &ha->dpc_flags);
147 break; 149 break;
148 } else if ((stat & HSR_RISC_INT) == 0) 150 } else if ((stat & HSR_RISC_INT) == 0)
@@ -467,6 +469,8 @@ qla2x00_async_event(scsi_qla_host_t *ha, uint16_t *mb)
467 set_bit(RESET_MARKER_NEEDED, &ha->dpc_flags); 469 set_bit(RESET_MARKER_NEEDED, &ha->dpc_flags);
468 } 470 }
469 set_bit(REGISTER_FC4_NEEDED, &ha->dpc_flags); 471 set_bit(REGISTER_FC4_NEEDED, &ha->dpc_flags);
472
473 ha->flags.gpsc_supported = 1;
470 break; 474 break;
471 475
472 case MBA_CHG_IN_CONNECTION: /* Change in connection mode */ 476 case MBA_CHG_IN_CONNECTION: /* Change in connection mode */
@@ -1444,8 +1448,7 @@ qla24xx_intr_handler(int irq, void *dev_id)
1444 1448
1445 qla_printk(KERN_INFO, ha, "RISC paused -- HCCR=%x, " 1449 qla_printk(KERN_INFO, ha, "RISC paused -- HCCR=%x, "
1446 "Dumping firmware!\n", hccr); 1450 "Dumping firmware!\n", hccr);
1447 qla24xx_fw_dump(ha, 1); 1451 ha->isp_ops.fw_dump(ha, 1);
1448
1449 set_bit(ISP_ABORT_NEEDED, &ha->dpc_flags); 1452 set_bit(ISP_ABORT_NEEDED, &ha->dpc_flags);
1450 break; 1453 break;
1451 } else if ((stat & HSRX_RISC_INT) == 0) 1454 } else if ((stat & HSRX_RISC_INT) == 0)