File 1007-drm-i915-Disable-tv-output-on-i9x5gm.patch of Package drm

From: Takashi Iwai <tiwai@suse.de>
Subject: drm/i915: Disable tv output on i9x5gm
Patch-mainline: Never, tentative workaround for 4.4.x kernel
References: bsc#1039700,bsc#1046269

The TV output detection on i965GM chip is known to be badly broken,
causing the stall at vblank over intel_tv_dtect().

 WARNING: CPU: 0 PID: 2007 at ../drivers/gpu/drm/drm_irq.c:1326 drm_wait_one_vblank+0x149/0x180 [drm]()
 vblank wait timed out on crtc 0
 Call Trace:
  [<ffffffff81019f29>] dump_trace+0x59/0x320
  [<ffffffff8101a2ea>] show_stack_log_lvl+0xfa/0x180
  [<ffffffff8101b091>] show_stack+0x21/0x40
  [<ffffffff81339397>] dump_stack+0x5c/0x85
  [<ffffffff81080431>] warn_slowpath_common+0x81/0xb0
  [<ffffffff810804ac>] warn_slowpath_fmt+0x4c/0x50
  [<ffffffffa00984c9>] drm_wait_one_vblank+0x149/0x180 [drm]
  [<ffffffffa02314ef>] i9xx_crtc_disable+0x2f/0x420 [i915]
  [<ffffffffa0236b1a>] intel_atomic_commit+0xfa/0x6f0 [i915]
  [<ffffffffa023c6d3>] intel_release_load_detect_pipe+0xe3/0x150 [i915]
  [<ffffffffa0274313>] intel_tv_detect+0x383/0x580 [i915]
  [<ffffffffa0129ba4>] drm_helper_probe_single_connector_modes_merge_bits+0x2d4/0x480 [drm_kms_helper]
  [<ffffffffa00a3cd1>] drm_mode_getconnector+0x301/0x3a0 [drm]
  [<ffffffffa0096833>] drm_ioctl+0x223/0x460 [drm]
  [<ffffffff8122289c>] do_vfs_ioctl+0x30c/0x570
  [<ffffffff81222b74>] SyS_ioctl+0x74/0x80
  [<ffffffff8162cdf2>] entry_SYSCALL_64_fastpath+0x16/0x71
 DWARF2 unwinder stuck at entry_SYSCALL_64_fastpath+0x16/0x71

There have been many similar bug reports in the upstream, but this has
been papered over, or appearing in a different form.
  https://bugs.freedesktop.org/show_bug.cgi?id=93782
  https://bugs.freedesktop.org/show_bug.cgi?id=96781

As an ad hoc workaround, simply disable the TV outputs on the
chipset.  To be sure, we disable the TV output on other similar
chipsets, too.

Signed-off-by: Takashi Iwai <tiwai@suse.de>

---
 drivers/gpu/drm/i915/i915_pci.c |    8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

--- a/drivers/gpu/drm/i915/i915_pci.c
+++ b/drivers/gpu/drm/i915/i915_pci.c
@@ -103,7 +103,7 @@ static const struct intel_device_info in
 	.is_mobile = 1,
 	.cursor_needs_physical = 1,
 	.has_overlay = 1, .overlay_needs_physical = 1,
-	.supports_tv = 1,
+	/* .supports_tv = 1, */ /* causing hang-up (bsc#1039700) */
 	.has_fbc = 1,
 	.hws_needs_physical = 1,
 };
@@ -118,7 +118,7 @@ static const struct intel_device_info in
 	.is_i945gm = 1, .is_mobile = 1,
 	.has_hotplug = 1, .cursor_needs_physical = 1,
 	.has_overlay = 1, .overlay_needs_physical = 1,
-	.supports_tv = 1,
+	/* .supports_tv = 1, */ /* causing hang-up (bsc#1039700) */
 	.has_fbc = 1,
 	.hws_needs_physical = 1,
 };
@@ -143,7 +143,7 @@ static const struct intel_device_info in
 	.is_crestline = 1,
 	.is_mobile = 1, .has_fbc = 1,
 	.has_overlay = 1,
-	.supports_tv = 1,
+	/* .supports_tv = 1, */ /* causing hang-up (bsc#1039700) */
 	.hws_needs_physical = 1,
 };
 
@@ -166,7 +166,7 @@ static const struct intel_device_info in
 	.is_g4x = 1,
 	.is_mobile = 1, .has_fbc = 1,
 	.has_pipe_cxsr = 1,
-	.supports_tv = 1,
+	/* .supports_tv = 1, */ /* causing hang-up (bsc#1039700) */
 	.ring_mask = RENDER_RING | BSD_RING,
 };
 
openSUSE Build Service is sponsored by