aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/gpu/drm/i915/intel_display.c14
-rw-r--r--drivers/gpu/drm/i915/intel_drv.h3
-rw-r--r--drivers/gpu/drm/i915/intel_runtime_pm.c14
3 files changed, 16 insertions, 15 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index ae2d67d4e488..7877b163b5b9 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -4560,20 +4560,6 @@ static unsigned long get_crtc_power_domains(struct drm_crtc *crtc)
4560 return mask; 4560 return mask;
4561} 4561}
4562 4562
4563void intel_display_set_init_power(struct drm_i915_private *dev_priv,
4564 bool enable)
4565{
4566 if (dev_priv->power_domains.init_power_on == enable)
4567 return;
4568
4569 if (enable)
4570 intel_display_power_get(dev_priv, POWER_DOMAIN_INIT);
4571 else
4572 intel_display_power_put(dev_priv, POWER_DOMAIN_INIT);
4573
4574 dev_priv->power_domains.init_power_on = enable;
4575}
4576
4577static void modeset_update_crtc_power_domains(struct drm_device *dev) 4563static void modeset_update_crtc_power_domains(struct drm_device *dev)
4578{ 4564{
4579 struct drm_i915_private *dev_priv = dev->dev_private; 4565 struct drm_i915_private *dev_priv = dev->dev_private;
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
index dc0c6d55c8fa..64fe05e3d1a5 100644
--- a/drivers/gpu/drm/i915/intel_drv.h
+++ b/drivers/gpu/drm/i915/intel_drv.h
@@ -934,7 +934,6 @@ ironlake_check_encoder_dotclock(const struct intel_crtc_config *pipe_config,
934bool intel_crtc_active(struct drm_crtc *crtc); 934bool intel_crtc_active(struct drm_crtc *crtc);
935void hsw_enable_ips(struct intel_crtc *crtc); 935void hsw_enable_ips(struct intel_crtc *crtc);
936void hsw_disable_ips(struct intel_crtc *crtc); 936void hsw_disable_ips(struct intel_crtc *crtc);
937void intel_display_set_init_power(struct drm_i915_private *dev, bool enable);
938enum intel_display_power_domain 937enum intel_display_power_domain
939intel_display_port_power_domain(struct intel_encoder *intel_encoder); 938intel_display_port_power_domain(struct intel_encoder *intel_encoder);
940void intel_mode_from_pipe_config(struct drm_display_mode *mode, 939void intel_mode_from_pipe_config(struct drm_display_mode *mode,
@@ -1102,6 +1101,8 @@ void intel_runtime_pm_get(struct drm_i915_private *dev_priv);
1102void intel_runtime_pm_get_noresume(struct drm_i915_private *dev_priv); 1101void intel_runtime_pm_get_noresume(struct drm_i915_private *dev_priv);
1103void intel_runtime_pm_put(struct drm_i915_private *dev_priv); 1102void intel_runtime_pm_put(struct drm_i915_private *dev_priv);
1104 1103
1104void intel_display_set_init_power(struct drm_i915_private *dev, bool enable);
1105
1105/* intel_pm.c */ 1106/* intel_pm.c */
1106void intel_init_clock_gating(struct drm_device *dev); 1107void intel_init_clock_gating(struct drm_device *dev);
1107void intel_suspend_hw(struct drm_device *dev); 1108void intel_suspend_hw(struct drm_device *dev);
diff --git a/drivers/gpu/drm/i915/intel_runtime_pm.c b/drivers/gpu/drm/i915/intel_runtime_pm.c
index dc298c6015c1..34f91c1c8de6 100644
--- a/drivers/gpu/drm/i915/intel_runtime_pm.c
+++ b/drivers/gpu/drm/i915/intel_runtime_pm.c
@@ -103,6 +103,20 @@ bool intel_display_power_is_enabled(struct drm_i915_private *dev_priv,
103 return ret; 103 return ret;
104} 104}
105 105
106void intel_display_set_init_power(struct drm_i915_private *dev_priv,
107 bool enable)
108{
109 if (dev_priv->power_domains.init_power_on == enable)
110 return;
111
112 if (enable)
113 intel_display_power_get(dev_priv, POWER_DOMAIN_INIT);
114 else
115 intel_display_power_put(dev_priv, POWER_DOMAIN_INIT);
116
117 dev_priv->power_domains.init_power_on = enable;
118}
119
106/* 120/*
107 * Starting with Haswell, we have a "Power Down Well" that can be turned off 121 * Starting with Haswell, we have a "Power Down Well" that can be turned off
108 * when not needed anymore. We have 4 registers that can request the power well 122 * when not needed anymore. We have 4 registers that can request the power well