diff options
author | Paulo Zanoni <paulo.r.zanoni@intel.com> | 2012-11-20 10:27:37 -0500 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2012-11-21 11:47:06 -0500 |
commit | cc391bbbddd16c36dabcb9f4a26500a2973a7108 (patch) | |
tree | 605d30eed7c3789489e31982c65b47dff56bf66a /drivers | |
parent | d63fa0dc1a3636816260bc507e59e168e423f150 (diff) |
drm/i915: use cpu/pch transcoder on intel_enable_pipe
This function runs on Haswell, so set the correct pch_transcoder and
cpu_transcoder variables. This fixes an assertion failure on Haswell
VGA.
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Reviewed-by: Damien Lespiau <damien.lespiau@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/gpu/drm/i915/intel_display.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index 82ab55af52fe..4e303cf7ead6 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c | |||
@@ -1812,9 +1812,15 @@ static void intel_enable_pipe(struct drm_i915_private *dev_priv, enum pipe pipe, | |||
1812 | { | 1812 | { |
1813 | enum transcoder cpu_transcoder = intel_pipe_to_cpu_transcoder(dev_priv, | 1813 | enum transcoder cpu_transcoder = intel_pipe_to_cpu_transcoder(dev_priv, |
1814 | pipe); | 1814 | pipe); |
1815 | enum transcoder pch_transcoder; | ||
1815 | int reg; | 1816 | int reg; |
1816 | u32 val; | 1817 | u32 val; |
1817 | 1818 | ||
1819 | if (IS_HASWELL(dev_priv->dev)) | ||
1820 | pch_transcoder = TRANSCODER_A; | ||
1821 | else | ||
1822 | pch_transcoder = pipe; | ||
1823 | |||
1818 | /* | 1824 | /* |
1819 | * A pipe without a PLL won't actually be able to drive bits from | 1825 | * A pipe without a PLL won't actually be able to drive bits from |
1820 | * a plane. On ILK+ the pipe PLLs are integrated, so we don't | 1826 | * a plane. On ILK+ the pipe PLLs are integrated, so we don't |
@@ -1825,8 +1831,8 @@ static void intel_enable_pipe(struct drm_i915_private *dev_priv, enum pipe pipe, | |||
1825 | else { | 1831 | else { |
1826 | if (pch_port) { | 1832 | if (pch_port) { |
1827 | /* if driving the PCH, we need FDI enabled */ | 1833 | /* if driving the PCH, we need FDI enabled */ |
1828 | assert_fdi_rx_pll_enabled(dev_priv, pipe); | 1834 | assert_fdi_rx_pll_enabled(dev_priv, pch_transcoder); |
1829 | assert_fdi_tx_pll_enabled(dev_priv, pipe); | 1835 | assert_fdi_tx_pll_enabled(dev_priv, cpu_transcoder); |
1830 | } | 1836 | } |
1831 | /* FIXME: assert CPU port conditions for SNB+ */ | 1837 | /* FIXME: assert CPU port conditions for SNB+ */ |
1832 | } | 1838 | } |