Browse Source

[SCSI] qla2xxx: Set default critical temperature value in cases when ISPFX00 firmware doesn't provide it

Signed-off-by: Armen Baloyan <armen.baloyan@qlogic.com>
Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Armen Baloyan 12 years ago
parent
commit
f875cd4cc4
2 changed files with 6 additions and 1 deletions
  1. 3 1
      drivers/scsi/qla2xxx/qla_mr.c
  2. 3 0
      drivers/scsi/qla2xxx/qla_mr.h

+ 3 - 1
drivers/scsi/qla2xxx/qla_mr.c

@@ -1965,7 +1965,9 @@ qlafx00_fx_disc(scsi_qla_host_t *vha, fc_port_t *fcport, uint16_t fx_type)
 		    sizeof(vha->hw->mr.uboot_version));
 		memcpy(&vha->hw->mr.fru_serial_num, pinfo->fru_serial_num,
 		    sizeof(vha->hw->mr.fru_serial_num));
-		vha->hw->mr.critical_temperature = pinfo->nominal_temp_value;
+		vha->hw->mr.critical_temperature =
+		    (pinfo->nominal_temp_value) ?
+		    pinfo->nominal_temp_value : QLAFX00_CRITEMP_THRSHLD;
 		ha->mr.extended_io_enabled = (pinfo->enabled_capabilities &
 		    QLAFX00_EXTENDED_IO_EN_MASK) != 0;
 	} else if (fx_type == FXDISC_GET_PORT_INFO) {

+ 3 - 0
drivers/scsi/qla2xxx/qla_mr.h

@@ -537,4 +537,7 @@ struct mr_data_fx00 {
 #define QLAFX00_RESET_INTERVAL		120	/* number of seconds */
 #define QLAFX00_MAX_RESET_INTERVAL	600	/* number of seconds */
 #define QLAFX00_CRITEMP_INTERVAL	60	/* number of seconds */
+
+#define QLAFX00_CRITEMP_THRSHLD		80	/* Celsius degrees */
+
 #endif