OSDN Git Service

drm/i915: fix the power well ID for always on wells
authorImre Deak <imre.deak@intel.com>
Wed, 4 Nov 2015 17:24:10 +0000 (19:24 +0200)
committerImre Deak <imre.deak@intel.com>
Tue, 17 Nov 2015 17:38:55 +0000 (19:38 +0200)
lookup_power_well() expects uniq power well IDs, but atm we have
uninitialized IDs which would clash with those power wells with a 0
ID. This wasn't a problem so far since nothing looked up such a power
well, but an upcoming patch will (Misc IO for SKL), so fix this up on
platforms where this matters.

Signed-off-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: Patrik Jakobsson <patrik.jakobsson@linux.intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1446657859-9598-2-git-send-email-imre.deak@intel.com
drivers/gpu/drm/i915/i915_reg.h
drivers/gpu/drm/i915/intel_runtime_pm.c

index 341925c..8e13f41 100644 (file)
@@ -621,7 +621,7 @@ enum punit_power_well {
        PUNIT_POWER_WELL_DPIO_RX1               = 11,
        PUNIT_POWER_WELL_DPIO_CMN_D             = 12,
 
-       PUNIT_POWER_WELL_NUM,
+       PUNIT_POWER_WELL_ALWAYS_ON,
 };
 
 enum skl_disp_power_wells {
@@ -632,6 +632,8 @@ enum skl_disp_power_wells {
        SKL_DISP_PW_DDI_D,
        SKL_DISP_PW_1 = 14,
        SKL_DISP_PW_2,
+
+       SKL_DISP_PW_ALWAYS_ON,
 };
 
 #define SKL_POWER_WELL_STATE(pw) (1 << ((pw) * 2))
index 4bd8343..bc81097 100644 (file)
@@ -1632,6 +1632,7 @@ static struct i915_power_well vlv_power_wells[] = {
                .always_on = 1,
                .domains = VLV_ALWAYS_ON_POWER_DOMAINS,
                .ops = &i9xx_always_on_power_well_ops,
+               .data = PUNIT_POWER_WELL_ALWAYS_ON,
        },
        {
                .name = "display",
@@ -1733,6 +1734,7 @@ static struct i915_power_well skl_power_wells[] = {
                .always_on = 1,
                .domains = SKL_DISPLAY_ALWAYS_ON_POWER_DOMAINS,
                .ops = &i9xx_always_on_power_well_ops,
+               .data = SKL_DISP_PW_ALWAYS_ON,
        },
        {
                .name = "power well 1",