[SCSI] qla4xxx: Stop firmware before doing init firmware.
authorLalit Chandivade <lalit.chandivade@qlogic.com>
Fri, 30 Jul 2010 08:56:31 +0000 (14:26 +0530)
committerJames Bottomley <James.Bottomley@suse.de>
Fri, 6 Aug 2010 16:58:07 +0000 (11:58 -0500)
If BIOS is enabled then drivers init firmware fails since
BIOS has done the init once.

Signed-off-by: Vikas Chaudhary <vikas.chaudhary@qlogic.com>
Signed-off-by: Ravi Anand <ravi.anand@qlogic.com>
Reviewed-by: Mike Christie <michaelc@cs.wisc.edu>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
drivers/scsi/qla4xxx/ql4_init.c

index b69c573..39048d9 100644 (file)
@@ -445,6 +445,12 @@ static int qla4xxx_init_firmware(struct scsi_qla_host *ha)
 {
        int status = QLA_ERROR;
 
+       /* For 82xx, stop firmware before initializing because if BIOS
+        * has previously initialized firmware, then driver's initialize
+        * firmware will fail. */
+       if (is_qla8022(ha))
+               qla4_8xxx_stop_firmware(ha);
+
        ql4_printk(KERN_INFO, ha, "Initializing firmware..\n");
        if (qla4xxx_initialize_fw_cb(ha) == QLA_ERROR) {
                DEBUG2(printk("scsi%ld: %s: Failed to initialize firmware "