#define TPACPI_DBG_EXIT                0x0002
 #define TPACPI_DBG_RFKILL      0x0004
 #define TPACPI_DBG_HKEY                0x0008
+#define TPACPI_DBG_FAN         0x0010
 
 #define onoff(status, bit) ((status) & (1 << (bit)) ? "on" : "off")
 #define enabled(status, bit) ((status) & (1 << (bit)) ? "enabled" : "disabled")
        default:
                return -ENXIO;
        }
+
+       vdbg_printk(TPACPI_DBG_FAN,
+               "fan control: set fan control register to 0x%02x\n", level);
        return 0;
 }
 
        }
 
        mutex_unlock(&fan_mutex);
+
+       if (!rc)
+               vdbg_printk(TPACPI_DBG_FAN,
+                       "fan control: set fan control register to 0x%02x\n",
+                       s);
        return rc;
 }
 
                rc = -ENXIO;
        }
 
+       if (!rc)
+               vdbg_printk(TPACPI_DBG_FAN,
+                       "fan control: set fan control register to 0\n");
 
        mutex_unlock(&fan_mutex);
        return rc;
        if (parse_strtoul(buf, 2, &t))
                return -EINVAL;
 
+       tpacpi_disclose_usertask("hwmon pwm1_enable",
+                       "set fan mode to %lu\n", t);
+
        switch (t) {
        case 0:
                level = TP_EC_FAN_FULLSPEED;
        if (parse_strtoul(buf, 255, &s))
                return -EINVAL;
 
+       tpacpi_disclose_usertask("hwmon pwm1",
+                       "set fan speed to %lu\n", s);
+
        /* scale down from 0-255 to 0-7 */
        newlevel = (s >> 5) & 0x07;
 
        fan_watchdog_maxinterval = t;
        fan_watchdog_reset();
 
+       tpacpi_disclose_usertask("fan_watchdog", "set to %lu\n", t);
+
        return count;
 }
 
 {
        int rc;
 
-       vdbg_printk(TPACPI_DBG_INIT, "initializing fan subdriver\n");
+       vdbg_printk(TPACPI_DBG_INIT | TPACPI_DBG_FAN,
+                       "initializing fan subdriver\n");
 
        mutex_init(&fan_mutex);
        fan_status_access_mode = TPACPI_FAN_NONE;
                }
        }
 
-       vdbg_printk(TPACPI_DBG_INIT, "fan is %s, modes %d, %d\n",
+       vdbg_printk(TPACPI_DBG_INIT | TPACPI_DBG_FAN,
+               "fan is %s, modes %d, %d\n",
                str_supported(fan_status_access_mode != TPACPI_FAN_NONE ||
                  fan_control_access_mode != TPACPI_FAN_WR_NONE),
                fan_status_access_mode, fan_control_access_mode);
        if (!fan_control_allowed) {
                fan_control_access_mode = TPACPI_FAN_WR_NONE;
                fan_control_commands = 0;
-               dbg_printk(TPACPI_DBG_INIT,
+               dbg_printk(TPACPI_DBG_INIT | TPACPI_DBG_FAN,
                           "fan control features disabled by parameter\n");
        }
 
 
 static void fan_exit(void)
 {
-       vdbg_printk(TPACPI_DBG_EXIT,
+       vdbg_printk(TPACPI_DBG_EXIT | TPACPI_DBG_FAN,
                    "cancelling any pending fan watchdog tasks\n");
 
        /* FIXME: can we really do this unconditionally? */
        if (*rc == -ENXIO)
                printk(TPACPI_ERR "level command accepted for unsupported "
                       "access mode %d", fan_control_access_mode);
+       else if (!*rc)
+               tpacpi_disclose_usertask("procfs fan",
+                       "set level to %d\n", level);
 
        return 1;
 }
        if (*rc == -ENXIO)
                printk(TPACPI_ERR "enable command accepted for unsupported "
                       "access mode %d", fan_control_access_mode);
+       else if (!*rc)
+               tpacpi_disclose_usertask("procfs fan", "enable\n");
 
        return 1;
 }
        if (*rc == -ENXIO)
                printk(TPACPI_ERR "disable command accepted for unsupported "
                       "access mode %d", fan_control_access_mode);
+       else if (!*rc)
+               tpacpi_disclose_usertask("procfs fan", "disable\n");
 
        return 1;
 }
        if (*rc == -ENXIO)
                printk(TPACPI_ERR "speed command accepted for unsupported "
                       "access mode %d", fan_control_access_mode);
+       else if (!*rc)
+               tpacpi_disclose_usertask("procfs fan",
+                       "set speed to %d\n", speed);
 
        return 1;
 }
 
        if (interval < 0 || interval > 120)
                *rc = -EINVAL;
-       else
+       else {
                fan_watchdog_maxinterval = interval;
+               tpacpi_disclose_usertask("procfs fan",
+                       "set watchdog timer to %d\n",
+                       interval);
+       }
 
        return 1;
 }