diff options
author | Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com> | 2016-12-02 03:23:51 -0500 |
---|---|---|
committer | Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com> | 2016-12-02 09:40:49 -0500 |
commit | 0a116ce895e7ee2831c6304df246c40a33bcf454 (patch) | |
tree | 402106482979f896c89fd047c6b9f5f6d24c6269 /drivers/gpu/drm/i915/intel_runtime_pm.c | |
parent | 0d03926de530057a15fe1ef735cb7f88716833cd (diff) |
drm/i915/glk: Implement Geminilake DDI init sequence
Implement the DDI initsequence and add information about the different
phys in GLK.
v2: Rebase on the move of phys to be power wells.
v3: Rebase on addition of struct bxt_ddi_phy_info.
Signed-off-by: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1480667037-11215-4-git-send-email-ander.conselvan.de.oliveira@intel.com
Diffstat (limited to 'drivers/gpu/drm/i915/intel_runtime_pm.c')
-rw-r--r-- | drivers/gpu/drm/i915/intel_runtime_pm.c | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/intel_runtime_pm.c b/drivers/gpu/drm/i915/intel_runtime_pm.c index 49043fcf694f..4987a66044e6 100644 --- a/drivers/gpu/drm/i915/intel_runtime_pm.c +++ b/drivers/gpu/drm/i915/intel_runtime_pm.c | |||
@@ -477,6 +477,18 @@ static void hsw_set_power_well(struct drm_i915_private *dev_priv, | |||
477 | #define GLK_DISPLAY_DDI_C_POWER_DOMAINS ( \ | 477 | #define GLK_DISPLAY_DDI_C_POWER_DOMAINS ( \ |
478 | BIT(POWER_DOMAIN_PORT_DDI_C_LANES) | \ | 478 | BIT(POWER_DOMAIN_PORT_DDI_C_LANES) | \ |
479 | BIT(POWER_DOMAIN_INIT)) | 479 | BIT(POWER_DOMAIN_INIT)) |
480 | #define GLK_DPIO_CMN_A_POWER_DOMAINS ( \ | ||
481 | BIT(POWER_DOMAIN_PORT_DDI_A_LANES) | \ | ||
482 | BIT(POWER_DOMAIN_AUX_A) | \ | ||
483 | BIT(POWER_DOMAIN_INIT)) | ||
484 | #define GLK_DPIO_CMN_B_POWER_DOMAINS ( \ | ||
485 | BIT(POWER_DOMAIN_PORT_DDI_B_LANES) | \ | ||
486 | BIT(POWER_DOMAIN_AUX_B) | \ | ||
487 | BIT(POWER_DOMAIN_INIT)) | ||
488 | #define GLK_DPIO_CMN_C_POWER_DOMAINS ( \ | ||
489 | BIT(POWER_DOMAIN_PORT_DDI_C_LANES) | \ | ||
490 | BIT(POWER_DOMAIN_AUX_C) | \ | ||
491 | BIT(POWER_DOMAIN_INIT)) | ||
480 | #define GLK_DISPLAY_AUX_A_POWER_DOMAINS ( \ | 492 | #define GLK_DISPLAY_AUX_A_POWER_DOMAINS ( \ |
481 | BIT(POWER_DOMAIN_AUX_A) | \ | 493 | BIT(POWER_DOMAIN_AUX_A) | \ |
482 | BIT(POWER_DOMAIN_INIT)) | 494 | BIT(POWER_DOMAIN_INIT)) |
@@ -926,6 +938,12 @@ static void bxt_verify_ddi_phy_power_wells(struct drm_i915_private *dev_priv) | |||
926 | power_well = lookup_power_well(dev_priv, BXT_DPIO_CMN_BC); | 938 | power_well = lookup_power_well(dev_priv, BXT_DPIO_CMN_BC); |
927 | if (power_well->count > 0) | 939 | if (power_well->count > 0) |
928 | bxt_ddi_phy_verify_state(dev_priv, power_well->data); | 940 | bxt_ddi_phy_verify_state(dev_priv, power_well->data); |
941 | |||
942 | if (IS_GEMINILAKE(dev_priv)) { | ||
943 | power_well = lookup_power_well(dev_priv, GLK_DPIO_CMN_C); | ||
944 | if (power_well->count > 0) | ||
945 | bxt_ddi_phy_verify_state(dev_priv, power_well->data); | ||
946 | } | ||
929 | } | 947 | } |
930 | 948 | ||
931 | static bool gen9_dc_off_power_well_enabled(struct drm_i915_private *dev_priv, | 949 | static bool gen9_dc_off_power_well_enabled(struct drm_i915_private *dev_priv, |
@@ -2219,6 +2237,27 @@ static struct i915_power_well glk_power_wells[] = { | |||
2219 | .id = SKL_DISP_PW_2, | 2237 | .id = SKL_DISP_PW_2, |
2220 | }, | 2238 | }, |
2221 | { | 2239 | { |
2240 | .name = "dpio-common-a", | ||
2241 | .domains = GLK_DPIO_CMN_A_POWER_DOMAINS, | ||
2242 | .ops = &bxt_dpio_cmn_power_well_ops, | ||
2243 | .id = BXT_DPIO_CMN_A, | ||
2244 | .data = DPIO_PHY1, | ||
2245 | }, | ||
2246 | { | ||
2247 | .name = "dpio-common-b", | ||
2248 | .domains = GLK_DPIO_CMN_B_POWER_DOMAINS, | ||
2249 | .ops = &bxt_dpio_cmn_power_well_ops, | ||
2250 | .id = BXT_DPIO_CMN_BC, | ||
2251 | .data = DPIO_PHY0, | ||
2252 | }, | ||
2253 | { | ||
2254 | .name = "dpio-common-c", | ||
2255 | .domains = GLK_DPIO_CMN_C_POWER_DOMAINS, | ||
2256 | .ops = &bxt_dpio_cmn_power_well_ops, | ||
2257 | .id = GLK_DPIO_CMN_C, | ||
2258 | .data = DPIO_PHY2, | ||
2259 | }, | ||
2260 | { | ||
2222 | .name = "AUX A", | 2261 | .name = "AUX A", |
2223 | .domains = GLK_DISPLAY_AUX_A_POWER_DOMAINS, | 2262 | .domains = GLK_DISPLAY_AUX_A_POWER_DOMAINS, |
2224 | .ops = &skl_power_well_ops, | 2263 | .ops = &skl_power_well_ops, |