debian/changelog | 7 +++++++ src/drmmode_display.c | 15 +++++++++++++++ 2 files changed, 22 insertions(+)
New commits: commit cfbae1436ed59c616e8b7551588049c753d593d7 Author: Sven Joachim <[email protected]> Date: Thu Apr 20 18:49:59 2017 +0200 Document the cherry-pick diff --git a/debian/changelog b/debian/changelog index 7fa9a76..f5f17e1 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +xserver-xorg-video-nouveau (1:1.0.13-3) UNRELEASED; urgency=medium + + * Cherry-pick commit e9418e4343 ("Do not register hotplug without RandR") + from upstream (Closes: #860756). + + -- Sven Joachim <[email protected]> Thu, 20 Apr 2017 18:49:07 +0200 + xserver-xorg-video-nouveau (1:1.0.13-2) unstable; urgency=medium * Team upload. commit 4d87b7ab3519c2e0e88d8cffdedf3b5506772584 Author: Mariusz Bialonczyk <[email protected]> Date: Wed Mar 29 22:07:50 2017 +0200 Do not register hotplug without RandR When using Xinerama, RandR is automatically disabled, and calling RR routines will trigger an assert() because the RR keys/resources are not set, leading to an Xserver abort. Hotplug makes little sense without RandR, so no need to install a udev monitor if RandR is not available. Ported from xf86-video-intel commit 1a489142c8e6a4828348cc9afbd0f430d3b1e2d8, original work by: Chris Wilson <[email protected]> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98383 Signed-off-by: Mariusz Bialonczyk <[email protected]> Acked-by: Ilia Mirkin <[email protected]> (cherry picked from commit e9418e434311336e905b70553a5ed740838d90ad) diff --git a/src/drmmode_display.c b/src/drmmode_display.c index dd9fa27..ae29d9a 100644 --- a/src/drmmode_display.c +++ b/src/drmmode_display.c @@ -1556,6 +1556,15 @@ drmmode_udev_notify(int fd, int notify, void *data) } #endif +static bool has_randr(void) +{ +#if HAS_DIXREGISTERPRIVATEKEY + return dixPrivateKeyRegistered(rrPrivKey); +#else + return *rrPrivKey; +#endif +} + static void drmmode_uevent_init(ScrnInfoPtr scrn) { @@ -1564,6 +1573,12 @@ drmmode_uevent_init(ScrnInfoPtr scrn) struct udev *u; struct udev_monitor *mon; + /* RandR will be disabled if Xinerama is active, and so generating + * RR hotplug events is then forbidden. + */ + if (!has_randr()) + return; + u = udev_new(); if (!u) return;

