From: Armen Baloyan <[email protected]>

Signed-off-by: Armen Baloyan <[email protected]>
Signed-off-by: Saurav Kashyap <[email protected]>
---
 drivers/scsi/qla2xxx/qla_def.h |    1 +
 drivers/scsi/qla2xxx/qla_mr.c  |   11 +++++++++++
 2 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/drivers/scsi/qla2xxx/qla_def.h b/drivers/scsi/qla2xxx/qla_def.h
index 0aa1bea..d6eefb8 100644
--- a/drivers/scsi/qla2xxx/qla_def.h
+++ b/drivers/scsi/qla2xxx/qla_def.h
@@ -643,6 +643,7 @@ struct device_reg_fx00 {
        uint32_t initval6;              /* C8 */
        uint32_t initval7;              /* CC */
        uint32_t fwheartbeat;           /* D0 */
+       uint32_t pseudoaen;             /* D4 */
 };
 
 
diff --git a/drivers/scsi/qla2xxx/qla_mr.c b/drivers/scsi/qla2xxx/qla_mr.c
index f4c5d74..85587de 100644
--- a/drivers/scsi/qla2xxx/qla_mr.c
+++ b/drivers/scsi/qla2xxx/qla_mr.c
@@ -941,12 +941,23 @@ qlafx00_init_fw_ready(scsi_qla_host_t *vha)
        struct qla_hw_data *ha = vha->hw;
        struct device_reg_fx00 __iomem *reg = &ha->iobase->ispfx00;
        uint32_t aenmbx, aenmbx7 = 0;
+       uint32_t pseudo_aen;
        uint32_t state[5];
        bool done = false;
 
        /* 30 seconds wait - Adjust if required */
        wait_time = 30;
 
+       pseudo_aen = RD_REG_DWORD(&reg->pseudoaen);
+       if (pseudo_aen == 1) {
+               aenmbx7 = RD_REG_DWORD(&reg->initval7);
+               ha->mbx_intr_code = MSW(aenmbx7);
+               ha->rqstq_intr_code = LSW(aenmbx7);
+               rval = qlafx00_driver_shutdown(vha, 10);
+               if (rval != QLA_SUCCESS)
+                       qlafx00_soft_reset(vha);
+       }
+
        /* wait time before firmware ready */
        wtime = jiffies + (wait_time * HZ);
        do {
-- 
1.7.7

--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to