diff options
Diffstat (limited to 'drivers/gpu/drm/i915/intel_runtime_pm.c')
-rw-r--r-- | drivers/gpu/drm/i915/intel_runtime_pm.c | 34 |
1 files changed, 4 insertions, 30 deletions
diff --git a/drivers/gpu/drm/i915/intel_runtime_pm.c b/drivers/gpu/drm/i915/intel_runtime_pm.c index d89c1d0aa1b7..7e23d65c9b24 100644 --- a/drivers/gpu/drm/i915/intel_runtime_pm.c +++ b/drivers/gpu/drm/i915/intel_runtime_pm.c | |||
@@ -362,6 +362,7 @@ static void hsw_set_power_well(struct drm_i915_private *dev_priv, | |||
362 | BIT(POWER_DOMAIN_AUX_C) | \ | 362 | BIT(POWER_DOMAIN_AUX_C) | \ |
363 | BIT(POWER_DOMAIN_AUDIO) | \ | 363 | BIT(POWER_DOMAIN_AUDIO) | \ |
364 | BIT(POWER_DOMAIN_VGA) | \ | 364 | BIT(POWER_DOMAIN_VGA) | \ |
365 | BIT(POWER_DOMAIN_GMBUS) | \ | ||
365 | BIT(POWER_DOMAIN_INIT)) | 366 | BIT(POWER_DOMAIN_INIT)) |
366 | #define BXT_DISPLAY_POWERWELL_1_POWER_DOMAINS ( \ | 367 | #define BXT_DISPLAY_POWERWELL_1_POWER_DOMAINS ( \ |
367 | BXT_DISPLAY_POWERWELL_2_POWER_DOMAINS | \ | 368 | BXT_DISPLAY_POWERWELL_2_POWER_DOMAINS | \ |
@@ -1483,6 +1484,7 @@ void intel_display_power_put(struct drm_i915_private *dev_priv, | |||
1483 | BIT(POWER_DOMAIN_AUX_B) | \ | 1484 | BIT(POWER_DOMAIN_AUX_B) | \ |
1484 | BIT(POWER_DOMAIN_AUX_C) | \ | 1485 | BIT(POWER_DOMAIN_AUX_C) | \ |
1485 | BIT(POWER_DOMAIN_AUX_D) | \ | 1486 | BIT(POWER_DOMAIN_AUX_D) | \ |
1487 | BIT(POWER_DOMAIN_GMBUS) | \ | ||
1486 | BIT(POWER_DOMAIN_INIT)) | 1488 | BIT(POWER_DOMAIN_INIT)) |
1487 | #define HSW_DISPLAY_POWER_DOMAINS ( \ | 1489 | #define HSW_DISPLAY_POWER_DOMAINS ( \ |
1488 | (POWER_DOMAIN_MASK & ~HSW_ALWAYS_ON_POWER_DOMAINS) | \ | 1490 | (POWER_DOMAIN_MASK & ~HSW_ALWAYS_ON_POWER_DOMAINS) | \ |
@@ -1845,6 +1847,8 @@ int intel_power_domains_init(struct drm_i915_private *dev_priv) | |||
1845 | i915.disable_power_well = sanitize_disable_power_well_option(dev_priv, | 1847 | i915.disable_power_well = sanitize_disable_power_well_option(dev_priv, |
1846 | i915.disable_power_well); | 1848 | i915.disable_power_well); |
1847 | 1849 | ||
1850 | BUILD_BUG_ON(POWER_DOMAIN_NUM > 31); | ||
1851 | |||
1848 | mutex_init(&power_domains->lock); | 1852 | mutex_init(&power_domains->lock); |
1849 | 1853 | ||
1850 | /* | 1854 | /* |
@@ -2064,36 +2068,6 @@ void intel_power_domains_init_hw(struct drm_i915_private *dev_priv) | |||
2064 | } | 2068 | } |
2065 | 2069 | ||
2066 | /** | 2070 | /** |
2067 | * intel_aux_display_runtime_get - grab an auxiliary power domain reference | ||
2068 | * @dev_priv: i915 device instance | ||
2069 | * | ||
2070 | * This function grabs a power domain reference for the auxiliary power domain | ||
2071 | * (for access to the GMBUS and DP AUX blocks) and ensures that it and all its | ||
2072 | * parents are powered up. Therefore users should only grab a reference to the | ||
2073 | * innermost power domain they need. | ||
2074 | * | ||
2075 | * Any power domain reference obtained by this function must have a symmetric | ||
2076 | * call to intel_aux_display_runtime_put() to release the reference again. | ||
2077 | */ | ||
2078 | void intel_aux_display_runtime_get(struct drm_i915_private *dev_priv) | ||
2079 | { | ||
2080 | intel_runtime_pm_get(dev_priv); | ||
2081 | } | ||
2082 | |||
2083 | /** | ||
2084 | * intel_aux_display_runtime_put - release an auxiliary power domain reference | ||
2085 | * @dev_priv: i915 device instance | ||
2086 | * | ||
2087 | * This function drops the auxiliary power domain reference obtained by | ||
2088 | * intel_aux_display_runtime_get() and might power down the corresponding | ||
2089 | * hardware block right away if this is the last reference. | ||
2090 | */ | ||
2091 | void intel_aux_display_runtime_put(struct drm_i915_private *dev_priv) | ||
2092 | { | ||
2093 | intel_runtime_pm_put(dev_priv); | ||
2094 | } | ||
2095 | |||
2096 | /** | ||
2097 | * intel_runtime_pm_get - grab a runtime pm reference | 2071 | * intel_runtime_pm_get - grab a runtime pm reference |
2098 | * @dev_priv: i915 device instance | 2072 | * @dev_priv: i915 device instance |
2099 | * | 2073 | * |