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.lankho...@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.lankho...@ubuntu.com>  Mon, 25 Mar 2013 
13:59:55 +0100
+ -- Maarten Lankhorst <maarten.lankho...@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.lankho...@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.lankho...@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


-- 
To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/e1ukm2a-0002js...@vasks.debian.org

Reply via email to