IB/hfi1: Change thermal init to use resource reservation
authorDean Luick <dean.luick@intel.com>
Sat, 5 Mar 2016 16:50:11 +0000 (08:50 -0800)
committerDoug Ledford <dledford@redhat.com>
Thu, 17 Mar 2016 19:55:15 +0000 (15:55 -0400)
Use the resource reservation system to flag that the ASIC
thermal has been initialized.

Reviewed-by: Mitko Haralanov <mitko.haralanov@intel.com>
Reviewed-by: Easwar Hariharan <easwar.hariharan@intel.com>
Signed-off-by: Dean Luick <dean.luick@intel.com>
Signed-off-by: Jubin John <jubin.john@intel.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
drivers/staging/rdma/hfi1/chip.c

index d3a9b9f3b4f57aa98c6027224cb959ded48c8a0d..71709137581041c87b7cf61496d71b15fb54f073 100644 (file)
@@ -14331,7 +14331,7 @@ static int thermal_init(struct hfi1_devdata *dd)
        int ret = 0;
 
        if (dd->icode != ICODE_RTL_SILICON ||
-           !(dd->flags & HFI1_DO_INIT_ASIC))
+           check_chip_resource(dd, CR_THERM_INIT, NULL))
                return ret;
 
        ret = acquire_chip_resource(dd, CR_SBUS, SBUS_TIMEOUT);
@@ -14386,6 +14386,12 @@ static int thermal_init(struct hfi1_devdata *dd)
 
        /* Enable polling of thermal readings */
        write_csr(dd, ASIC_CFG_THERM_POLL_EN, 0x1);
+
+       /* Set initialized flag */
+       ret = acquire_chip_resource(dd, CR_THERM_INIT, 0);
+       if (ret)
+               THERM_FAILURE(dd, ret, "Unable to set thermal init flag");
+
 done:
        release_chip_resource(dd, CR_SBUS);
        return ret;