diff options
-rw-r--r-- | drivers/gpu/drm/i915/i915_drv.h | 3 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/intel_runtime_pm.c | 112 |
2 files changed, 58 insertions, 57 deletions
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h index 55afb664b2f8..61449fab1f11 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h | |||
@@ -1322,7 +1322,8 @@ struct i915_power_well { | |||
1322 | /* cached hw enabled state */ | 1322 | /* cached hw enabled state */ |
1323 | bool hw_enabled; | 1323 | bool hw_enabled; |
1324 | unsigned long domains; | 1324 | unsigned long domains; |
1325 | unsigned long data; | 1325 | /* unique identifier for this power well */ |
1326 | unsigned long id; | ||
1326 | const struct i915_power_well_ops *ops; | 1327 | const struct i915_power_well_ops *ops; |
1327 | }; | 1328 | }; |
1328 | 1329 | ||
diff --git a/drivers/gpu/drm/i915/intel_runtime_pm.c b/drivers/gpu/drm/i915/intel_runtime_pm.c index 82edba2f3589..53ba45a74163 100644 --- a/drivers/gpu/drm/i915/intel_runtime_pm.c +++ b/drivers/gpu/drm/i915/intel_runtime_pm.c | |||
@@ -330,7 +330,7 @@ static void skl_power_well_post_enable(struct drm_i915_private *dev_priv, | |||
330 | * sure vgacon can keep working normally without triggering interrupts | 330 | * sure vgacon can keep working normally without triggering interrupts |
331 | * and error messages. | 331 | * and error messages. |
332 | */ | 332 | */ |
333 | if (power_well->data == SKL_DISP_PW_2) { | 333 | if (power_well->id == SKL_DISP_PW_2) { |
334 | vga_get_uninterruptible(pdev, VGA_RSRC_LEGACY_IO); | 334 | vga_get_uninterruptible(pdev, VGA_RSRC_LEGACY_IO); |
335 | outb(inb(VGA_MSR_READ), VGA_MSR_WRITE); | 335 | outb(inb(VGA_MSR_READ), VGA_MSR_WRITE); |
336 | vga_put(pdev, VGA_RSRC_LEGACY_IO); | 336 | vga_put(pdev, VGA_RSRC_LEGACY_IO); |
@@ -343,7 +343,7 @@ static void skl_power_well_post_enable(struct drm_i915_private *dev_priv, | |||
343 | static void skl_power_well_pre_disable(struct drm_i915_private *dev_priv, | 343 | static void skl_power_well_pre_disable(struct drm_i915_private *dev_priv, |
344 | struct i915_power_well *power_well) | 344 | struct i915_power_well *power_well) |
345 | { | 345 | { |
346 | if (power_well->data == SKL_DISP_PW_2) | 346 | if (power_well->id == SKL_DISP_PW_2) |
347 | gen8_irq_power_well_pre_disable(dev_priv, | 347 | gen8_irq_power_well_pre_disable(dev_priv, |
348 | 1 << PIPE_C | 1 << PIPE_B); | 348 | 1 << PIPE_C | 1 << PIPE_B); |
349 | } | 349 | } |
@@ -658,7 +658,7 @@ static void | |||
658 | gen9_sanitize_power_well_requests(struct drm_i915_private *dev_priv, | 658 | gen9_sanitize_power_well_requests(struct drm_i915_private *dev_priv, |
659 | struct i915_power_well *power_well) | 659 | struct i915_power_well *power_well) |
660 | { | 660 | { |
661 | enum skl_disp_power_wells power_well_id = power_well->data; | 661 | enum skl_disp_power_wells power_well_id = power_well->id; |
662 | u32 val; | 662 | u32 val; |
663 | u32 mask; | 663 | u32 mask; |
664 | 664 | ||
@@ -703,7 +703,7 @@ static void skl_set_power_well(struct drm_i915_private *dev_priv, | |||
703 | tmp = I915_READ(HSW_PWR_WELL_DRIVER); | 703 | tmp = I915_READ(HSW_PWR_WELL_DRIVER); |
704 | fuse_status = I915_READ(SKL_FUSE_STATUS); | 704 | fuse_status = I915_READ(SKL_FUSE_STATUS); |
705 | 705 | ||
706 | switch (power_well->data) { | 706 | switch (power_well->id) { |
707 | case SKL_DISP_PW_1: | 707 | case SKL_DISP_PW_1: |
708 | if (intel_wait_for_register(dev_priv, | 708 | if (intel_wait_for_register(dev_priv, |
709 | SKL_FUSE_STATUS, | 709 | SKL_FUSE_STATUS, |
@@ -727,13 +727,13 @@ static void skl_set_power_well(struct drm_i915_private *dev_priv, | |||
727 | case SKL_DISP_PW_MISC_IO: | 727 | case SKL_DISP_PW_MISC_IO: |
728 | break; | 728 | break; |
729 | default: | 729 | default: |
730 | WARN(1, "Unknown power well %lu\n", power_well->data); | 730 | WARN(1, "Unknown power well %lu\n", power_well->id); |
731 | return; | 731 | return; |
732 | } | 732 | } |
733 | 733 | ||
734 | req_mask = SKL_POWER_WELL_REQ(power_well->data); | 734 | req_mask = SKL_POWER_WELL_REQ(power_well->id); |
735 | enable_requested = tmp & req_mask; | 735 | enable_requested = tmp & req_mask; |
736 | state_mask = SKL_POWER_WELL_STATE(power_well->data); | 736 | state_mask = SKL_POWER_WELL_STATE(power_well->id); |
737 | is_enabled = tmp & state_mask; | 737 | is_enabled = tmp & state_mask; |
738 | 738 | ||
739 | if (!enable && enable_requested) | 739 | if (!enable && enable_requested) |
@@ -769,14 +769,14 @@ static void skl_set_power_well(struct drm_i915_private *dev_priv, | |||
769 | power_well->name, enable ? "enable" : "disable"); | 769 | power_well->name, enable ? "enable" : "disable"); |
770 | 770 | ||
771 | if (check_fuse_status) { | 771 | if (check_fuse_status) { |
772 | if (power_well->data == SKL_DISP_PW_1) { | 772 | if (power_well->id == SKL_DISP_PW_1) { |
773 | if (intel_wait_for_register(dev_priv, | 773 | if (intel_wait_for_register(dev_priv, |
774 | SKL_FUSE_STATUS, | 774 | SKL_FUSE_STATUS, |
775 | SKL_FUSE_PG1_DIST_STATUS, | 775 | SKL_FUSE_PG1_DIST_STATUS, |
776 | SKL_FUSE_PG1_DIST_STATUS, | 776 | SKL_FUSE_PG1_DIST_STATUS, |
777 | 1)) | 777 | 1)) |
778 | DRM_ERROR("PG1 distributing status timeout\n"); | 778 | DRM_ERROR("PG1 distributing status timeout\n"); |
779 | } else if (power_well->data == SKL_DISP_PW_2) { | 779 | } else if (power_well->id == SKL_DISP_PW_2) { |
780 | if (intel_wait_for_register(dev_priv, | 780 | if (intel_wait_for_register(dev_priv, |
781 | SKL_FUSE_STATUS, | 781 | SKL_FUSE_STATUS, |
782 | SKL_FUSE_PG2_DIST_STATUS, | 782 | SKL_FUSE_PG2_DIST_STATUS, |
@@ -818,8 +818,8 @@ static void hsw_power_well_disable(struct drm_i915_private *dev_priv, | |||
818 | static bool skl_power_well_enabled(struct drm_i915_private *dev_priv, | 818 | static bool skl_power_well_enabled(struct drm_i915_private *dev_priv, |
819 | struct i915_power_well *power_well) | 819 | struct i915_power_well *power_well) |
820 | { | 820 | { |
821 | uint32_t mask = SKL_POWER_WELL_REQ(power_well->data) | | 821 | uint32_t mask = SKL_POWER_WELL_REQ(power_well->id) | |
822 | SKL_POWER_WELL_STATE(power_well->data); | 822 | SKL_POWER_WELL_STATE(power_well->id); |
823 | 823 | ||
824 | return (I915_READ(HSW_PWR_WELL_DRIVER) & mask) == mask; | 824 | return (I915_READ(HSW_PWR_WELL_DRIVER) & mask) == mask; |
825 | } | 825 | } |
@@ -847,7 +847,7 @@ static void skl_power_well_disable(struct drm_i915_private *dev_priv, | |||
847 | 847 | ||
848 | static enum dpio_phy bxt_power_well_to_phy(struct i915_power_well *power_well) | 848 | static enum dpio_phy bxt_power_well_to_phy(struct i915_power_well *power_well) |
849 | { | 849 | { |
850 | enum skl_disp_power_wells power_well_id = power_well->data; | 850 | enum skl_disp_power_wells power_well_id = power_well->id; |
851 | 851 | ||
852 | return power_well_id == BXT_DPIO_CMN_A ? DPIO_PHY1 : DPIO_PHY0; | 852 | return power_well_id == BXT_DPIO_CMN_A ? DPIO_PHY1 : DPIO_PHY0; |
853 | } | 853 | } |
@@ -855,7 +855,7 @@ static enum dpio_phy bxt_power_well_to_phy(struct i915_power_well *power_well) | |||
855 | static void bxt_dpio_cmn_power_well_enable(struct drm_i915_private *dev_priv, | 855 | static void bxt_dpio_cmn_power_well_enable(struct drm_i915_private *dev_priv, |
856 | struct i915_power_well *power_well) | 856 | struct i915_power_well *power_well) |
857 | { | 857 | { |
858 | enum skl_disp_power_wells power_well_id = power_well->data; | 858 | enum skl_disp_power_wells power_well_id = power_well->id; |
859 | struct i915_power_well *cmn_a_well = NULL; | 859 | struct i915_power_well *cmn_a_well = NULL; |
860 | 860 | ||
861 | if (power_well_id == BXT_DPIO_CMN_BC) { | 861 | if (power_well_id == BXT_DPIO_CMN_BC) { |
@@ -975,7 +975,7 @@ static bool i9xx_always_on_power_well_enabled(struct drm_i915_private *dev_priv, | |||
975 | static void vlv_set_power_well(struct drm_i915_private *dev_priv, | 975 | static void vlv_set_power_well(struct drm_i915_private *dev_priv, |
976 | struct i915_power_well *power_well, bool enable) | 976 | struct i915_power_well *power_well, bool enable) |
977 | { | 977 | { |
978 | enum punit_power_well power_well_id = power_well->data; | 978 | enum punit_power_well power_well_id = power_well->id; |
979 | u32 mask; | 979 | u32 mask; |
980 | u32 state; | 980 | u32 state; |
981 | u32 ctrl; | 981 | u32 ctrl; |
@@ -1029,7 +1029,7 @@ static void vlv_power_well_disable(struct drm_i915_private *dev_priv, | |||
1029 | static bool vlv_power_well_enabled(struct drm_i915_private *dev_priv, | 1029 | static bool vlv_power_well_enabled(struct drm_i915_private *dev_priv, |
1030 | struct i915_power_well *power_well) | 1030 | struct i915_power_well *power_well) |
1031 | { | 1031 | { |
1032 | int power_well_id = power_well->data; | 1032 | int power_well_id = power_well->id; |
1033 | bool enabled = false; | 1033 | bool enabled = false; |
1034 | u32 mask; | 1034 | u32 mask; |
1035 | u32 state; | 1035 | u32 state; |
@@ -1144,7 +1144,7 @@ static void vlv_display_power_well_deinit(struct drm_i915_private *dev_priv) | |||
1144 | static void vlv_display_power_well_enable(struct drm_i915_private *dev_priv, | 1144 | static void vlv_display_power_well_enable(struct drm_i915_private *dev_priv, |
1145 | struct i915_power_well *power_well) | 1145 | struct i915_power_well *power_well) |
1146 | { | 1146 | { |
1147 | WARN_ON_ONCE(power_well->data != PUNIT_POWER_WELL_DISP2D); | 1147 | WARN_ON_ONCE(power_well->id != PUNIT_POWER_WELL_DISP2D); |
1148 | 1148 | ||
1149 | vlv_set_power_well(dev_priv, power_well, true); | 1149 | vlv_set_power_well(dev_priv, power_well, true); |
1150 | 1150 | ||
@@ -1154,7 +1154,7 @@ static void vlv_display_power_well_enable(struct drm_i915_private *dev_priv, | |||
1154 | static void vlv_display_power_well_disable(struct drm_i915_private *dev_priv, | 1154 | static void vlv_display_power_well_disable(struct drm_i915_private *dev_priv, |
1155 | struct i915_power_well *power_well) | 1155 | struct i915_power_well *power_well) |
1156 | { | 1156 | { |
1157 | WARN_ON_ONCE(power_well->data != PUNIT_POWER_WELL_DISP2D); | 1157 | WARN_ON_ONCE(power_well->id != PUNIT_POWER_WELL_DISP2D); |
1158 | 1158 | ||
1159 | vlv_display_power_well_deinit(dev_priv); | 1159 | vlv_display_power_well_deinit(dev_priv); |
1160 | 1160 | ||
@@ -1164,7 +1164,7 @@ static void vlv_display_power_well_disable(struct drm_i915_private *dev_priv, | |||
1164 | static void vlv_dpio_cmn_power_well_enable(struct drm_i915_private *dev_priv, | 1164 | static void vlv_dpio_cmn_power_well_enable(struct drm_i915_private *dev_priv, |
1165 | struct i915_power_well *power_well) | 1165 | struct i915_power_well *power_well) |
1166 | { | 1166 | { |
1167 | WARN_ON_ONCE(power_well->data != PUNIT_POWER_WELL_DPIO_CMN_BC); | 1167 | WARN_ON_ONCE(power_well->id != PUNIT_POWER_WELL_DPIO_CMN_BC); |
1168 | 1168 | ||
1169 | /* since ref/cri clock was enabled */ | 1169 | /* since ref/cri clock was enabled */ |
1170 | udelay(1); /* >10ns for cmnreset, >0ns for sidereset */ | 1170 | udelay(1); /* >10ns for cmnreset, >0ns for sidereset */ |
@@ -1190,7 +1190,7 @@ static void vlv_dpio_cmn_power_well_disable(struct drm_i915_private *dev_priv, | |||
1190 | { | 1190 | { |
1191 | enum pipe pipe; | 1191 | enum pipe pipe; |
1192 | 1192 | ||
1193 | WARN_ON_ONCE(power_well->data != PUNIT_POWER_WELL_DPIO_CMN_BC); | 1193 | WARN_ON_ONCE(power_well->id != PUNIT_POWER_WELL_DPIO_CMN_BC); |
1194 | 1194 | ||
1195 | for_each_pipe(dev_priv, pipe) | 1195 | for_each_pipe(dev_priv, pipe) |
1196 | assert_pll_disabled(dev_priv, pipe); | 1196 | assert_pll_disabled(dev_priv, pipe); |
@@ -1213,7 +1213,7 @@ static struct i915_power_well *lookup_power_well(struct drm_i915_private *dev_pr | |||
1213 | struct i915_power_well *power_well; | 1213 | struct i915_power_well *power_well; |
1214 | 1214 | ||
1215 | power_well = &power_domains->power_wells[i]; | 1215 | power_well = &power_domains->power_wells[i]; |
1216 | if (power_well->data == power_well_id) | 1216 | if (power_well->id == power_well_id) |
1217 | return power_well; | 1217 | return power_well; |
1218 | } | 1218 | } |
1219 | 1219 | ||
@@ -1337,10 +1337,10 @@ static void chv_dpio_cmn_power_well_enable(struct drm_i915_private *dev_priv, | |||
1337 | enum pipe pipe; | 1337 | enum pipe pipe; |
1338 | uint32_t tmp; | 1338 | uint32_t tmp; |
1339 | 1339 | ||
1340 | WARN_ON_ONCE(power_well->data != PUNIT_POWER_WELL_DPIO_CMN_BC && | 1340 | WARN_ON_ONCE(power_well->id != PUNIT_POWER_WELL_DPIO_CMN_BC && |
1341 | power_well->data != PUNIT_POWER_WELL_DPIO_CMN_D); | 1341 | power_well->id != PUNIT_POWER_WELL_DPIO_CMN_D); |
1342 | 1342 | ||
1343 | if (power_well->data == PUNIT_POWER_WELL_DPIO_CMN_BC) { | 1343 | if (power_well->id == PUNIT_POWER_WELL_DPIO_CMN_BC) { |
1344 | pipe = PIPE_A; | 1344 | pipe = PIPE_A; |
1345 | phy = DPIO_PHY0; | 1345 | phy = DPIO_PHY0; |
1346 | } else { | 1346 | } else { |
@@ -1368,7 +1368,7 @@ static void chv_dpio_cmn_power_well_enable(struct drm_i915_private *dev_priv, | |||
1368 | DPIO_SUS_CLK_CONFIG_GATE_CLKREQ; | 1368 | DPIO_SUS_CLK_CONFIG_GATE_CLKREQ; |
1369 | vlv_dpio_write(dev_priv, pipe, CHV_CMN_DW28, tmp); | 1369 | vlv_dpio_write(dev_priv, pipe, CHV_CMN_DW28, tmp); |
1370 | 1370 | ||
1371 | if (power_well->data == PUNIT_POWER_WELL_DPIO_CMN_BC) { | 1371 | if (power_well->id == PUNIT_POWER_WELL_DPIO_CMN_BC) { |
1372 | tmp = vlv_dpio_read(dev_priv, pipe, _CHV_CMN_DW6_CH1); | 1372 | tmp = vlv_dpio_read(dev_priv, pipe, _CHV_CMN_DW6_CH1); |
1373 | tmp |= DPIO_DYNPWRDOWNEN_CH1; | 1373 | tmp |= DPIO_DYNPWRDOWNEN_CH1; |
1374 | vlv_dpio_write(dev_priv, pipe, _CHV_CMN_DW6_CH1, tmp); | 1374 | vlv_dpio_write(dev_priv, pipe, _CHV_CMN_DW6_CH1, tmp); |
@@ -1399,10 +1399,10 @@ static void chv_dpio_cmn_power_well_disable(struct drm_i915_private *dev_priv, | |||
1399 | { | 1399 | { |
1400 | enum dpio_phy phy; | 1400 | enum dpio_phy phy; |
1401 | 1401 | ||
1402 | WARN_ON_ONCE(power_well->data != PUNIT_POWER_WELL_DPIO_CMN_BC && | 1402 | WARN_ON_ONCE(power_well->id != PUNIT_POWER_WELL_DPIO_CMN_BC && |
1403 | power_well->data != PUNIT_POWER_WELL_DPIO_CMN_D); | 1403 | power_well->id != PUNIT_POWER_WELL_DPIO_CMN_D); |
1404 | 1404 | ||
1405 | if (power_well->data == PUNIT_POWER_WELL_DPIO_CMN_BC) { | 1405 | if (power_well->id == PUNIT_POWER_WELL_DPIO_CMN_BC) { |
1406 | phy = DPIO_PHY0; | 1406 | phy = DPIO_PHY0; |
1407 | assert_pll_disabled(dev_priv, PIPE_A); | 1407 | assert_pll_disabled(dev_priv, PIPE_A); |
1408 | assert_pll_disabled(dev_priv, PIPE_B); | 1408 | assert_pll_disabled(dev_priv, PIPE_B); |
@@ -1551,7 +1551,7 @@ void chv_phy_powergate_lanes(struct intel_encoder *encoder, | |||
1551 | static bool chv_pipe_power_well_enabled(struct drm_i915_private *dev_priv, | 1551 | static bool chv_pipe_power_well_enabled(struct drm_i915_private *dev_priv, |
1552 | struct i915_power_well *power_well) | 1552 | struct i915_power_well *power_well) |
1553 | { | 1553 | { |
1554 | enum pipe pipe = power_well->data; | 1554 | enum pipe pipe = power_well->id; |
1555 | bool enabled; | 1555 | bool enabled; |
1556 | u32 state, ctrl; | 1556 | u32 state, ctrl; |
1557 | 1557 | ||
@@ -1581,7 +1581,7 @@ static void chv_set_pipe_power_well(struct drm_i915_private *dev_priv, | |||
1581 | struct i915_power_well *power_well, | 1581 | struct i915_power_well *power_well, |
1582 | bool enable) | 1582 | bool enable) |
1583 | { | 1583 | { |
1584 | enum pipe pipe = power_well->data; | 1584 | enum pipe pipe = power_well->id; |
1585 | u32 state; | 1585 | u32 state; |
1586 | u32 ctrl; | 1586 | u32 ctrl; |
1587 | 1587 | ||
@@ -1614,7 +1614,7 @@ out: | |||
1614 | static void chv_pipe_power_well_sync_hw(struct drm_i915_private *dev_priv, | 1614 | static void chv_pipe_power_well_sync_hw(struct drm_i915_private *dev_priv, |
1615 | struct i915_power_well *power_well) | 1615 | struct i915_power_well *power_well) |
1616 | { | 1616 | { |
1617 | WARN_ON_ONCE(power_well->data != PIPE_A); | 1617 | WARN_ON_ONCE(power_well->id != PIPE_A); |
1618 | 1618 | ||
1619 | chv_set_pipe_power_well(dev_priv, power_well, power_well->count > 0); | 1619 | chv_set_pipe_power_well(dev_priv, power_well, power_well->count > 0); |
1620 | } | 1620 | } |
@@ -1622,7 +1622,7 @@ static void chv_pipe_power_well_sync_hw(struct drm_i915_private *dev_priv, | |||
1622 | static void chv_pipe_power_well_enable(struct drm_i915_private *dev_priv, | 1622 | static void chv_pipe_power_well_enable(struct drm_i915_private *dev_priv, |
1623 | struct i915_power_well *power_well) | 1623 | struct i915_power_well *power_well) |
1624 | { | 1624 | { |
1625 | WARN_ON_ONCE(power_well->data != PIPE_A); | 1625 | WARN_ON_ONCE(power_well->id != PIPE_A); |
1626 | 1626 | ||
1627 | chv_set_pipe_power_well(dev_priv, power_well, true); | 1627 | chv_set_pipe_power_well(dev_priv, power_well, true); |
1628 | 1628 | ||
@@ -1632,7 +1632,7 @@ static void chv_pipe_power_well_enable(struct drm_i915_private *dev_priv, | |||
1632 | static void chv_pipe_power_well_disable(struct drm_i915_private *dev_priv, | 1632 | static void chv_pipe_power_well_disable(struct drm_i915_private *dev_priv, |
1633 | struct i915_power_well *power_well) | 1633 | struct i915_power_well *power_well) |
1634 | { | 1634 | { |
1635 | WARN_ON_ONCE(power_well->data != PIPE_A); | 1635 | WARN_ON_ONCE(power_well->id != PIPE_A); |
1636 | 1636 | ||
1637 | vlv_display_power_well_deinit(dev_priv); | 1637 | vlv_display_power_well_deinit(dev_priv); |
1638 | 1638 | ||
@@ -1976,12 +1976,12 @@ static struct i915_power_well vlv_power_wells[] = { | |||
1976 | .always_on = 1, | 1976 | .always_on = 1, |
1977 | .domains = POWER_DOMAIN_MASK, | 1977 | .domains = POWER_DOMAIN_MASK, |
1978 | .ops = &i9xx_always_on_power_well_ops, | 1978 | .ops = &i9xx_always_on_power_well_ops, |
1979 | .data = PUNIT_POWER_WELL_ALWAYS_ON, | 1979 | .id = PUNIT_POWER_WELL_ALWAYS_ON, |
1980 | }, | 1980 | }, |
1981 | { | 1981 | { |
1982 | .name = "display", | 1982 | .name = "display", |
1983 | .domains = VLV_DISPLAY_POWER_DOMAINS, | 1983 | .domains = VLV_DISPLAY_POWER_DOMAINS, |
1984 | .data = PUNIT_POWER_WELL_DISP2D, | 1984 | .id = PUNIT_POWER_WELL_DISP2D, |
1985 | .ops = &vlv_display_power_well_ops, | 1985 | .ops = &vlv_display_power_well_ops, |
1986 | }, | 1986 | }, |
1987 | { | 1987 | { |
@@ -1991,7 +1991,7 @@ static struct i915_power_well vlv_power_wells[] = { | |||
1991 | VLV_DPIO_TX_C_LANES_01_POWER_DOMAINS | | 1991 | VLV_DPIO_TX_C_LANES_01_POWER_DOMAINS | |
1992 | VLV_DPIO_TX_C_LANES_23_POWER_DOMAINS, | 1992 | VLV_DPIO_TX_C_LANES_23_POWER_DOMAINS, |
1993 | .ops = &vlv_dpio_power_well_ops, | 1993 | .ops = &vlv_dpio_power_well_ops, |
1994 | .data = PUNIT_POWER_WELL_DPIO_TX_B_LANES_01, | 1994 | .id = PUNIT_POWER_WELL_DPIO_TX_B_LANES_01, |
1995 | }, | 1995 | }, |
1996 | { | 1996 | { |
1997 | .name = "dpio-tx-b-23", | 1997 | .name = "dpio-tx-b-23", |
@@ -2000,7 +2000,7 @@ static struct i915_power_well vlv_power_wells[] = { | |||
2000 | VLV_DPIO_TX_C_LANES_01_POWER_DOMAINS | | 2000 | VLV_DPIO_TX_C_LANES_01_POWER_DOMAINS | |
2001 | VLV_DPIO_TX_C_LANES_23_POWER_DOMAINS, | 2001 | VLV_DPIO_TX_C_LANES_23_POWER_DOMAINS, |
2002 | .ops = &vlv_dpio_power_well_ops, | 2002 | .ops = &vlv_dpio_power_well_ops, |
2003 | .data = PUNIT_POWER_WELL_DPIO_TX_B_LANES_23, | 2003 | .id = PUNIT_POWER_WELL_DPIO_TX_B_LANES_23, |
2004 | }, | 2004 | }, |
2005 | { | 2005 | { |
2006 | .name = "dpio-tx-c-01", | 2006 | .name = "dpio-tx-c-01", |
@@ -2009,7 +2009,7 @@ static struct i915_power_well vlv_power_wells[] = { | |||
2009 | VLV_DPIO_TX_C_LANES_01_POWER_DOMAINS | | 2009 | VLV_DPIO_TX_C_LANES_01_POWER_DOMAINS | |
2010 | VLV_DPIO_TX_C_LANES_23_POWER_DOMAINS, | 2010 | VLV_DPIO_TX_C_LANES_23_POWER_DOMAINS, |
2011 | .ops = &vlv_dpio_power_well_ops, | 2011 | .ops = &vlv_dpio_power_well_ops, |
2012 | .data = PUNIT_POWER_WELL_DPIO_TX_C_LANES_01, | 2012 | .id = PUNIT_POWER_WELL_DPIO_TX_C_LANES_01, |
2013 | }, | 2013 | }, |
2014 | { | 2014 | { |
2015 | .name = "dpio-tx-c-23", | 2015 | .name = "dpio-tx-c-23", |
@@ -2018,12 +2018,12 @@ static struct i915_power_well vlv_power_wells[] = { | |||
2018 | VLV_DPIO_TX_C_LANES_01_POWER_DOMAINS | | 2018 | VLV_DPIO_TX_C_LANES_01_POWER_DOMAINS | |
2019 | VLV_DPIO_TX_C_LANES_23_POWER_DOMAINS, | 2019 | VLV_DPIO_TX_C_LANES_23_POWER_DOMAINS, |
2020 | .ops = &vlv_dpio_power_well_ops, | 2020 | .ops = &vlv_dpio_power_well_ops, |
2021 | .data = PUNIT_POWER_WELL_DPIO_TX_C_LANES_23, | 2021 | .id = PUNIT_POWER_WELL_DPIO_TX_C_LANES_23, |
2022 | }, | 2022 | }, |
2023 | { | 2023 | { |
2024 | .name = "dpio-common", | 2024 | .name = "dpio-common", |
2025 | .domains = VLV_DPIO_CMN_BC_POWER_DOMAINS, | 2025 | .domains = VLV_DPIO_CMN_BC_POWER_DOMAINS, |
2026 | .data = PUNIT_POWER_WELL_DPIO_CMN_BC, | 2026 | .id = PUNIT_POWER_WELL_DPIO_CMN_BC, |
2027 | .ops = &vlv_dpio_cmn_power_well_ops, | 2027 | .ops = &vlv_dpio_cmn_power_well_ops, |
2028 | }, | 2028 | }, |
2029 | }; | 2029 | }; |
@@ -2043,19 +2043,19 @@ static struct i915_power_well chv_power_wells[] = { | |||
2043 | * required for any pipe to work. | 2043 | * required for any pipe to work. |
2044 | */ | 2044 | */ |
2045 | .domains = CHV_DISPLAY_POWER_DOMAINS, | 2045 | .domains = CHV_DISPLAY_POWER_DOMAINS, |
2046 | .data = PIPE_A, | 2046 | .id = PIPE_A, |
2047 | .ops = &chv_pipe_power_well_ops, | 2047 | .ops = &chv_pipe_power_well_ops, |
2048 | }, | 2048 | }, |
2049 | { | 2049 | { |
2050 | .name = "dpio-common-bc", | 2050 | .name = "dpio-common-bc", |
2051 | .domains = CHV_DPIO_CMN_BC_POWER_DOMAINS, | 2051 | .domains = CHV_DPIO_CMN_BC_POWER_DOMAINS, |
2052 | .data = PUNIT_POWER_WELL_DPIO_CMN_BC, | 2052 | .id = PUNIT_POWER_WELL_DPIO_CMN_BC, |
2053 | .ops = &chv_dpio_cmn_power_well_ops, | 2053 | .ops = &chv_dpio_cmn_power_well_ops, |
2054 | }, | 2054 | }, |
2055 | { | 2055 | { |
2056 | .name = "dpio-common-d", | 2056 | .name = "dpio-common-d", |
2057 | .domains = CHV_DPIO_CMN_D_POWER_DOMAINS, | 2057 | .domains = CHV_DPIO_CMN_D_POWER_DOMAINS, |
2058 | .data = PUNIT_POWER_WELL_DPIO_CMN_D, | 2058 | .id = PUNIT_POWER_WELL_DPIO_CMN_D, |
2059 | .ops = &chv_dpio_cmn_power_well_ops, | 2059 | .ops = &chv_dpio_cmn_power_well_ops, |
2060 | }, | 2060 | }, |
2061 | }; | 2061 | }; |
@@ -2078,57 +2078,57 @@ static struct i915_power_well skl_power_wells[] = { | |||
2078 | .always_on = 1, | 2078 | .always_on = 1, |
2079 | .domains = POWER_DOMAIN_MASK, | 2079 | .domains = POWER_DOMAIN_MASK, |
2080 | .ops = &i9xx_always_on_power_well_ops, | 2080 | .ops = &i9xx_always_on_power_well_ops, |
2081 | .data = SKL_DISP_PW_ALWAYS_ON, | 2081 | .id = SKL_DISP_PW_ALWAYS_ON, |
2082 | }, | 2082 | }, |
2083 | { | 2083 | { |
2084 | .name = "power well 1", | 2084 | .name = "power well 1", |
2085 | /* Handled by the DMC firmware */ | 2085 | /* Handled by the DMC firmware */ |
2086 | .domains = 0, | 2086 | .domains = 0, |
2087 | .ops = &skl_power_well_ops, | 2087 | .ops = &skl_power_well_ops, |
2088 | .data = SKL_DISP_PW_1, | 2088 | .id = SKL_DISP_PW_1, |
2089 | }, | 2089 | }, |
2090 | { | 2090 | { |
2091 | .name = "MISC IO power well", | 2091 | .name = "MISC IO power well", |
2092 | /* Handled by the DMC firmware */ | 2092 | /* Handled by the DMC firmware */ |
2093 | .domains = 0, | 2093 | .domains = 0, |
2094 | .ops = &skl_power_well_ops, | 2094 | .ops = &skl_power_well_ops, |
2095 | .data = SKL_DISP_PW_MISC_IO, | 2095 | .id = SKL_DISP_PW_MISC_IO, |
2096 | }, | 2096 | }, |
2097 | { | 2097 | { |
2098 | .name = "DC off", | 2098 | .name = "DC off", |
2099 | .domains = SKL_DISPLAY_DC_OFF_POWER_DOMAINS, | 2099 | .domains = SKL_DISPLAY_DC_OFF_POWER_DOMAINS, |
2100 | .ops = &gen9_dc_off_power_well_ops, | 2100 | .ops = &gen9_dc_off_power_well_ops, |
2101 | .data = SKL_DISP_PW_DC_OFF, | 2101 | .id = SKL_DISP_PW_DC_OFF, |
2102 | }, | 2102 | }, |
2103 | { | 2103 | { |
2104 | .name = "power well 2", | 2104 | .name = "power well 2", |
2105 | .domains = SKL_DISPLAY_POWERWELL_2_POWER_DOMAINS, | 2105 | .domains = SKL_DISPLAY_POWERWELL_2_POWER_DOMAINS, |
2106 | .ops = &skl_power_well_ops, | 2106 | .ops = &skl_power_well_ops, |
2107 | .data = SKL_DISP_PW_2, | 2107 | .id = SKL_DISP_PW_2, |
2108 | }, | 2108 | }, |
2109 | { | 2109 | { |
2110 | .name = "DDI A/E power well", | 2110 | .name = "DDI A/E power well", |
2111 | .domains = SKL_DISPLAY_DDI_A_E_POWER_DOMAINS, | 2111 | .domains = SKL_DISPLAY_DDI_A_E_POWER_DOMAINS, |
2112 | .ops = &skl_power_well_ops, | 2112 | .ops = &skl_power_well_ops, |
2113 | .data = SKL_DISP_PW_DDI_A_E, | 2113 | .id = SKL_DISP_PW_DDI_A_E, |
2114 | }, | 2114 | }, |
2115 | { | 2115 | { |
2116 | .name = "DDI B power well", | 2116 | .name = "DDI B power well", |
2117 | .domains = SKL_DISPLAY_DDI_B_POWER_DOMAINS, | 2117 | .domains = SKL_DISPLAY_DDI_B_POWER_DOMAINS, |
2118 | .ops = &skl_power_well_ops, | 2118 | .ops = &skl_power_well_ops, |
2119 | .data = SKL_DISP_PW_DDI_B, | 2119 | .id = SKL_DISP_PW_DDI_B, |
2120 | }, | 2120 | }, |
2121 | { | 2121 | { |
2122 | .name = "DDI C power well", | 2122 | .name = "DDI C power well", |
2123 | .domains = SKL_DISPLAY_DDI_C_POWER_DOMAINS, | 2123 | .domains = SKL_DISPLAY_DDI_C_POWER_DOMAINS, |
2124 | .ops = &skl_power_well_ops, | 2124 | .ops = &skl_power_well_ops, |
2125 | .data = SKL_DISP_PW_DDI_C, | 2125 | .id = SKL_DISP_PW_DDI_C, |
2126 | }, | 2126 | }, |
2127 | { | 2127 | { |
2128 | .name = "DDI D power well", | 2128 | .name = "DDI D power well", |
2129 | .domains = SKL_DISPLAY_DDI_D_POWER_DOMAINS, | 2129 | .domains = SKL_DISPLAY_DDI_D_POWER_DOMAINS, |
2130 | .ops = &skl_power_well_ops, | 2130 | .ops = &skl_power_well_ops, |
2131 | .data = SKL_DISP_PW_DDI_D, | 2131 | .id = SKL_DISP_PW_DDI_D, |
2132 | }, | 2132 | }, |
2133 | }; | 2133 | }; |
2134 | 2134 | ||
@@ -2143,31 +2143,31 @@ static struct i915_power_well bxt_power_wells[] = { | |||
2143 | .name = "power well 1", | 2143 | .name = "power well 1", |
2144 | .domains = 0, | 2144 | .domains = 0, |
2145 | .ops = &skl_power_well_ops, | 2145 | .ops = &skl_power_well_ops, |
2146 | .data = SKL_DISP_PW_1, | 2146 | .id = SKL_DISP_PW_1, |
2147 | }, | 2147 | }, |
2148 | { | 2148 | { |
2149 | .name = "DC off", | 2149 | .name = "DC off", |
2150 | .domains = BXT_DISPLAY_DC_OFF_POWER_DOMAINS, | 2150 | .domains = BXT_DISPLAY_DC_OFF_POWER_DOMAINS, |
2151 | .ops = &gen9_dc_off_power_well_ops, | 2151 | .ops = &gen9_dc_off_power_well_ops, |
2152 | .data = SKL_DISP_PW_DC_OFF, | 2152 | .id = SKL_DISP_PW_DC_OFF, |
2153 | }, | 2153 | }, |
2154 | { | 2154 | { |
2155 | .name = "power well 2", | 2155 | .name = "power well 2", |
2156 | .domains = BXT_DISPLAY_POWERWELL_2_POWER_DOMAINS, | 2156 | .domains = BXT_DISPLAY_POWERWELL_2_POWER_DOMAINS, |
2157 | .ops = &skl_power_well_ops, | 2157 | .ops = &skl_power_well_ops, |
2158 | .data = SKL_DISP_PW_2, | 2158 | .id = SKL_DISP_PW_2, |
2159 | }, | 2159 | }, |
2160 | { | 2160 | { |
2161 | .name = "dpio-common-a", | 2161 | .name = "dpio-common-a", |
2162 | .domains = BXT_DPIO_CMN_A_POWER_DOMAINS, | 2162 | .domains = BXT_DPIO_CMN_A_POWER_DOMAINS, |
2163 | .ops = &bxt_dpio_cmn_power_well_ops, | 2163 | .ops = &bxt_dpio_cmn_power_well_ops, |
2164 | .data = BXT_DPIO_CMN_A, | 2164 | .id = BXT_DPIO_CMN_A, |
2165 | }, | 2165 | }, |
2166 | { | 2166 | { |
2167 | .name = "dpio-common-bc", | 2167 | .name = "dpio-common-bc", |
2168 | .domains = BXT_DPIO_CMN_BC_POWER_DOMAINS, | 2168 | .domains = BXT_DPIO_CMN_BC_POWER_DOMAINS, |
2169 | .ops = &bxt_dpio_cmn_power_well_ops, | 2169 | .ops = &bxt_dpio_cmn_power_well_ops, |
2170 | .data = BXT_DPIO_CMN_BC, | 2170 | .id = BXT_DPIO_CMN_BC, |
2171 | }, | 2171 | }, |
2172 | }; | 2172 | }; |
2173 | 2173 | ||