int low = -INT_MAX, high = INT_MAX;
        int temp, ret;
 
-       if (tz->suspended || tz->mode != THERMAL_DEVICE_ENABLED)
+       if (tz->state != TZ_STATE_READY || tz->mode != THERMAL_DEVICE_ENABLED)
                return;
 
        ret = __thermal_zone_get_temp(tz, &temp);
 
        mutex_lock(&tz->lock);
 
-       tz->suspended = false;
+       tz->state &= ~(TZ_STATE_FLAG_SUSPENDED | TZ_STATE_FLAG_RESUMING);
 
        thermal_debug_tz_resume(tz);
        thermal_zone_device_init(tz);
        __thermal_zone_device_update(tz, THERMAL_TZ_RESUME);
 
        complete(&tz->resume);
-       tz->resuming = false;
 
        mutex_unlock(&tz->lock);
 }
 {
        mutex_lock(&tz->lock);
 
-       if (tz->resuming) {
+       if (tz->state & TZ_STATE_FLAG_RESUMING) {
                /*
                 * thermal_zone_device_resume() queued up for this zone has not
                 * acquired the lock yet, so release it to let the function run
                mutex_lock(&tz->lock);
        }
 
-       tz->suspended = true;
+       tz->state |= TZ_STATE_FLAG_SUSPENDED;
 
        mutex_unlock(&tz->lock);
 }
        cancel_delayed_work(&tz->poll_queue);
 
        reinit_completion(&tz->resume);
-       tz->resuming = true;
+       tz->state |= TZ_STATE_FLAG_RESUMING;
 
        /*
         * Replace the work function with the resume one, which will restore the
 
        struct list_head        governor_list;
 };
 
+#define        TZ_STATE_FLAG_SUSPENDED BIT(0)
+#define        TZ_STATE_FLAG_RESUMING  BIT(1)
+
+#define TZ_STATE_READY         0
+
 /**
  * struct thermal_zone_device - structure for a thermal zone
  * @id:                unique id number for each thermal zone
  * @node:      node in thermal_tz_list (in thermal_core.c)
  * @poll_queue:        delayed work for polling
  * @notify_event: Last notification event
- * @suspended: thermal zone suspend indicator
- * @resuming:  indicates whether or not thermal zone resume is in progress
+ * @state:     current state of the thermal zone
  * @trips:     array of struct thermal_trip objects
  */
 struct thermal_zone_device {
        struct list_head node;
        struct delayed_work poll_queue;
        enum thermal_notify_event notify_event;
-       bool suspended;
-       bool resuming;
+       u8 state;
 #ifdef CONFIG_THERMAL_DEBUGFS
        struct thermal_debugfs *debugfs;
 #endif