xserver-xorg-video-nouveau: Changes to 'ubuntu'
debian/changelog | 7 +++
debian/patches/102-fixup-close.diff | 77 ++++++++++++++++++++++++++++++++++++
debian/patches/series | 1
3 files changed, 85 insertions(+)
New commits:
commit 0fd415f5c89966c3ae8f03cecb9f429570caadea
Author: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Date: Wed Mar 27 09:47:48 2013 +0100
release to raring
diff --git a/debian/changelog b/debian/changelog
index 15d078e..133724b 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,9 +1,9 @@
-xserver-xorg-video-nouveau (1:1.0.6-0ubuntu4) UNRELEASED; urgency=low
+xserver-xorg-video-nouveau (1:1.0.6-0ubuntu4) raring; urgency=low
* Clean up (forced) device close (LP: #1157614)
- 102-fixup-close.diff
- -- Maarten Lankhorst <maarten.lankhorst@ubuntu.com> Mon, 25 Mar 2013 13:59:55 +0100
+ -- Maarten Lankhorst <maarten.lankhorst@ubuntu.com> Mon, 25 Mar 2013 14:01:46 +0100
xserver-xorg-video-nouveau (1:1.0.6-0ubuntu3) raring; urgency=low
commit f16680f9dd6fd0adf36741692150f46dafc88894
Author: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Date: Mon Mar 25 14:01:06 2013 +0100
Clean up (forced) device close (LP: #1157614)
102-fixup-close.diff
diff --git a/debian/changelog b/debian/changelog
index f30ada1..15d078e 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+xserver-xorg-video-nouveau (1:1.0.6-0ubuntu4) UNRELEASED; urgency=low
+
+ * Clean up (forced) device close (LP: #1157614)
+ - 102-fixup-close.diff
+
+ -- Maarten Lankhorst <maarten.lankhorst@ubuntu.com> Mon, 25 Mar 2013 13:59:55 +0100
+
xserver-xorg-video-nouveau (1:1.0.6-0ubuntu3) raring; urgency=low
* Remove individual patches, sync to git a80785f792 to pick up some fixes.
diff --git a/debian/patches/102-fixup-close.diff b/debian/patches/102-fixup-close.diff
new file mode 100644
index 0000000..b9a6108
--- /dev/null
+++ b/debian/patches/102-fixup-close.diff
@@ -0,0 +1,77 @@
+--- a/src/drmmode_display.c
++++ b/src/drmmode_display.c
+@@ -627,6 +627,9 @@
+ drmmode_output->mode_output =
+ drmModeGetConnector(drmmode->fd, drmmode_output->output_id);
+
++ if (!drmmode_output->mode_output)
++ return XF86OutputStatusDisconnected;
++
+ switch (drmmode_output->mode_output->connection) {
+ case DRM_MODE_CONNECTED:
+ status = XF86OutputStatusConnected;
+@@ -663,6 +666,9 @@
+ drmModePropertyPtr props;
+ xf86MonPtr ddc_mon = NULL;
+
++ if (!koutput)
++ return NULL;
++
+ /* look for an EDID property */
+ for (i = 0; i < koutput->count_props; i++) {
+ props = drmModeGetProperty(drmmode->fd, koutput->props[i]);
+@@ -927,6 +933,9 @@
+ drmModeGetConnector(drmmode->fd, drmmode_output->output_id);
+ }
+
++ if (!drmmode_output->mode_output)
++ return FALSE;
++
+ for (i = 0; i < drmmode_output->num_props; i++) {
+ drmmode_prop_ptr p = &drmmode_output->props[i];
+ if (p->atoms[0] != property)
+@@ -1437,6 +1446,7 @@
+ if (drmmode->uevent_monitor) {
+ struct udev *u = udev_monitor_get_udev(drmmode->uevent_monitor);
+
++ RemoveGeneralSocket(udev_monitor_get_fd(drmmode->uevent_monitor));
+ udev_monitor_unref(drmmode->uevent_monitor);
+ udev_unref(u);
+ }
+@@ -1524,6 +1534,12 @@
+ drmmode_screen_fini(ScreenPtr pScreen)
+ {
+ ScrnInfoPtr scrn = xf86ScreenToScrn(pScreen);
++ drmmode_ptr drmmode = drmmode_from_scrn(scrn);
+
+ drmmode_uevent_fini(scrn);
++
++ /* Register a wakeup handler to get informed on DRM events */
++ RemoveBlockAndWakeupHandlers((BlockHandlerProcPtr)NoopDDA,
++ drmmode_wakeup_handler, scrn);
++ RemoveGeneralSocket(drmmode->fd);
+ }
+--- a/src/nv_driver.c
++++ b/src/nv_driver.c
+@@ -432,8 +432,8 @@
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "NVLeaveVT is called.\n");
+
+ ret = drmDropMaster(pNv->dev->fd);
+- if (ret)
+- ErrorF("Error dropping master: %d\n", ret);
++ if (ret && errno != EIO && errno != ENODEV)
++ ErrorF("Error dropping master: %i(%m)\n", -errno);
+ }
+
+ static void
+@@ -624,8 +624,9 @@
+ {
+ NVPtr pNv = NVPTR(pScrn);
+
+- nouveau_device_del(&pNv->dev);
+ drmFree(pNv->drm_device_name);
++ nouveau_client_del(&pNv->client);
++ nouveau_device_del(&pNv->dev);
+ }
+
+ static Bool
diff --git a/debian/patches/series b/debian/patches/series
index fdf7b34..3822187 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -4,3 +4,4 @@
100-vblank-on.diff
101-git-a80785f792.diff
+102-fixup-close.diff
Reply to: