linux/drivers/gpu/drm/i915
Daniel Vetter fba92150aa drm/i915: rip out early dp port write for gm45/ilk
It's bogus.

If I've followed the history of this piece of code correctly, i.e. the
initial register write with the following vblank wait, this goes all
the way back to the original enabling of DP support in

commit a4fc5ed698
Author: Keith Packard <keithp@keithp.com>
Date:   Tue Apr 7 16:16:42 2009 -0700

    drm/i915: Add Display Port support

Unfortunately it seems to be nothing more than glorified duct-tape and
sometimes actively harmful. Adam Jackson noticed this for CPT
platforms with

commit e85194641b
Author: Adam Jackson <ajax@redhat.com>
Date:   Thu Jul 21 17:48:38 2011 -0400

    drm/i915/dp: Don't turn CPT DP ports on too early

Unfortunately this kept the code around for ilk and gm45.

The specific failure case I'm seeing here is that after a dpms off/on
cycle we have the bits from the last link training (hopefully
successful link training) set in intel_dp->DP. This is requiered so
that complete_link_train can enable the port with the right tuning
values.

Unfortunately writing these again to the disabled port at dpms on time
kills the port somehow until it's disabled - dp link training fails in
an endless loop without this patch on my mobile ilk and gm45.

Cc: Chris Wilson <chris@chris-wilson.co.uk>
Tested-by: Chris Wilson <chris@chris-wilson.co.uk>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=51493
Signed-Off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2012-09-20 14:23:02 +02:00
..
dvo_ch7xxx.c drm/i915/dvo: implement get_hw_state 2012-09-06 07:58:52 +02:00
dvo_ch7017.c drm/i915/dvo: implement get_hw_state 2012-09-06 07:58:52 +02:00
dvo_ivch.c drm/i915/dvo: implement get_hw_state 2012-09-06 07:58:52 +02:00
dvo_ns2501.c drm/i915/dvo: implement get_hw_state 2012-09-06 07:58:52 +02:00
dvo_sil164.c drm/i915/dvo: implement get_hw_state 2012-09-06 07:58:52 +02:00
dvo_tfp410.c drm/i915/dvo: implement get_hw_state 2012-09-06 07:58:52 +02:00
dvo.h drm/i915/dvo: implement get_hw_state 2012-09-06 07:58:52 +02:00
i915_debugfs.c drm/i915: #define gpu freq multipler 2012-09-20 14:23:00 +02:00
i915_dma.c i915: use alloc_ordered_workqueue() instead of explicit UNBOUND w/ max_active = 1 2012-08-24 01:13:53 +02:00
i915_drv.c Merge the modeset-rework, basic conversion into drm-intel-next 2012-09-06 22:52:43 +02:00
i915_drv.h drm/i915: #define gpu freq multipler 2012-09-20 14:23:00 +02:00
i915_gem_context.c drm/i915: Only pwrite through the GTT if there is space in the aperture 2012-08-24 02:03:33 +02:00
i915_gem_debug.c drm/i915: stop using dev->agp->base 2012-06-12 22:18:06 +02:00
i915_gem_dmabuf.c drm/i915: Replace the array of pages with a scatterlist 2012-09-20 14:22:57 +02:00
i915_gem_evict.c drm/i915: Only pwrite through the GTT if there is space in the aperture 2012-08-24 02:03:33 +02:00
i915_gem_execbuffer.c drm/i915: Replace the array of pages with a scatterlist 2012-09-20 14:22:57 +02:00
i915_gem_gtt.c drm/i915: Replace the array of pages with a scatterlist 2012-09-20 14:22:57 +02:00
i915_gem_stolen.c drm/i915: Split the stolen handling for GEM out of i915_dma.c 2012-05-03 11:18:11 +02:00
i915_gem_tiling.c drm/i915: Replace the array of pages with a scatterlist 2012-09-20 14:22:57 +02:00
i915_gem.c drm/i915: Replace the array of pages with a scatterlist 2012-09-20 14:22:57 +02:00
i915_ioc32.c drm/i915: [sparse] trivial sparse fixes 2012-04-18 10:34:49 +02:00
i915_irq.c drm/i915: Error checks in gen6_set_rps 2012-09-20 14:23:01 +02:00
i915_reg.h Merge the modeset-rework, basic conversion into drm-intel-next 2012-09-06 22:52:43 +02:00
i915_suspend.c Linux 3.5-rc7 2012-07-20 00:53:28 -04:00
i915_sysfs.c drm/i915: Add current/max/min GPU freq to sysfs 2012-09-20 14:23:00 +02:00
i915_trace_points.c drm/i915: [sparse] trivial sparse fixes 2012-04-18 10:34:49 +02:00
i915_trace.h drm/i915: add a tracepoint for gpu frequency changes 2012-09-03 10:09:27 +02:00
intel_acpi.c drm/i915: [sparse] trivial sparse fixes 2012-04-18 10:34:49 +02:00
intel_bios.c drm/i915/bios: cleanup return type of intel_parse_bios() 2012-06-27 10:17:51 +01:00
intel_bios.h drm/i915/bios: cleanup return type of intel_parse_bios() 2012-06-27 10:17:51 +01:00
intel_crt.c Merge the modeset-rework, basic conversion into drm-intel-next 2012-09-06 22:52:43 +02:00
intel_ddi.c drm/i915/hdmi: implement get_hw_state 2012-09-06 07:58:22 +02:00
intel_display.c drm/i915: extract compute_clocks from ironlake_crtc_mode_set 2012-09-20 14:22:59 +02:00
intel_dp.c drm/i915: rip out early dp port write for gm45/ilk 2012-09-20 14:23:02 +02:00
intel_drv.h Merge the modeset-rework, basic conversion into drm-intel-next 2012-09-06 22:52:43 +02:00
intel_dvo.c drm/i915: improve modeset state checking after dpms calls 2012-09-06 08:21:31 +02:00
intel_fb.c drm/i915: Zero initialize mode_cmd 2012-07-05 13:27:58 +02:00
intel_hdmi.c Merge the modeset-rework, basic conversion into drm-intel-next 2012-09-06 22:52:43 +02:00
intel_i2c.c drm/i915: ensure i2c adapter is all set before adding it 2012-08-13 19:04:24 +02:00
intel_lvds.c drm/i915: fix OOPS in lid_notify 2012-09-18 00:59:37 +02:00
intel_modes.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux into drm-next 2012-08-27 16:22:20 +10:00
intel_opregion.c drm/i915: [sparse] __iomem fixes for opregion 2012-05-03 11:18:00 +02:00
intel_overlay.c drm/i915: Only pwrite through the GTT if there is space in the aperture 2012-08-24 02:03:33 +02:00
intel_panel.c drm/i915: Fix blank panel at reopening lid 2012-08-11 21:15:16 +02:00
intel_pm.c drm/i915: Error checks in gen6_set_rps 2012-09-20 14:23:01 +02:00
intel_ringbuffer.c drm/i915: Replace the array of pages with a scatterlist 2012-09-20 14:22:57 +02:00
intel_ringbuffer.h drm/i915: Lazily apply the SNB+ seqno w/a 2012-08-10 11:11:32 +02:00
intel_sdvo_regs.h drm/i915: properly handle interlaced bit for sdvo dtd conversion 2012-05-24 17:53:52 +02:00
intel_sdvo.c Merge the modeset-rework, basic conversion into drm-intel-next 2012-09-06 22:52:43 +02:00
intel_sprite.c drm/i915: mask tiled bit when updating ILK sprites 2012-07-20 12:21:40 +02:00
intel_tv.c drm/i915: s/intel_encoder_disable/intel_encoder_noop 2012-09-06 08:21:27 +02:00
Makefile drm/i915: Support for ns2501-DVO 2012-07-25 18:23:48 +02:00