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,
};