aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_display.c
diff options
context:
space:
mode:
authorChon Ming Lee <chon.ming.lee@intel.com>2014-04-09 06:28:15 -0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2014-05-12 13:50:12 -0400
commit00fc31b72ea773fa966a486e54ca379045bd2cfd (patch)
tree822526ba6d94bd360a2890e182913c44fb7a9cc2 /drivers/gpu/drm/i915/intel_display.c
parenta09cadddde3819dfbb04262f3db12082d4c7b695 (diff)
drm/i915/chv: Update Cherryview DPLL changes to support Port D. v2
The additional DPLL registers added to support Port D. Besides, add some new PHY control and status registers based on B-spec. v2: Based on Ville review - Corrected DPIO_PHY_STATUS offset and name. - Rebase based on upstream change after introduce enum dpio_phy and enum dpio_channel. v3: Rebased on top of Antti's 3-pipe prep patch. Note that the new offsets for the DPLL registers aren't in place yet, so this introduces a slight regression. But since 3 pipe support isn't fully enabled yet anyaway in -internal this shouldn't matter too much. Signed-off-by: Chon Ming Lee <chon.ming.lee@intel.com> Reviewed-by: Imre Deak <imre.deak@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_display.c')
-rw-r--r--drivers/gpu/drm/i915/intel_display.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 63055f1244d0..c42593fd53a5 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -1535,21 +1535,28 @@ void vlv_wait_port_ready(struct drm_i915_private *dev_priv,
1535 struct intel_digital_port *dport) 1535 struct intel_digital_port *dport)
1536{ 1536{
1537 u32 port_mask; 1537 u32 port_mask;
1538 int dpll_reg;
1538 1539
1539 switch (dport->port) { 1540 switch (dport->port) {
1540 case PORT_B: 1541 case PORT_B:
1541 port_mask = DPLL_PORTB_READY_MASK; 1542 port_mask = DPLL_PORTB_READY_MASK;
1543 dpll_reg = DPLL(0);
1542 break; 1544 break;
1543 case PORT_C: 1545 case PORT_C:
1544 port_mask = DPLL_PORTC_READY_MASK; 1546 port_mask = DPLL_PORTC_READY_MASK;
1547 dpll_reg = DPLL(0);
1548 break;
1549 case PORT_D:
1550 port_mask = DPLL_PORTD_READY_MASK;
1551 dpll_reg = DPIO_PHY_STATUS;
1545 break; 1552 break;
1546 default: 1553 default:
1547 BUG(); 1554 BUG();
1548 } 1555 }
1549 1556
1550 if (wait_for((I915_READ(DPLL(0)) & port_mask) == 0, 1000)) 1557 if (wait_for((I915_READ(dpll_reg) & port_mask) == 0, 1000))
1551 WARN(1, "timed out waiting for port %c ready: 0x%08x\n", 1558 WARN(1, "timed out waiting for port %c ready: 0x%08x\n",
1552 port_name(dport->port), I915_READ(DPLL(0))); 1559 port_name(dport->port), I915_READ(dpll_reg));
1553} 1560}
1554 1561
1555/** 1562/**