drm/i915/skl: Introduce enable_requested and is_enabled in the power well code
authorDamien Lespiau <damien.lespiau@intel.com>
Fri, 6 Mar 2015 18:50:49 +0000 (18:50 +0000)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Tue, 17 Mar 2015 21:30:06 +0000 (22:30 +0100)
Just like what we do for HSW/BDW, having those variables makes it a bit
easier to parse the code.

Suggested-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/intel_runtime_pm.c

index 35e0cb60b0acc1e0f52b20d35d9cb675a884f4a3..8f34d3873cfb6e9cffc094801902061b5014d735 100644 (file)
@@ -294,7 +294,7 @@ static void skl_set_power_well(struct drm_i915_private *dev_priv,
 {
        uint32_t tmp, fuse_status;
        uint32_t req_mask, state_mask;
-       bool check_fuse_status = false;
+       bool is_enabled, enable_requested, check_fuse_status = false;
 
        tmp = I915_READ(HSW_PWR_WELL_DRIVER);
        fuse_status = I915_READ(SKL_FUSE_STATUS);
@@ -325,15 +325,17 @@ static void skl_set_power_well(struct drm_i915_private *dev_priv,
        }
 
        req_mask = SKL_POWER_WELL_REQ(power_well->data);
+       enable_requested = tmp & req_mask;
        state_mask = SKL_POWER_WELL_STATE(power_well->data);
+       is_enabled = tmp & state_mask;
 
        if (enable) {
-               if (!(tmp & req_mask)) {
+               if (!enable_requested) {
                        I915_WRITE(HSW_PWR_WELL_DRIVER, tmp | req_mask);
                        DRM_DEBUG_KMS("Enabling %s\n", power_well->name);
                }
 
-               if (!(tmp & state_mask)) {
+               if (!is_enabled) {
                        if (wait_for((I915_READ(HSW_PWR_WELL_DRIVER) &
                                state_mask), 1))
                                DRM_ERROR("%s enable timeout\n",
@@ -341,7 +343,7 @@ static void skl_set_power_well(struct drm_i915_private *dev_priv,
                        check_fuse_status = true;
                }
        } else {
-               if (tmp & req_mask) {
+               if (enable_requested) {
                        I915_WRITE(HSW_PWR_WELL_DRIVER, tmp & ~req_mask);
                        POSTING_READ(HSW_PWR_WELL_DRIVER);
                        DRM_DEBUG_KMS("Disabling %s\n", power_well->name);