linux/drivers/gpu/drm/i915
Daniel Vetter bf2125e2f7 drm/i915: wait for a vblank to pass after tv detect
Otherwise the hw will get confused and result in a black screen.

This regression has been most likely introduce in

commit 974b93315b
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Sep 5 00:44:20 2010 +0100

    drm/i915/tv: Poll for DAC state change

That commit replace the first msleep(20) with a busy-loop, but failed
to keep the 2nd msleep around. Later on we've replaced all these
msleep(20) by proper vblanks.

For reference also see the commit in xf86-video-intel:

commit 1142be53eb8d2ee8a9b60ace5d49f0ba27332275
Author: Jesse Barnes <jbarnes@hobbes.lan>
Date:   Mon Jun 9 08:52:59 2008 -0700

    Fix TV programming:  add vblank wait after TV_CTL writes

    Fxies FDO bug #14000; we need to wait for vblank after
    writing TV_CTL or following "DPMS on" calls may not actually enable the output.

v2: As suggested by Chris Wilson, add a small comment to ensure that
no one accidentally removes this vblank wait again - there really
seems to be no sane explanation for why we need it, but it is
required.

Launchpad: https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/763688
Reported-and-Tested-by: Robert Lowery <rglowery@exemail.com.au>
Cc: Rodrigo Vivi <rodrigo.vivi@gmail.com>
Cc: stable@vger.kernel.org
Acked-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-Off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2012-05-24 17:54:07 +02:00
..
dvo_ch7xxx.c
dvo_ch7017.c
dvo_ivch.c
dvo_sil164.c
dvo_tfp410.c
dvo.h
i915_debugfs.c drm/i915: fix module unload since error_state rework 2012-05-22 09:22:36 +02:00
i915_dma.c Merge tag 'drm-intel-next-2012-05-20' of git://people.freedesktop.org/~danvet/drm-intel into drm-core-next 2012-05-21 08:17:42 +01:00
i915_drv.c drm/i915: Introduce for_each_ring() macro 2012-05-19 22:39:53 +02:00
i915_drv.h drm/i915: Introduce for_each_ring() macro 2012-05-19 22:39:53 +02:00
i915_gem_debug.c drm/i915: Remove the list of pinned inactive objects 2012-05-03 11:18:11 +02:00
i915_gem_evict.c drm/i915: Introduce for_each_ring() macro 2012-05-19 22:39:53 +02:00
i915_gem_execbuffer.c drm/i915: Check whether the ring is initialised prior to dispatch 2012-05-19 22:39:53 +02:00
i915_gem_gtt.c drm/i915: remove do_retire from i915_wait_request 2012-05-03 11:18:20 +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: Only the zap the VMA after updating the tiling parameters 2012-05-03 11:18:07 +02:00
i915_gem.c drm/i915: Introduce for_each_ring() macro 2012-05-19 22:39:53 +02:00
i915_ioc32.c drm/i915: [sparse] trivial sparse fixes 2012-04-18 10:34:49 +02:00
i915_irq.c drm/i915: Always update RPS interrupts thresholds along with frequency 2012-05-24 17:54:00 +02:00
i915_reg.h drm/i915: implement hsw_write_infoframe 2012-05-20 17:52:35 +02:00
i915_suspend.c drm/i915: gen6_enable_rps() wants to be called after ring initialisation 2012-05-19 22:38:29 +02:00
i915_sysfs.c drm/i915: rc6 residency (fix the fix) 2012-04-23 09:30:14 +02:00
i915_trace_points.c drm/i915: [sparse] trivial sparse fixes 2012-04-18 10:34:49 +02:00
i915_trace.h
intel_acpi.c drm/i915: [sparse] trivial sparse fixes 2012-04-18 10:34:49 +02:00
intel_bios.c Merge branch 'drm-intel-next' of git://people.freedesktop.org/~danvet/drm-intel into drm-core-next 2012-04-12 10:27:01 +01:00
intel_bios.h
intel_crt.c drm/i915: account for only one PCH receiver on Haswell 2012-05-19 22:39:47 +02:00
intel_ddi.c drm/i915: prepare HDMI link for Haswell 2012-05-19 22:39:51 +02:00
intel_display.c drm/i915: Fix PCH PLL assertions to not assume CRTC:PLL relationship 2012-05-24 17:54:00 +02:00
intel_dp.c drm/i915: enable vdd when switching off the eDP panel 2012-05-24 17:54:01 +02:00
intel_drv.h drm/i915: fixup infoframe support for sdvo 2012-05-20 17:11:11 +02:00
intel_dvo.c drm/i915/intel_i2c: refactor using intel_gmbus_get_adapter 2012-03-28 14:40:44 +02:00
intel_fb.c Linux 3.4-rc6 2012-05-07 14:02:14 +02:00
intel_hdmi.c drm/i915: implement hsw_write_infoframe 2012-05-20 17:52:35 +02:00
intel_i2c.c drm/i915: be more careful when returning -ENXIO in gmbus transfer 2012-05-21 21:04:21 +02:00
intel_lvds.c drm/i915: no lvds quirk for HP t5740e Thin Client 2012-05-24 17:54:01 +02:00
intel_modes.c Merge branch 'drm-intel-next' of git://people.freedesktop.org/~danvet/drm-intel into drm-core-next 2012-04-12 10:27:01 +01:00
intel_opregion.c drm/i915: [sparse] __iomem fixes for opregion 2012-05-03 11:18:00 +02:00
intel_overlay.c drm/i915: rip out unnecessary calls to drm_mode_set_crtcinfo 2012-05-04 11:31:24 +02:00
intel_panel.c Linux 3.4-rc6 2012-05-07 14:02:14 +02:00
intel_pm.c drm/i915: Always update RPS interrupts thresholds along with frequency 2012-05-24 17:54:00 +02:00
intel_ringbuffer.c Merge remote-tracking branch 'airlied/drm-core-next' into drm-intel-next-queued 2012-05-08 13:39:59 +02:00
intel_ringbuffer.h drm/i915: Introduce for_each_ring() macro 2012-05-19 22:39:53 +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 drm/i915: properly handle interlaced bit for sdvo dtd conversion 2012-05-24 17:53:52 +02:00
intel_sprite.c drm/i915: properly check for MODESET for kms driver ioctls 2012-05-03 11:18:13 +02:00
intel_tv.c drm/i915: wait for a vblank to pass after tv detect 2012-05-24 17:54:07 +02:00
Makefile drm/i915: initialize DDI buffer translations 2012-05-19 22:39:47 +02:00