staging/rdma/hfi1: Disable thermal polling before sensor initialization
authorJareer Abdel-Qader <jareer.h.abdel-qader@intel.com>
Sat, 7 Nov 2015 01:07:00 +0000 (20:07 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 16 Nov 2015 04:02:47 +0000 (20:02 -0800)
During driver load the thermal sensor needs to be reset prior
to initialization of the sensor. This prevents a possible sensor lock
up which can cause the wrong temperature value to be reported.
This fix leads to remove disabling thermal polling from
reset_asic_csrs() function.

Reviewed by: Dennis Dalessandro <dennis.dalessandro@intel.com>
Reviewed by: Easwar Hariharan <easwar.hariharan@intel.com>
Signed-off-by: Jareer Abdel-Qader <jareer.h.abdel-qader@intel.com>
Signed-off-by: Ira Weiny <ira.weiny@intel.com>
Signed-off-by: Jubin John <jubin.john@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/rdma/hfi1/chip.c

index dd2ba2516a66d4ca98a4a6fdabd21850e2945a6f..e842aee00535cb62ae14d1cc61944bfd62dbdfb5 100644 (file)
@@ -9449,7 +9449,7 @@ static void reset_asic_csrs(struct hfi1_devdata *dd)
        /* We might want to retain this state across FLR if we ever use it */
        write_csr(dd, ASIC_CFG_DRV_STR, 0);
 
-       write_csr(dd, ASIC_CFG_THERM_POLL_EN, 0);
+       /* ASIC_CFG_THERM_POLL_EN leave alone */
        /* ASIC_STS_THERM read-only */
        /* ASIC_CFG_RESET leave alone */
 
@@ -10794,7 +10794,9 @@ static int thermal_init(struct hfi1_devdata *dd)
 
        acquire_hw_mutex(dd);
        dd_dev_info(dd, "Initializing thermal sensor\n");
-
+       /* Disable polling of thermal readings */
+       write_csr(dd, ASIC_CFG_THERM_POLL_EN, 0x0);
+       msleep(100);
        /* Thermal Sensor Initialization */
        /*    Step 1: Reset the Thermal SBus Receiver */
        ret = sbus_request_slow(dd, SBUS_THERMAL, 0x0,