commit:     eb8341f8d1ea3b6f8103e6cc920d62b86c6383e2
Author:     Alice Ferrazzi <alicef <AT> gentoo <DOT> org>
AuthorDate: Sun Jan 29 22:31:01 2017 +0000
Commit:     Alice Ferrazzi <alicef <AT> gentoo <DOT> org>
CommitDate: Sun Jan 29 22:31:01 2017 +0000
URL:        https://gitweb.gentoo.org/proj/linux-patches.git/commit/?id=eb8341f8

Fix xorg hangs on startup with nouveau on optimus
systems. see bug #607636

 0000_README                                        |  4 ++++
 ...rk-with-1s-delay-if-we-have-delayed-event.patch | 22 ++++++++++++++++++++++
 2 files changed, 26 insertions(+)

diff --git a/0000_README b/0000_README
index 970967a..ee1a951 100644
--- a/0000_README
+++ b/0000_README
@@ -75,6 +75,10 @@ Patch:  
1510_fs-enable-link-security-restrictions-by-default.patch
 From:   
http://sources.debian.net/src/linux/3.16.7-ckt4-3/debian/patches/debian/fs-enable-link-security-restrictions-by-default.patch/
 Desc:   Enable link security restrictions by default.
 
+Patch:  
2700_schedule-the-output_poll_work-with-1s-delay-if-we-have-delayed-event.patch 
+From:   
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/patch/?id=68f458eec7069d618a6c884ca007426e0cea411b
+Desc:   Schedule the output_poll_work with 1s delay if we have delayed event. 
(Bug #607636)
+
 Patch:  2900_dev-root-proc-mount-fix.patch
 From:   https://bugs.gentoo.org/show_bug.cgi?id=438380
 Desc:   Ensure that /dev/root doesn't appear in /proc/mounts when bootint 
without an initramfs.

diff --git 
a/2700_schedule-the-output_poll_work-with-1s-delay-if-we-have-delayed-event.patch
 
b/2700_schedule-the-output_poll_work-with-1s-delay-if-we-have-delayed-event.patch
new file mode 100644
index 0000000..198840a
--- /dev/null
+++ 
b/2700_schedule-the-output_poll_work-with-1s-delay-if-we-have-delayed-event.patch
@@ -0,0 +1,22 @@
+--- a/drivers/gpu/drm/drm_probe_helper.c
++++ b/drivers/gpu/drm/drm_probe_helper.c
+@@ -143,8 +143,18 @@ void drm_kms_helper_poll_enable_locked(struct drm_device 
*dev)
+       }
+ 
+       if (dev->mode_config.delayed_event) {
++              /*
++               * FIXME:
++               *
++               * Use short (1s) delay to handle the initial delayed event.
++               * This delay should not be needed, but Optimus/nouveau will
++               * fail in a mysterious way if the delayed event is handled as
++               * soon as possible like it is done in
++               * drm_helper_probe_single_connector_modes() in case the poll
++               * was enabled before.
++               */
+               poll = true;
+-              delay = 0;
++              delay = HZ;
+       }
+ 
+       if (poll)

Reply via email to