Merge tag 'for-v5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux...
[linux-2.6-microblaze.git] / drivers / platform / x86 / acerhdf.c
index a7a0b2e..44b6bfb 100644 (file)
@@ -397,39 +397,24 @@ static inline void acerhdf_revert_to_bios_mode(void)
 {
        acerhdf_change_fanstate(ACERHDF_FAN_AUTO);
        kernelmode = 0;
-       if (thz_dev)
-               thz_dev->polling_delay = 0;
+
        pr_notice("kernel mode fan control OFF\n");
 }
 static inline void acerhdf_enable_kernelmode(void)
 {
        kernelmode = 1;
 
-       thz_dev->polling_delay = interval*1000;
-       thermal_zone_device_update(thz_dev, THERMAL_EVENT_UNSPECIFIED);
        pr_notice("kernel mode fan control ON\n");
 }
 
-static int acerhdf_get_mode(struct thermal_zone_device *thermal,
-                           enum thermal_device_mode *mode)
-{
-       if (verbose)
-               pr_notice("kernel mode fan control %d\n", kernelmode);
-
-       *mode = (kernelmode) ? THERMAL_DEVICE_ENABLED
-                            : THERMAL_DEVICE_DISABLED;
-
-       return 0;
-}
-
 /*
  * set operation mode;
  * enabled: the thermal layer of the kernel takes care about
  *          the temperature and the fan.
  * disabled: the BIOS takes control of the fan.
  */
-static int acerhdf_set_mode(struct thermal_zone_device *thermal,
-                           enum thermal_device_mode mode)
+static int acerhdf_change_mode(struct thermal_zone_device *thermal,
+                              enum thermal_device_mode mode)
 {
        if (mode == THERMAL_DEVICE_DISABLED && kernelmode)
                acerhdf_revert_to_bios_mode();
@@ -488,8 +473,7 @@ static struct thermal_zone_device_ops acerhdf_dev_ops = {
        .bind = acerhdf_bind,
        .unbind = acerhdf_unbind,
        .get_temp = acerhdf_get_ec_temp,
-       .get_mode = acerhdf_get_mode,
-       .set_mode = acerhdf_set_mode,
+       .change_mode = acerhdf_change_mode,
        .get_trip_type = acerhdf_get_trip_type,
        .get_trip_hyst = acerhdf_get_trip_hyst,
        .get_trip_temp = acerhdf_get_trip_temp,
@@ -733,6 +717,8 @@ static void acerhdf_unregister_platform(void)
 
 static int __init acerhdf_register_thermal(void)
 {
+       int ret;
+
        cl_dev = thermal_cooling_device_register("acerhdf-fan", NULL,
                                                 &acerhdf_cooling_ops);
 
@@ -746,6 +732,13 @@ static int __init acerhdf_register_thermal(void)
        if (IS_ERR(thz_dev))
                return -EINVAL;
 
+       if (kernelmode)
+               ret = thermal_zone_device_enable(thz_dev);
+       else
+               ret = thermal_zone_device_disable(thz_dev);
+       if (ret)
+               return ret;
+
        if (strcmp(thz_dev->governor->name,
                                acerhdf_zone_params.governor_name)) {
                pr_err("Didn't get thermal governor %s, perhaps not compiled into thermal subsystem.\n",