| Message ID | 1460977348-32260-2-git-send-email-ville.syrjala@linux.intel.com |
|---|---|
| State | Accepted |
| Commit | 998bd66a9dd9e260ad850bb0a9f303e2dd5aa87a |
| Headers | show |
| Series |
"drm/i915: Power domain fixes"
( rev:
1
)
in
Intel GFX |
diff --git a/drivers/gpu/drm/i915/intel_runtime_pm.c b/drivers/gpu/drm/i915/intel_runtime_pm.c index 259f66f94854..fe63d77b7dfb 100644 --- a/drivers/gpu/drm/i915/intel_runtime_pm.c +++ b/drivers/gpu/drm/i915/intel_runtime_pm.c @@ -397,11 +397,6 @@ static void hsw_set_power_well(struct drm_i915_private *dev_priv, BIT(POWER_DOMAIN_MODESET) | \ BIT(POWER_DOMAIN_AUX_A) | \ BIT(POWER_DOMAIN_INIT)) -#define SKL_DISPLAY_ALWAYS_ON_POWER_DOMAINS ( \ - (POWER_DOMAIN_MASK & ~( \ - SKL_DISPLAY_POWERWELL_2_POWER_DOMAINS | \ - SKL_DISPLAY_DC_OFF_POWER_DOMAINS)) | \ - BIT(POWER_DOMAIN_INIT)) #define BXT_DISPLAY_POWERWELL_2_POWER_DOMAINS ( \ BIT(POWER_DOMAIN_TRANSCODER_A) | \ @@ -424,10 +419,6 @@ static void hsw_set_power_well(struct drm_i915_private *dev_priv, BIT(POWER_DOMAIN_MODESET) | \ BIT(POWER_DOMAIN_AUX_A) | \ BIT(POWER_DOMAIN_INIT)) -#define BXT_DISPLAY_ALWAYS_ON_POWER_DOMAINS ( \ - (POWER_DOMAIN_MASK & ~( \ - BXT_DISPLAY_POWERWELL_2_POWER_DOMAINS)) | \ - BIT(POWER_DOMAIN_INIT)) static void assert_can_enable_dc9(struct drm_i915_private *dev_priv) { @@ -1624,7 +1615,6 @@ void intel_display_power_put(struct drm_i915_private *dev_priv, (POWER_DOMAIN_MASK & ~BDW_ALWAYS_ON_POWER_DOMAINS) | \ BIT(POWER_DOMAIN_INIT)) -#define VLV_ALWAYS_ON_POWER_DOMAINS BIT(POWER_DOMAIN_INIT) #define VLV_DISPLAY_POWER_DOMAINS POWER_DOMAIN_MASK #define VLV_DPIO_CMN_BC_POWER_DOMAINS ( \ @@ -1722,7 +1712,7 @@ static struct i915_power_well hsw_power_wells[] = { { .name = "always-on", .always_on = 1, - .domains = HSW_ALWAYS_ON_POWER_DOMAINS, + .domains = POWER_DOMAIN_MASK, .ops = &i9xx_always_on_power_well_ops, }, { @@ -1736,7 +1726,7 @@ static struct i915_power_well bdw_power_wells[] = { { .name = "always-on", .always_on = 1, - .domains = BDW_ALWAYS_ON_POWER_DOMAINS, + .domains = POWER_DOMAIN_MASK, .ops = &i9xx_always_on_power_well_ops, }, { @@ -1771,7 +1761,7 @@ static struct i915_power_well vlv_power_wells[] = { { .name = "always-on", .always_on = 1, - .domains = VLV_ALWAYS_ON_POWER_DOMAINS, + .domains = POWER_DOMAIN_MASK, .ops = &i9xx_always_on_power_well_ops, .data = PUNIT_POWER_WELL_ALWAYS_ON, }, @@ -1829,7 +1819,7 @@ static struct i915_power_well chv_power_wells[] = { { .name = "always-on", .always_on = 1, - .domains = VLV_ALWAYS_ON_POWER_DOMAINS, + .domains = POWER_DOMAIN_MASK, .ops = &i9xx_always_on_power_well_ops, }, { @@ -1873,7 +1863,7 @@ static struct i915_power_well skl_power_wells[] = { { .name = "always-on", .always_on = 1, - .domains = SKL_DISPLAY_ALWAYS_ON_POWER_DOMAINS, + .domains = POWER_DOMAIN_MASK, .ops = &i9xx_always_on_power_well_ops, .data = SKL_DISP_PW_ALWAYS_ON, }, @@ -1933,7 +1923,7 @@ static struct i915_power_well bxt_power_wells[] = { { .name = "always-on", .always_on = 1, - .domains = BXT_DISPLAY_ALWAYS_ON_POWER_DOMAINS, + .domains = POWER_DOMAIN_MASK, .ops = &i9xx_always_on_power_well_ops, }, {
On Mon, 2016-04-18 at 14:02 +0300, ville.syrjala@linux.intel.com wrote: > From: Ville Syrjälä <ville.syrjala@linux.intel.com> > > The always-on well is the same as runtime PM, so we should just > "enable" it for any power domain. Throw out the usless > FOO_ALWAYS_ON_DOMAINS defines and just use POWER_DOMAIN_MASK. > > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Yep, nice clarification of the concept and code. It gets rid of the on/off ping pong of the always on well too. Btw, this would make it possible to get an RPM reference only from the always-on well, though that would only simplify things somewhat on the concept level. Looks ok: Reviewed-by: Imre Deak <imre.deak@intel.com> > --- > drivers/gpu/drm/i915/intel_runtime_pm.c | 22 ++++++---------------- > 1 file changed, 6 insertions(+), 16 deletions(-) > > diff --git a/drivers/gpu/drm/i915/intel_runtime_pm.c > b/drivers/gpu/drm/i915/intel_runtime_pm.c > index 259f66f94854..fe63d77b7dfb 100644 > --- a/drivers/gpu/drm/i915/intel_runtime_pm.c > +++ b/drivers/gpu/drm/i915/intel_runtime_pm.c > @@ -397,11 +397,6 @@ static void hsw_set_power_well(struct > drm_i915_private *dev_priv, > BIT(POWER_DOMAIN_MODESET) | \ > BIT(POWER_DOMAIN_AUX_A) | \ > BIT(POWER_DOMAIN_INIT)) > -#define SKL_DISPLAY_ALWAYS_ON_POWER_DOMAINS ( \ > - (POWER_DOMAIN_MASK & ~( \ > - SKL_DISPLAY_POWERWELL_2_POWER_DOMAINS | \ > - SKL_DISPLAY_DC_OFF_POWER_DOMAINS)) | \ > - BIT(POWER_DOMAIN_INIT)) > > #define BXT_DISPLAY_POWERWELL_2_POWER_DOMAINS ( \ > BIT(POWER_DOMAIN_TRANSCODER_A) | \ > @@ -424,10 +419,6 @@ static void hsw_set_power_well(struct > drm_i915_private *dev_priv, > BIT(POWER_DOMAIN_MODESET) | \ > BIT(POWER_DOMAIN_AUX_A) | \ > BIT(POWER_DOMAIN_INIT)) > -#define BXT_DISPLAY_ALWAYS_ON_POWER_DOMAINS ( \ > - (POWER_DOMAIN_MASK & ~( \ > - BXT_DISPLAY_POWERWELL_2_POWER_DOMAINS)) | \ > - BIT(POWER_DOMAIN_INIT)) > > static void assert_can_enable_dc9(struct drm_i915_private *dev_priv) > { > @@ -1624,7 +1615,6 @@ void intel_display_power_put(struct > drm_i915_private *dev_priv, > (POWER_DOMAIN_MASK & ~BDW_ALWAYS_ON_POWER_DOMAINS) | > \ > BIT(POWER_DOMAIN_INIT)) > > -#define VLV_ALWAYS_ON_POWER_DOMAINS BIT(POWER_DOMAIN_INIT) > #define VLV_DISPLAY_POWER_DOMAINS POWER_DOMAIN_MASK > > #define VLV_DPIO_CMN_BC_POWER_DOMAINS ( \ > @@ -1722,7 +1712,7 @@ static struct i915_power_well hsw_power_wells[] > = { > { > .name = "always-on", > .always_on = 1, > - .domains = HSW_ALWAYS_ON_POWER_DOMAINS, > + .domains = POWER_DOMAIN_MASK, > .ops = &i9xx_always_on_power_well_ops, > }, > { > @@ -1736,7 +1726,7 @@ static struct i915_power_well bdw_power_wells[] > = { > { > .name = "always-on", > .always_on = 1, > - .domains = BDW_ALWAYS_ON_POWER_DOMAINS, > + .domains = POWER_DOMAIN_MASK, > .ops = &i9xx_always_on_power_well_ops, > }, > { > @@ -1771,7 +1761,7 @@ static struct i915_power_well vlv_power_wells[] > = { > { > .name = "always-on", > .always_on = 1, > - .domains = VLV_ALWAYS_ON_POWER_DOMAINS, > + .domains = POWER_DOMAIN_MASK, > .ops = &i9xx_always_on_power_well_ops, > .data = PUNIT_POWER_WELL_ALWAYS_ON, > }, > @@ -1829,7 +1819,7 @@ static struct i915_power_well chv_power_wells[] > = { > { > .name = "always-on", > .always_on = 1, > - .domains = VLV_ALWAYS_ON_POWER_DOMAINS, > + .domains = POWER_DOMAIN_MASK, > .ops = &i9xx_always_on_power_well_ops, > }, > { > @@ -1873,7 +1863,7 @@ static struct i915_power_well skl_power_wells[] > = { > { > .name = "always-on", > .always_on = 1, > - .domains = SKL_DISPLAY_ALWAYS_ON_POWER_DOMAINS, > + .domains = POWER_DOMAIN_MASK, > .ops = &i9xx_always_on_power_well_ops, > .data = SKL_DISP_PW_ALWAYS_ON, > }, > @@ -1933,7 +1923,7 @@ static struct i915_power_well bxt_power_wells[] > = { > { > .name = "always-on", > .always_on = 1, > - .domains = BXT_DISPLAY_ALWAYS_ON_POWER_DOMAINS, > + .domains = POWER_DOMAIN_MASK, > .ops = &i9xx_always_on_power_well_ops, > }, > {