diff options
Diffstat (limited to 'drivers/gpu/drm/i915')
-rw-r--r-- | drivers/gpu/drm/i915/intel_display.c | 60 |
1 files changed, 0 insertions, 60 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index ea707fcbc40a..b20fad3d9f04 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c | |||
@@ -1860,59 +1860,6 @@ static void intel_disable_plane(struct drm_i915_private *dev_priv, | |||
1860 | intel_wait_for_vblank(dev_priv->dev, pipe); | 1860 | intel_wait_for_vblank(dev_priv->dev, pipe); |
1861 | } | 1861 | } |
1862 | 1862 | ||
1863 | static void disable_pch_dp(struct drm_i915_private *dev_priv, | ||
1864 | enum pipe pipe, int reg, u32 port_sel) | ||
1865 | { | ||
1866 | u32 val = I915_READ(reg); | ||
1867 | if (dp_pipe_enabled(dev_priv, pipe, port_sel, val)) { | ||
1868 | DRM_DEBUG_KMS("Disabling pch dp %x on pipe %d\n", reg, pipe); | ||
1869 | I915_WRITE(reg, val & ~DP_PORT_EN); | ||
1870 | } | ||
1871 | } | ||
1872 | |||
1873 | static void disable_pch_hdmi(struct drm_i915_private *dev_priv, | ||
1874 | enum pipe pipe, int reg) | ||
1875 | { | ||
1876 | u32 val = I915_READ(reg); | ||
1877 | if (hdmi_pipe_enabled(dev_priv, pipe, val)) { | ||
1878 | DRM_DEBUG_KMS("Disabling pch HDMI %x on pipe %d\n", | ||
1879 | reg, pipe); | ||
1880 | I915_WRITE(reg, val & ~PORT_ENABLE); | ||
1881 | } | ||
1882 | } | ||
1883 | |||
1884 | /* Disable any ports connected to this transcoder */ | ||
1885 | static void intel_disable_pch_ports(struct drm_i915_private *dev_priv, | ||
1886 | enum pipe pipe) | ||
1887 | { | ||
1888 | u32 reg, val; | ||
1889 | |||
1890 | val = I915_READ(PCH_PP_CONTROL); | ||
1891 | I915_WRITE(PCH_PP_CONTROL, val | PANEL_UNLOCK_REGS); | ||
1892 | |||
1893 | disable_pch_dp(dev_priv, pipe, PCH_DP_B, TRANS_DP_PORT_SEL_B); | ||
1894 | disable_pch_dp(dev_priv, pipe, PCH_DP_C, TRANS_DP_PORT_SEL_C); | ||
1895 | disable_pch_dp(dev_priv, pipe, PCH_DP_D, TRANS_DP_PORT_SEL_D); | ||
1896 | |||
1897 | reg = PCH_ADPA; | ||
1898 | val = I915_READ(reg); | ||
1899 | if (adpa_pipe_enabled(dev_priv, pipe, val)) | ||
1900 | I915_WRITE(reg, val & ~ADPA_DAC_ENABLE); | ||
1901 | |||
1902 | reg = PCH_LVDS; | ||
1903 | val = I915_READ(reg); | ||
1904 | if (lvds_pipe_enabled(dev_priv, pipe, val)) { | ||
1905 | DRM_DEBUG_KMS("disable lvds on pipe %d val 0x%08x\n", pipe, val); | ||
1906 | I915_WRITE(reg, val & ~LVDS_PORT_EN); | ||
1907 | POSTING_READ(reg); | ||
1908 | udelay(100); | ||
1909 | } | ||
1910 | |||
1911 | disable_pch_hdmi(dev_priv, pipe, HDMIB); | ||
1912 | disable_pch_hdmi(dev_priv, pipe, HDMIC); | ||
1913 | disable_pch_hdmi(dev_priv, pipe, HDMID); | ||
1914 | } | ||
1915 | |||
1916 | int | 1863 | int |
1917 | intel_pin_and_fence_fb_obj(struct drm_device *dev, | 1864 | intel_pin_and_fence_fb_obj(struct drm_device *dev, |
1918 | struct drm_i915_gem_object *obj, | 1865 | struct drm_i915_gem_object *obj, |
@@ -3321,13 +3268,6 @@ static void ironlake_crtc_disable(struct drm_crtc *crtc) | |||
3321 | 3268 | ||
3322 | ironlake_fdi_disable(crtc); | 3269 | ironlake_fdi_disable(crtc); |
3323 | 3270 | ||
3324 | /* This is a horrible layering violation; we should be doing this in | ||
3325 | * the connector/encoder ->prepare instead, but we don't always have | ||
3326 | * enough information there about the config to know whether it will | ||
3327 | * actually be necessary or just cause undesired flicker. | ||
3328 | */ | ||
3329 | intel_disable_pch_ports(dev_priv, pipe); | ||
3330 | |||
3331 | intel_disable_transcoder(dev_priv, pipe); | 3271 | intel_disable_transcoder(dev_priv, pipe); |
3332 | 3272 | ||
3333 | if (HAS_PCH_CPT(dev)) { | 3273 | if (HAS_PCH_CPT(dev)) { |